diff --git a/etc/soft/nvim/+plugins/coc.nvim/LICENSE.md b/etc/soft/nvim/+plugins/coc.nvim/LICENSE.md new file mode 100644 index 0000000..bee2bf1 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/LICENSE.md @@ -0,0 +1,7 @@ +Copyright 2018-2018 by Qiming Zhao aaa + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/etc/soft/nvim/+plugins/coc.nvim/Readme.md b/etc/soft/nvim/+plugins/coc.nvim/Readme.md new file mode 100644 index 0000000..7ad987d --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/Readme.md @@ -0,0 +1,329 @@ +

+ + Coc Logo + +

Make your Vim/Neovim as smart as VSCode.

+

+ Software License + Actions + Doc + Gitter +

+

+ +--- + +Gif + +_True snippet and additional text editing support_ + +## Why? + +- 🚀 **Fast**: [instant increment completion](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources), increment buffer sync using buffer update events. +- 💎 **Reliable**: typed language, tested with CI. +- 🌟 **Featured**: [full LSP support](https://github.com/neoclide/coc.nvim/wiki/Language-servers#supported-features) +- ❤️ **Flexible**: [configured like VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file), [extensions work like in VSCode](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) + +## Quick Start + +Install [nodejs](https://nodejs.org/en/download/) >= 12.12: + +```sh +curl -sL install-node.now.sh/lts | bash +``` + +For [vim-plug](https://github.com/junegunn/vim-plug) users: + +```vim +" Use release branch (recommend) +Plug 'neoclide/coc.nvim', {'branch': 'release'} + +" Or build from source code by using yarn: https://yarnpkg.com +Plug 'neoclide/coc.nvim', {'branch': 'master', 'do': 'yarn install --frozen-lockfile'} +``` + +in your `.vimrc` or `init.vim`, then restart Vim and run `:PlugInstall`. + +Checkout [Install +coc.nvim](https://github.com/neoclide/coc.nvim/wiki/Install-coc.nvim) for +more info. + +You **have to** install coc extension or configure language servers for +LSP support. + +Install extensions like: + + :CocInstall coc-json coc-tsserver + +Or configure language server in `coc-settings.json` opened by +`:CocConfig`, like: + +```json +{ + "languageserver": { + "go": { + "command": "gopls", + "rootPatterns": ["go.mod"], + "trace.server": "verbose", + "filetypes": ["go"] + } + } +} +``` + +Checkout wiki for more details: + +- [Completion with sources](https://github.com/neoclide/coc.nvim/wiki/Completion-with-sources) +- [Using the configuration file](https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file) +- [Using coc extensions](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) +- [Configure language servers](https://github.com/neoclide/coc.nvim/wiki/Language-servers) +- [F.A.Q](https://github.com/neoclide/coc.nvim/wiki/F.A.Q) + +Checkout `:h coc-nvim` for vim interface. + +## Example vim configuration + +Configuration is required to make coc.nvim easier to work with, since it +doesn't change your key-mappings or Vim options. This is done as much as +possible to avoid conflict with your other plugins. + +**❗️Important**: Some Vim plugins could change key mappings. Please use +command like`:verbose imap ` to make sure that your keymap has taken effect. + +```vim +" Set internal encoding of vim, not needed on neovim, since coc.nvim using some +" unicode characters in the file autoload/float.vim +set encoding=utf-8 + +" TextEdit might fail if hidden is not set. +set hidden + +" Some servers have issues with backup files, see #649. +set nobackup +set nowritebackup + +" Give more space for displaying messages. +set cmdheight=2 + +" Having longer updatetime (default is 4000 ms = 4 s) leads to noticeable +" delays and poor user experience. +set updatetime=300 + +" Don't pass messages to |ins-completion-menu|. +set shortmess+=c + +" Always show the signcolumn, otherwise it would shift the text each time +" diagnostics appear/become resolved. +if has("nvim-0.5.0") || has("patch-8.1.1564") + " Recently vim can merge signcolumn and number column into one + set signcolumn=number +else + set signcolumn=yes +endif + +" Use tab for trigger completion with characters ahead and navigate. +" NOTE: Use command ':verbose imap ' to make sure tab is not mapped by +" other plugin before putting this into your config. +inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() +inoremap pumvisible() ? "\" : "\" + +function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' +endfunction + +" Use to trigger completion. +if has('nvim') + inoremap coc#refresh() +else + inoremap coc#refresh() +endif + +" Make auto-select the first completion item and notify coc.nvim to +" format on enter, could be remapped by other vim plugin +inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + +" Use `[g` and `]g` to navigate diagnostics +" Use `:CocDiagnostics` to get all diagnostics of current buffer in location list. +nmap [g (coc-diagnostic-prev) +nmap ]g (coc-diagnostic-next) + +" GoTo code navigation. +nmap gd (coc-definition) +nmap gy (coc-type-definition) +nmap gi (coc-implementation) +nmap gr (coc-references) + +" Use K to show documentation in preview window. +nnoremap K :call show_documentation() + +function! s:show_documentation() + if (index(['vim','help'], &filetype) >= 0) + execute 'h '.expand('') + elseif (coc#rpc#ready()) + call CocActionAsync('doHover') + else + execute '!' . &keywordprg . " " . expand('') + endif +endfunction + +" Highlight the symbol and its references when holding the cursor. +autocmd CursorHold * silent call CocActionAsync('highlight') + +" Symbol renaming. +nmap rn (coc-rename) + +" Formatting selected code. +xmap f (coc-format-selected) +nmap f (coc-format-selected) + +augroup mygroup + autocmd! + " Setup formatexpr specified filetype(s). + autocmd FileType typescript,json setl formatexpr=CocAction('formatSelected') + " Update signature help on jump placeholder. + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +augroup end + +" Applying codeAction to the selected region. +" Example: `aap` for current paragraph +xmap a (coc-codeaction-selected) +nmap a (coc-codeaction-selected) + +" Remap keys for applying codeAction to the current buffer. +nmap ac (coc-codeaction) +" Apply AutoFix to problem on the current line. +nmap qf (coc-fix-current) + +" Map function and class text objects +" NOTE: Requires 'textDocument.documentSymbol' support from the language server. +xmap if (coc-funcobj-i) +omap if (coc-funcobj-i) +xmap af (coc-funcobj-a) +omap af (coc-funcobj-a) +xmap ic (coc-classobj-i) +omap ic (coc-classobj-i) +xmap ac (coc-classobj-a) +omap ac (coc-classobj-a) + +" Remap and for scroll float windows/popups. +if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" +endif + +" Use CTRL-S for selections ranges. +" Requires 'textDocument/selectionRange' support of language server. +nmap (coc-range-select) +xmap (coc-range-select) + +" Add `:Format` command to format current buffer. +command! -nargs=0 Format :call CocAction('format') + +" Add `:Fold` command to fold current buffer. +command! -nargs=? Fold :call CocAction('fold', ) + +" Add `:OR` command for organize imports of the current buffer. +command! -nargs=0 OR :call CocAction('runCommand', 'editor.action.organizeImport') + +" Add (Neo)Vim's native statusline support. +" NOTE: Please see `:h coc-status` for integrations with external plugins that +" provide custom statusline: lightline.vim, vim-airline. +set statusline^=%{coc#status()}%{get(b:,'coc_current_function','')} + +" Mappings for CoCList +" Show all diagnostics. +nnoremap a :CocList diagnostics +" Manage extensions. +nnoremap e :CocList extensions +" Show commands. +nnoremap c :CocList commands +" Find symbol of current document. +nnoremap o :CocList outline +" Search workspace symbols. +nnoremap s :CocList -I symbols +" Do default action for next item. +nnoremap j :CocNext +" Do default action for previous item. +nnoremap k :CocPrev +" Resume latest coc list. +nnoremap p :CocListResume +``` + +## Articles + +- [coc.nvim 插件体系介绍](https://zhuanlan.zhihu.com/p/65524706) +- [CocList 入坑指南](https://zhuanlan.zhihu.com/p/71846145) +- [Create coc.nvim extension to improve Vim experience](https://medium.com/@chemzqm/create-coc-nvim-extension-to-improve-vim-experience-4461df269173) +- [How to write a coc.nvim extension (and why)](https://samroeca.com/coc-plugin.html) + +## Trouble shooting + +Try these steps when you have problem with coc.nvim. + +- Make sure your Vim version >= 8.0 by command `:version`. +- If service failed to start, use command `:CocInfo` or `:checkhealth` on Neovim. +- Checkout the log of coc.nvim by command `:CocOpenLog`. +- When you have issues with the language server, it's recommended to [checkout + the output](https://github.com/neoclide/coc.nvim/wiki/Debug-language-server#using-output-channel). + +## Feedback + +- If you think Coc is useful, consider giving it a star. +- If you have a question, [ask on gitter](https://gitter.im/neoclide/coc.nvim) +- 中文用户请到 [中文 gitter](https://gitter.im/neoclide/coc-cn) 讨论 +- If something is not working, [create an + issue](https://github.com/neoclide/coc.nvim/issues/new). + +## Backers + +[Become a backer](https://opencollective.com/cocnvim#backer) and get your image on our README on Github with a link to your site. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +## Support the project + +Buy cloud service from [www.vultr.com](https://www.vultr.com/?ref=8890170-6G) + +## License + +MIT diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc.vim new file mode 100644 index 0000000..92ed15f --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc.vim @@ -0,0 +1,194 @@ +scriptencoding utf-8 +let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []} +let g:coc_user_config = get(g:, 'coc_user_config', {}) +let g:coc_global_extensions = get(g:, 'coc_global_extensions', []) +let g:coc_selected_text = '' +let g:coc_vim_commands = [] +let s:watched_keys = [] +let s:is_vim = !has('nvim') +let s:error_sign = get(g:, 'coc_status_error_sign', has('mac') ? '❌ ' : 'E') +let s:warning_sign = get(g:, 'coc_status_warning_sign', has('mac') ? '⚠️ ' : 'W') +let s:select_api = exists('*nvim_select_popupmenu_item') +let s:callbacks = {} + +function! coc#expandable() abort + return coc#rpc#request('snippetCheck', [1, 0]) +endfunction + +function! coc#jumpable() abort + return coc#rpc#request('snippetCheck', [0, 1]) +endfunction + +function! coc#expandableOrJumpable() abort + return coc#rpc#request('snippetCheck', [1, 1]) +endfunction + +" add vim command to CocCommand list +function! coc#add_command(id, cmd, ...) + let config = {'id':a:id, 'cmd':a:cmd, 'title': get(a:,1,'')} + call add(g:coc_vim_commands, config) + if !coc#rpc#ready() | return | endif + call coc#rpc#notify('addCommand', [config]) +endfunction + +function! coc#refresh() abort + return "\=coc#start()\" +endfunction + +function! coc#on_enter() + call coc#rpc#notify('CocAutocmd', ['Enter', bufnr('%')]) + return '' +endfunction + +function! coc#_insert_key(method, key, ...) abort + if get(a:, 1, 1) + call coc#_cancel() + endif + return "\=coc#rpc#".a:method."('doKeymap', ['".a:key."'])\" +endfunction + +function! coc#_complete() abort + let items = get(g:coc#_context, 'candidates', []) + let preselect = get(g:coc#_context, 'preselect', -1) + let startcol = g:coc#_context.start + 1 + if s:select_api && len(items) && preselect != -1 + noa call complete(startcol, items) + call nvim_select_popupmenu_item(preselect, v:false, v:false, {}) + else + call complete(startcol, items) + endif + return '' +endfunction + +function! coc#_do_complete(start, items, preselect) + let g:coc#_context = { + \ 'start': a:start, + \ 'candidates': a:items, + \ 'preselect': a:preselect + \} + if mode() =~# 'i' && &paste != 1 + call feedkeys("\CocRefresh", 'i') + endif +endfunction + +function! coc#_select_confirm() abort + if !exists('*complete_info') + throw 'coc#_select_confirm requires complete_info function to work' + endif + let selected = complete_info()['selected'] + if selected != -1 + return "\" + elseif pumvisible() + return "\\" + endif + return '' +endfunction + +function! coc#_selected() + if !pumvisible() | return 0 | endif + return coc#rpc#request('hasSelected', []) +endfunction + +function! coc#_hide() abort + if !pumvisible() | return | endif + call feedkeys("\", 'in') +endfunction + +function! coc#_cancel() + " hack for close pum + if pumvisible() + let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []} + call feedkeys("\CocRefresh", 'i') + call coc#rpc#notify('stopCompletion', []) + endif +endfunction + +function! coc#_select() abort + if !pumvisible() | return | endif + call feedkeys("\", 'in') +endfunction + +function! coc#start(...) + let opt = coc#util#get_complete_option() + call CocActionAsync('startCompletion', extend(opt, get(a:, 1, {}))) + return '' +endfunction + +" used for statusline +function! coc#status() + let info = get(b:, 'coc_diagnostic_info', {}) + let msgs = [] + if !empty(info) && get(info, 'error', 0) + call add(msgs, s:error_sign . info['error']) + endif + if !empty(info) && get(info, 'warning', 0) + call add(msgs, s:warning_sign . info['warning']) + endif + return s:trim(join(msgs, ' ') . ' ' . get(g:, 'coc_status', '')) +endfunction + +function! s:trim(str) + if exists('*trim') + return trim(a:str) + endif + return substitute(a:str, '\s\+$', '', '') +endfunction + +function! coc#config(section, value) + let g:coc_user_config[a:section] = a:value + call coc#rpc#notify('updateConfig', [a:section, a:value]) +endfunction + +function! coc#add_extension(...) + if a:0 == 0 | return | endif + call extend(g:coc_global_extensions, a:000) +endfunction + +function! coc#_watch(key) + if s:is_vim | return | endif + if index(s:watched_keys, a:key) == -1 + call add(s:watched_keys, a:key) + call dictwatcheradd(g:, a:key, function('s:GlobalChange')) + endif +endfunction + +function! coc#_unwatch(key) + if s:is_vim | return | endif + let idx = index(s:watched_keys, a:key) + if idx != -1 + call remove(s:watched_keys, idx) + call dictwatcherdel(g:, a:key, function('s:GlobalChange')) + endif +endfunction + +function! s:GlobalChange(dict, key, val) + call coc#rpc#notify('GlobalChange', [a:key, get(a:val, 'old', v:null), get(a:val, 'new', v:null)]) +endfunction + +function! coc#_map() + if !s:select_api | return | endif + for i in range(1, 9) + exe 'inoremap '.i.' call nvim_select_popupmenu_item('.(i - 1).', v:true, v:true, {})' + endfor +endfunction + +function! coc#_unmap() + if !s:select_api | return | endif + for i in range(1, 9) + exe 'silent! iunmap '.i + endfor +endfunction + +function! coc#on_notify(id, method, Cb) + let key = a:id. '-'.a:method + let s:callbacks[key] = a:Cb + call coc#rpc#notify('registNotification', [a:id, a:method]) +endfunction + +function! coc#do_notify(id, method, result) + let key = a:id. '-'.a:method + let Fn = s:callbacks[key] + if !empty(Fn) + call Fn(a:result) + endif +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/api.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/api.vim new file mode 100644 index 0000000..23c7b9c --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/api.vim @@ -0,0 +1,587 @@ +" ============================================================================ +" Description: Client api used by vim8 +" Author: Qiming Zhao +" Licence: MIT licence +" Last Modified: Nov 11, 2020 +" ============================================================================ +if has('nvim') | finish | endif +scriptencoding utf-8 +let s:funcs = {} +let s:prop_offset = get(g:, 'coc_text_prop_offset', 1000) +let s:namespace_id = 1 +let s:namespace_cache = {} + +" helper {{ +function! s:buf_line_count(bufnr) abort + if bufnr('%') == a:bufnr + return line('$') + endif + if exists('*getbufline') + let lines = getbufline(a:bufnr, 1, '$') + return len(lines) + endif + let curr = bufnr('%') + execute 'buffer '.a:bufnr + let n = line('$') + execute 'buffer '.curr + return n +endfunction + +function! s:execute(cmd) + if a:cmd =~# '^echo' + execute a:cmd + else + silent! execute a:cmd + endif +endfunction +" }}" + +" nvim client methods {{ +function! s:funcs.set_current_dir(dir) abort + execute 'cd '.a:dir +endfunction + +function! s:funcs.set_var(name, value) abort + execute 'let g:'.a:name.'= a:value' +endfunction + +function! s:funcs.del_var(name) abort + execute 'unlet g:'.a:name +endfunction + +function! s:funcs.set_option(name, value) abort + execute 'let &'.a:name.' = a:value' +endfunction + +function! s:funcs.set_current_buf(bufnr) abort + if !bufexists(a:bufnr) | return | endif + execute 'buffer '.a:bufnr +endfunction + +function! s:funcs.set_current_win(win_id) abort + let [tabnr, winnr] = win_id2tabwin(a:win_id) + if tabnr == 0 | return | endif + execute 'normal! '.tabnr.'gt' + execute winnr.' wincmd w' +endfunction + +function! s:funcs.set_current_tabpage(tabnr) abort + execute 'normal! '.a:tabnr.'gt' +endfunction + +function! s:funcs.list_wins() abort + return map(getwininfo(), 'v:val["winid"]') +endfunction + +function! s:funcs.call_atomic(calls) + let res = [] + for [key, arglist] in a:calls + let name = key[5:] + try + call add(res, call(s:funcs[name], arglist)) + catch /.*/ + return [res, v:exception] + endtry + endfor + return [res, v:null] +endfunction + +function! s:funcs.set_client_info(...) abort +endfunction + +function! s:funcs.subscribe(...) abort +endfunction + +function! s:funcs.unsubscribe(...) abort +endfunction + +function! s:funcs.call_function(method, args) abort + return call(a:method, a:args) +endfunction + +function! s:funcs.call_dict_function(dict, method, args) abort + return call(a:method, a:args, a:dict) +endfunction + +function! s:funcs.command(command) abort + " command that could cause cursor vanish + if a:command =~# '^echo' || a:command =~# '^redraw' || a:command =~# '^sign place' + call timer_start(0, {-> s:execute(a:command)}) + else + execute a:command + endif +endfunction + +function! s:funcs.eval(expr) abort + return eval(a:expr) +endfunction + +function! s:funcs.get_api_info() + let names = coc#api#func_names() + return [1, {'functions': map(names, '{"name": "nvim_".v:val}')}] +endfunction + +function! s:funcs.list_bufs() + return map(getbufinfo({'bufloaded': 1}), 'v:val["bufnr"]') +endfunction + +function! s:funcs.feedkeys(keys, mode, escape_csi) + call feedkeys(a:keys, a:mode) +endfunction + +function! s:funcs.list_runtime_paths() + return split(&runtimepath, ',') +endfunction + +function! s:funcs.command_output(cmd) + return execute(a:cmd) +endfunction + +function! s:funcs.get_current_line() + return getline('.') +endfunction + +function! s:funcs.set_current_line(line) + call setline('.', a:line) +endfunction + +function! s:funcs.del_current_line(line) + execute 'normal! dd' +endfunction + +function! s:funcs.get_var(var) + return get(g:, a:var, v:null) +endfunction + +function! s:funcs.get_vvar(var) + return get(v:, a:var, v:null) +endfunction + +function! s:funcs.get_option(name) + return eval('&'.a:name) +endfunction + +function! s:funcs.get_current_buf() + return bufnr('%') +endfunction + +function! s:funcs.get_current_win() + return win_getid() +endfunction + +function! s:funcs.get_current_tabpage() + return tabpagenr() +endfunction + +function! s:funcs.list_tabpages() + return range(1, tabpagenr('$')) +endfunction + +function! s:funcs.get_mode() + return {'blocking': v:false, 'mode': mode()} +endfunction + +function! s:funcs.strwidth(str) + return strwidth(a:str) +endfunction + +function! s:funcs.out_write(str) + echon a:str +endfunction + +function! s:funcs.err_write(str) + echoerr a:str +endfunction + +function! s:funcs.err_writeln(str) + echoerr a:str +endfunction + +function! s:funcs.create_namespace(name) abort + if empty(a:name) + let id = s:namespace_id + let s:namespace_id = s:namespace_id + 1 + return id + endif + let id = get(s:namespace_cache, a:name, 0) + if !id + let id = s:namespace_id + let s:namespace_id = s:namespace_id + 1 + let s:namespace_cache[a:name] = id + endif + return id +endfunction +" }} + +" buffer methods {{ +function! s:funcs.buf_set_option(bufnr, name, val) + let val = a:val + if val is v:true + let val = 1 + elseif val is v:false + let val = 0 + endif + return setbufvar(a:bufnr, '&'.a:name, val) +endfunction + +function! s:funcs.buf_get_changedtick(bufnr) + return getbufvar(a:bufnr, 'changedtick') +endfunction + +function! s:funcs.buf_is_valid(bufnr) + return bufloaded(a:bufnr) ? v:true : v:false +endfunction + +function! s:funcs.buf_get_mark(bufnr, name) + let nr = bufnr('%') + if a:bufnr != 0 || a:bufnr != nr + throw 'buf_get_mark support current buffer only' + endif + return [line("'" . a:name), col("'" . a:name)] +endfunction + +function! s:funcs.buf_add_highlight(bufnr, srcId, hlGroup, line, colStart, colEnd) abort + if !has('textprop') || !has('patch-8.1.1719') + return + endif + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + let type = 'CocHighlight'.a:hlGroup + if empty(prop_type_get(type)) + call prop_type_add(type, {'highlight': a:hlGroup, 'combine': 1}) + endif + let total = strlen(getbufline(bufnr, a:line + 1)[0]) + let end = a:colEnd + if end == -1 + let end = total + else + let end = min([end, total]) + endif + if end <= a:colStart + return + endif + let srcId = a:srcId + if srcId == 0 + while v:true + let srcId = srcId + 1 + if empty(prop_find({'id': s:prop_offset + srcId, 'lnum' : 1})) + break + endif + endwhile + " generate srcId + endif + let id = srcId == -1 ? 0 : s:prop_offset + srcId + try + call prop_add(a:line + 1, a:colStart + 1, {'length': end - a:colStart, 'bufnr': bufnr, 'type': type, 'id': id}) + catch /^Vim\%((\a\+)\)\=:E967/ + " ignore 967 + endtry + let g:i = srcId + if a:srcId == 0 + " return generated srcId + return srcId + endif +endfunction + +function! s:funcs.buf_clear_namespace(bufnr, srcId, startLine, endLine) abort + if !has('textprop') || !has('patch-8.1.1719') + return + endif + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + let start = a:startLine + 1 + let end = a:endLine == -1 ? len(getbufline(bufnr, 1, '$')) : a:endLine + 1 + if a:srcId == -1 + call prop_clear(start, end, {'bufnr' : bufnr}) + else + try + call prop_remove({'bufnr': bufnr, 'all': 1, 'id': s:prop_offset + a:srcId}, start, end) + catch /^Vim\%((\a\+)\)\=:E968/ + " ignore 968 + endtry + endif +endfunction + +function! s:funcs.buf_line_count(bufnr) abort + return s:buf_line_count(a:bufnr) +endfunction + +function! s:funcs.buf_attach(...) + " not supported + return 1 +endfunction + +function! s:funcs.buf_detach() + " not supported + return 1 +endfunction + +function! s:funcs.buf_get_lines(bufnr, start, end, strict) abort + let lines = getbufline(a:bufnr, 1, '$') + let start = a:start < 0 ? a:start + 1 : a:start + let end = a:end < 0 ? a:end + 1 : a:end + if a:strict && end > len(lines) + throw 'line number out of range: '. end + endif + return lines[start : end - 1] +endfunction + +function! s:funcs.buf_set_lines(bufnr, start, end, strict, ...) abort + if !bufloaded(a:bufnr) + return + endif + let replacement = get(a:, 1, []) + let lineCount = s:buf_line_count(a:bufnr) + let startLnum = a:start >= 0 ? a:start + 1 : lineCount + a:start + 1 + let end = a:end >= 0 ? a:end : lineCount + a:end + 1 + if end == lineCount + 1 + let end = lineCount + endif + let delCount = end - (startLnum - 1) + let changeBuffer = 0 + let curr = bufnr('%') + if a:bufnr != curr && !exists('*setbufline') + let changeBuffer = 1 + exe 'buffer '.a:bufnr + endif + if a:bufnr == curr || changeBuffer + " replace + let storeView = winsaveview() + if delCount == len(replacement) + call setline(startLnum, replacement) + else + if len(replacement) + call append(startLnum - 1, replacement) + endif + if delCount + let start = startLnum + len(replacement) + let saved_reg = @" + silent execute start . ','.(start + delCount - 1).'d' + let @" = saved_reg + endif + endif + call winrestview(storeView) + if changeBuffer + exe 'buffer '.curr + endif + elseif exists('*setbufline') + " replace + if delCount == len(replacement) + " 8.0.1039 + call setbufline(a:bufnr, startLnum, replacement) + else + if len(replacement) + " 8.10037 + call appendbufline(a:bufnr, startLnum - 1, replacement) + endif + if delCount + let start = startLnum + len(replacement) + "8.1.0039 + silent call deletebufline(a:bufnr, start, start + delCount - 1) + endif + endif + endif +endfunction + +function! s:funcs.buf_set_name(bufnr, name) abort + let nr = bufnr('%') + if a:bufnr != nr + throw 'buf_set_name support current buffer only' + else + execute '0f' + execute 'file '.fnameescape(a:name) + endif +endfunction + +function! s:funcs.buf_get_var(bufnr, name) + return getbufvar(a:bufnr, a:name) +endfunction + +function! s:funcs.buf_set_var(bufnr, name, val) + if !bufloaded(a:bufnr) | return | endif + call setbufvar(a:bufnr, a:name, a:val) +endfunction + +function! s:funcs.buf_del_var(bufnr, name) + call setbufvar(a:bufnr, a:name, v:null) +endfunction + +function! s:funcs.buf_get_option(bufnr, name) + return getbufvar(a:bufnr, '&'.a:name) +endfunction + +function! s:funcs.buf_get_name(bufnr) + return bufname(a:bufnr) +endfunction +" }} + +" window methods {{ +function! s:funcs.win_get_buf(winid) + return winbufnr(a:winid) +endfunction + +function! s:funcs.win_get_position(win_id) abort + let [row, col] = win_screenpos(a:win_id) + if row == 0 && col == 0 + throw 'Invalid window '.a:win_id + endif + return [row - 1, col - 1] +endfunction + +function! s:funcs.win_get_height(win_id) abort + return winheight(a:win_id) +endfunction + +function! s:funcs.win_get_width(win_id) abort + return winwidth(a:win_id) +endfunction + +if exists('*win_execute') + function! s:win_execute(win_id, cmd, ...) abort + let ref = get(a:000, 0, v:null) + let cmd = ref is v:null ? a:cmd : 'let ref["out"] = ' . a:cmd + call win_execute(a:win_id, cmd) + endfunction +else + function! s:win_execute(win_id, cmd, ...) abort + let ref = get(a:000, 0, v:null) + let cmd = ref is v:null ? a:cmd : 'let ref["out"] = ' . a:cmd + let winid = win_getid() + if winid == a:win_id + execute cmd + else + let goto_status = win_gotoid(a:win_id) + if !goto_status + return + endif + execute cmd + call win_gotoid(winid) + endif + endfunction +endif + +function! s:funcs.win_get_cursor(win_id) abort + let ref = {} + call s:win_execute(a:win_id, "[line('.'), col('.')-1]", ref) + return ref['out'] +endfunction + +function! s:funcs.win_get_var(win_id, name) abort + return gettabwinvar(0, a:win_id, a:name) +endfunction + +function! s:funcs.win_set_width(win_id, width) abort + return s:win_execute(a:win_id, 'vertical resize '.a:width) +endfunction + +function! s:funcs.win_set_buf(win_id, buf_id) abort + return s:win_execute(a:win_id, 'buffer '.a:buf_id) +endfunction + +function! s:funcs.win_get_option(win_id, name) abort + return gettabwinvar(0, a:win_id, '&'.a:name) +endfunction + +function! s:funcs.win_set_height(win_id, height) abort + return s:win_execute(a:win_id, 'resize '.a:height) +endfunction + +function! s:funcs.win_set_option(win_id, name, value) abort + let val = a:value + if val is v:true + let val = 1 + elseif val is v:false + let val = 0 + endif + call setwinvar(a:win_id, '&'.a:name, val) +endfunction + +function! s:funcs.win_set_var(win_id, name, value) abort + call setwinvar(a:win_id, a:name, a:value) +endfunction + +function! s:funcs.win_del_var(win_id, name) abort + call settabwinvar(0, a:win_id, a:name, v:null) +endfunction + +function! s:funcs.win_is_valid(win_id) abort + let info = getwininfo(a:win_id) + return !empty(info) +endfunction + +function! s:funcs.win_get_number(win_id) abort + let info = getwininfo(a:win_id) + if empty(info) + throw 'Invalid window id '.a:win_id + endif + return info[0]['winnr'] +endfunction + +function! s:funcs.win_set_cursor(win_id, pos) abort + let [line, col] = a:pos + call s:win_execute(a:win_id, 'call cursor('.line.','.(col + 1).')') +endfunction + +function! s:funcs.win_close(win_id, ...) abort + call s:win_execute(a:win_id, 'close!') +endfunction + +function! s:funcs.win_get_tabpage(win_id) abort + let info = getwininfo(a:win_id) + if !info + throw 'Invalid window id '.a:win_id + endif + return info[0]['tabnr'] +endfunction +" }} + +" tabpage methods {{ +function! s:funcs.tabpage_get_number(id) + return a:id +endfunction + +function! s:funcs.tabpage_list_wins(tabnr) + let info = getwininfo() + return map(filter(info, 'v:val["tabnr"] == a:tabnr'), 'v:val["winid"]') +endfunction + +function! s:funcs.tabpage_get_var(tabnr, name) + return gettabvar(a:tabnr, a:name, v:null) +endfunction + +function! s:funcs.tabpage_set_var(tabnr, name, value) + call settabvar(a:tabnr, a:name, a:value) +endfunction + +function! s:funcs.tabpage_del_var(tabnr, name) + call settabvar(a:tabnr, a:name, v:null) +endfunction + +function! s:funcs.tabpage_is_valid(tabnr) + let max = tabpagenr('$') + return a:tabnr <= max +endfunction + +function! s:funcs.tabpage_get_win(tabnr) + let wnr = tabpagewinnr(a:tabnr) + return win_getid(wnr, a:tabnr) +endfunction +" }} + +function! coc#api#func_names() abort + return keys(s:funcs) +endfunction + +function! coc#api#call(method, args) abort + let err = v:null + let res = v:null + try + let res = call(s:funcs[a:method], a:args) + catch /.*/ + let err = v:exception + endtry + return [err, res] +endfunction + +function! coc#api#notify(method, args) abort + call call(s:funcs[a:method], a:args) +endfunction +" vim: set sw=2 ts=2 sts=2 et tw=78 foldmarker={{,}} foldmethod=marker foldlevel=0: diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/client.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/client.vim new file mode 100644 index 0000000..bbd8733 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/client.vim @@ -0,0 +1,340 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') +let s:is_vim = !has('nvim') +let s:is_win = has("win32") || has("win64") +let s:clients = {} + +if get(g:, 'node_client_debug', 0) + let $NODE_CLIENT_LOG_LEVEL = 'debug' + if exists('$NODE_CLIENT_LOG_FILE') + let s:logfile = resolve($NODE_CLIENT_LOG_FILE) + else + let s:logfile = tempname() + let $NODE_CLIENT_LOG_FILE = s:logfile + endif +endif + +" create a client +function! coc#client#create(name, command) + let client = {} + let client['command'] = a:command + let client['name'] = a:name + let client['running'] = 0 + let client['async_req_id'] = 1 + let client['async_callbacks'] = {} + " vim only + let client['channel'] = v:null + " neovim only + let client['chan_id'] = 0 + let client['start'] = function('s:start', [], client) + let client['request'] = function('s:request', [], client) + let client['notify'] = function('s:notify', [], client) + let client['request_async'] = function('s:request_async', [], client) + let client['on_async_response'] = function('s:on_async_response', [], client) + let s:clients[a:name] = client + return client +endfunction + +function! s:start() dict + if self.running | return | endif + if !isdirectory(getcwd()) + echohl Error | echon '[coc.nvim] Current cwd is not a valid directory.' | echohl None + return + endif + let timeout = string(get(g:, 'coc_channel_timeout', 30)) + let disable_warning = string(get(g:, 'coc_disable_startup_warning', 0)) + let tmpdir = fnamemodify(tempname(), ':p:h') + if s:is_vim + let options = { + \ 'in_mode': 'json', + \ 'out_mode': 'json', + \ 'err_mode': 'nl', + \ 'err_cb': {channel, message -> s:on_stderr(self.name, split(message, "\n"))}, + \ 'exit_cb': {channel, code -> s:on_exit(self.name, code)}, + \ 'env': { + \ 'NODE_NO_WARNINGS': '1', + \ 'VIM_NODE_RPC': '1', + \ 'COC_NVIM': '1', + \ 'COC_CHANNEL_TIMEOUT': timeout, + \ 'COC_NO_WARNINGS': disable_warning, + \ 'TMPDIR': tmpdir, + \ } + \} + if has("patch-8.1.350") + let options['noblock'] = 1 + endif + let job = job_start(self.command, options) + let status = job_status(job) + if status !=# 'run' + let self.running = 0 + echohl Error | echom 'Failed to start '.self.name.' service' | echohl None + return + endif + let self['running'] = 1 + let self['channel'] = job_getchannel(job) + else + let original = {'tmpdir': $TMPDIR} + " env option not work on neovim + if exists('*setenv') + let original = { + \ 'NODE_NO_WARNINGS': getenv('NODE_NO_WARNINGS'), + \ 'COC_CHANNEL_TIMEOUT': getenv('COC_CHANNEL_TIMEOUT'), + \ 'COC_NO_WARNINGS': getenv('COC_NO_WARNINGS'), + \ 'TMPDIR': getenv('TMPDIR'), + \ } + call setenv('NODE_NO_WARNINGS', '1') + call setenv('COC_CHANNEL_TIMEOUT', timeout) + call setenv('COC_NO_WARNINGS', disable_warning) + call setenv('TMPDIR', tmpdir) + else + let $NODE_NO_WARNINGS = 1 + let $COC_NO_WARNINGS = disable_warning + let $TMPDIR = tmpdir + endif + let chan_id = jobstart(self.command, { + \ 'rpc': 1, + \ 'on_stderr': {channel, msgs -> s:on_stderr(self.name, msgs)}, + \ 'on_exit': {channel, code -> s:on_exit(self.name, code)}, + \}) + if exists('*setenv') + for key in keys(original) + call setenv(key, original[key]) + endfor + else + let $TMPDIR = original['tmpdir'] + endif + if chan_id <= 0 + echohl Error | echom 'Failed to start '.self.name.' service' | echohl None + return + endif + let self['chan_id'] = chan_id + let self['running'] = 1 + endif +endfunction + +function! s:on_stderr(name, msgs) + if get(g:, 'coc_vim_leaving', 0) | return | endif + if get(g:, 'coc_disable_uncaught_error', 0) | return | endif + let data = filter(copy(a:msgs), '!empty(v:val)') + if empty(data) | return | endif + let client = a:name ==# 'coc' ? '[coc.nvim]' : '['.a:name.']' + let data[0] = client.': '.data[0] + call coc#util#echo_messages('Error', data) +endfunction + +function! s:on_exit(name, code) abort + if get(g:, 'coc_vim_leaving', 0) | return | endif + let client = get(s:clients, a:name, v:null) + if empty(client) | return | endif + if client['running'] != 1 | return | endif + let client['running'] = 0 + let client['chan_id'] = 0 + let client['channel'] = v:null + let client['async_req_id'] = 1 + if a:code != 0 && a:code != 143 + " could be syntax error + if a:code == 1 + call s:check_node() + endif + echohl Error | echom 'client '.a:name. ' abnormal exit with: '.a:code | echohl None + endif +endfunction + +function! coc#client#get_client(name) abort + return get(s:clients, a:name, v:null) +endfunction + +function! coc#client#get_channel(client) + if s:is_vim + return a:client['channel'] + endif + return a:client['chan_id'] +endfunction + +function! s:request(method, args) dict + let channel = coc#client#get_channel(self) + if empty(channel) | return '' | endif + try + if s:is_vim + let res = ch_evalexpr(channel, [a:method, a:args], {'timeout': 60 * 1000}) + if type(res) == 1 && res ==# '' + throw 'request '.a:method. ' '.string(a:args).' timeout after 60s' + endif + let [l:errmsg, res] = res + if !empty(l:errmsg) + throw l:errmsg + else + return res + endif + else + return call('rpcrequest', [channel, a:method] + a:args) + endif + catch /.*/ + if v:exception =~# 'E475' + if get(g:, 'coc_vim_leaving', 0) | return | endif + echohl Error | echom '['.self.name.'] server connection lost' | echohl None + let name = self.name + call s:on_exit(name, 0) + execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:] + elseif v:exception =~# 'E12' + " neovim's bug, ignore it + else + echohl Error | echo 'Error on request ('.a:method.'): '.v:exception | echohl None + endif + endtry +endfunction + +function! s:notify(method, args) dict + let channel = coc#client#get_channel(self) + if empty(channel) + return '' + endif + try + if s:is_vim + call ch_sendraw(channel, json_encode([0, [a:method, a:args]])."\n") + else + call call('rpcnotify', [channel, a:method] + a:args) + endif + catch /.*/ + if v:exception =~# 'E475' + if get(g:, 'coc_vim_leaving', 0) + return + endif + echohl Error | echom '['.self.name.'] server connection lost' | echohl None + let name = self.name + call s:on_exit(name, 0) + execute 'silent do User ConnectionLost'.toupper(name[0]).name[1:] + elseif v:exception =~# 'E12' + " neovim's bug, ignore it + else + echohl Error | echo 'Error on notify ('.a:method.'): '.v:exception | echohl None + endif + endtry +endfunction + +function! s:request_async(method, args, cb) dict + let channel = coc#client#get_channel(self) + if empty(channel) | return '' | endif + if type(a:cb) != 2 + echohl Error | echom '['.self['name'].'] Callback should be function' | echohl None + return + endif + let id = self.async_req_id + let self.async_req_id = id + 1 + let self.async_callbacks[id] = a:cb + call self['notify']('nvim_async_request_event', [id, a:method, a:args]) +endfunction + +function! s:on_async_response(id, resp, isErr) dict + let Callback = get(self.async_callbacks, a:id, v:null) + if empty(Callback) + " should not happen + echohl Error | echom 'callback not found' | echohl None + return + endif + call remove(self.async_callbacks, a:id) + if a:isErr + call call(Callback, [a:resp, v:null]) + else + call call(Callback, [v:null, a:resp]) + endif +endfunction + +function! coc#client#is_running(name) abort + let client = get(s:clients, a:name, v:null) + if empty(client) | return 0 | endif + if !client['running'] | return 0 | endif + if s:is_vim + let status = job_status(ch_getjob(client['channel'])) + return status ==# 'run' + else + let chan_id = client['chan_id'] + let [code] = jobwait([chan_id], 10) + return code == -1 + endif +endfunction + +function! coc#client#stop(name) abort + let client = get(s:clients, a:name, v:null) + if empty(client) | return 1 | endif + let running = coc#client#is_running(a:name) + if !running + echohl WarningMsg | echom 'client '.a:name. ' not running.' | echohl None + return 1 + endif + if s:is_vim + call job_stop(ch_getjob(client['channel']), 'term') + else + call jobstop(client['chan_id']) + endif + sleep 200m + if coc#client#is_running(a:name) + echohl Error | echom 'client '.a:name. ' stop failed.' | echohl None + return 0 + endif + call s:on_exit(a:name, 0) + echohl MoreMsg | echom 'client '.a:name.' stopped!' | echohl None + return 1 +endfunction + +function! coc#client#request(name, method, args) + let client = get(s:clients, a:name, v:null) + if !empty(client) + return client['request'](a:method, a:args) + endif +endfunction + +function! coc#client#notify(name, method, args) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['notify'](a:method, a:args) + endif +endfunction + +function! coc#client#request_async(name, method, args, cb) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['request_async'](a:method, a:args, a:cb) + endif +endfunction + +function! coc#client#on_response(name, id, resp, isErr) + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['on_async_response'](a:id, a:resp, a:isErr) + endif +endfunction + +function! coc#client#restart(name) abort + let stopped = coc#client#stop(a:name) + if !stopped | return | endif + let client = get(s:clients, a:name, v:null) + if !empty(client) + call client['start']() + endif +endfunction + +function! coc#client#restart_all() + for key in keys(s:clients) + call coc#client#restart(key) + endfor +endfunction + +function! coc#client#open_log() + if !get(g:, 'node_client_debug', 0) + echohl Error | echon '[coc.nvim] use let g:node_client_debug = 1 in your vimrc to enabled debug mode.' | echohl None + return + endif + execute 'vs '.s:logfile +endfunction + +function! s:check_node() abort + let node = get(g:, 'coc_node_path', $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH) + let output = trim(system(node . ' --version')) + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) || str2nr(ms[1]) < 10 || (str2nr(ms[1]) == 10 && str2nr(ms[2]) < 12) + echohl Error + echon '[coc.nvim] Node version '.output.' < 10.12.0, please upgrade node.js or use g:coc_node_path variable.' + echohl None + endif +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/color.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/color.vim new file mode 100644 index 0000000..3ef527e --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/color.vim @@ -0,0 +1,192 @@ +scriptencoding utf-8 +" Returns an approximate grey index for the given grey level +fun! s:grey_number(x) + if &t_Co == 88 + if a:x < 23 + return 0 + elseif a:x < 69 + return 1 + elseif a:x < 103 + return 2 + elseif a:x < 127 + return 3 + elseif a:x < 150 + return 4 + elseif a:x < 173 + return 5 + elseif a:x < 196 + return 6 + elseif a:x < 219 + return 7 + elseif a:x < 243 + return 8 + else + return 9 + endif + else + if a:x < 14 + return 0 + else + let l:n = (a:x - 8) / 10 + let l:m = (a:x - 8) % 10 + if l:m < 5 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" Returns the actual grey level represented by the grey index +fun! s:grey_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 46 + elseif a:n == 2 + return 92 + elseif a:n == 3 + return 115 + elseif a:n == 4 + return 139 + elseif a:n == 5 + return 162 + elseif a:n == 6 + return 185 + elseif a:n == 7 + return 208 + elseif a:n == 8 + return 231 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 8 + (a:n * 10) + endif + endif +endfun + +" Returns the palette index for the given grey index +fun! s:grey_colour(n) + if &t_Co == 88 + if a:n == 0 + return 16 + elseif a:n == 9 + return 79 + else + return 79 + a:n + endif + else + if a:n == 0 + return 16 + elseif a:n == 25 + return 231 + else + return 231 + a:n + endif + endif +endfun + +" Returns an approximate colour index for the given colour level +fun! s:rgb_number(x) + if &t_Co == 88 + if a:x < 69 + return 0 + elseif a:x < 172 + return 1 + elseif a:x < 230 + return 2 + else + return 3 + endif + else + if a:x < 75 + return 0 + else + let l:n = (a:x - 55) / 40 + let l:m = (a:x - 55) % 40 + if l:m < 20 + return l:n + else + return l:n + 1 + endif + endif + endif +endfun + +" Returns the palette index for the given R/G/B colour indices +fun! s:rgb_colour(x, y, z) + if &t_Co == 88 + return 16 + (a:x * 16) + (a:y * 4) + a:z + else + return 16 + (a:x * 36) + (a:y * 6) + a:z + endif +endfun + +" Returns the actual colour level for the given colour index +fun! s:rgb_level(n) + if &t_Co == 88 + if a:n == 0 + return 0 + elseif a:n == 1 + return 139 + elseif a:n == 2 + return 205 + else + return 255 + endif + else + if a:n == 0 + return 0 + else + return 55 + (a:n * 40) + endif + endif +endfun + +" Returns the palette index to approximate the given R/G/B colour levels +fun! s:colour(r, g, b) + " Get the closest grey + let l:gx = s:grey_number(a:r) + let l:gy = s:grey_number(a:g) + let l:gz = s:grey_number(a:b) + + " Get the closest colour + let l:x = s:rgb_number(a:r) + let l:y = s:rgb_number(a:g) + let l:z = s:rgb_number(a:b) + + if l:gx == l:gy && l:gy == l:gz + " There are two possibilities + let l:dgr = s:grey_level(l:gx) - a:r + let l:dgg = s:grey_level(l:gy) - a:g + let l:dgb = s:grey_level(l:gz) - a:b + let l:dgrey = (l:dgr * l:dgr) + (l:dgg * l:dgg) + (l:dgb * l:dgb) + let l:dr = s:rgb_level(l:gx) - a:r + let l:dg = s:rgb_level(l:gy) - a:g + let l:db = s:rgb_level(l:gz) - a:b + let l:drgb = (l:dr * l:dr) + (l:dg * l:dg) + (l:db * l:db) + if l:dgrey < l:drgb + " Use the grey + return s:grey_colour(l:gx) + else + " Use the colour + return s:rgb_colour(l:x, l:y, l:z) + endif + else + " Only one possibility + return s:rgb_colour(l:x, l:y, l:z) + endif +endfun + +function! coc#color#rgb2term(rgb) + let l:r = ("0x" . strpart(a:rgb, 0, 2)) + 0 + let l:g = ("0x" . strpart(a:rgb, 2, 2)) + 0 + let l:b = ("0x" . strpart(a:rgb, 4, 2)) + 0 + return s:colour(l:r, l:g, l:b) +endfun diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/compat.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/compat.vim new file mode 100644 index 0000000..27b6fe6 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/compat.vim @@ -0,0 +1,152 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') + +" first window id for bufnr +" builtin bufwinid returns window of current tab only +function! coc#compat#buf_win_id(bufnr) abort + let info = filter(getwininfo(), 'v:val["bufnr"] =='.a:bufnr) + if empty(info) + return -1 + endif + return info[0]['winid'] +endfunction + +function! coc#compat#win_is_valid(winid) abort + if exists('*nvim_win_is_valid') + return nvim_win_is_valid(a:winid) + endif + return !empty(getwininfo(a:winid)) +endfunction + +" clear matches by window id, not throw on none exists window. +" may not work on vim < 8.1.1084 & neovim < 0.4.0 +function! coc#compat#clear_matches(winid) abort + if !coc#compat#win_is_valid(a:winid) + return + endif + let curr = win_getid() + if curr == a:winid + call clearmatches() + return + endif + if s:is_vim + if has('patch-8.1.1084') + call clearmatches(a:winid) + endif + else + if exists('*nvim_set_current_win') + noa call nvim_set_current_win(a:winid) + call clearmatches() + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +function! coc#compat#matchaddpos(group, pos, priority, winid) abort + let curr = win_getid() + if curr == a:winid + call matchaddpos(a:group, a:pos, a:priority, -1) + else + if s:is_vim + if has('patch-8.1.0218') + call matchaddpos(a:group, a:pos, a:priority, -1, {'window': a:winid}) + endif + else + if has('nvim-0.4.0') + call matchaddpos(a:group, a:pos, a:priority, -1, {'window': a:winid}) + elseif exists('*nvim_set_current_win') + noa call nvim_set_current_win(a:winid) + call matchaddpos(a:group, a:pos, a:priority, -1) + noa call nvim_set_current_win(curr) + endif + endif + endif +endfunction + +function! coc#compat#buf_del_var(bufnr, name) abort + if !bufloaded(a:bufnr) + return + endif + if exists('*nvim_buf_del_var') + silent! call nvim_buf_del_var(a:bufnr, a:name) + else + if bufnr == bufnr('%') + execute 'unlet! b:'.a:name + elseif exists('*win_execute') + let winid = coc#compat#buf_win_id(a:bufnr) + if winid != -1 + call win_execute(winid, 'unlet! b:'.a:name) + endif + endif + endif +endfunction + +" hlGroup, pos, priority +function! coc#compat#matchaddgroups(winid, groups) abort + " add by winid + if s:is_vim && has('patch-8.1.0218') || has('nvim-0.4.0') + for group in a:groups + call matchaddpos(group['hlGroup'], [group['pos']], group['priority'], -1, {'window': a:winid}) + endfor + endif + let curr = win_getid() + if curr == a:winid + for group in a:groups + call matchaddpos(group['hlGroup'], [group['pos']], group['priority'], -1) + endfor + elseif exists('*nvim_set_current_win') + noa call nvim_set_current_win(a:winid) + for group in a:groups + call matchaddpos(group['hlGroup'], [group['pos']], group['priority'], -1) + endfor + noa call nvim_set_current_win(curr) + endif +endfunction + +" remove keymap for specific buffer +function! coc#compat#buf_del_keymap(bufnr, mode, lhs) abort + if !bufloaded(a:bufnr) + return + endif + if exists('*nvim_buf_del_keymap') + try + call nvim_buf_del_keymap(a:bufnr, a:mode, a:lhs) + catch /^Vim\%((\a\+)\)\=:E5555/ + " ignore keymap not exists. + endtry + return + endif + if bufnr == a:bufnr + execute 'silent! '.a:mode.'unmap '.a:lhs + return + endif + if exists('*win_execute') + let winid = coc#compat#buf_win_id(a:bufnr) + if winid != -1 + call win_execute(winid, 'silent! '.a:mode.'unmap '.a:lhs) + endif + endif +endfunction + +" execute command or list of commands in window +function! coc#compat#execute(winid, command) abort + if s:is_vim + if !exists('*win_execute') + throw 'win_execute function not exists, please upgrade your vim.' + endif + if type(a:command) == v:t_string + keepalt call win_execute(a:winid, a:command) + elseif type(a:command) == v:t_list + keepalt call win_execute(a:winid, join(a:command, "\n")) + endif + else + let curr = nvim_get_current_win() + noa keepalt call nvim_set_current_win(a:winid) + if type(a:command) == v:t_string + exec a:command + elseif type(a:command) == v:t_list + exec join(a:command, "\n") + endif + noa keepalt call nvim_set_current_win(curr) + endif +endfunc diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/float.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/float.vim new file mode 100644 index 0000000..3d3e4b4 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/float.vim @@ -0,0 +1,1733 @@ +scriptencoding utf-8 +" Related to float window create +let s:is_vim = !has('nvim') +let s:root = expand(':h:h:h') +let s:progresschars = get(g:, 'coc_progress_chars', ['░', '▇']) +let s:borderchars = get(g:, 'coc_borderchars', ['─', '│', '─', '│', '┌', '┐', '┘', '└']) +let s:borderjoinchars = get(g:, 'coc_border_joinchars', ['┬', '┤', '┴', '├']) +let s:prompt_win_width = get(g:, 'coc_prompt_win_width', 32) +let s:prompt_win_bufnr = 0 +let s:float_supported = exists('*nvim_open_win') || has('patch-8.1.1719') +let s:popup_list_api = exists('*popup_list') +" Popup ids, used when popup_list() not exists +let s:popup_list = [] +" winvar: border array of numbers, button boolean + +" Check visible float/popup exists. +function! coc#float#has_float(...) abort + return len(coc#float#get_float_win_list(get(a:, 1, 0))) > 0 +endfunction + +function! coc#float#close_all(...) abort + let winids = coc#float#get_float_win_list(get(a:, 1, 0)) + for id in winids + try + call coc#float#close(id) + catch /E5555:/ + " ignore + endtry + endfor +endfunction + +function! coc#float#jump() abort + if s:is_vim + return + endif + let winids = coc#float#get_float_win_list() + if !empty(winids) + call win_gotoid(winids[0]) + endif +endfunction + +" create or config float window, returns [winid, bufnr], config including: +" - relative: could be 'editor' 'cursor' +" - row: line count relative to editor/cursor, nagetive number means abover cursor. +" - col: column count relative to editor/cursor, nagetive number means left of cursor. +" - width: content width without border and title. +" - height: content height without border and title. +" - lines: (optional) lines to insert, default to v:null. +" - title: (optional) title. +" - border: (optional) border as number list, like [1, 1, 1 ,1]. +" - cursorline: (optional) enable cursorline when is 1. +" - autohide: (optional) window should be closed on CursorMoved when is 1. +" - highlight: (optional) highlight of window, default to 'CocFloating' +" - borderhighlight: (optional) should be array for border highlights, +" highlight all borders with first value. +" - close: (optional) show close button when is 1. +" - buttons: (optional) array of button text for create buttons at bottom. +function! coc#float#create_float_win(winid, bufnr, config) abort + let lines = get(a:config, 'lines', v:null) + let bufnr = coc#float#create_buf(a:bufnr, lines, 'hide') + " use exists + if a:winid && coc#float#valid(a:winid) + if s:is_vim + let [line, col] = s:popup_position(a:config) + let opts = { + \ 'firstline': 1, + \ 'line': line, + \ 'col': col, + \ 'minwidth': a:config['width'], + \ 'minheight': a:config['height'], + \ 'maxwidth': a:config['width'], + \ 'maxheight': a:config['height'], + \ 'cursorline': get(a:config, 'cursorline', 0), + \ 'title': get(a:config, 'title', ''), + \ } + if !s:empty_border(get(a:config, 'border', [])) + let opts['border'] = a:config['border'] + endif + call popup_setoptions(a:winid, opts) + call coc#float#vim_buttons(a:winid, a:config) + return [a:winid, winbufnr(a:winid)] + else + let config = s:convert_config_nvim(a:config) + call nvim_win_set_buf(a:winid, bufnr) + call nvim_win_set_config(a:winid, config) + call nvim_win_set_cursor(a:winid, [1, 0]) + call coc#float#nvim_create_related(a:winid, config, a:config) + return [a:winid, bufnr] + endif + endif + let winid = 0 + if s:is_vim + let [line, col] = s:popup_position(a:config) + let title = get(a:config, 'title', '') + let buttons = get(a:config, 'buttons', []) + let hlgroup = get(a:config, 'highlight', 'CocFloating') + let opts = { + \ 'title': title, + \ 'line': line, + \ 'col': col, + \ 'fixed': 1, + \ 'padding': empty(title) ? [0, 1, 0, 1] : [0, 0, 0, 0], + \ 'borderchars': s:borderchars, + \ 'highlight': hlgroup, + \ 'cursorline': get(a:config, 'cursorline', 0), + \ 'minwidth': a:config['width'], + \ 'minheight': a:config['height'], + \ 'maxwidth': a:config['width'], + \ 'maxheight': a:config['height'] + \ } + if get(a:config, 'close', 0) + let opts['close'] = 'button' + endif + if !empty(get(a:config, 'borderhighlight', [])) + let opts['borderhighlight'] = map(a:config['borderhighlight'], 'coc#highlight#compose_hlgroup(v:val,"'.hlgroup.'")') + endif + if !s:empty_border(get(a:config, 'border', [])) + let opts['border'] = a:config['border'] + endif + let winid = popup_create(bufnr, opts) + if !s:popup_list_api + call add(s:popup_list, winid) + endif + if winid == 0 + return [] + endif + call coc#float#vim_buttons(winid, a:config) + if has("patch-8.1.2281") + call setwinvar(winid, '&showbreak', 'NONE') + endif + else + let config = s:convert_config_nvim(a:config) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid == 0 + return [] + endif + let hlgroup = get(a:config, 'highlight', 'CocFloating') + call setwinvar(winid, '&winhl', 'Normal:'.hlgroup.',NormalNC:'.hlgroup.',FoldColumn:'.hlgroup) + call setwinvar(winid, '&signcolumn', 'no') + " cursorline highlight not work on old neovim + call setwinvar(winid, '&cursorline', 0) + call setwinvar(winid, 'border', get(a:config, 'border', [])) + " no left border + if s:empty_border(get(a:config, 'border', [])) || a:config['border'][3] == 0 + call setwinvar(winid, '&foldcolumn', 1) + else + call setwinvar(winid, '&foldcolumn', 0) + endif + call nvim_win_set_cursor(winid, [1, 0]) + call coc#float#nvim_create_related(winid, config, a:config) + endif + if get(a:config, 'autohide', 0) + call setwinvar(winid, 'autohide', 1) + endif + if s:is_vim || has('nvim-0.5.0') + call setwinvar(winid, '&scrolloff', 0) + endif + call setwinvar(winid, 'float', 1) + call setwinvar(winid, '&list', 0) + call setwinvar(winid, '&number', 0) + call setwinvar(winid, '&relativenumber', 0) + call setwinvar(winid, '&cursorcolumn', 0) + call setwinvar(winid, '&colorcolumn', 0) + call setwinvar(winid, '&wrap', 1) + call setwinvar(winid, '&linebreak', 1) + call setwinvar(winid, '&conceallevel', 0) + let g:coc_last_float_win = winid + call coc#util#do_autocmd('CocOpenFloat') + return [winid, bufnr] +endfunction + +function! coc#float#valid(winid) abort + if a:winid <= 0 + return 0 + endif + if has('nvim') + return nvim_win_is_valid(a:winid) ? 1 : 0 + endif + return s:popup_visible(a:winid) +endfunction + +function! coc#float#nvim_create_related(winid, config, opts) abort + let related = getwinvar(a:winid, 'related', []) + let exists = !empty(related) + let border = get(a:opts, 'border', []) + let highlights = get(a:opts, 'borderhighlight', []) + let hlgroup = get(a:opts, 'highlight', 'CocFloating') + let borderhighlight = type(highlights) == 1 ? highlights : get(highlights, 0, 'CocFloating') + let borderhighlight = coc#highlight#compose_hlgroup(borderhighlight, hlgroup) + let title = get(a:opts, 'title', '') + let buttons = get(a:opts, 'buttons', []) + let pad = empty(border) || get(border, 1, 0) == 0 + if get(a:opts, 'close', 0) + call coc#float#nvim_close_btn(a:config, a:winid, border, borderhighlight, related) + elseif exists + call coc#float#close_related(a:winid, 'close') + endif + if !empty(buttons) + call coc#float#nvim_buttons(a:config, a:winid, buttons, get(border, 2, 0), pad, hlgroup, borderhighlight, related) + elseif exists + call coc#float#close_related(a:winid, 'buttons') + endif + if !s:empty_border(border) + call coc#float#nvim_border_win(a:config, a:winid, border, title, !empty(buttons), borderhighlight, related) + elseif exists + call coc#float#close_related(a:winid, 'border') + endif + " Check right border + if pad + call coc#float#nvim_right_pad(a:config, a:winid, hlgroup, related) + elseif exists + call coc#float#close_related(a:winid, 'pad') + endif + call setwinvar(a:winid, 'related', filter(related, 'nvim_win_is_valid(v:val)')) +endfunction + +" border window for neovim, content config with border +function! coc#float#nvim_border_win(config, winid, border, title, hasbtn, hlgroup, related) abort + let winid = coc#float#get_related(a:winid, 'border') + let row = a:border[0] ? a:config['row'] - 1 : a:config['row'] + let col = a:border[3] ? a:config['col'] - 1 : a:config['col'] + let width = a:config['width'] + a:border[1] + a:border[3] + let height = a:config['height'] + a:border[0] + a:border[2] + (a:hasbtn ? 2 : 0) + let lines = coc#float#create_border_lines(a:border, a:title, a:config['width'], a:config['height'], a:hasbtn) + let bufnr = winid ? winbufnr(winid) : 0 + let bufnr = coc#float#create_buf(bufnr, lines) + let opt = { + \ 'relative': a:config['relative'], + \ 'width': width, + \ 'height': height, + \ 'row': row, + \ 'col': col, + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if winid + call nvim_win_set_config(winid, opt) + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup.',NormalNC:'.a:hlgroup) + else + noa let winid = nvim_open_win(bufnr, 0, opt) + if winid + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup.',NormalNC:'.a:hlgroup) + call setwinvar(winid, 'target_winid', a:winid) + call setwinvar(winid, 'kind', 'border') + call add(a:related, winid) + endif + endif +endfunction + +" neovim only +function! coc#float#nvim_close_btn(config, winid, border, hlgroup, related) abort + let winid = coc#float#get_related(a:winid, 'close') + let config = { + \ 'relative': a:config['relative'], + \ 'width': 1, + \ 'height': 1, + \ 'row': get(a:border, 0, 0) ? a:config['row'] - 1 : a:config['row'], + \ 'col': a:config['col'] + a:config['width'], + \ 'focusable': v:true, + \ 'style': 'minimal', + \ } + if winid + call nvim_win_set_config(winid, config) + else + let bufnr = coc#float#create_buf(0, ['X']) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup.',NormalNC:'.a:hlgroup) + call setwinvar(winid, 'target_winid', a:winid) + call setwinvar(winid, 'kind', 'close') + call add(a:related, winid) + endif + call s:nvim_create_keymap(winid) + endif +endfunction + +" Create padding window by config of current window & border config +function! coc#float#nvim_right_pad(config, winid, hlgroup, related) abort + let winid = coc#float#get_related(a:winid, 'pad') + let config = { + \ 'relative': a:config['relative'], + \ 'width': 1, + \ 'height': a:config['height'], + \ 'row': a:config['row'], + \ 'col': a:config['col'] + a:config['width'], + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if winid + noa call nvim_win_close(winid, 1) + endif + let bufnr = coc#float#create_buf(0, repeat([''], a:config['height'])) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid + " neovim'bug: the content shown in window could be wired. + call setwinvar(winid, '&foldcolumn', 1) + call setwinvar(winid, '&winhl', 'FoldColumn:'.a:hlgroup) + call setwinvar(winid, 'target_winid', a:winid) + call setwinvar(winid, 'kind', 'pad') + call add(a:related, winid) + endif +endfunction + +" draw buttons window for window with config +function! coc#float#nvim_buttons(config, winid, buttons, borderbottom, pad, hlgroup, borderhighlight, related) abort + let winid = coc#float#get_related(a:winid, 'buttons') + let width = a:config['width'] + (a:pad ? 1 : 0) + let config = { + \ 'row': a:config['row'] + a:config['height'], + \ 'col': a:config['col'], + \ 'width': width, + \ 'height': 2 + (a:borderbottom ? 1 : 0), + \ 'relative': a:config['relative'], + \ 'focusable': 1, + \ 'style': 'minimal', + \ } + if winid + let bufnr = winbufnr(winid) + call s:create_btns_buffer(bufnr, width, a:buttons, a:borderbottom) + call nvim_win_set_config(winid, config) + else + let bufnr = s:create_btns_buffer(0, width, a:buttons, a:borderbottom) + noa let winid = nvim_open_win(bufnr, 0, config) + if winid + call setwinvar(winid, '&winhl', 'Normal:'.a:hlgroup.',NormalNC:'.a:hlgroup) + call setwinvar(winid, 'target_winid', a:winid) + call setwinvar(winid, 'kind', 'buttons') + call add(a:related, winid) + call s:nvim_create_keymap(winid) + endif + endif + if bufnr && a:hlgroup != a:borderhighlight + call nvim_buf_clear_namespace(bufnr, -1, 0, -1) + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 0, 0, -1) + if a:borderbottom + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 2, 0, -1) + endif + let vcols = getbufvar(bufnr, 'vcols', []) + " TODO need change vol to col + for col in vcols + call nvim_buf_add_highlight(bufnr, 1, a:borderhighlight, 1, col, col + 3) + endfor + endif +endfunction + +" Create or refresh scrollbar for winid +" Need called on create, config, buffer change, scrolled +function! coc#float#nvim_scrollbar(winid) abort + if !has('nvim-0.4.0') || !coc#float#valid(a:winid) || getwinvar(a:winid, 'target_winid', 0) + return + endif + let config = nvim_win_get_config(a:winid) + let [row, column] = nvim_win_get_position(a:winid) + let relative = 'editor' + if row == 0 && column == 0 + " fix bad value when ext_multigrid is enabled. https://github.com/neovim/neovim/issues/11935 + let [row, column] = [config.row, config.col] + let relative = config.relative + endif + let width = nvim_win_get_width(a:winid) + let height = nvim_win_get_height(a:winid) + let bufnr = winbufnr(a:winid) + let cw = getwinvar(a:winid, '&foldcolumn', 0) ? width - 1 : width + let ch = coc#float#content_height(bufnr, cw, getwinvar(a:winid, '&wrap')) + let closewin = coc#float#get_related(a:winid, 'close') + let border = getwinvar(a:winid, 'border', []) + let move_down = closewin && !get(border, 0, 0) + if move_down + let height = height - 1 + endif + let id = coc#float#get_related(a:winid, 'scrollbar') + if ch <= height || height <= 0 + " no scrollbar, remove exists + if id + call s:close_win(id) + endif + return + endif + call coc#float#close_related(a:winid, 'pad') + let sbuf = id ? winbufnr(id) : 0 + let sbuf = coc#float#create_buf(sbuf, repeat([' '], height)) + let opts = { + \ 'row': move_down ? row + 1 : row, + \ 'col': column + width, + \ 'relative': relative, + \ 'width': 1, + \ 'height': height, + \ 'focusable': v:false, + \ 'style': 'minimal', + \ } + if id + call nvim_win_set_config(id, opts) + else + noa let id = nvim_open_win(sbuf, 0 , opts) + if id == 0 + return + endif + call setwinvar(id, 'kind', 'scrollbar') + call setwinvar(id, 'target_winid', a:winid) + endif + let thumb_height = max([1, float2nr(floor(height * (height + 0.0)/ch))]) + let wininfo = getwininfo(a:winid)[0] + let start = 0 + if wininfo['topline'] != 1 + " needed for correct getwininfo + let firstline = wininfo['topline'] + let lastline = s:nvim_get_botline(firstline, height, cw, bufnr) + let linecount = nvim_buf_line_count(winbufnr(a:winid)) + if lastline >= linecount + let start = height - thumb_height + else + let start = max([1, float2nr(round((height - thumb_height + 0.0)*(firstline - 1.0)/(ch - height)))]) + endif + endif + " add highlights + call nvim_buf_clear_namespace(sbuf, -1, 0, -1) + for idx in range(0, height - 1) + if idx >= start && idx < start + thumb_height + call nvim_buf_add_highlight(sbuf, -1, 'PmenuThumb', idx, 0, 1) + else + call nvim_buf_add_highlight(sbuf, -1, 'PmenuSbar', idx, 0, 1) + endif + endfor + call s:add_related(id, a:winid) +endfunction + +function! coc#float#create_border_lines(border, title, width, height, hasbtn) abort + let list = [] + if a:border[0] + let top = (a:border[3] ? s:borderchars[4]: '') + \.repeat(s:borderchars[0], a:width) + \.(a:border[1] ? s:borderchars[5] : '') + if !empty(a:title) + let top = coc#helper#str_compose(top, 1, a:title.' ') + endif + call add(list, top) + endif + let mid = (a:border[3] ? s:borderchars[3]: '') + \.repeat(' ', a:width) + \.(a:border[1] ? s:borderchars[1] : '') + call extend(list, repeat([mid], a:height + (a:hasbtn ? 2 : 0))) + if a:hasbtn + let list[len(list) - 2] = (a:border[3] ? s:borderjoinchars[3]: '') + \.repeat(' ', a:width) + \.(a:border[1] ? s:borderjoinchars[1] : '') + endif + if a:border[2] + let bot = (a:border[3] ? s:borderchars[7]: '') + \.repeat(s:borderchars[2], a:width) + \.(a:border[1] ? s:borderchars[6] : '') + call add(list, bot) + endif + return list +endfunction + +" Get config, convert lines, create window, add highlights +function! coc#float#create_cursor_float(winid, bufnr, lines, config) abort + if !s:float_supported + return v:null + endif + if s:is_blocking() + return v:null + endif + let pumAlignTop = get(a:config, 'pumAlignTop', 0) + let modes = get(a:config, 'modes', ['n', 'i', 'ic', 's']) + let mode = mode() + let currbuf = bufnr('%') + let pos = [line('.'), col('.')] + if index(modes, mode) == -1 + return v:null + endif + if has('nvim') && mode ==# 'i' + " helps to fix undo issue, don't know why. + call feedkeys("\u", 'n') + endif + let dimension = coc#float#get_config_cursor(a:lines, a:config) + if empty(dimension) + return v:null + endif + if pumvisible() && ((pumAlignTop && dimension['row'] <0)|| (!pumAlignTop && dimension['row'] > 0)) + return v:null + endif + let width = dimension['width'] + let lines = map(a:lines, {_, s -> s =~# '^—' ? repeat('—', width) : s}) + let config = extend(extend({'lines': lines, 'relative': 'cursor'}, a:config), dimension) + call coc#float#close_auto_hide_wins(a:winid) + let res = coc#float#create_float_win(a:winid, a:bufnr, config) + if empty(res) + return v:null + endif + let alignTop = dimension['row'] < 0 + let winid = res[0] + let bufnr = res[1] + call coc#highlight#add_highlights(winid, get(a:config, 'codes', []), get(a:config, 'highlights', [])) + redraw + if has('nvim') + call coc#float#nvim_scrollbar(winid) + endif + return [currbuf, pos, winid, bufnr, alignTop] +endfunction + +" Create float window for input +function! coc#float#create_prompt_win(title, default, opts) abort + call coc#float#close_auto_hide_wins() + " Calculate col + let curr = win_screenpos(winnr())[1] + wincol() - 2 + let width = coc#helper#min(max([strdisplaywidth(a:default) + 2, s:prompt_win_width]), &columns - 2) + if width == &columns - 2 + let col = 0 - curr + else + let col = curr + width <= &columns - 2 ? 0 : &columns - s:prompt_win_width + endif + let [lineIdx, colIdx] = coc#util#cursor_pos() + let bufnr = 0 + if has('nvim') + let bufnr = s:prompt_win_bufnr + else + execute 'hi link CocPopupTerminal '.get(a:opts, 'highlight', 'CocFloating') + let node = expand(get(g:, 'coc_node_path', 'node')) + let bufnr = term_start([node, s:root . '/bin/prompt.js', a:default], { + \ 'term_highlight': 'CocPopupTerminal', + \ 'hidden': 1, + \ 'term_finish': 'close' + \ }) + call term_setapi(bufnr, "Coc") + endif + let res = coc#float#create_float_win(0, bufnr, { + \ 'relative': 'cursor', + \ 'row': lineIdx == 0 ? 1 : 0, + \ 'col': colIdx == 0 ? 0 : col - 1, + \ 'width': width, + \ 'height': 1, + \ 'style': 'minimal', + \ 'border': [1,1,1,1], + \ 'prompt': 1, + \ 'title': a:title, + \ 'lines': [a:default], + \ 'highlight': get(a:opts, 'highlight', 'CocFloating'), + \ 'borderhighlight': [get(a:opts, 'borderhighlight', 'CocFloating')], + \ }) + if empty(res) || res[0] == 0 + return + endif + let winid = res[0] + let bufnr = res[1] + if has('nvim') + let s:prompt_win_bufnr = res[1] + execute 'sign unplace 6 buffer='.s:prompt_win_bufnr + call nvim_set_current_win(winid) + inoremap + inoremap pumvisible() ? "\" : "\" + exe 'inoremap =coc#float#close_i('.winid.')' + exe 'nnoremap :call coc#float#close('.winid.')' + exe 'inoremap "\=coc#float#prompt_insert(getline(''.''))\\"' + call feedkeys('A', 'in') + else + call setbufvar(bufnr, '&termwinkey', '') + endif + return [bufnr, winid] +endfunction + +function! coc#float#close_i(winid) abort + call coc#float#close(a:winid) + return '' +endfunction + +function! coc#float#prompt_insert(text) abort + call coc#rpc#notify('PromptInsert', [a:text]) + return '' +endfunction + +" Close float window by id +function! coc#float#close(winid) abort + call coc#float#close_related(a:winid) + call s:close_win(a:winid) + return 1 +endfunction + +" Float window id on current tab. +" return 0 if not found, used by test only +function! coc#float#get_float_win() abort + if has('nvim') + for i in range(1, winnr('$')) + let id = win_getid(i) + let config = nvim_win_get_config(id) + if (!empty(config) && config['focusable'] == v:true && !empty(config['relative'])) + if !getwinvar(id, 'button', 0) + return id + endif + endif + endfor + else + let ids = s:popup_list_api ? popup_list() : s:popup_list + return get(filter(ids, 's:popup_visible(v:val)'), 0, 0) + endif + return 0 +endfunction + +function! coc#float#get_float_win_list(...) abort + let res = [] + let all = get(a:, 1, 0) + if s:is_vim + if s:popup_list_api + return filter(popup_list(), 'popup_getpos(v:val)["visible"]'.(all ? '' : '&& getwinvar(v:val, "float", 0)')) + endif + return filter(s:popup_list, 's:popup_visible(v:val)') + elseif has('nvim') && exists('*nvim_win_get_config') + let res = [] + for i in range(1, winnr('$')) + let id = win_getid(i) + let config = nvim_win_get_config(id) + if empty(config) || empty(config['relative']) + continue + endif + " ignore border & button window & others + if !all && !getwinvar(id, 'float', 0) + continue + endif + call add(res, id) + endfor + return res + endif + return [] +endfunction + +" Check if a float window is scrollable +function! coc#float#scrollable(winid) abort + let bufnr = winbufnr(a:winid) + if bufnr == -1 + return 0 + endif + if s:is_vim + let pos = popup_getpos(a:winid) + if get(popup_getoptions(a:winid), 'scrollbar', 0) + return get(pos, 'scrollbar', 0) + endif + let ch = coc#float#content_height(bufnr, pos['core_width'], getwinvar(a:winid, '&wrap')) + return ch > pos['core_height'] + else + let height = nvim_win_get_height(a:winid) + let width = nvim_win_get_width(a:winid) + if width > 1 && getwinvar(a:winid, '&foldcolumn', 0) + " since we use foldcolumn for left pading + let width = width - 1 + endif + let ch = coc#float#content_height(bufnr, width, getwinvar(a:winid, '&wrap')) + return ch > height + endif +endfunction + +function! coc#float#has_scroll() abort + let win_ids = filter(coc#float#get_float_win_list(), 'coc#float#scrollable(v:val)') + return !empty(win_ids) +endfunction + +function! coc#float#scroll(forward, ...) + if !has('nvim-0.4.0') && !has('patch-8.2.0750') + throw 'coc#float#scroll() requires nvim >= 0.4.0 or vim >= 8.2.0750' + endif + let amount = get(a:, 1, 0) + let winids = filter(coc#float#get_float_win_list(), 'coc#float#scrollable(v:val)') + if empty(winids) + return '' + endif + for winid in winids + if s:is_vim + call coc#float#scroll_win(winid, a:forward, amount) + else + call timer_start(0, { -> coc#float#scroll_win(winid, a:forward, amount)}) + endif + endfor + return mode() =~ '^i' || mode() ==# 'v' ? "" : "\" +endfunction + +function! coc#float#scroll_win(winid, forward, amount) abort + let opts = s:get_options(a:winid) + let lines = getbufline(winbufnr(a:winid), 1, '$') + let maxfirst = s:max_firstline(lines, opts['height'], opts['width']) + let topline = opts['topline'] + let height = opts['height'] + let width = opts['width'] + let scrolloff = getwinvar(a:winid, '&scrolloff', 0) + if a:forward && topline >= maxfirst + return + endif + if !a:forward && topline == 1 + return + endif + if a:amount == 0 + let topline = s:get_topline(opts['topline'], lines, a:forward, height, width) + else + let topline = topline + (a:forward ? a:amount : - a:amount) + endif + let topline = a:forward ? min([maxfirst, topline]) : max([1, topline]) + let lnum = s:get_cursorline(topline, lines, scrolloff, width, height) + call s:win_setview(a:winid, topline, lnum) + let top = s:get_options(a:winid)['topline'] + " not changed + if top == opts['topline'] + if a:forward + call s:win_setview(a:winid, topline + 1, lnum + 1) + else + call s:win_setview(a:winid, topline - 1, lnum - 1) + endif + endif +endfunction + +function! s:popup_visible(id) abort + let pos = popup_getpos(a:id) + if !empty(pos) && get(pos, 'visible', 0) + return 1 + endif + return 0 +endfunction + +function! s:convert_config_nvim(config) abort + let valids = ['relative', 'win', 'anchor', 'width', 'height', 'bufpos', 'col', 'row', 'focusable', 'style'] + let result = coc#helper#dict_pick(a:config, valids) + let border = get(a:config, 'border', []) + if !s:empty_border(border) + if result['relative'] ==# 'cursor' && result['row'] < 0 + " move top when has bottom border + if get(border, 2, 0) + let result['row'] = result['row'] - 1 + endif + else + " move down when has top border + if get(border, 0, 0) && !get(a:config, 'prompt', 0) + let result['row'] = result['row'] + 1 + endif + endif + " move right when has left border + if get(border, 3, 0) + let result['col'] = result['col'] + 1 + endif + let result['width'] = float2nr(result['width'] + 1 - get(border,3, 0)) + else + let result['width'] = float2nr(result['width'] + 1) + endif + let result['height'] = float2nr(result['height']) + return result +endfunction + +" Close windows that could auto hide +function! coc#float#close_auto_hide_wins(...) abort + let winids = coc#float#get_float_win_list() + let except = get(a:, 1, 0) + for id in winids + if except && id == except + continue + endif + if getwinvar(id, 'autohide', 0) + call coc#float#close(id) + endif + endfor +endfunction + +function! coc#float#content_height(bufnr, width, wrap) abort + if !bufloaded(a:bufnr) + return 0 + endif + if !a:wrap + return has('nvim') ? nvim_buf_line_count(a:bufnr) : len(getbufline(a:bufnr, 1, '$')) + endif + let lines = has('nvim') ? nvim_buf_get_lines(a:bufnr, 0, -1, 0) : getbufline(a:bufnr, 1, '$') + let total = 0 + for line in lines + let dw = max([1, strdisplaywidth(line)]) + let total += float2nr(ceil(str2float(string(dw))/a:width)) + endfor + return total +endfunction + +function! coc#float#nvim_refresh_scrollbar(winid) abort + let id = coc#float#get_related(a:winid, 'scrollbar') + if id && nvim_win_is_valid(id) + call coc#float#nvim_scrollbar(a:winid) + endif +endfunction + +" Close related windows, or specific kind +function! coc#float#close_related(winid, ...) abort + let timer = getwinvar(a:winid, 'timer', 0) + if timer + call timer_stop(timer) + endif + let kind = get(a:, 1, '') + let winids = filter(coc#float#get_float_win_list(1), 'getwinvar(v:val, "target_winid", 0) == '.a:winid) + for id in winids + if s:is_vim + " vim doesn't throw + call popup_close(id) + elseif nvim_win_is_valid(id) + if empty(kind) || getwinvar(id, 'kind', '') ==# kind + noa call nvim_win_close(id, 1) + endif + endif + endfor +endfunction + +" Close related windows if target window is not visible. +function! coc#float#check_related() abort + let invalids = [] + let ids = coc#float#get_float_win_list(1) + for id in ids + let target = getwinvar(id, 'target_winid', 0) + if (target && index(ids, target) == -1) || getwinvar(id, 'kind', '') == 'pum' + call add(invalids, id) + endif + endfor + if !s:popup_list_api + let s:popup_list = filter(ids, "index(invalids, v:val) == -1") + endif + for id in invalids + call coc#float#close(id) + endfor +endfunction + +" Dimension of window with lines relative to cursor +" Width & height excludes border & padding +function! coc#float#get_config_cursor(lines, config) abort + let preferTop = get(a:config, 'preferTop', 0) + let title = get(a:config, 'title', '') + let border = get(a:config, 'border', [0, 0, 0, 0]) + if s:empty_border(border) && len(title) + let border = [1, 1, 1, 1] + endif + let bh = get(border, 0, 0) + get(border, 2, 0) + let vh = &lines - &cmdheight - 1 + if vh <= 0 + return v:null + endif + let maxWidth = coc#helper#min(get(a:config, 'maxWidth', &columns - 1), &columns - 1) + if maxWidth < 3 + return v:null + endif + let maxHeight = coc#helper#min(get(a:config, 'maxHeight', vh), vh) + let ch = 0 + let width = coc#helper#min(40, strdisplaywidth(title)) + 3 + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + let width = max([width, dw + 2]) + let ch += float2nr(ceil(str2float(string(dw))/(maxWidth - 2))) + endfor + let width = coc#helper#min(maxWidth, width) + let [lineIdx, colIdx] = coc#util#cursor_pos() + " How much we should move left + let offsetX = coc#helper#min(get(a:config, 'offsetX', 0), colIdx) + let showTop = 0 + let hb = vh - lineIdx -1 + if lineIdx > bh + 2 && (preferTop || (lineIdx > hb && hb < ch + bh)) + let showTop = 1 + endif + let height = coc#helper#min(maxHeight, ch + bh, showTop ? lineIdx - 1 : hb) + if height <= bh + return v:null + endif + let col = - max([offsetX, colIdx - (&columns - 1 - width)]) + let row = showTop ? - height + bh : 1 + return { + \ 'row': row, + \ 'col': col, + \ 'width': width - 2, + \ 'height': height - bh + \ } +endfunction + +function! coc#float#create_pum_float(winid, bufnr, lines, config) abort + if !pumvisible() || !s:float_supported + return v:null + endif + let pumbounding = a:config['pumbounding'] + let pw = pumbounding['width'] + get(pumbounding, 'scrollbar', 0) + let rp = &columns - pumbounding['col'] - pw + let showRight = pumbounding['col'] > rp ? 0 : 1 + let maxWidth = showRight ? coc#helper#min(rp - 1, a:config['maxWidth']) : coc#helper#min(pumbounding['col'] - 1, a:config['maxWidth']) + let maxHeight = &lines - pumbounding['row'] - &cmdheight - 1 + if maxWidth <= 2 || maxHeight < 1 + return v:null + endif + let ch = 0 + let width = 0 + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + let width = max([width, dw + 2]) + let ch += float2nr(ceil(str2float(string(dw))/(maxWidth - 2))) + endfor + let width = float2nr(coc#helper#min(maxWidth, width)) + let height = float2nr(coc#helper#min(maxHeight, ch)) + let lines = map(a:lines, {_, s -> s =~# '^—' ? repeat('—', width - 2 + (s:is_vim && ch > height ? -1 : 0)) : s}) + let opts = { + \ 'lines': lines, + \ 'relative': 'editor', + \ 'col': showRight ? pumbounding['col'] + pw : pumbounding['col'] - width - 1, + \ 'row': pumbounding['row'], + \ 'height': height, + \ 'width': width - 2 + (s:is_vim && ch > height ? -1 : 0), + \ } + call coc#float#close_auto_hide_wins(a:winid) + let res = coc#float#create_float_win(a:winid, a:bufnr, opts) + if empty(res) + return v:null + endif + call coc#highlight#add_highlights(res[0], a:config['codes'], a:config['highlights']) + call setwinvar(res[0], 'kind', 'pum') + redraw + if has('nvim') + call coc#float#nvim_scrollbar(res[0]) + endif + return res +endfunction + +function! s:empty_border(border) abort + if empty(a:border) + return 1 + endif + if a:border[0] == 0 && a:border[1] == 0 && a:border[2] == 0 && a:border[3] == 0 + return 1 + endif + return 0 +endfunction + +" Show float window/popup for user confirm. +function! coc#float#prompt_confirm(title, cb) abort + if s:is_vim && exists('*popup_dialog') + try + call popup_dialog(a:title. ' (y/n)?', { + \ 'highlight': 'Normal', + \ 'filter': 'popup_filter_yesno', + \ 'callback': {id, res -> a:cb(v:null, res)}, + \ 'borderchars': s:borderchars, + \ 'borderhighlight': ['MoreMsg'] + \ }) + catch /.*/ + call a:cb(v:exception) + endtry + return + endif + if has('nvim-0.4.0') + let text = ' '. a:title . ' (y/n)? ' + let maxWidth = coc#helper#min(78, &columns - 2) + let width = coc#helper#min(maxWidth, strdisplaywidth(text)) + let maxHeight = &lines - &cmdheight - 1 + let height = coc#helper#min(maxHeight, float2nr(ceil(str2float(string(strdisplaywidth(text)))/width))) + call coc#float#close_auto_hide_wins() + let arr = coc#float#create_float_win(0, s:prompt_win_bufnr, { + \ 'col': &columns/2 - width/2 - 1, + \ 'row': maxHeight/2 - height/2 - 1, + \ 'width': width, + \ 'height': height, + \ 'border': [1,1,1,1], + \ 'focusable': v:false, + \ 'relative': 'editor', + \ 'highlight': 'Normal', + \ 'borderhighlight': ['MoreMsg'], + \ 'style': 'minimal', + \ 'lines': [text], + \ }) + if empty(arr) + call a:cb('Window create failed!') + return + endif + let winid = arr[0] + let s:prompt_win_bufnr = arr[1] + let res = 0 + redraw + " same result as vim + while 1 + let key = nr2char(getchar()) + if key == "\" + let res = -1 + break + elseif key == "\" || key == 'n' || key == 'N' + let res = 0 + break + elseif key == 'y' || key == 'Y' + let res = 1 + break + endif + endw + call coc#float#close(winid) + call a:cb(v:null, res) + " use relative editor since neovim doesn't support center position + elseif exists('*confirm') + let choice = confirm(a:title, "&Yes\n&No") + call a:cb(v:null, choice == 1) + else + echohl MoreMsg + echom a:title.' (y/n)' + echohl None + let confirm = nr2char(getchar()) + redraw! + if !(confirm ==? "y" || confirm ==? "\r") + echohl Moremsg | echo 'Cancelled.' | echohl None + return 0 + call a:cb(v:null, 0) + end + call a:cb(v:null, 1) + endif +endfunction + +" Create buttons popup on vim +function! coc#float#vim_buttons(winid, config) abort + if !has('patch-8.2.0750') + return + endif + let related = getwinvar(a:winid, 'related', []) + let winid = coc#float#get_related(a:winid, 'buttons') + let btns = get(a:config, 'buttons', []) + if empty(btns) + if winid + call s:close_win(winid) + " fix padding + let opts = popup_getoptions(a:winid) + let padding = get(opts, 'padding', v:null) + if !empty(padding) + let padding[2] = padding[2] - 2 + endif + call popup_setoptions(a:winid, {'padding': padding}) + endif + return + endif + let border = get(a:config, 'border', v:null) + if !winid + " adjusting popup padding + let opts = popup_getoptions(a:winid) + let padding = get(opts, 'padding', v:null) + if type(padding) == 7 + let padding = [0, 0, 2, 0] + elseif len(padding) == 0 + let padding = [1, 1, 3, 1] + else + let padding[2] = padding[2] + 2 + endif + call popup_setoptions(a:winid, {'padding': padding}) + endif + let borderhighlight = get(get(a:config, 'borderhighlight', []), 0, '') + let pos = popup_getpos(a:winid) + let bw = empty(border) ? 0 : get(border, 1, 0) + get(border, 3, 0) + let borderbottom = empty(border) ? 0 : get(border, 2, 0) + let borderleft = empty(border) ? 0 : get(border, 3, 0) + let width = pos['width'] - bw + get(pos, 'scrollbar', 0) + let bufnr = s:create_btns_buffer(winid ? winbufnr(winid): 0,width, btns, borderbottom) + let height = 2 + (borderbottom ? 1 : 0) + let keys = s:gen_filter_keys(getbufline(bufnr, 2)[0]) + let options = { + \ 'filter': {id, key -> coc#float#vim_filter(id, key, keys[1])}, + \ 'highlight': get(opts, 'highlight', 'CocFloating') + \ } + let config = { + \ 'line': pos['line'] + pos['height'] - height, + \ 'col': pos['col'] + borderleft, + \ 'minwidth': width, + \ 'minheight': height, + \ 'maxwidth': width, + \ 'maxheight': height, + \ } + if winid != 0 + call popup_move(winid, config) + call popup_setoptions(winid, options) + call win_execute(winid, 'call clearmatches()') + else + let options = extend({ + \ 'filtermode': 'nvi', + \ 'padding': [0, 0, 0, 0], + \ 'fixed': 1, + \ 'zindex': 99, + \ }, options) + call extend(options, config) + let winid = popup_create(bufnr, options) + if !s:popup_list_api + call add(s:popup_list, winid) + endif + endif + if winid != 0 + if !empty(borderhighlight) + call coc#highlight#add_highlight(bufnr, -1, borderhighlight, 0, 0, -1) + call coc#highlight#add_highlight(bufnr, -1, borderhighlight, 2, 0, -1) + call win_execute(winid, 'call matchadd("'.borderhighlight.'", "'.s:borderchars[1].'")') + endif + call setwinvar(winid, 'kind', 'buttons') + call setwinvar(winid, 'target_winid', a:winid) + call add(related, winid) + call setwinvar(a:winid, 'related', related) + call matchaddpos('MoreMsg', map(keys[0], "[2,v:val]"), 99, -1, {'window': winid}) + endif +endfunction + +function! coc#float#nvim_float_click() abort + let kind = getwinvar(win_getid(), 'kind', '') + if kind == 'buttons' + if line('.') != 2 + return + endif + let vw = strdisplaywidth(strpart(getline('.'), 0, col('.') - 1)) + let vcols = getbufvar(bufnr('%'), 'vcols', []) + if index(vcols, vw) >= 0 + return + endif + let idx = 0 + if !empty(vcols) + let filtered = filter(vcols, 'v:val < vw') + let idx = idx + len(filtered) + endif + let winid = win_getid() + let target = getwinvar(winid, 'target_winid', 0) + if target + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), idx]) + call coc#float#close(target) + endif + elseif kind == 'close' + let target = getwinvar(win_getid(), 'target_winid', 0) + call coc#float#close(target) + endif +endfunction + +" Add mapping if necessary +function! coc#float#nvim_win_enter(winid) abort + let kind = getwinvar(a:winid, 'kind', '') + if kind == 'buttons' || kind == 'close' + if empty(maparg('', 'n')) + nnoremap :call coc#float#nvim_float_click() + endif + endif +endfunction + +function! coc#float#vim_filter(winid, key, keys) abort + let key = tolower(a:key) + let idx = index(a:keys, key) + let target = getwinvar(a:winid, 'target_winid', 0) + if target && idx >= 0 + call coc#rpc#notify('FloatBtnClick', [winbufnr(target), idx]) + call coc#float#close(target) + return 1 + endif + return 0 +endfunction + +" Create dialog at center +function! coc#float#create_dialog(lines, config) abort + " dialog always have borders + let title = get(a:config, 'title', '') + let buttons = get(a:config, 'buttons', []) + let highlight = get(a:config, 'highlight', 'CocFloating') + let borderhighlight = get(a:config, 'borderhighlight', [highlight]) + let maxheight = coc#helper#min(get(a:config, 'maxHeight', 78), &lines - &cmdheight - 6) + let maxwidth = coc#helper#min(get(a:config, 'maxWidth', 78), &columns - 2) + let close = get(a:config, 'close', 1) + let minwidth = s:min_btns_width(buttons) + if maxheight <= 0 || maxwidth <= 0 || minwidth > maxwidth + throw 'Not enough spaces for dialog' + endif + let ch = 0 + let width = coc#helper#min(strdisplaywidth(title) + 1, maxwidth) + for line in a:lines + let dw = max([1, strdisplaywidth(line)]) + if dw < maxwidth && dw > width + let width = dw + elseif dw > maxwidth + let width = maxwidth + endif + let ch += float2nr(ceil(str2float(string(dw))/maxwidth)) + endfor + let width = max([minwidth, width]) + let height = coc#helper#min(ch ,maxheight) + let opts = { + \ 'relative': 'editor', + \ 'col': &columns/2 - (width + 2)/2, + \ 'row': &lines/2 - (height + 4)/2, + \ 'width': width, + \ 'height': height, + \ 'border': [1,1,1,1], + \ 'title': title, + \ 'close': close, + \ 'highlight': highlight, + \ 'buttons': buttons, + \ 'borderhighlight': borderhighlight, + \ } + if get(a:config, 'cursorline', 0) + let opts['cursorline'] = 1 + endif + let bufnr = coc#float#create_buf(0, a:lines) + call coc#float#close_auto_hide_wins() + let res = coc#float#create_float_win(0, bufnr, opts) + if empty(res) + return + endif + if has('nvim') + if get(a:config, 'cursorline', 0) + execute 'sign place 6 line=1 name=CocCurrentLine buffer='.bufnr + endif + redraw + call coc#float#nvim_scrollbar(res[0]) + endif + return res +endfunction + +function! coc#float#get_related(winid, kind) abort + for winid in getwinvar(a:winid, 'related', []) + if getwinvar(winid, 'kind', '') ==# a:kind + return winid + endif + endfor + return 0 +endfunction + +" Create temporarily buffer with optional lines and &bufhidden +function! coc#float#create_buf(bufnr, ...) abort + if a:bufnr > 0 && bufloaded(a:bufnr) + let bufnr = a:bufnr + else + if s:is_vim + noa let bufnr = bufadd('') + noa call bufload(bufnr) + call setbufvar(bufnr, '&buflisted', 0) + else + noa let bufnr = nvim_create_buf(v:false, v:true) + endif + let bufhidden = get(a:, 2, 'wipe') + call setbufvar(bufnr, '&buftype', 'nofile') + call setbufvar(bufnr, '&bufhidden', bufhidden) + call setbufvar(bufnr, '&swapfile', 0) + call setbufvar(bufnr, '&undolevels', -1) + " neovim's bug + call setbufvar(bufnr, '&modifiable', 1) + endif + let lines = get(a:, 1, v:null) + if type(lines) != 7 + if has('nvim') + call nvim_buf_set_lines(bufnr, 0, -1, v:false, lines) + else + silent call deletebufline(bufnr, 1, '$') + silent call setbufline(bufnr, 1, lines) + endif + endif + return bufnr +endfunction + +function! coc#float#create_menu(lines, config) abort + let highlight = get(a:config, 'highlight', 'CocFloating') + let borderhighlight = get(a:config, 'borderhighlight', [highlight]) + let opts = { + \ 'lines': a:lines, + \ 'highlight': highlight, + \ 'title': get(a:config, 'title', ''), + \ 'borderhighlight': borderhighlight, + \ 'maxWidth': get(a:config, 'maxWidth', 80), + \ 'maxHeight': get(a:config, 'maxHeight', 80), + \ 'border': [1, 1, 1, 1], + \ 'relative': 'cursor', + \ } + if s:is_vim + let opts['cursorline'] = 1 + endif + let dimension = coc#float#get_config_cursor(a:lines, opts) + call extend(opts, dimension) + call coc#float#close_auto_hide_wins() + let res = coc#float#create_float_win(0, s:prompt_win_bufnr, opts) + if empty(res) + return + endif + let s:prompt_win_bufnr = res[1] + redraw + if has('nvim') + call coc#float#nvim_scrollbar(res[0]) + execute 'sign unplace 6 buffer='.s:prompt_win_bufnr + execute 'sign place 6 line=1 name=CocCurrentLine buffer='.s:prompt_win_bufnr + endif + return res +endfunction + +" Notification always have border +" config including: +" - title: optional title. +" - close: default to 1 +" - borderhighlight: highlight group string +" - timeout: timeout in miniseconds +" - buttons: array of button text for create buttons at bottom. +" - top: default to 1 +" - right: default to 1 +" - maxHeight: default to 10 +" - maxWidth: default to 60 +" - highlight: highlight of window, default to 'CocFloating' +function! coc#float#create_notification(lines, config) abort + let close = get(a:config, 'close', 1) + let timeout = get(a:config, 'timeout', 0) + let borderhighlight = get(a:config, 'borderhighlight', 'CocFloating') + let highlight = get(a:config, 'highlight', 'CocFloating') + let title = get(a:config, 'title', '') + let top = get(a:config, 'top', 1) + let right = get(a:config, 'right', 1) + let buttons = get(a:config, 'buttons', []) + let maxHeight = get(a:config, 'maxHeight', 10) + let maxWidth = min([&columns - right - 10, get(a:config, 'maxWidth', 60)]) + let progress = get(a:config, 'progress', 0) + let minWidth = get(a:config, 'minWidth', 1) + let minWidth = max([minWidth, s:min_btns_width(buttons)]) + if &columns < right + 10 || minWidth > maxWidth + throw 'no enough spaces for notification' + endif + let width = min([maxWidth, max(map(a:lines + [title + ' '], "strdisplaywidth(v:val)"))]) + let width = max([minWidth, width]) + let height = 0 + for line in a:lines + let w = max([1, strdisplaywidth(line)]) + let height += float2nr(ceil(str2float(string(w))/width)) + endfor + let height = min([maxHeight, height, &lines - &cmdheight - 1]) + let col = &columns - right - width - 2 + let opts = { + \ 'row': top, + \ 'col': col, + \ 'lines': a:lines, + \ 'relative': 'editor', + \ 'width': width, + \ 'height': height, + \ 'highlight': highlight, + \ 'borderhighlight': [borderhighlight], + \ 'border': [1, 1, 1, 1], + \ 'title': title, + \ 'close': close, + \ 'buttons': buttons, + \ } + call coc#float#reflow(top + height + 2 + (empty(buttons) ? 0 : 2)) + let res = coc#float#create_float_win(0, 0, opts) + if empty(res) + return + endif + let [winid, bufnr] = res + call setwinvar(winid, 'kind', 'notification') + redraw + if has('nvim') + call coc#float#nvim_scrollbar(winid) + endif + if timeout + call timer_start(timeout, { -> coc#float#close(winid)}) + endif + if progress + let start = reltime() + let timer = timer_start(16, { -> s:update_progress(bufnr, width, reltimefloat(reltime(start)))}, { + \ 'repeat': -1 + \ }) + call setwinvar(winid, 'timer', timer) + endif + return res +endfunction + +" adjust position for notification windows +function! coc#float#reflow(top) abort + let winids = coc#float#get_float_win_list() + let optlist = [] + for winid in winids + if getwinvar(winid, 'kind', '') !=# 'notification' + continue + endif + call add(optlist, s:get_win_opts(winid)) + endfor + call sort(optlist, {a, b -> a['row'] - b['row']}) + "echo optlist + let top = a:top + for opts in optlist + if opts['row'] <= top + let changed = top + 1 - opts['row'] + let opts['row'] = top + 1 + call s:adjust_win_row(opts['winid'], changed) + endif + " adjust top + let top = opts['row'] + opts['height'] + endfor +endfunction + +" float/popup relative to current cursor position +function! coc#float#cursor_relative(winid) abort + if !coc#float#valid(a:winid) + return v:null + endif + let winid = win_getid() + if winid == a:winid + return v:null + endif + let [cursorLine, cursorCol] = coc#util#cursor_pos() + if has('nvim') + let [row, col] = nvim_win_get_position(a:winid) + return {'row' : row - cursorLine, 'col' : col - cursorCol} + endif + let pos = popup_getpos(a:winid) + return {'row' : pos['line'] - cursorLine - 1, 'col' : pos['col'] - cursorCol - 1} +endfunction + +" move winid include relative windows. +function! s:adjust_win_row(winid, changed) abort + let ids = getwinvar(a:winid, 'related', []) + if s:is_vim + let pos = popup_getpos(a:winid) + if pos['line'] - 1 + a:changed + pos['height'] > &lines - &cmdheight + call coc#float#close(a:winid) + return + endif + call popup_move(a:winid, { + \ 'line': pos['line'] + a:changed + \ }) + for winid in ids + let winpos = popup_getpos(winid) + call popup_move(winid, { + \ 'line': winpos['line'] + a:changed + \ }) + endfor + else + let ids = [a:winid] + ids + " close it if it's fully shown + let borderwin = coc#float#get_related(a:winid, 'border') + let winid = borderwin == 0 ? a:winid : borderwin + let height = nvim_win_get_height(winid) + let pos = nvim_win_get_position(winid) + if pos[0] + a:changed + height > &lines - &cmdheight + call coc#float#close(a:winid) + return + endif + for winid in ids + let [row, col] = nvim_win_get_position(winid) + call nvim_win_set_config(winid, { + \ 'relative': 'editor', + \ 'row': row + a:changed, + \ 'col': col, + \ }) + endfor + endif +endfunction + +" winid, width, height, row, col (0 based). +" works on vim & neovim, check relative window +function! s:get_win_opts(winid) abort + if s:is_vim + let pos = popup_getpos(a:winid) + return { + \ 'winid': a:winid, + \ 'row': pos['line'] - 1, + \ 'col': pos['col'] - 1, + \ 'width': pos['width'], + \ 'height': pos['height'], + \ } + else + let borderwin = coc#float#get_related(a:winid, 'border') + let winid = borderwin == 0 ? a:winid : borderwin + let [row, col] = nvim_win_get_position(winid) + return { + \ 'winid': a:winid, + \ 'row': row, + \ 'col': col, + \ 'width': nvim_win_get_width(winid), + \ 'height': nvim_win_get_height(winid) + \ } + endif +endfunction + +function! s:create_btns_buffer(bufnr, width, buttons, borderbottom) abort + let n = len(a:buttons) + let spaces = a:width - n + 1 + let tw = 0 + for txt in a:buttons + let tw += strdisplaywidth(txt) + endfor + if spaces < tw + throw 'window is too small for buttons.' + endif + let ds = (spaces - tw)/n + let dl = ds/2 + let dr = ds%2 == 0 ? ds/2 : ds/2 + 1 + let btnline = '' + let idxes = [] + for idx in range(0, n - 1) + let txt = toupper(a:buttons[idx][0]).a:buttons[idx][1:] + let btnline .= repeat(' ', dl).txt.repeat(' ', dr) + if idx != n - 1 + call add(idxes, strdisplaywidth(btnline)) + let btnline .= s:borderchars[1] + endif + endfor + let lines = [repeat(s:borderchars[0], a:width), btnline] + if a:borderbottom + call add(lines, repeat(s:borderchars[0], a:width)) + endif + for idx in idxes + let lines[0] = strcharpart(lines[0], 0, idx).s:borderjoinchars[0].strcharpart(lines[0], idx + 1) + if a:borderbottom + let lines[2] = strcharpart(lines[0], 0, idx).s:borderjoinchars[2].strcharpart(lines[0], idx + 1) + endif + endfor + let bufnr = coc#float#create_buf(a:bufnr, lines) + call setbufvar(bufnr, 'vcols', idxes) + return bufnr +endfunction + +function! s:gen_filter_keys(line) abort + let cols = [] + let used = [] + let next = 1 + for idx in range(0, strchars(a:line) - 1) + let ch = strcharpart(a:line, idx, 1) + let nr = char2nr(ch) + if next + if (nr >= 65 && nr <= 90) || (nr >= 97 && nr <= 122) + let lc = tolower(ch) + if index(used, lc) < 0 && empty(maparg(lc, 'n')) + let col = len(strcharpart(a:line, 0, idx)) + 1 + call add(used, lc) + call add(cols, col) + let next = 0 + endif + endif + else + if ch == s:borderchars[1] + let next = 1 + endif + endif + endfor + return [cols, used] +endfunction + +function! s:close_win(winid) abort + if a:winid <= 0 + return + endif + " vim not throw for none exists winid + if s:is_vim + call popup_close(a:winid) + else + if nvim_win_is_valid(a:winid) + call nvim_win_close(a:winid, 1) + endif + endif +endfunction + +function! s:nvim_create_keymap(winid) abort + if a:winid == 0 + return + endif + let curr = win_getid() + " nvim should support win_execute so we don't break visual mode. + let m = mode() + if m == 'n' || m == 'i' || m == 'ic' + noa call win_gotoid(a:winid) + nnoremap :call coc#float#nvim_float_click() + noa call win_gotoid(curr) + endif +endfunction + +" getwininfo is buggy on neovim, use topline, width & height should for content +function! s:nvim_get_botline(topline, height, width, bufnr) abort + let lines = getbufline(a:bufnr, a:topline, a:topline + a:height - 1) + let botline = a:topline + let count = 0 + for i in range(0, len(lines) - 1) + let w = coc#helper#max(1, strdisplaywidth(lines[i])) + let lh = float2nr(ceil(str2float(string(w))/a:width)) + let count = count + lh + let botline = a:topline + i + if count >= a:height + break + endif + endfor + return botline +endfunction + +" get popup position for vim8 based on config of neovim float window +function! s:popup_position(config) abort + let relative = get(a:config, 'relative', 'editor') + if relative ==# 'cursor' + return [s:popup_cursor(a:config['row']), s:popup_cursor(a:config['col'])] + endif + return [a:config['row'] + 1, a:config['col'] + 1] +endfunction + +function! s:add_related(winid, target) abort + let arr = getwinvar(a:target, 'related', []) + if index(arr, a:winid) >= 0 + return + endif + call add(arr, a:winid) + call setwinvar(a:target, 'related', arr) +endfunction + +function! s:popup_cursor(n) abort + if a:n == 0 + return 'cursor' + endif + if a:n < 0 + return 'cursor'.a:n + endif + return 'cursor+'.a:n +endfunction + +function! s:is_blocking() abort + if coc#prompt#activated() + return 1 + endif + return 0 +endfunction + +" max firstline of lines, height > 0, width > 0 +function! s:max_firstline(lines, height, width) abort + let max = len(a:lines) + let remain = a:height + for line in reverse(copy(a:lines)) + let w = max([1, strdisplaywidth(line)]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if remain - dh < 0 + break + endif + let remain = remain - dh + let max = max - 1 + endfor + return min([len(a:lines), max + 1]) +endfunction + +" Get best lnum by topline +function! s:get_cursorline(topline, lines, scrolloff, width, height) abort + let lastline = len(a:lines) + if a:topline == lastline + return lastline + endif + let bottomline = a:topline + let used = 0 + for lnum in range(a:topline, lastline) + let w = max([1, strdisplaywidth(a:lines[lnum - 1])]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if used + dh >= a:height || lnum == lastline + let bottomline = lnum + break + endif + let used += dh + endfor + let cursorline = a:topline + a:scrolloff + if cursorline + a:scrolloff > bottomline + " unable to satisfy scrolloff + let cursorline = (a:topline + bottomline)/2 + endif + return cursorline +endfunction + +" Get firstline for full scroll +function! s:get_topline(topline, lines, forward, height, width) abort + let used = 0 + let lnums = a:forward ? range(a:topline, len(a:lines)) : reverse(range(1, a:topline)) + let topline = a:forward ? len(a:lines) : 1 + for lnum in lnums + let w = max([1, strdisplaywidth(a:lines[lnum - 1])]) + let dh = float2nr(ceil(str2float(string(w))/a:width)) + if used + dh >= a:height + let topline = lnum + break + endif + let used += dh + endfor + if topline == a:topline + if a:forward + let topline = min([len(a:lines), topline + 1]) + else + let topline = max([1, topline - 1]) + endif + endif + return topline +endfunction + +" topline content_height content_width +function! s:get_options(winid) abort + if has('nvim') + let width = nvim_win_get_width(a:winid) + if getwinvar(a:winid, '&foldcolumn', 0) + let width = width - 1 + endif + let info = getwininfo(a:winid)[0] + return { + \ 'topline': info['topline'], + \ 'height': nvim_win_get_height(a:winid), + \ 'width': width + \ } + else + let pos = popup_getpos(a:winid) + return { + \ 'topline': pos['firstline'], + \ 'width': pos['core_width'], + \ 'height': pos['core_height'] + \ } + endif +endfunction + +function! s:win_setview(winid, topline, lnum) abort + if has('nvim') + call coc#compat#execute(a:winid, 'call winrestview({"lnum":'.a:lnum.',"topline":'.a:topline.'})') + call timer_start(10, { -> coc#float#nvim_refresh_scrollbar(a:winid) }) + else + call coc#compat#execute(a:winid, 'exe '.a:lnum) + call popup_setoptions(a:winid, { + \ 'firstline': a:topline, + \ }) + endif +endfunction + +function! s:min_btns_width(buttons) abort + if empty(a:buttons) + return 0 + endif + let minwidth = len(a:buttons)*3 - 1 + for txt in a:buttons + let minwidth = minwidth + strdisplaywidth(txt) + endfor + return minwidth +endfunction + +function! s:update_progress(bufnr, width, ts) abort + let duration = 5000 + " count of blocks + let width = float2nr((a:width + 0.0)/4) + let percent = (float2nr(a:ts*1000)%duration + 0.0)/duration + let line = repeat(s:progresschars[0], a:width) + let startIdx = float2nr(round(a:width * percent)) + let endIdx = startIdx + width + let delta = a:width - endIdx + if delta > 0 + let line = s:str_compose(line, startIdx, repeat(s:progresschars[1], width)) + else + let inserted = repeat(s:progresschars[1], width + delta) + let line = s:str_compose(line, startIdx, inserted) + let line = s:str_compose(line, 0, repeat(s:progresschars[1], - delta)) + endif + call setbufline(a:bufnr, 1, line) +endfunction + +function! s:str_compose(line, idx, text) abort + let first = strcharpart(a:line, 0, a:idx) + return first.a:text.strcharpart(a:line, a:idx + strwidth(a:text)) +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/helper.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/helper.vim new file mode 100644 index 0000000..a174603 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/helper.vim @@ -0,0 +1,90 @@ +scriptencoding utf-8 +" Helper methods for viml + +" insert inserted to line at position, use ... when result is too long +" line should only contains character has strwidth equals 1 +function! coc#helper#str_compose(line, position, inserted) abort + let width = strwidth(a:line) + let text = a:inserted + let res = a:line + let need_truncate = a:position + strwidth(text) + 1 > width + if need_truncate + let remain = width - a:position - 3 + if remain < 2 + " use text for full line, use first & end of a:line, ignore position + let res = strcharpart(a:line, 0, 1) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 1 + let w = w + a + let res = res.c + endif + endfor + let res = res.strcharpart(a:line, w) + else + let res = strcharpart(a:line, 0, a:position) + let w = strwidth(res) + for i in range(strchars(text)) + let c = strcharpart(text, i, 1) + let a = strwidth(c) + if w + a <= width - 3 + let w = w + a + let res = res.c + endif + endfor + let res = res.'..' + let w = w + 2 + let res = res.strcharpart(a:line, w) + endif + else + let first = strcharpart(a:line, 0, a:position) + let res = first.text.strcharpart(a:line, a:position + strwidth(text)) + endif + return res +endfunction + +" Return new dict with keys removed +function! coc#helper#dict_omit(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) == -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction + +" Return new dict with keys only +function! coc#helper#dict_pick(dict, keys) abort + let res = {} + for key in keys(a:dict) + if index(a:keys, key) != -1 + let res[key] = a:dict[key] + endif + endfor + return res +endfunction + +" support for float values +function! coc#helper#min(first, ...) abort + let val = a:first + for i in range(0, len(a:000) - 1) + if a:000[i] < val + let val = a:000[i] + endif + endfor + return val +endfunction + +" support for float values +function! coc#helper#max(first, ...) abort + let val = a:first + for i in range(0, len(a:000) - 1) + if a:000[i] > val + let val = a:000[i] + endif + endfor + return val +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/highlight.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/highlight.vim new file mode 100644 index 0000000..1362bbb --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/highlight.vim @@ -0,0 +1,385 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:clear_match_by_window = has('nvim-0.5.0') || has('patch-8.1.1084') +let s:namespace_map = {} +let s:ns_id = 1 + +if has('nvim-0.5.0') + try + call getmatches(0) + catch /^Vim\%((\a\+)\)\=:E118/ + let s:clear_match_by_window = 0 + endtry +endif + +function! coc#highlight#get_highlights(bufnr, key) abort + let l:res = [] + + if s:is_vim + let l:lines = len(getbufline(a:bufnr, 1, '$')) + for l:line in range(l:lines) + let l:list = prop_list(l:line + 1, {"bufnr": a:bufnr}) + for l:prop in l:list + if l:prop["start"] == 0 || l:prop["end"] == 0 + " multi line tokens are not supported; simply ignore it + continue + endif + + let l:group = l:prop["type"] + let l:start = l:prop["col"] - 1 + let l:end = l:start + l:prop["length"] + call add(l:res, { + \ "group": l:group, + \ "line": l:line, + \ "startCharacter": l:start, + \ "endCharacter": l:end + \ }) + endfor + endfor + else + let srcId = s:create_namespace(a:key) + let l:marks = nvim_buf_get_extmarks(a:bufnr, srcId, 0, -1, {"details": v:true}) + for [_, l:line, l:start, l:details] in l:marks + call add(l:res, { + \ "group": l:details["hl_group"], + \ "line": l:line, + \ "startCharacter": l:start, + \ "endCharacter": l:details["end_col"] + \ }) + endfor + endif + + return l:res +endfunction + +" highlight LSP range, +function! coc#highlight#ranges(bufnr, key, hlGroup, ranges) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + if !bufloaded(bufnr) || !exists('*getbufline') + return + endif + let synmaxcol = getbufvar(a:bufnr, '&synmaxcol', 1000) + if synmaxcol == 0 + let synmaxcol = 1000 + endif + let synmaxcol = min([synmaxcol, 1000]) + let srcId = s:create_namespace(a:key) + for range in a:ranges + let start = range['start'] + let end = range['end'] + for lnum in range(start['line'] + 1, end['line'] + 1) + let arr = getbufline(bufnr, lnum) + let line = empty(arr) ? '' : arr[0] + if empty(line) + continue + endif + if start['character'] > synmaxcol || end['character'] > synmaxcol + continue + endif + " TODO don't know how to count UTF16 code point, should work most cases. + let colStart = lnum == start['line'] + 1 ? strlen(strcharpart(line, 0, start['character'])) : 0 + let colEnd = lnum == end['line'] + 1 ? strlen(strcharpart(line, 0, end['character'])) : -1 + if colStart == colEnd + continue + endif + call coc#highlight#add_highlight(bufnr, srcId, a:hlGroup, lnum - 1, colStart, colEnd) + endfor + endfor +endfunction + +function! coc#highlight#add_highlight(bufnr, src_id, hl_group, line, col_start, col_end) abort + if has('nvim') + call nvim_buf_add_highlight(a:bufnr, a:src_id, a:hl_group, a:line, a:col_start, a:col_end) + else + call coc#api#call('buf_add_highlight', [a:bufnr, a:src_id, a:hl_group, a:line, a:col_start, a:col_end]) + endif +endfunction + +function! coc#highlight#clear_highlight(bufnr, key, start_line, end_line) abort + let bufnr = a:bufnr == 0 ? bufnr('%') : a:bufnr + if !bufloaded(bufnr) + return + endif + let src_id = s:create_namespace(a:key) + if has('nvim') + call nvim_buf_clear_namespace(a:bufnr, src_id, a:start_line, a:end_line) + else + call coc#api#call('buf_clear_namespace', [a:bufnr, src_id, a:start_line, a:end_line]) + endif +endfunction + +" highlight buffer in winid with CodeBlock &HighlightItems +" export interface HighlightItem { +" lnum: number // 0 based +" hlGroup: string +" colStart: number // 0 based +" colEnd: number +" } +" export interface CodeBlock { +" filetype?: string +" hlGroup?: string +" startLine: number // 0 based +" endLine: number +" } +function! coc#highlight#add_highlights(winid, codes, highlights) abort + " clear highlights + call coc#compat#execute(a:winid, 'syntax clear') + let bufnr = winbufnr(a:winid) + call coc#highlight#clear_highlight(bufnr, -1, 0, -1) + if !empty(a:codes) + call coc#highlight#highlight_lines(a:winid, a:codes) + endif + if !empty(a:highlights) + for item in a:highlights + call coc#highlight#add_highlight(bufnr, -1, item['hlGroup'], item['lnum'], item['colStart'], item['colEnd']) + endfor + endif +endfunction + + +" Add highlights to line groups of winid, support hlGroup and filetype +" config should have startLine, endLine (1 based, end excluded) and filetype or hlGroup +" endLine should > startLine and endLine is excluded +" +" export interface CodeBlock { +" filetype?: string +" hlGroup?: string +" startLine: number // 0 based +" endLine: number +" } +function! coc#highlight#highlight_lines(winid, blocks) abort + let currwin = win_getid() + let switch = has('nvim') && currwin != a:winid + if switch + noa call nvim_set_current_win(a:winid) + endif + let defined = [] + let region_id = 1 + for config in a:blocks + let start = config['startLine'] + 1 + let end = config['endLine'] == -1 ? len(getbufline(winbufnr(a:winid), 1, '$')) + 1 : config['endLine'] + 1 + let filetype = get(config, 'filetype', '') + let hlGroup = get(config, 'hlGroup', '') + if !empty(hlGroup) + call s:execute(a:winid, 'syntax region '.hlGroup.' start=/\%'.start.'l/ end=/\%'.end.'l/') + else + let filetype = matchstr(filetype, '\v^\w+') + if empty(filetype) || filetype == 'txt' || index(get(g:, 'coc_markdown_disabled_languages', []), filetype) != -1 + continue + endif + if index(defined, filetype) == -1 + call s:execute(a:winid, 'syntax include @'.toupper(filetype).' syntax/'.filetype.'.vim') + if has('nvim') + unlet! b:current_syntax + elseif exists('*win_execute') + call win_execute(a:winid, 'unlet! b:current_syntax') + endif + call add(defined, filetype) + endif + call s:execute(a:winid, 'syntax region CodeBlock'.region_id.' start=/\%'.start.'l/ end=/\%'.end.'l/ contains=@'.toupper(filetype).' keepend') + let region_id = region_id + 1 + endif + endfor + if switch + noa call nvim_set_current_win(currwin) + endif +endfunction + +" Copmpose hlGroups with foreground and background colors. +function! coc#highlight#compose_hlgroup(fgGroup, bgGroup) abort + let hlGroup = 'Fg'.a:fgGroup.'Bg'.a:bgGroup + if a:fgGroup == a:bgGroup + return a:fgGroup + endif + if hlexists(hlGroup) + return hlGroup + endif + let fg = synIDattr(synIDtrans(hlID(a:fgGroup)), 'fg', 'gui') + let bg = synIDattr(synIDtrans(hlID(a:bgGroup)), 'bg', 'gui') + if fg =~# '^#' || bg =~# '^#' + call s:create_gui_hlgroup(hlGroup, fg, bg, '') + else + let fg = synIDattr(synIDtrans(hlID(a:fgGroup)), 'fg', 'cterm') + let bg = synIDattr(synIDtrans(hlID(a:bgGroup)), 'bg', 'cterm') + call s:create_cterm_hlgroup(hlGroup, fg, bg, '') + endif + return hlGroup +endfunction + +" add matches for winid, use 0 for current window. +function! coc#highlight#match_ranges(winid, bufnr, ranges, hlGroup, priority) abort + let winid = a:winid == 0 ? win_getid() : a:winid + let bufnr = a:bufnr == 0 ? winbufnr(winid) : a:bufnr + if empty(getwininfo(winid)) || (a:bufnr != 0 && winbufnr(a:winid) != a:bufnr) + " not valid + return [] + endif + if !s:clear_match_by_window + let curr = win_getid() + if has('nvim') + noa call nvim_set_current_win(winid) + else + noa call win_gotoid(winid) + endif + endif + let ids = [] + for range in a:ranges + let pos = [] + let start = range['start'] + let end = range['end'] + for lnum in range(start['line'] + 1, end['line'] + 1) + let arr = getbufline(bufnr, lnum) + let line = empty(arr) ? '' : arr[0] + if empty(line) + continue + endif + let colStart = lnum == start['line'] + 1 ? strlen(strcharpart(line, 0, start['character'])) + 1 : 1 + let colEnd = lnum == end['line'] + 1 ? strlen(strcharpart(line, 0, end['character'])) + 1 : strlen(line) + 1 + if colStart == colEnd + continue + endif + call add(pos, [lnum, colStart, colEnd - colStart]) + endfor + if !empty(pos) + let opts = s:clear_match_by_window ? {'window': a:winid} : {} + let i = 1 + let l = [] + for p in pos + call add(l, p) + if i % 8 == 0 + let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) + call add(ids, id) + let l = [] + endif + let i += 1 + endfor + if !empty(l) + let id = matchaddpos(a:hlGroup, l, a:priority, -1, opts) + call add(ids, id) + endif + endif + endfor + if !s:clear_match_by_window + if has('nvim') + noa call nvim_set_current_win(curr) + else + noa call win_gotoid(curr) + endif + endif + return ids +endfunction + +" Clear matches by hlGroup regexp. +function! coc#highlight#clear_match_group(winid, match) abort + let winid = a:winid == 0 ? win_getid() : a:winid + if empty(getwininfo(winid)) + " not valid + return + endif + if s:clear_match_by_window + let arr = filter(getmatches(winid), 'v:val["group"] =~# "'.a:match.'"') + for item in arr + call matchdelete(item['id'], winid) + endfor + else + let curr = win_getid() + let switch = exists('*nvim_set_current_win') && curr != winid + if switch + noa call nvim_set_current_win(a:winid) + endif + if win_getid() == winid + let arr = filter(getmatches(), 'v:val["group"] =~# "'.a:match.'"') + for item in arr + call matchdelete(item['id']) + endfor + endif + if switch + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +" Clear matches by match ids, use 0 for current win. +function! coc#highlight#clear_matches(winid, ids) + let winid = a:winid == 0 ? win_getid() : a:winid + if empty(getwininfo(winid)) + " not valid + return + endif + if s:clear_match_by_window + for id in a:ids + try + call matchdelete(id, winid) + catch /^Vim\%((\a\+)\)\=:E803/ + " ignore + endtry + endfor + else + let curr = win_getid() + let switch = exists('*nvim_set_current_win') && curr != winid + if switch + noa call nvim_set_current_win(a:winid) + endif + if win_getid() == winid + for id in a:ids + try + call matchdelete(id) + catch /^Vim\%((\a\+)\)\=:E803/ + " ignore + endtry + endfor + endif + if switch + noa call nvim_set_current_win(curr) + endif + endif +endfunction + +" Sets the highlighting for the given group +function! s:create_gui_hlgroup(group, fg, bg, attr) + if a:fg != "" + exec "silent hi " . a:group . " guifg=" . a:fg . " ctermfg=" . coc#color#rgb2term(strpart(a:fg, 1)) + endif + if a:bg != "" + exec "silent hi " . a:group . " guibg=" . a:bg . " ctermbg=" . coc#color#rgb2term(strpart(a:bg, 1)) + endif + if a:attr != "" + exec "silent hi " . a:group . " gui=" . a:attr . " cterm=" . a:attr + endif +endfun + +function! s:create_cterm_hlgroup(group, fg, bg, attr) abort + if a:fg != "" + exec "silent hi " . a:group . " ctermfg=" . a:fg + endif + if a:bg != "" + exec "silent hi " . a:group . " ctermbg=" . a:bg + endif + if a:attr != "" + exec "silent hi " . a:group . " cterm=" . a:attr + endif +endfunction + +function! s:execute(winid, cmd) abort + if has('nvim') + execute 'silent! ' a:cmd + else + call win_execute(a:winid, a:cmd, 'silent!') + endif +endfunction + +function! s:create_namespace(key) abort + if type(a:key) == 0 + return a:key + endif + if has_key(s:namespace_map, a:key) + return s:namespace_map[a:key] + endif + if has('nvim') + let s:namespace_map[a:key] = nvim_create_namespace('coc-'.a:key) + else + let s:namespace_map[a:key] = s:ns_id + let s:ns_id = s:ns_id + 1 + endif + return s:namespace_map[a:key] +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/list.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/list.vim new file mode 100644 index 0000000..fdce144 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/list.vim @@ -0,0 +1,343 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:prefix = '[List Preview]' +" filetype detect could be slow. +let s:filetype_map = { + \ 'vim': 'vim', + \ 'ts': 'typescript', + \ 'js': 'javascript', + \ 'html': 'html', + \ 'css': 'css' + \ } + +function! coc#list#getchar() abort + return coc#prompt#getchar() +endfunction + +function! coc#list#setlines(bufnr, lines, append) + if a:append + silent call appendbufline(a:bufnr, '$', a:lines) + else + if exists('*deletebufline') + silent call deletebufline(a:bufnr, len(a:lines) + 1, '$') + else + let n = len(a:lines) + 1 + let saved_reg = @" + silent execute n.',$d' + let @" = saved_reg + endif + silent call setbufline(a:bufnr, 1, a:lines) + endif +endfunction + +function! coc#list#options(...) + let list = ['--top', '--tab', '--normal', '--no-sort', '--input', '--strict', + \ '--regex', '--interactive', '--number-select', '--auto-preview', + \ '--ignore-case', '--no-quit', '--first'] + if get(g:, 'coc_enabled', 0) + let names = coc#rpc#request('listNames', []) + call extend(list, names) + endif + return join(list, "\n") +endfunction + +function! coc#list#names(...) abort + let names = coc#rpc#request('listNames', []) + return join(names, "\n") +endfunction + +function! coc#list#status(name) + if !exists('b:list_status') | return '' | endif + return get(b:list_status, a:name, '') +endfunction + +function! coc#list#create(position, height, name, numberSelect) + if a:position ==# 'tab' + execute 'silent tabe list:///'.a:name + else + execute 'silent keepalt '.(a:position ==# 'top' ? '' : 'botright').a:height.'sp list:///'.a:name + execute 'resize '.a:height + endif + if a:numberSelect + setl norelativenumber + setl number + else + setl nonumber + setl norelativenumber + setl signcolumn=yes + endif + return [bufnr('%'), win_getid()] +endfunction + +" close list windows +function! coc#list#clean_up() abort + for i in range(1, winnr('$')) + let bufname = bufname(winbufnr(i)) + if bufname =~# 'list://' + execute i.'close!' + endif + endfor +endfunction + +function! coc#list#setup(source) + let b:list_status = {} + setl buftype=nofile nobuflisted nofen nowrap + setl norelativenumber bufhidden=wipe cursorline winfixheight + setl tabstop=1 nolist nocursorcolumn undolevels=-1 + setl signcolumn=auto + if has('nvim-0.5.0') || has('patch-8.1.0864') + setl scrolloff=0 + endif + if exists('&cursorlineopt') + setl cursorlineopt=both + endif + setl filetype=list + syntax case ignore + let source = a:source[8:] + let name = toupper(source[0]).source[1:] + execute 'syntax match Coc'.name.'Line /\v^.*$/' + nnoremap c +endfunction + +" Check if previewwindow exists on current tab. +function! coc#list#has_preview() + for i in range(1, winnr('$')) + let preview = getwinvar(i, 'previewwindow', getwinvar(i, '&previewwindow', 0)) + if preview + return i + endif + endfor + return 0 +endfunction + +" Get previewwindow from tabnr, use 0 for current tab +function! coc#list#get_preview(...) abort + let tabnr = get(a:, 1, 0) == 0 ? tabpagenr() : a:1 + let info = gettabinfo(tabnr) + if !empty(info) + for win in info[0]['windows'] + if getwinvar(win, 'previewwindow', 0) + return win + endif + endfor + endif + return -1 +endfunction + +function! coc#list#scroll_preview(dir) abort + let winnr = coc#list#has_preview() + if !winnr + return + endif + let winid = win_getid(winnr) + if exists('*win_execute') + call win_execute(winid, "normal! ".(a:dir ==# 'up' ? "\" : "\")) + else + let id = win_getid() + noa call win_gotoid(winid) + execute "normal! ".(a:dir ==# 'up' ? "\" : "\") + noa call win_gotoid(id) + endif +endfunction + +function! coc#list#restore(winid, height) + if has('nvim') + if nvim_win_is_valid(a:winid) + call nvim_win_set_height(a:winid, a:height) + endif + else + if exists('win_execute') + call win_execute(a:winid, 'noa resize '.a:height, 'silent!') + redraw + endif + endif +endfunction + +function! coc#list#set_height(height) abort + if winnr('$') == 1| return | endif + execute 'resize '.a:height +endfunction + +function! coc#list#hide(original, height, winid) abort + let arr = win_id2tabwin(a:winid) + " close preview window + if !empty(arr) && arr[0] != 0 + silent! pclose! + let previewwin = coc#list#get_preview(arr[0]) + call s:close_win(previewwin) + endif + if !empty(getwininfo(a:original)) + call win_gotoid(a:original) + endif + if a:winid + call s:close_win(a:winid) + endif + if !empty(a:height) && win_getid() == a:original + if exists('*nvim_win_set_height') + call nvim_win_set_height(a:original, a:height) + elseif win_getid() == a:original + execute 'resize '.a:height + endif + endif +endfunction + +function! s:close_win(winid) abort + if empty(a:winid) || a:winid == -1 || empty(getwininfo(a:winid)) + return + endif + if s:is_vim + if exists('*win_execute') + noa call win_execute(a:winid, 'close!', 'silent!') + else + if win_getid() == a:winid + noa silent! close! + else + let winid = win_getid() + let res = win_gotoid(winid) + if res + noa silent! close! + noa wincmd p + endif + endif + endif + else + if nvim_win_is_valid(a:winid) + silent! noa call nvim_win_close(a:winid, 1) + endif + endif +endfunction + +" Improve preview performance by reused window & buffer. +" lines - list of lines +" config.position - could be 'below' 'top' 'tab'. +" config.winid - id of original window. +" config.name - (optional )name of preview buffer. +" config.splitRight - (optional) split to right when 1. +" config.lnum - (optional) current line number +" config.filetype - (optional) filetype of lines. +" config.hlGroup - (optional) highlight group. +" config.maxHeight - (optional) max height of window, valid for 'below' & 'top' position. +function! coc#list#preview(lines, config) abort + if s:is_vim && !exists('*win_execute') + throw 'win_execute function required for preview, please upgrade your vim.' + return + endif + let name = fnamemodify(get(a:config, 'name', ''), ':.') + let lines = a:lines + if empty(lines) + if get(a:config, 'scheme', 'file') != 'file' + let bufnr = s:load_buffer(name) + if bufnr != 0 + let lines = getbufline(bufnr, 1, '$') + else + let lines = [''] + endif + else + " Show empty lines so not close window. + let lines = [''] + endif + endif + let winid = coc#list#get_preview(0) + let bufnr = winid == -1 ? 0 : winbufnr(winid) + " Try reuse buffer & window + let bufnr = coc#float#create_buf(bufnr, lines) + if bufnr == 0 + return + endif + call setbufvar(bufnr, '&synmaxcol', 500) + let filetype = get(a:config, 'filetype', '') + let extname = matchstr(name, '\.\zs[^.]\+$') + if empty(filetype) && !empty(extname) + let filetype = get(s:filetype_map, extname, '') + endif + let range = get(a:config, 'range', v:null) + let hlGroup = get(a:config, 'hlGroup', 'Search') + let lnum = get(a:config, 'lnum', 1) + let position = get(a:config, 'position', 'below') + let original = get(a:config, 'winid', -1) + if winid == -1 + let change = position != 'tab' && get(a:config, 'splitRight', 0) + let curr = win_getid() + if change + if original && win_id2win(original) + noa call win_gotoid(original) + else + noa wincmd t + endif + execute 'noa belowright vert sb '.bufnr + let winid = win_getid() + elseif position == 'tab' || get(a:config, 'splitRight', 0) + execute 'noa belowright vert sb '.bufnr + let winid = win_getid() + else + let mod = position == 'top' ? 'below' : 'above' + let height = s:get_height(lines, a:config) + execute 'noa '.mod.' sb +resize\ '.height.' '.bufnr + let winid = win_getid() + endif + noa call winrestview({"lnum": lnum ,"topline":max([1, lnum - 3])}) + call setwinvar(winid, '&signcolumn', 'no') + call setwinvar(winid, '&number', 1) + call setwinvar(winid, '&cursorline', 0) + call setwinvar(winid, '&relativenumber', 0) + call setwinvar(winid, 'previewwindow', 1) + noa call win_gotoid(curr) + else + let height = s:get_height(lines, a:config) + if height > 0 + if s:is_vim + let curr = win_getid() + noa call win_gotoid(winid) + execute 'silent! noa resize '.height + noa call win_gotoid(curr) + else + call nvim_win_set_height(winid, height) + endif + endif + call coc#compat#execute(winid, ['syntax clear', 'noa call winrestview({"lnum":'.lnum.',"topline":'.max([1, lnum - 3]).'})']) + endif + if s:prefix.' '.name != bufname(bufnr) + if s:is_vim + call win_execute(winid, 'noa file '.fnameescape(s:prefix.' '.name), 'silent!') + else + silent! noa call nvim_buf_set_name(bufnr, s:prefix.' '.name) + endif + endif + " highlights + if !empty(filetype) + let start = max([0, lnum - 300]) + let end = min([len(lines), lnum + 300]) + call coc#highlight#highlight_lines(winid, [{'filetype': filetype, 'startLine': start, 'endLine': end}]) + call coc#compat#execute(winid, 'syn sync fromstart') + else + call coc#compat#execute(winid, 'filetype detect') + let ft = getbufvar(bufnr, '&filetype', '') + if !empty(extname) && !empty(ft) + let s:filetype_map[extname] = ft + endif + endif + call sign_unplace('coc', {'buffer': bufnr}) + call coc#compat#execute(winid, 'call clearmatches()') + if !empty(range) + call sign_place(1, 'coc', 'CocCurrentLine', bufnr, {'lnum': lnum}) + call coc#highlight#match_ranges(winid, bufnr, [range], hlGroup, 10) + endif + redraw +endfunction + +function! s:get_height(lines, config) abort + if get(a:config, 'splitRight', 0) || get(a:config, 'position', 'below') == 'tab' + return 0 + endif + let height = min([get(a:config, 'maxHeight', 10), len(a:lines), &lines - &cmdheight - 2]) + return height +endfunction + +function! s:load_buffer(name) abort + if exists('*bufadd') && exists('*bufload') + let bufnr = bufadd(a:name) + call bufload(bufnr) + return bufnr + endif + return 0 +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/prompt.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/prompt.vim new file mode 100644 index 0000000..cbe4a97 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/prompt.vim @@ -0,0 +1,210 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:activated = 0 +let s:session_names = [] +let s:saved_ve = &t_ve +let s:saved_cursor = &guicursor +let s:gui = has('gui_running') || has('nvim') + +let s:char_map = { + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\":'' , + \ "\":'' , + \ "\":'', + \ "\":'', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\<2-LeftMouse>": '<2-LeftMouse>', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ "\": '', + \ } + +function! coc#prompt#getc() abort + let c = getchar() + return type(c) == type(0) ? nr2char(c) : c +endfunction + +function! coc#prompt#getchar() abort + let input = coc#prompt#getc() + if 1 != &iminsert + return input + endif + "a language keymap is activated, so input must be resolved to the mapped values. + let partial_keymap = mapcheck(input, "l") + while partial_keymap !=# "" + let full_keymap = maparg(input, "l") + if full_keymap ==# "" && len(input) >= 3 "HACK: assume there are no keymaps longer than 3. + return input + elseif full_keymap ==# partial_keymap + return full_keymap + endif + let c = coc#prompt#getc() + if c ==# "\" || c ==# "\" + "if the short sequence has a valid mapping, return that. + if !empty(full_keymap) + return full_keymap + endif + return input + endif + let input .= c + let partial_keymap = mapcheck(input, "l") + endwhile + return input +endfunction + +function! coc#prompt#start_prompt(session) abort + let s:session_names = s:filter(s:session_names, a:session) + call add(s:session_names, a:session) + if s:activated | return | endif + if s:is_vim + call s:start_prompt_vim() + else + call s:start_prompt() + endif +endfunction + +function! s:start_prompt_vim() abort + call timer_start(10, {-> s:start_prompt()}) +endfunction + +function! s:start_prompt() + if s:activated | return | endif + if !get(g:, 'coc_disable_transparent_cursor', 0) + if s:gui + if has('nvim-0.5.0') && !empty(s:saved_cursor) + set guicursor+=a:ver1-CocCursorTransparent/lCursor + endif + elseif s:is_vim + set t_ve= + endif + endif + let s:activated = 1 + try + while s:activated + let ch = coc#prompt#getchar() + if ch ==# "\" || ch ==# "\" || ch ==# "\" + continue + else + let curr = s:current_session() + let mapped = get(s:char_map, ch, ch) + if !empty(curr) + call coc#rpc#notify('InputChar', [curr, mapped, getcharmod()]) + endif + if mapped == '' + let s:session_names = [] + call s:reset() + break + endif + endif + endwhile + catch /^Vim:Interrupt$/ + let s:activated = 0 + call coc#rpc#notify('InputChar', [s:current_session(), '']) + return + endtry + let s:activated = 0 +endfunction + +function! coc#prompt#stop_prompt(session) + let s:session_names = s:filter(s:session_names, a:session) + if len(s:session_names) + return + endif + if s:activated + let s:activated = 0 + call s:reset() + call feedkeys("\", 'int') + endif +endfunction + +function! coc#prompt#activated() abort + return s:activated +endfunction + +function! s:reset() abort + if !get(g:, 'coc_disable_transparent_cursor',0) + " neovim has bug with revert empty &guicursor + if s:gui && !empty(s:saved_cursor) + if has('nvim-0.5.0') + set guicursor+=a:ver1-Cursor/lCursor + let &guicursor = s:saved_cursor + endif + elseif s:is_vim + let &t_ve = s:saved_ve + endif + endif + echo "" +endfunction + +function! s:current_session() abort + if empty(s:session_names) + return v:null + endif + return s:session_names[len(s:session_names) - 1] +endfunction + +function! s:filter(list, id) abort + return filter(copy(a:list), 'v:val !=# a:id') +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/rpc.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/rpc.vim new file mode 100644 index 0000000..d985a56 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/rpc.vim @@ -0,0 +1,128 @@ +scriptencoding utf-8 +let s:is_win = has("win32") || has("win64") +let s:client = v:null +let s:name = 'coc' +let s:is_vim = !has('nvim') + +function! coc#rpc#start_server() + if get(g:, 'coc_node_env', '') ==# 'test' + " server already started + let s:client = coc#client#create(s:name, []) + let s:client['running'] = 1 + let s:client['chan_id'] = get(g:, 'coc_node_channel_id', 0) + call dictwatcheradd(g:, 'coc_node_channel_id', function('s:ChannelSet')) + return + endif + if empty(s:client) + let cmd = coc#util#job_command() + if empty(cmd) | return | endif + let $COC_VIMCONFIG = coc#util#get_config_home() + let $COC_DATA_HOME = coc#util#get_data_home() + let s:client = coc#client#create(s:name, cmd) + endif + if !coc#client#is_running('coc') + call s:client['start']() + endif +endfunction + +function! coc#rpc#started() abort + return !empty(s:client) +endfunction + +function! coc#rpc#ready() + if empty(s:client) || s:client['running'] == 0 + return 0 + endif + return 1 +endfunction + +function! s:ChannelSet(dict, key, val) + let chan_id = get(a:val, 'new', 0) + if empty(s:client) | return | endif + let s:client['running'] = 1 + let s:client['chan_id'] = chan_id + call dictwatcherdel(g:, 'coc_node_channel_id', function('s:ChannelSet')) +endfunction + +function! coc#rpc#kill() + let pid = get(g:, 'coc_process_pid', 0) + if !pid | return | endif + if s:is_win + call system('taskkill /PID '.pid) + else + call system('kill -9 '.pid) + endif +endfunction + +function! coc#rpc#get_errors() + return split(execute('messages'), "\n") +endfunction + +function! coc#rpc#stop() + if empty(s:client) + return + endif + try + if s:is_vim + call job_stop(ch_getjob(s:client['channel']), 'term') + else + call jobstop(s:client['chan_id']) + endif + catch /.*/ + " ignore + endtry +endfunction + +function! coc#rpc#restart() + if empty(s:client) + call coc#rpc#start_server() + else + call coc#float#close_all() + call coc#rpc#request('detach', []) + sleep 100m + let s:client['command'] = coc#util#job_command() + call coc#client#restart(s:name) + echohl MoreMsg | echom 'starting coc.nvim service' | echohl None + endif +endfunction + +function! coc#rpc#request(method, args) abort + if !coc#rpc#ready() + return '' + endif + return s:client['request'](a:method, a:args) +endfunction + +function! coc#rpc#notify(method, args) abort + if !coc#rpc#ready() + return '' + endif + call s:client['notify'](a:method, a:args) + return '' +endfunction + +function! coc#rpc#request_async(method, args, cb) abort + if !coc#rpc#ready() + return cb('coc.nvim service not started.') + endif + call s:client['request_async'](a:method, a:args, a:cb) +endfunction + +" receive async response +function! coc#rpc#async_response(id, resp, isErr) abort + if empty(s:client) + return + endif + call coc#client#on_response(s:name, a:id, a:resp, a:isErr) +endfunction + +" send async response to server +function! coc#rpc#async_request(id, method, args) + let l:Cb = {err, ... -> coc#rpc#notify('nvim_async_response_event', [a:id, err, get(a:000, 0, v:null)])} + let args = a:args + [l:Cb] + try + call call(a:method, args) + catch /.*/ + call coc#rpc#notify('nvim_async_response_event', [a:id, v:exception, v:null]) + endtry +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/snippet.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/snippet.vim new file mode 100644 index 0000000..bb63637 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/snippet.vim @@ -0,0 +1,69 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:map_next = 1 + +function! coc#snippet#_select_mappings() + if !get(g:, 'coc_selectmode_mapping', 1) + return + endif + + redir => mappings + silent! smap + redir END + + for map in map(filter(split(mappings, '\n'), + \ "v:val !~# '^s' && v:val !~# '^\\a*\\s*<\\S\\+>'"), + \ "matchstr(v:val, '^\\a*\\s*\\zs\\S\\+')") + silent! execute 'sunmap' map + silent! execute 'sunmap ' map + endfor + + " same behaviour of ultisnips + snoremap c + snoremap c + snoremap c + snoremap "_c +endfunction + +function! coc#snippet#show_choices(lnum, col, len, values) abort + let m = mode() + call cursor(a:lnum, a:col + a:len) + if m !=# 'i' | startinsert | endif + call timer_start(20, { -> coc#_do_complete(a:col - 1, a:values, 0)}) + redraw +endfunction + +function! coc#snippet#enable() + if get(b:, 'coc_snippet_active', 0) == 1 + return + endif + let b:coc_snippet_active = 1 + silent! unlet g:coc_selected_text + call coc#snippet#_select_mappings() + let nextkey = get(g:, 'coc_snippet_next', '') + let prevkey = get(g:, 'coc_snippet_prev', '') + if maparg(nextkey, 'i') =~# 'expand-jump' + let s:map_next = 0 + endif + if s:map_next + execute 'inoremap '.nextkey." =coc#rpc#request('snippetNext', [])" + endif + execute 'inoremap '.prevkey." =coc#rpc#request('snippetPrev', [])" + execute 'snoremap '.prevkey." :call coc#rpc#request('snippetPrev', [])" + execute 'snoremap '.nextkey." :call coc#rpc#request('snippetNext', [])" +endfunction + +function! coc#snippet#disable() + if get(b:, 'coc_snippet_active', 0) == 0 + return + endif + let b:coc_snippet_active = 0 + let nextkey = get(g:, 'coc_snippet_next', '') + let prevkey = get(g:, 'coc_snippet_prev', '') + if s:map_next + silent! execute 'iunmap '.nextkey + endif + silent! execute 'iunmap '.prevkey + silent! execute 'sunmap '.prevkey + silent! execute 'sunmap '.nextkey +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/task.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/task.vim new file mode 100644 index 0000000..4a5befc --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/task.vim @@ -0,0 +1,175 @@ +" ============================================================================ +" Description: Manage long running tasks. +" Author: Qiming Zhao +" Licence: MIT licence +" Version: 0.1 +" Last Modified: Dec 12, 2020 +" ============================================================================ +scriptencoding utf-8 + +let s:is_vim = !has('nvim') +let s:running_task = {} +" neovim emit strings that part of lines. +let s:out_remain_text = {} +let s:err_remain_text = {} + +function! coc#task#start(id, opts) + if coc#task#running(a:id) + call coc#task#stop(a:id) + endif + let cmd = [a:opts['cmd']] + get(a:opts, 'args', []) + let cwd = get(a:opts, 'cwd', getcwd()) + let env = get(a:opts, 'env', {}) + " cmd args cwd pty + if s:is_vim + let options = { + \ 'cwd': cwd, + \ 'err_mode': 'nl', + \ 'out_mode': 'nl', + \ 'err_cb': {channel, message -> s:on_stderr(a:id, [message])}, + \ 'out_cb': {channel, message -> s:on_stdout(a:id, [message])}, + \ 'exit_cb': {channel, code -> s:on_exit(a:id, code)}, + \ 'env': env, + \} + if has("patch-8.1.350") + let options['noblock'] = 1 + endif + if get(a:opts, 'pty', 0) + let options['pty'] = 1 + endif + let job = job_start(cmd, options) + let status = job_status(job) + if status !=# 'run' + echohl Error | echom 'Failed to start '.a:id.' task' | echohl None + return v:false + endif + let s:running_task[a:id] = job + else + let options = { + \ 'cwd': cwd, + \ 'on_stderr': {channel, msgs -> s:on_stderr(a:id, msgs)}, + \ 'on_stdout': {channel, msgs -> s:on_stdout(a:id, msgs)}, + \ 'on_exit': {channel, code -> s:on_exit(a:id, code)}, + \ 'detach': get(a:opts, 'detach', 0), + \} + let original = {} + if !empty(env) && exists('*setenv') && exists('*getenv') + for key in keys(env) + let original[key] = getenv(key) + call setenv(key, env[key]) + endfor + endif + if get(a:opts, 'pty', 0) + let options['pty'] = 1 + endif + let chan_id = jobstart(cmd, options) + if !empty(original) + for key in keys(original) + call setenv(key, original[key]) + endfor + endif + if chan_id <= 0 + echohl Error | echom 'Failed to start '.a:id.' task' | echohl None + return v:false + endif + let s:running_task[a:id] = chan_id + endif + return v:true +endfunction + +function! coc#task#stop(id) + let job = get(s:running_task, a:id, v:null) + if !job | return | endif + if s:is_vim + call job_stop(job, 'term') + else + call jobstop(job) + endif + sleep 50m + let running = coc#task#running(a:id) + if running + echohl Error | echom 'job '.a:id. ' stop failed.' | echohl None + endif +endfunction + +function! s:on_exit(id, code) abort + if get(g:, 'coc_vim_leaving', 0) | return | endif + if has('nvim') + let s:out_remain_text[a:id] = '' + let s:err_remain_text[a:id] = '' + endif + if has_key(s:running_task, a:id) + call remove(s:running_task, a:id) + endif + call coc#rpc#notify('TaskExit', [a:id, a:code]) +endfunction + +function! s:on_stderr(id, msgs) + if get(g:, 'coc_vim_leaving', 0) | return | endif + if empty(a:msgs) + return + endif + if s:is_vim + call coc#rpc#notify('TaskStderr', [a:id, a:msgs]) + else + let remain = get(s:err_remain_text, a:id, '') + let eof = (a:msgs == ['']) + let msgs = copy(a:msgs) + if len(remain) > 0 + if msgs[0] == '' + let msgs[0] = remain + else + let msgs[0] = remain . msgs[0] + endif + endif + let last = msgs[len(msgs) - 1] + let s:err_remain_text[a:id] = len(last) > 0 ? last : '' + " all lines from 0 to n - 2 + if len(msgs) > 1 + call coc#rpc#notify('TaskStderr', [a:id, msgs[:len(msgs)-2]]) + elseif eof && len(msgs[0]) > 0 + call coc#rpc#notify('TaskStderr', [a:id, msgs]) + endif + endif +endfunction + +function! s:on_stdout(id, msgs) + if empty(a:msgs) + return + endif + if s:is_vim + call coc#rpc#notify('TaskStdout', [a:id, a:msgs]) + else + let remain = get(s:out_remain_text, a:id, '') + let eof = (a:msgs == ['']) + let msgs = copy(a:msgs) + if len(remain) > 0 + if msgs[0] == '' + let msgs[0] = remain + else + let msgs[0] = remain . msgs[0] + endif + endif + let last = msgs[len(msgs) - 1] + let s:out_remain_text[a:id] = len(last) > 0 ? last : '' + " all lines from 0 to n - 2 + if len(msgs) > 1 + call coc#rpc#notify('TaskStdout', [a:id, msgs[:len(msgs)-2]]) + elseif eof && len(msgs[0]) > 0 + call coc#rpc#notify('TaskStdout', [a:id, msgs]) + endif + endif +endfunction + +function! coc#task#running(id) + if !has_key(s:running_task, a:id) == 1 + return v:false + endif + let job = s:running_task[a:id] + if s:is_vim + let status = job_status(job) + return status ==# 'run' + endif + let [code] = jobwait([job], 10) + return code == -1 +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/terminal.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/terminal.vim new file mode 100644 index 0000000..87423ef --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/terminal.vim @@ -0,0 +1,115 @@ +scriptencoding utf-8 +let s:is_vim = !has('nvim') +let s:channel_map = {} +let s:is_win = has('win32') || has('win64') + +" start terminal, return [bufnr, pid] +function! coc#terminal#start(cmd, cwd, env) abort + if s:is_vim && !has('terminal') + throw 'terminal feature not supported by current vim.' + endif + let cwd = empty(a:cwd) ? getcwd() : a:cwd + execute 'belowright 8new +setl\ buftype=nofile' + setl winfixheight + setl norelativenumber + setl nonumber + setl bufhidden=hide + if exists('#User#CocTerminalOpen') + exe 'doautocmd User CocTerminalOpen' + endif + let bufnr = bufnr('%') + let env = {} + let original = {} + if !empty(a:env) + " use env option when possible + if s:is_vim + let env = copy(a:env) + elseif exists('*setenv') + for key in keys(a:env) + let original[key] = getenv(key) + call setenv(key, a:env[key]) + endfor + endif + endif + + function! s:OnExit(status) closure + if a:status == 0 + execute 'silent! bd! '.bufnr + endif + endfunction + + if has('nvim') + let job_id = termopen(a:cmd, { + \ 'cwd': cwd, + \ 'pty': 1, + \ 'on_exit': {job, status -> s:OnExit(status)}, + \ 'env': env, + \ }) + if !empty(original) && exists('*setenv') + for key in keys(original) + call setenv(key, original[key]) + endfor + endif + if job_id == 0 + throw 'create terminal job failed' + endif + wincmd p + let s:channel_map[bufnr] = job_id + return [bufnr, jobpid(job_id)] + else + let cmd = s:is_win ? join(a:cmd, ' ') : a:cmd + let res = term_start(cmd, { + \ 'cwd': cwd, + \ 'term_kill': s:is_win ? 'kill' : 'term', + \ 'term_finish': 'close', + \ 'exit_cb': {job, status -> s:OnExit(status)}, + \ 'curwin': 1, + \ 'env': env, + \}) + if res == 0 + throw 'create terminal job failed' + endif + let job = term_getjob(bufnr) + let s:channel_map[bufnr] = job_getchannel(job) + wincmd p + return [bufnr, job_info(job).process] + endif +endfunction + +function! coc#terminal#send(bufnr, text, add_new_line) abort + let chan = get(s:channel_map, a:bufnr, v:null) + if empty(chan) | return| endif + if has('nvim') + let lines = split(a:text, '\v\r?\n') + if a:add_new_line && !empty(lines[len(lines) - 1]) + if s:is_win + call add(lines, "\r\n") + else + call add(lines, '') + endif + endif + call chansend(chan, lines) + let winnr = bufwinnr(a:bufnr) + if winnr != -1 + exe 'noa '.winnr.'wincmd w' + exe 'noa normal! G' + exe 'noa '.wincmd p + endif + else + if !a:add_new_line + call ch_sendraw(chan, a:text) + else + call ch_sendraw(chan, a:text.(s:is_win ? "\r\n" : "\n")) + endif + endif +endfunction + +function! coc#terminal#close(bufnr) abort + if has('nvim') + let job_id = get(s:channel_map, a:bufnr, 0) + if !empty(job_id) + silent! call chanclose(job_id) + endif + endif + exe 'silent! bd! '.a:bufnr +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/util.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/util.vim new file mode 100644 index 0000000..ca4aac9 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/coc/util.vim @@ -0,0 +1,960 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') +let s:is_win = has('win32') || has('win64') +let s:is_vim = !has('nvim') +let s:clear_match_by_id = has('nvim-0.5.0') || has('patch-8.1.1084') +let s:vim_api_version = 8 + +let s:activate = "" +let s:quit = "" +if has("gui_macvim") && has('gui_running') + let s:app = "MacVim" +elseif $TERM_PROGRAM ==# "Apple_Terminal" + let s:app = "Terminal" +elseif $TERM_PROGRAM ==# "iTerm.app" + let s:app = "iTerm2" +elseif has('mac') + let s:app = "System Events" + let s:quit = "quit" + let s:activate = 'activate' +endif + +function! coc#util#has_preview() + for i in range(1, winnr('$')) + if getwinvar(i, '&previewwindow') + return i + endif + endfor + return 0 +endfunction + +function! coc#util#api_version() abort + return s:vim_api_version +endfunction + +" get cursor position +function! coc#util#cursor() + return [line('.') - 1, strchars(strpart(getline('.'), 0, col('.') - 1))] +endfunction + +function! coc#util#path_replace_patterns() abort + if has('win32unix') && exists('g:coc_cygqwin_path_prefixes') + echohl WarningMsg + echon 'g:coc_cygqwin_path_prefixes is deprecated, use g:coc_uri_prefix_replace_patterns instead' + echohl None + return g:coc_cygqwin_path_prefixes + endif + if exists('g:coc_uri_prefix_replace_patterns') + return g:coc_uri_prefix_replace_patterns + endif + return v:null +endfunction + +function! coc#util#version() + if s:is_vim + return string(v:versionlong) + endif + let c = execute('silent version') + let lines = split(matchstr(c, 'NVIM v\zs[^\n-]*')) + return lines[0] +endfunction + +function! coc#util#check_refresh(bufnr) + if !bufloaded(a:bufnr) + return 0 + endif + if getbufvar(a:bufnr, 'coc_diagnostic_disable', 0) + return 0 + endif + if get(g: , 'EasyMotion_loaded', 0) + return EasyMotion#is_active() != 1 + endif + return 1 +endfunction + +function! coc#util#open_file(cmd, file) + let file = fnameescape(a:file) + execute a:cmd .' '.file +endfunction + +function! coc#util#remote_fns(name) + let fns = ['init', 'complete', 'should_complete', 'refresh', 'get_startcol', 'on_complete', 'on_enter'] + let res = [] + for fn in fns + if exists('*coc#source#'.a:name.'#'.fn) + call add(res, fn) + endif + endfor + return res +endfunction + +function! coc#util#job_command() + if (has_key(g:, 'coc_node_path')) + let node = expand(g:coc_node_path) + else + let node = $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH + endif + if !executable(node) + echohl Error | echom '[coc.nvim] "'.node.'" is not executable, checkout https://nodejs.org/en/download/' | echohl None + return + endif + if !filereadable(s:root.'/build/index.js') + echohl Error | echom '[coc.nvim] build/index.js not found, please compile coc.nvim by: npm run build' | echohl None + return + endif + return [node] + get(g:, 'coc_node_args', ['--no-warnings']) + [s:root.'/build/index.js'] +endfunction + +function! coc#util#echo_hover(msg) + echohl MoreMsg + echo a:msg + echohl None + let g:coc_last_hover_message = a:msg +endfunction + +function! coc#util#execute(cmd) + silent exe a:cmd + if &filetype ==# '' + filetype detect + endif + if s:is_vim + redraw! + endif +endfunction + +function! coc#util#jump(cmd, filepath, ...) abort + if a:cmd != 'pedit' + silent! normal! m' + endif + let path = a:filepath + if (has('win32unix')) + let path = substitute(a:filepath, '\v\\', '/', 'g') + endif + let file = fnamemodify(path, ":~:.") + if a:cmd == 'pedit' + let extra = empty(get(a:, 1, [])) ? '' : '+'.(a:1[0] + 1) + exe 'pedit '.extra.' '.fnameescape(file) + return + else + exe a:cmd.' '.fnameescape(file) + endif + if !empty(get(a:, 1, [])) + let line = getline(a:1[0] + 1) + " TODO need to use utf16 here + let col = byteidx(line, a:1[1]) + 1 + if col == 0 + let col = 999 + endif + call cursor(a:1[0] + 1, col) + endif + if &filetype ==# '' + filetype detect + endif + if s:is_vim + redraw + endif +endfunction + +function! coc#util#jumpTo(line, character) abort + let content = getline(a:line + 1) + let pre = strcharpart(content, 0, a:character) + let col = strlen(pre) + 1 + call cursor(a:line + 1, col) +endfunction + +" Position of cursor relative to screen cell +function! coc#util#cursor_pos() abort + let nr = winnr() + let [row, col] = win_screenpos(nr) + return [row + winline() - 2, col + wincol() - 2] +endfunction + +function! coc#util#echo_messages(hl, msgs) + if a:hl !~# 'Error' && (mode() !~# '\v^(i|n)$') + return + endif + let msgs = filter(copy(a:msgs), '!empty(v:val)') + if empty(msgs) + return + endif + execute 'echohl '.a:hl + echom a:msgs[0] + redraw + echo join(msgs, "\n") + echohl None +endfunction + +function! coc#util#echo_lines(lines) + echo join(a:lines, "\n") +endfunction + +function! coc#util#timer(method, args) + call timer_start(0, { -> s:Call(a:method, a:args)}) +endfunction + +function! s:Call(method, args) + try + call call(a:method, a:args) + redraw + catch /.*/ + return 0 + endtry +endfunction + +function! coc#util#get_bufoptions(bufnr, maxFileSize) abort + if !bufloaded(a:bufnr) | return v:null | endif + let bufname = bufname(a:bufnr) + let buftype = getbufvar(a:bufnr, '&buftype') + let previewwindow = 0 + let winid = bufwinid(a:bufnr) + if winid != -1 + let previewwindow = getwinvar(winid, '&previewwindow', 0) + endif + let size = -1 + if bufnr('%') == a:bufnr + let size = line2byte(line("$") + 1) + elseif !empty(bufname) + let size = getfsize(bufname) + endif + let lines = [] + if getbufvar(a:bufnr, 'coc_enabled', 1) && (buftype == '' || buftype == 'acwrite') && size < a:maxFileSize + let lines = getbufline(a:bufnr, 1, '$') + endif + return { + \ 'bufname': bufname, + \ 'size': size, + \ 'buftype': buftype, + \ 'winid': winid, + \ 'previewwindow': previewwindow == 0 ? v:false : v:true, + \ 'variables': s:variables(a:bufnr), + \ 'fullpath': empty(bufname) ? '' : fnamemodify(bufname, ':p'), + \ 'eol': getbufvar(a:bufnr, '&eol'), + \ 'filetype': getbufvar(a:bufnr, '&filetype'), + \ 'iskeyword': getbufvar(a:bufnr, '&iskeyword'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick'), + \ 'lines': lines, + \} +endfunction + +function! s:variables(bufnr) abort + let info = getbufinfo(a:bufnr) + let variables = empty(info) ? {} : copy(info[0]['variables']) + for key in keys(variables) + if key !~# '\v^coc' + unlet variables[key] + endif + endfor + return variables +endfunction + +function! coc#util#root_patterns() abort + return coc#rpc#request('rootPatterns', [bufnr('%')]) +endfunction + +function! coc#util#get_config(key) abort + return coc#rpc#request('getConfig', [a:key]) +endfunction + +function! coc#util#on_error(msg) abort + echohl Error | echom '[coc.nvim] '.a:msg | echohl None +endfunction + +function! coc#util#preview_info(info, filetype, ...) abort + pclose + keepalt new +setlocal\ previewwindow|setlocal\ buftype=nofile|setlocal\ noswapfile|setlocal\ wrap [Document] + setl bufhidden=wipe + setl nobuflisted + setl nospell + exe 'setl filetype='.a:filetype + setl conceallevel=0 + setl nofoldenable + for command in a:000 + execute command + endfor + let lines = a:info + call append(0, lines) + exe "normal! z" . len(lines) . "\" + exe "normal! gg" + wincmd p +endfunction + +function! coc#util#get_config_home() + if !empty(get(g:, 'coc_config_home', '')) + return resolve(expand(g:coc_config_home)) + endif + if exists('$VIMCONFIG') + return resolve($VIMCONFIG) + endif + if has('nvim') + if exists('$XDG_CONFIG_HOME') + return resolve($XDG_CONFIG_HOME."/nvim") + endif + if s:is_win + return resolve($HOME.'/AppData/Local/nvim') + endif + return resolve($HOME.'/.config/nvim') + else + if s:is_win + return resolve($HOME."/vimfiles") + endif + return resolve($HOME.'/.vim') + endif +endfunction + +function! coc#util#get_data_home() + if !empty(get(g:, 'coc_data_home', '')) + let dir = resolve(expand(g:coc_data_home)) + else + if exists('$XDG_CONFIG_HOME') + let dir = resolve($XDG_CONFIG_HOME."/coc") + else + if s:is_win + let dir = resolve(expand('~/AppData/Local/coc')) + else + let dir = resolve(expand('~/.config/coc')) + endif + endif + endif + if !isdirectory(dir) + echohl MoreMsg | echom '[coc.nvim] creating data directory: '.dir | echohl None + call mkdir(dir, "p", 0755) + endif + return dir +endfunction + +function! coc#util#get_input() + let before = strpart(getline('.'), 0, col('.')-1) + if len(before) == 0 + return '' + endif + return matchstr(before, '\k*$') +endfunction + +function! coc#util#move_cursor(delta) + let pos = getcurpos() + call cursor(pos[1], pos[2] + a:delta) +endfunction + +function! coc#util#get_complete_option() + let pos = getcurpos() + let line = getline(pos[1]) + let input = matchstr(strpart(line, 0, pos[2] - 1), '\k*$') + let col = pos[2] - strlen(input) + let synname = synIDattr(synID(pos[1], col, 1), 'name') + return { + \ 'word': matchstr(strpart(line, col - 1), '^\k\+'), + \ 'input': empty(input) ? '' : input, + \ 'line': line, + \ 'filetype': &filetype, + \ 'filepath': expand('%:p'), + \ 'bufnr': bufnr('%'), + \ 'linenr': pos[1], + \ 'colnr' : pos[2], + \ 'col': col - 1, + \ 'synname': synname, + \ 'changedtick': b:changedtick, + \ 'blacklist': get(b:, 'coc_suggest_blacklist', []), + \} +endfunction + +function! coc#util#with_callback(method, args, cb) + function! s:Cb() closure + try + let res = call(a:method, a:args) + call a:cb(v:null, res) + catch /.*/ + call a:cb(v:exception) + endtry + endfunction + let timeout = s:is_vim ? 10 : 0 + call timer_start(timeout, {-> s:Cb() }) +endfunction + +function! coc#util#quickpick(title, items, cb) abort + if exists('*popup_menu') + function! s:QuickpickHandler(id, result) closure + call a:cb(v:null, a:result) + endfunction + function! s:QuickpickFilter(id, key) closure + for i in range(1, len(a:items)) + if a:key == string(i) + call popup_close(a:id, i) + return 1 + endif + endfor + " No shortcut, pass to generic filter + return popup_filter_menu(a:id, a:key) + endfunction + try + call popup_menu(a:items, { + \ 'title': a:title, + \ 'filter': function('s:QuickpickFilter'), + \ 'callback': function('s:QuickpickHandler'), + \ }) + redraw + catch /.*/ + call a:cb(v:exception) + endtry + else + let res = inputlist([a:title] + a:items) + call a:cb(v:null, res) + endif +endfunction + +function! coc#util#get_syntax_name(lnum, col) + return synIDattr(synIDtrans(synID(a:lnum,a:col,1)),"name") +endfunction + +function! coc#util#echo_signatures(signatures) abort + if pumvisible() | return | endif + echo "" + for i in range(len(a:signatures)) + call s:echo_signature(a:signatures[i]) + if i != len(a:signatures) - 1 + echon "\n" + endif + endfor +endfunction + +function! s:echo_signature(parts) + for part in a:parts + let hl = get(part, 'type', 'Normal') + let text = get(part, 'text', '') + if !empty(text) + execute 'echohl '.hl + execute "echon '".substitute(text, "'", "''", 'g')."'" + echohl None + endif + endfor +endfunction + +function! coc#util#unplace_signs(bufnr, sign_ids) + if !bufloaded(a:bufnr) | return | endif + for id in a:sign_ids + execute 'silent! sign unplace '.id.' buffer='.a:bufnr + endfor +endfunction + +function! coc#util#setline(lnum, line) + keepjumps call setline(a:lnum, a:line) +endfunction + +" cmd, cwd +function! coc#util#open_terminal(opts) abort + if s:is_vim && !exists('*term_start') + echohl WarningMsg | echon "Your vim doesn't have terminal support!" | echohl None + return + endif + if get(a:opts, 'position', 'bottom') ==# 'bottom' + let p = '5new' + else + let p = 'vnew' + endif + execute 'belowright '.p.' +setl\ buftype=nofile ' + setl buftype=nofile + setl winfixheight + setl norelativenumber + setl nonumber + setl bufhidden=wipe + let cmd = get(a:opts, 'cmd', '') + let autoclose = get(a:opts, 'autoclose', 1) + if empty(cmd) + throw 'command required!' + endif + let cwd = get(a:opts, 'cwd', getcwd()) + let keepfocus = get(a:opts, 'keepfocus', 0) + let bufnr = bufnr('%') + let Callback = get(a:opts, 'Callback', v:null) + + function! s:OnExit(status) closure + let content = join(getbufline(bufnr, 1, '$'), "\n") + if a:status == 0 && autoclose == 1 + execute 'silent! bd! '.bufnr + endif + if !empty(Callback) + call call(Callback, [a:status, bufnr, content]) + endif + endfunction + + if has('nvim') + call termopen(cmd, { + \ 'cwd': cwd, + \ 'on_exit': {job, status -> s:OnExit(status)}, + \}) + else + if s:is_win + let cmd = 'cmd.exe /C "'.cmd.'"' + endif + call term_start(cmd, { + \ 'cwd': cwd, + \ 'exit_cb': {job, status -> s:OnExit(status)}, + \ 'curwin': 1, + \}) + endif + if keepfocus + wincmd p + endif + return bufnr +endfunction + +" run command in terminal +function! coc#util#run_terminal(opts, cb) + let cmd = get(a:opts, 'cmd', '') + if empty(cmd) + return a:cb('command required for terminal') + endif + let opts = { + \ 'cmd': cmd, + \ 'cwd': get(a:opts, 'cwd', getcwd()), + \ 'keepfocus': get(a:opts, 'keepfocus', 0), + \ 'Callback': {status, bufnr, content -> a:cb(v:null, {'success': status == 0 ? v:true : v:false, 'bufnr': bufnr, 'content': content})} + \} + call coc#util#open_terminal(opts) +endfunction + +function! coc#util#getpid() + if !has('win32unix') + return getpid() + endif + let cmd = 'cat /proc/' . getpid() . '/winpid' + return substitute(system(cmd), '\v\n', '', 'gi') +endfunction + +function! coc#util#vim_info() + return { + \ 'apiversion': s:vim_api_version, + \ 'mode': mode(), + \ 'floating': has('nvim') && exists('*nvim_open_win') ? v:true : v:false, + \ 'extensionRoot': coc#util#extension_root(), + \ 'globalExtensions': get(g:, 'coc_global_extensions', []), + \ 'config': get(g:, 'coc_user_config', {}), + \ 'pid': coc#util#getpid(), + \ 'columns': &columns, + \ 'lines': &lines, + \ 'cmdheight': &cmdheight, + \ 'filetypeMap': get(g:, 'coc_filetype_map', {}), + \ 'version': coc#util#version(), + \ 'completeOpt': &completeopt, + \ 'pumevent': exists('##MenuPopupChanged') || exists('##CompleteChanged'), + \ 'isVim': has('nvim') ? v:false : v:true, + \ 'isCygwin': has('win32unix') ? v:true : v:false, + \ 'isMacvim': has('gui_macvim') ? v:true : v:false, + \ 'isiTerm': $TERM_PROGRAM ==# "iTerm.app", + \ 'colorscheme': get(g:, 'colors_name', ''), + \ 'workspaceFolders': get(g:, 'WorkspaceFolders', v:null), + \ 'background': &background, + \ 'runtimepath': &runtimepath, + \ 'locationlist': get(g:,'coc_enable_locationlist', 1), + \ 'progpath': v:progpath, + \ 'guicursor': &guicursor, + \ 'vimCommands': get(g:, 'coc_vim_commands', []), + \ 'sign': exists('*sign_place') && exists('*sign_unplace'), + \ 'textprop': has('textprop') && has('patch-8.1.1719') && !has('nvim') ? v:true : v:false, + \ 'dialog': has('nvim-0.4.0') || has('patch-8.2.0750') ? v:true : v:false, + \ 'disabledSources': get(g:, 'coc_sources_disable_map', {}), + \} +endfunction + +function! coc#util#highlight_options() + return { + \ 'colorscheme': get(g:, 'colors_name', ''), + \ 'background': &background, + \ 'runtimepath': &runtimepath, + \} +endfunction + +function! coc#util#set_lines(bufnr, replacement, start, end) abort + if !s:is_vim + call nvim_buf_set_lines(a:bufnr, a:start, a:end, 0, a:replacement) + else + call coc#api#notify('buf_set_lines', [a:bufnr, a:start, a:end, 0, a:replacement]) + endif + return { + \ 'lines': getbufline(a:bufnr, 1, '$'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick') + \ } +endfunction + +function! coc#util#change_lines(bufnr, list) abort + if !bufloaded(a:bufnr) | return v:null | endif + undojoin + if exists('*setbufline') + for [lnum, line] in a:list + call setbufline(a:bufnr, lnum + 1, line) + endfor + elseif a:bufnr == bufnr('%') + for [lnum, line] in a:list + call setline(lnum + 1, line) + endfor + else + let bufnr = bufnr('%') + exe 'noa buffer '.a:bufnr + for [lnum, line] in a:list + call setline(lnum + 1, line) + endfor + exe 'noa buffer '.bufnr + endif + return { + \ 'lines': getbufline(a:bufnr, 1, '$'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick') + \ } +endfunction + + +" used by vim +function! coc#util#get_buf_lines(bufnr, changedtick) + if !bufloaded(a:bufnr) | return '' | endif + let changedtick = getbufvar(a:bufnr, 'changedtick') + if changedtick == a:changedtick + return v:null + endif + return { + \ 'lines': getbufline(a:bufnr, 1, '$'), + \ 'changedtick': getbufvar(a:bufnr, 'changedtick') + \ } +endfunction + +" used for TextChangedI with InsertCharPre +function! coc#util#get_changeinfo() + return { + \ 'lnum': line('.'), + \ 'line': getline('.'), + \ 'changedtick': b:changedtick, + \} +endfunction + +" show diff of current buffer +function! coc#util#diff_content(lines) abort + let tmpfile = tempname() + setl foldenable + call writefile(a:lines, tmpfile) + let ft = &filetype + diffthis + execute 'vs '.tmpfile + if !empty(ft) + execute 'setf ' . ft + endif + diffthis + setl foldenable +endfunction + +function! coc#util#clear_signs() + let buflist = filter(range(1, bufnr('$')), 'buflisted(v:val)') + for b in buflist + let signIds = [] + let lines = split(execute('sign place buffer='.b), "\n") + for line in lines + let ms = matchlist(line, 'id=\(\d\+\)\s\+name=Coc') + if len(ms) > 0 + call add(signIds, ms[1]) + endif + endfor + call coc#util#unplace_signs(b, signIds) + endfor +endfunction + +function! coc#util#open_url(url) + if has('mac') && executable('open') + call system('open '.a:url) + return + endif + if executable('xdg-open') + call system('xdg-open '.a:url) + return + endif + call system('cmd /c start "" /b '. substitute(a:url, '&', '^&', 'g')) + if v:shell_error + echohl Error | echom 'Failed to open '.a:url | echohl None + return + endif +endfunction + +function! coc#util#install() abort + let yarncmd = get(g:, 'coc_install_yarn_cmd', executable('yarnpkg') ? 'yarnpkg' : 'yarn') + call coc#util#open_terminal({ + \ 'cwd': s:root, + \ 'cmd': yarncmd.' install --frozen-lockfile --ignore-engines', + \ 'autoclose': 0, + \ }) +endfunction + +function! coc#util#do_complete(name, opt, cb) abort + let handler = 'coc#source#'.a:name.'#complete' + let l:Cb = {res -> a:cb(v:null, res)} + let args = [a:opt, l:Cb] + call call(handler, args) +endfunction + +function! coc#util#extension_root() abort + if get(g:, 'coc_node_env', '') ==# 'test' + return s:root.'/src/__tests__/extensions' + endif + if !empty(get(g:, 'coc_extension_root', '')) + echohl Error | echon 'g:coc_extension_root not used any more, use g:coc_data_home instead' | echohl None + endif + return coc#util#get_data_home().'/extensions' +endfunction + +function! coc#util#update_extensions(...) abort + let async = get(a:, 1, 0) + if async + call coc#rpc#notify('updateExtensions', []) + else + call coc#rpc#request('updateExtensions', [v:true]) + endif +endfunction + +function! coc#util#install_extension(args) abort + let names = filter(copy(a:args), 'v:val !~# "^-"') + let isRequest = index(a:args, '-sync') != -1 + if isRequest + call coc#rpc#request('installExtensions', names) + else + call coc#rpc#notify('installExtensions', names) + endif +endfunction + +function! coc#util#do_autocmd(name) abort + if exists('#User#'.a:name) + exe 'doautocmd User '.a:name + endif +endfunction + +function! coc#util#rebuild() + let dir = coc#util#extension_root() + if !isdirectory(dir) | return | endif + call coc#util#open_terminal({ + \ 'cwd': dir, + \ 'cmd': 'npm rebuild', + \ 'keepfocus': 1, + \}) +endfunction + +" content of first echo line +function! coc#util#echo_line() + let str = '' + let line = &lines - (&cmdheight - 1) + for i in range(1, &columns - 1) + let nr = screenchar(line, i) + let str = str . nr2char(nr) + endfor + return str +endfunction + +" [r, g, b] ['255', '255', '255'] +" return ['65535', '65535', '65535'] or return v:false to cancel +function! coc#util#pick_color(default_color) + if has('mac') + let default_color = map(a:default_color, {idx, val -> str2nr(val) * 65535 / 255 }) + " This is the AppleScript magic: + let s:ascrpt = ['-e "tell application \"' . s:app . '\""', + \ '-e "' . s:activate . '"', + \ "-e \"set AppleScript's text item delimiters to {\\\",\\\"}\"", + \ '-e "set theColor to (choose color default color {' . default_color[0] . ", " . default_color[1] . ", " . default_color[2] . '}) as text"', + \ '-e "' . s:quit . '"', + \ '-e "end tell"', + \ '-e "return theColor"'] + let res = trim(system("osascript " . join(s:ascrpt, ' ') . " 2>/dev/null")) + if empty(res) + return v:false + else + return split(trim(res), ',') + endif + endif + + let hex_color = printf('#%02x%02x%02x', a:default_color[0], a:default_color[1], a:default_color[2]) + + if has('unix') + if executable('zenity') + let res = trim(system('zenity --title="Select a color" --color-selection --color="' . hex_color . '" 2> /dev/null')) + if empty(res) + return v:false + else + " res format is rgb(255,255,255) + return map(split(res[4:-2], ','), {idx, val -> string(str2nr(trim(val)) * 65535 / 255)}) + endif + endif + endif + + let rgb = v:false + if !has('python') + echohl Error | echom 'python support required, checkout :echo has(''python'')' | echohl None + return + endif + try + execute 'py import gtk' + catch /.*/ + echohl Error | echom 'python gtk module not found' | echohl None + return + endtry +python << endpython + +import vim +import gtk, sys + +# message strings +wnd_title_insert = "Insert a color" + +csd = gtk.ColorSelectionDialog(wnd_title_insert) +cs = csd.colorsel + +cs.set_current_color(gtk.gdk.color_parse(vim.eval("hex_color"))) + +cs.set_current_alpha(65535) +cs.set_has_opacity_control(False) +# cs.set_has_palette(int(vim.eval("s:display_palette"))) + +if csd.run()==gtk.RESPONSE_OK: + c = cs.get_current_color() + s = [str(int(c.red)),',',str(int(c.green)),',',str(int(c.blue))] + thecolor = ''.join(s) + vim.command(":let rgb = split('%s',',')" % thecolor) + +csd.destroy() + +endpython + return rgb +endfunction + +function! coc#util#iterm_open(dir) + return s:osascript( + \ 'if application "iTerm2" is not running', + \ 'error', + \ 'end if') && s:osascript( + \ 'tell application "iTerm2"', + \ 'tell current window', + \ 'create tab with default profile', + \ 'tell current session', + \ 'write text "cd ' . a:dir . '"', + \ 'write text "clear"', + \ 'activate', + \ 'end tell', + \ 'end tell', + \ 'end tell') +endfunction + +function! s:osascript(...) abort + let args = join(map(copy(a:000), '" -e ".shellescape(v:val)'), '') + call s:system('osascript'. args) + return !v:shell_error +endfunction + +function! s:system(cmd) + let output = system(a:cmd) + if v:shell_error && output !=# "" + echohl Error | echom output | echohl None + return + endif + return output +endfunction + +function! coc#util#set_buf_var(bufnr, name, val) abort + if !bufloaded(a:bufnr) | return | endif + call setbufvar(a:bufnr, a:name, a:val) +endfunction + +function! coc#util#unmap(bufnr, keys) abort + if bufnr('%') == a:bufnr + for key in a:keys + exe 'silent! nunmap '.key + endfor + endif +endfunction + +function! coc#util#open_files(files) + let bufnrs = [] + " added on latest vim8 + if exists('*bufadd') && exists('*bufload') + for file in a:files + let file = fnamemodify(file, ':.') + if bufloaded(file) + call add(bufnrs, bufnr(file)) + else + let bufnr = bufadd(file) + call bufload(file) + call add(bufnrs, bufnr) + call setbufvar(bufnr, '&buflisted', 1) + endif + endfor + else + noa keepalt 1new +setl\ bufhidden=wipe + for file in a:files + let file = fnamemodify(file, ':.') + execute 'noa edit +setl\ bufhidden=hide '.fnameescape(file) + if &filetype ==# '' + filetype detect + endif + call add(bufnrs, bufnr('%')) + endfor + noa close + endif + doautocmd BufEnter + return bufnrs +endfunction + +function! coc#util#refactor_foldlevel(lnum) abort + if a:lnum <= 2 | return 0 | endif + let line = getline(a:lnum) + if line =~# '^\%u3000\s*$' | return 0 | endif + return 1 +endfunction + +function! coc#util#get_pretext() abort + return strpart(getline('.'), 0, col('.') - 1) +endfunction + +function! coc#util#refactor_fold_text(lnum) abort + let range = '' + let info = get(b:line_infos, a:lnum, []) + if !empty(info) + let range = info[0].':'.info[1] + endif + return trim(getline(a:lnum)[3:]).' '.range +endfunction + +function! coc#util#set_buf_lines(bufnr, lines) abort + let res = setbufline(a:bufnr, 1, a:lines) + if res == 0 + silent call deletebufline(a:bufnr, len(a:lines) + 1, '$') + endif +endfunction + +" get tabsize & expandtab option +function! coc#util#get_format_opts(bufnr) abort + if a:bufnr && bufloaded(a:bufnr) + let tabsize = getbufvar(a:bufnr, '&shiftwidth') + if tabsize == 0 + let tabsize = getbufvar(a:bufnr, '&tabstop') + endif + return [tabsize, getbufvar(a:bufnr, '&expandtab')] + endif + let tabsize = &shiftwidth == 0 ? &tabstop : &shiftwidth + return [tabsize, &expandtab] +endfunction + +function! coc#util#clearmatches(ids, ...) + let winid = get(a:, 1, win_getid()) + call coc#highlight#clear_matches(winid, a:ids) +endfunction + +" Character offset of current cursor +function! coc#util#get_offset() abort + let offset = 0 + let lnum = line('.') + for i in range(1, lnum) + if i == lnum + let offset += strchars(strpart(getline('.'), 0, col('.')-1)) + else + let offset += strchars(getline(i)) + 1 + endif + endfor + return offset +endfunction + +" Make sure window exists +function! coc#util#win_gotoid(winid) abort + noa let res = win_gotoid(a:winid) + if res == 0 + throw 'Invalid window number' + endif +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/autoload/health/coc.vim b/etc/soft/nvim/+plugins/coc.nvim/autoload/health/coc.vim new file mode 100644 index 0000000..8daa6b8 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/autoload/health/coc.vim @@ -0,0 +1,86 @@ +scriptencoding utf-8 +let s:root = expand(':h:h:h') + +function! s:checkEnvironment() abort + let valid = 1 + if !has('nvim-0.3.0') + let valid = 0 + call health#report_error('Neovim version not satisfied, 0.3.0 and above required') + endif + let node = get(g:, 'coc_node_path', $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH) + if !executable(node) + let valid = 0 + call health#report_error('Executable node.js not found, install node.js from http://nodejs.org/') + endif + let output = system(node . ' --version') + if v:shell_error && output !=# "" + let valid = 0 + call health#report_error(output) + endif + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) + let valid = 0 + call health#report_error('Unable to detect version of node, make sure your node executable is http://nodejs.org/') + elseif str2nr(ms[1]) < 12 || (str2nr(ms[1]) == 12 && str2nr(ms[2]) < 12) + let valid = 0 + call health#report_warn('Node.js version '.trim(output).' < 12.12.0, please upgrade node.js') + endif + if valid + call health#report_ok('Environment check passed') + endif + if has('pythonx') + try + silent pyx print("") + catch /.*/ + call health#report_warn('pyx command not work, some extensions may fail to work, checkout ":h pythonx"') + endtry + endif + return valid +endfunction + +function! s:checkCommand() + let file = s:root.'/build/index.js' + if filereadable(file) + call health#report_ok('Javascript bundle build/index.js found') + else + call health#report_error('Javascript entry not found, please compile coc.nvim by esbuild.') + endif +endfunction + +function! s:checkAutocmd() + let cmds = ['CursorHold', 'CursorHoldI', 'CursorMovedI', 'InsertCharPre', 'TextChangedI'] + for cmd in cmds + let lines = split(execute('verbose autocmd '.cmd), '\n') + let n = 0 + for line in lines + if line =~# 'CocAction(' && n < len(lines) - 1 + let next = lines[n + 1] + let ms = matchlist(next, 'Last set from \(.*\)') + if !empty(ms) + call health#report_warn('Use CocActionAsync to replace CocAction for better performance on '.cmd) + call health#report_warn('Checkout the file '.ms[1]) + endif + endif + let n = n + 1 + endfor + endfor +endfunction + +function! s:checkInitailize() abort + if coc#client#is_running('coc') + call health#report_ok('Service started') + return 1 + endif + call health#report_error('service could not be initialized', [ + \ 'Use command ":messages" to get error messages.', + \ 'Open a issue at https://github.com/neoclide/coc.nvim/issues for feedback.' + \]) + return 0 +endfunction + +function! health#coc#check() abort + call s:checkEnvironment() + call s:checkCommand() + call s:checkInitailize() + call s:checkAutocmd() +endfunction diff --git a/etc/soft/nvim/+plugins/coc.nvim/build/index.js b/etc/soft/nvim/+plugins/coc.nvim/build/index.js new file mode 100644 index 0000000..0cb2e5d --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/build/index.js @@ -0,0 +1,335 @@ +(function () { + var v = process.version + var parts = v.slice(1).split('.') + var major = parseInt(parts[0], 10) + var minor = parseInt(parts[1], 10) + if (major < 12 || (major == 12 && minor < 12)) { + throw new Error('coc.nvim requires node >= v12.12.0, current version: ' + v) + } +})(); +var NZ=Object.create;var Bl=Object.defineProperty,$Z=Object.defineProperties,zR=Object.getOwnPropertyDescriptor,BZ=Object.getOwnPropertyDescriptors,jZ=Object.getOwnPropertyNames,GR=Object.getOwnPropertySymbols,UZ=Object.getPrototypeOf,VR=Object.prototype.hasOwnProperty,WZ=Object.prototype.propertyIsEnumerable;var KR=(i,e,t)=>e in i?Bl(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,mt=(i,e)=>{for(var t in e||(e={}))VR.call(e,t)&&KR(i,t,e[t]);if(GR)for(var t of GR(e))WZ.call(e,t)&&KR(i,t,e[t]);return i},yf=(i,e)=>$Z(i,BZ(e)),JR=i=>Bl(i,"__esModule",{value:!0});var I=(i,e)=>()=>(i&&(e=i(i=0)),e);var y=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),os=(i,e)=>{JR(i);for(var t in e)Bl(i,t,{get:e[t],enumerable:!0})},HZ=(i,e,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of jZ(e))!VR.call(i,r)&&r!=="default"&&Bl(i,r,{get:()=>e[r],enumerable:!(t=zR(e,r))||t.enumerable});return i},E=i=>HZ(JR(Bl(i!=null?NZ(UZ(i)):{},"default",i&&i.__esModule&&"default"in i?{get:()=>i.default,enumerable:!0}:{value:i,enumerable:!0})),i),wD=(i,e,t,r)=>{for(var n=r>1?void 0:r?zR(e,t):e,o=i.length-1,s;o>=0;o--)(s=i[o])&&(n=(r?s(e,t,n):s(n))||n);return r&&n&&Bl(e,t,n),n};var XR=y((k_e,YR)=>{var jl=1e3,Ul=jl*60,Wl=Ul*60,ca=Wl*24,zZ=ca*7,GZ=ca*365.25;YR.exports=function(i,e){e=e||{};var t=typeof i;if(t==="string"&&i.length>0)return VZ(i);if(t==="number"&&isFinite(i))return e.long?JZ(i):KZ(i);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(i))};function VZ(i){if(i=String(i),!(i.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(!!e){var t=parseFloat(e[1]),r=(e[2]||"ms").toLowerCase();switch(r){case"years":case"year":case"yrs":case"yr":case"y":return t*GZ;case"weeks":case"week":case"w":return t*zZ;case"days":case"day":case"d":return t*ca;case"hours":case"hour":case"hrs":case"hr":case"h":return t*Wl;case"minutes":case"minute":case"mins":case"min":case"m":return t*Ul;case"seconds":case"second":case"secs":case"sec":case"s":return t*jl;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return t;default:return}}}}function KZ(i){var e=Math.abs(i);return e>=ca?Math.round(i/ca)+"d":e>=Wl?Math.round(i/Wl)+"h":e>=Ul?Math.round(i/Ul)+"m":e>=jl?Math.round(i/jl)+"s":i+"ms"}function JZ(i){var e=Math.abs(i);return e>=ca?Xh(i,e,ca,"day"):e>=Wl?Xh(i,e,Wl,"hour"):e>=Ul?Xh(i,e,Ul,"minute"):e>=jl?Xh(i,e,jl,"second"):i+" ms"}function Xh(i,e,t,r){var n=e>=t*1.5;return Math.round(i/t)+" "+r+(n?"s":"")}});var DD=y((I_e,ZR)=>{function YZ(i){t.debug=t,t.default=t,t.coerce=u,t.disable=s,t.enable=o,t.enabled=a,t.humanize=XR(),Object.keys(i).forEach(c=>{t[c]=i[c]}),t.instances=[],t.names=[],t.skips=[],t.formatters={};function e(c){let f=0;for(let p=0;p{if(x==="%%")return x;v++;let P=t.formatters[S];if(typeof P=="function"){let A=d[v];x=P.call(h,A),d.splice(v,1),v--}return x}),t.formatArgs.call(h,d),(h.log||t.log).apply(h,d)}return p.namespace=c,p.enabled=t.enabled(c),p.useColors=t.useColors(),p.color=e(c),p.destroy=r,p.extend=n,typeof t.init=="function"&&t.init(p),t.instances.push(p),p}function r(){let c=t.instances.indexOf(this);return c!==-1?(t.instances.splice(c,1),!0):!1}function n(c,f){let p=t(this.namespace+(typeof f=="undefined"?":":f)+c);return p.log=this.log,p}function o(c){t.save(c),t.names=[],t.skips=[];let f,p=(typeof c=="string"?c:"").split(/[\s,]+/),d=p.length;for(f=0;f"-"+f)].join(",");return t.enable(""),c}function a(c){if(c[c.length-1]==="*")return!0;let f,p;for(f=0,p=t.skips.length;f{qi.log=QZ;qi.formatArgs=ZZ;qi.save=eQ;qi.load=tQ;qi.useColors=XZ;qi.storage=rQ();qi.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"];function XZ(){return typeof window!="undefined"&&window.process&&(window.process.type==="renderer"||window.process.__nwjs)?!0:typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)?!1:typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}function ZZ(i){if(i[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+i[0]+(this.useColors?"%c ":" ")+"+"+Zh.exports.humanize(this.diff),!this.useColors)return;let e="color: "+this.color;i.splice(1,0,e,"color: inherit");let t=0,r=0;i[0].replace(/%[a-zA-Z%]/g,n=>{n!=="%%"&&(t++,n==="%c"&&(r=t))}),i.splice(r,0,e)}function QZ(...i){return typeof console=="object"&&console.log&&console.log(...i)}function eQ(i){try{i?qi.storage.setItem("debug",i):qi.storage.removeItem("debug")}catch(e){}}function tQ(){let i;try{i=qi.storage.getItem("debug")}catch(e){}return!i&&typeof process!="undefined"&&"env"in process&&(i=process.env.DEBUG),i}function rQ(){try{return localStorage}catch(i){}}Zh.exports=DD()(qi);var{formatters:iQ}=Zh.exports;iQ.j=function(i){try{return JSON.stringify(i)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}});var tk=y((F_e,ek)=>{"use strict";ek.exports=(i,e=process.argv)=>{let t=i.startsWith("-")?"":i.length===1?"-":"--",r=e.indexOf(t+i),n=e.indexOf("--");return r!==-1&&(n===-1||r{"use strict";var nQ=require("os"),rk=require("tty"),Ni=tk(),{env:Zt}=process,ss;Ni("no-color")||Ni("no-colors")||Ni("color=false")||Ni("color=never")?ss=0:(Ni("color")||Ni("colors")||Ni("color=true")||Ni("color=always"))&&(ss=1);"FORCE_COLOR"in Zt&&(Zt.FORCE_COLOR==="true"?ss=1:Zt.FORCE_COLOR==="false"?ss=0:ss=Zt.FORCE_COLOR.length===0?1:Math.min(parseInt(Zt.FORCE_COLOR,10),3));function xD(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function SD(i,e){if(ss===0)return 0;if(Ni("color=16m")||Ni("color=full")||Ni("color=truecolor"))return 3;if(Ni("color=256"))return 2;if(i&&!e&&ss===void 0)return 0;let t=ss||0;if(Zt.TERM==="dumb")return t;if(process.platform==="win32"){let r=nQ.release().split(".");return Number(r[0])>=10&&Number(r[2])>=10586?Number(r[2])>=14931?3:2:1}if("CI"in Zt)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(r=>r in Zt)||Zt.CI_NAME==="codeship"?1:t;if("TEAMCITY_VERSION"in Zt)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Zt.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in Zt)return 1;if(Zt.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Zt){let r=parseInt((Zt.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Zt.TERM_PROGRAM){case"iTerm.app":return r>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Zt.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Zt.TERM)||"COLORTERM"in Zt?1:t}function oQ(i){let e=SD(i,i&&i.isTTY);return xD(e)}ik.exports={supportsColor:oQ,stdout:xD(SD(!0,rk.isatty(1))),stderr:xD(SD(!0,rk.isatty(2)))}});var sk=y((xr,Qh)=>{var sQ=require("tty"),CD=require("util");xr.init=dQ;xr.log=cQ;xr.formatArgs=lQ;xr.save=fQ;xr.load=pQ;xr.useColors=aQ;xr.colors=[6,2,3,4,5,1];try{let i=nk();i&&(i.stderr||i).level>=2&&(xr.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(i){}xr.inspectOpts=Object.keys(process.env).filter(i=>/^debug_/i.test(i)).reduce((i,e)=>{let t=e.substring(6).toLowerCase().replace(/_([a-z])/g,(n,o)=>o.toUpperCase()),r=process.env[e];return/^(yes|on|true|enabled)$/i.test(r)?r=!0:/^(no|off|false|disabled)$/i.test(r)?r=!1:r==="null"?r=null:r=Number(r),i[t]=r,i},{});function aQ(){return"colors"in xr.inspectOpts?Boolean(xr.inspectOpts.colors):sQ.isatty(process.stderr.fd)}function lQ(i){let{namespace:e,useColors:t}=this;if(t){let r=this.color,n="[3"+(r<8?r:"8;5;"+r),o=` ${n};1m${e} `;i[0]=o+i[0].split(` +`).join(` +`+o),i.push(n+"m+"+Qh.exports.humanize(this.diff)+"")}else i[0]=uQ()+e+" "+i[0]}function uQ(){return xr.inspectOpts.hideDate?"":new Date().toISOString()+" "}function cQ(...i){return process.stderr.write(CD.format(...i)+` +`)}function fQ(i){i?process.env.DEBUG=i:delete process.env.DEBUG}function pQ(){return process.env.DEBUG}function dQ(i){i.inspectOpts={};let e=Object.keys(xr.inspectOpts);for(let t=0;t{typeof process=="undefined"||process.type==="renderer"||process.browser===!0||process.__nwjs?ED.exports=QR():ED.exports=sk()});var lk=y((L_e,ak)=>{"use strict";ak.exports=hQ;function hQ(i){if(i=i||{},i.circles)return mQ(i);return i.proto?r:t;function e(n,o){for(var s=Object.keys(n),a=new Array(s.length),l=0;l{var gQ=require("util"),fa=jt()("log4js:configuration"),em=[],tm=[],uk=i=>!i,ck=i=>i&&typeof i=="object"&&!Array.isArray(i),vQ=i=>/^[A-Za-z][A-Za-z0-9_]*$/g.test(i),yQ=i=>i&&typeof i=="number"&&Number.isInteger(i),bQ=i=>{tm.push(i),fa(`Added listener, now ${tm.length} listeners`)},wQ=i=>{em.push(i),fa(`Added pre-processing listener, now ${em.length} listeners`)},fk=(i,e,t)=>{(Array.isArray(e)?e:[e]).forEach(n=>{if(n)throw new Error(`Problem with log4js configuration: (${gQ.inspect(i,{depth:5})}) - ${t}`)})},DQ=i=>{fa("New configuration to be validated: ",i),fk(i,uk(ck(i)),"must be an object."),fa(`Calling pre-processing listeners (${em.length})`),em.forEach(e=>e(i)),fa("Configuration pre-processing finished."),fa(`Calling configuration listeners (${tm.length})`),tm.forEach(e=>e(i)),fa("Configuration finished.")};pk.exports={configure:DQ,addListener:bQ,addPreProcessingListener:wQ,throwExceptionIf:fk,anObject:ck,anInteger:yQ,validIdentifier:vQ,not:uk}});var mk=y((q_e,$i)=>{"use strict";function dk(i,e){for(var t=i.toString();t.length-1?n:o,a=da(e.getHours()),l=da(e.getMinutes()),u=da(e.getSeconds()),c=dk(e.getMilliseconds(),3),f=xQ(e.getTimezoneOffset()),p=i.replace(/dd/g,t).replace(/MM/g,r).replace(/y{1,4}/g,s).replace(/hh/g,a).replace(/mm/g,l).replace(/ss/g,u).replace(/SSS/g,c).replace(/O/g,f);return p}function ha(i,e,t,r){i["set"+(r?"":"UTC")+e](t)}function SQ(i,e,t){var r=i.indexOf("O")<0,n=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(c,f){ha(c,"FullYear",f,r)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(c,f){ha(c,"Month",f-1,r)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(c,f){ha(c,"Date",f,r)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(c,f){ha(c,"Hours",f,r)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(c,f){ha(c,"Minutes",f,r)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(c,f){ha(c,"Seconds",f,r)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(c,f){ha(c,"Milliseconds",f,r)}},{pattern:/O/,regexp:"[+-]\\d{3,4}|Z",fn:function(c,f){f==="Z"&&(f=0);var p=Math.abs(f),d=(f>0?-1:1)*(p%100+Math.floor(p/100)*60);c.setUTCMinutes(c.getUTCMinutes()+d)}}],o=n.reduce(function(c,f){return f.pattern.test(c.regexp)?(f.index=c.regexp.match(f.pattern).index,c.regexp=c.regexp.replace(f.pattern,"("+f.regexp+")")):f.index=-1,c},{regexp:i,index:[]}),s=n.filter(function(c){return c.index>-1});s.sort(function(c,f){return c.index-f.index});var a=new RegExp(o.regexp),l=a.exec(e);if(l){var u=t||$i.exports.now();return s.forEach(function(c,f){c.fn(u,l[f+1])}),u}throw new Error("String '"+e+"' could not be parsed as '"+i+"'")}function CQ(i,e,t){if(!i)throw new Error("pattern must be supplied");return SQ(i,e,t)}function EQ(){return new Date}$i.exports=hk;$i.exports.asString=hk;$i.exports.parse=CQ;$i.exports.now=EQ;$i.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS";$i.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO";$i.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS";$i.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"});var TD=y((N_e,_k)=>{var as=mk(),gk=require("os"),bf=require("util"),vk=require("path"),yk={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[91,39],yellow:[33,39]};function bk(i){return i?`[${yk[i][0]}m`:""}function wk(i){return i?`[${yk[i][1]}m`:""}function _Q(i,e){return bk(e)+i+wk(e)}function Dk(i,e){return _Q(bf.format("[%s] [%s] %s - ",as.asString(i.startTime),i.level.toString(),i.categoryName),e)}function xk(i){return Dk(i)+bf.format(...i.data)}function rm(i){return Dk(i,i.level.colour)+bf.format(...i.data)}function Sk(i){return bf.format(...i.data)}function Ck(i){return i.data[0]}function Ek(i,e){let t="%r %p %c - %m%n",r=/%(-?[0-9]+)?(\.?-?[0-9]+)?([[\]cdhmnprzxXyflos%])(\{([^}]+)\})?|([^%]+)/;i=i||t;function n(F,O){let U=F.categoryName;if(O){let X=parseInt(O,10),de=U.split(".");XX&&(U=de.slice(-X).join(vk.sep))}return U}function x(F){return F.lineNumber?`${F.lineNumber}`:""}function S(F){return F.columnNumber?`${F.columnNumber}`:""}function P(F){return F.callStack||""}let A={c:n,d:o,h:s,m:a,n:l,p:u,r:c,"[":f,"]":p,y:m,z:h,"%":d,x:w,X:v,f:D,l:x,o:S,s:P};function R(F,O,U){return A[F](O,U)}function M(F,O){let U;return F?(U=parseInt(F.substr(1),10),U>0?O.slice(0,U):O.slice(U)):O}function L(F,O){let U;if(F)if(F.charAt(0)==="-")for(U=parseInt(F.substr(1),10);O.length{var Ut=pa(),Tk=["white","grey","black","blue","cyan","green","magenta","red","yellow"],Qt=class{constructor(e,t,r){this.level=e,this.levelStr=t,this.colour=r}toString(){return this.levelStr}static getLevel(e,t){return e?e instanceof Qt?e:(e instanceof Object&&e.levelStr&&(e=e.levelStr),Qt[e.toString().toUpperCase()]||t):t}static addLevels(e){e&&(Object.keys(e).forEach(r=>{let n=r.toUpperCase();Qt[n]=new Qt(e[r].value,n,e[r].colour);let o=Qt.levels.findIndex(s=>s.levelStr===n);o>-1?Qt.levels[o]=Qt[n]:Qt.levels.push(Qt[n])}),Qt.levels.sort((r,n)=>r.level-n.level))}isLessThanOrEqualTo(e){return typeof e=="string"&&(e=Qt.getLevel(e)),this.level<=e.level}isGreaterThanOrEqualTo(e){return typeof e=="string"&&(e=Qt.getLevel(e)),this.level>=e.level}isEqualTo(e){return typeof e=="string"&&(e=Qt.getLevel(e)),this.level===e.level}};Qt.levels=[];Qt.addLevels({ALL:{value:Number.MIN_VALUE,colour:"grey"},TRACE:{value:5e3,colour:"blue"},DEBUG:{value:1e4,colour:"cyan"},INFO:{value:2e4,colour:"green"},WARN:{value:3e4,colour:"yellow"},ERROR:{value:4e4,colour:"red"},FATAL:{value:5e4,colour:"magenta"},MARK:{value:9007199254740992,colour:"grey"},OFF:{value:Number.MAX_VALUE,colour:"grey"}});Ut.addListener(i=>{let e=i.levels;e&&(Ut.throwExceptionIf(i,Ut.not(Ut.anObject(e)),"levels must be an object"),Object.keys(e).forEach(r=>{Ut.throwExceptionIf(i,Ut.not(Ut.validIdentifier(r)),`level name "${r}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`),Ut.throwExceptionIf(i,Ut.not(Ut.anObject(e[r])),`level "${r}" must be an object`),Ut.throwExceptionIf(i,Ut.not(e[r].value),`level "${r}" must have a 'value' property`),Ut.throwExceptionIf(i,Ut.not(Ut.anInteger(e[r].value)),`level "${r}".value must have an integer value`),Ut.throwExceptionIf(i,Ut.not(e[r].colour),`level "${r}" must have a 'colour' property`),Ut.throwExceptionIf(i,Ut.not(Tk.indexOf(e[r].colour)>-1),`level "${r}".colour must be one of ${Tk.join(", ")}`)}))});Ut.addListener(i=>{Qt.addLevels(i.levels)});Pk.exports=Qt});var Rk={};os(Rk,{default:()=>TQ,parse:()=>PQ,stringify:()=>RQ});var PD,TQ,PQ,RQ,kk=I(()=>{PD=function(i,e){var t={parse:function(u,c){var f=JSON.parse(u,a).map(s),p=f[0],d=c||r,h=typeof p=="object"&&p?n(f,new Set,p,d):p;return d.call({"":h},"",h)},stringify:function(u,c,f){for(var p,d=new Map,h=[],m=[],w=c&&typeof c==typeof h?function(x,S){if(x===""||-1{var Ik=(kk(),Rk),Fk=ma(),wf=class{constructor(e,t,r,n,o){this.startTime=new Date,this.categoryName=e,this.data=r,this.level=t,this.context=Object.assign({},n),this.pid=process.pid,o&&(this.functionName=o.functionName,this.fileName=o.fileName,this.lineNumber=o.lineNumber,this.columnNumber=o.columnNumber,this.callStack=o.callStack)}serialise(){let e=this.data.map(t=>(t&&t.message&&t.stack&&(t=Object.assign({message:t.message,stack:t.stack},t)),t));return this.data=e,Ik.stringify(this)}static deserialise(e){let t;try{let r=Ik.parse(e);r.data=r.data.map(n=>{if(n&&n.message&&n.stack){let o=new Error(n);Object.keys(n).forEach(s=>{o[s]=n[s]}),n=o}return n}),t=new wf(r.categoryName,Fk.getLevel(r.level.levelStr),r.data,r.context),t.startTime=new Date(r.startTime),t.pid=r.pid,t.cluster=r.cluster}catch(r){t=new wf("log4js",Fk.ERROR,["Unable to parse log:",e,"because: ",r])}return t}};Ok.exports=wf});var nm=y((j_e,Mk)=>{var Bi=jt()("log4js:clustering"),kQ=RD(),IQ=pa(),Hl=!1,Wn=null;try{Wn=require("cluster")}catch(i){Bi("cluster module not present"),Hl=!0}var kD=[],Df=!1,xf="NODE_APP_INSTANCE",Ak=()=>Df&&process.env[xf]==="0",ID=()=>Hl||Wn.isMaster||Ak(),Lk=i=>{kD.forEach(e=>e(i))},im=(i,e)=>{if(Bi("cluster message received from worker ",i,": ",e),i.topic&&i.data&&(e=i,i=void 0),e&&e.topic&&e.topic==="log4js:message"){Bi("received message: ",e.data);let t=kQ.deserialise(e.data);Lk(t)}};Hl||IQ.addListener(i=>{kD.length=0,{pm2:Df,disableClustering:Hl,pm2InstanceVar:xf="NODE_APP_INSTANCE"}=i,Bi(`clustering disabled ? ${Hl}`),Bi(`cluster.isMaster ? ${Wn&&Wn.isMaster}`),Bi(`pm2 enabled ? ${Df}`),Bi(`pm2InstanceVar = ${xf}`),Bi(`process.env[${xf}] = ${process.env[xf]}`),Df&&process.removeListener("message",im),Wn&&Wn.removeListener&&Wn.removeListener("message",im),Hl||i.disableClustering?Bi("Not listening for cluster messages, because clustering disabled."):Ak()?(Bi("listening for PM2 broadcast messages"),process.on("message",im)):Wn.isMaster?(Bi("listening for cluster messages"),Wn.on("message",im)):Bi("not listening for messages, because we are not a master process")});Mk.exports={onlyOnMaster:(i,e)=>ID()?i():e,isMaster:ID,send:i=>{ID()?Lk(i):(Df||(i.cluster={workerId:Wn.worker.id,worker:process.pid}),process.send({topic:"log4js:message",data:i.serialise()}))},onMessage:i=>{kD.push(i)}}});var Bk=y((U_e,$k)=>{function FQ(i){if(typeof i=="number"&&Number.isInteger(i))return i;let e={K:1024,M:1024*1024,G:1024*1024*1024},t=Object.keys(e),r=i.substr(i.length-1).toLocaleUpperCase(),n=i.substring(0,i.length-1).trim();if(t.indexOf(r)<0||!Number.isInteger(Number(n)))throw Error(`maxLogSize: "${i}" is invalid`);return n*e[r]}function OQ(i,e){let t=Object.assign({},e);return Object.keys(i).forEach(r=>{t[r]&&(t[r]=i[r](e[r]))}),t}function qk(i){return OQ({maxLogSize:FQ},i)}var Nk={file:qk,fileSync:qk};$k.exports.modifyConfig=i=>Nk[i.type]?Nk[i.type](i):i});var Uk=y((W_e,jk)=>{var AQ=console.log.bind(console);function LQ(i,e){return t=>{AQ(i(t,e))}}function MQ(i,e){let t=e.colouredLayout;return i.layout&&(t=e.layout(i.layout.type,i.layout)),LQ(t,i.timezoneOffset)}jk.exports.configure=MQ});var Hk=y(Wk=>{function qQ(i,e){return t=>{process.stdout.write(`${i(t,e)} +`)}}function NQ(i,e){let t=e.colouredLayout;return i.layout&&(t=e.layout(i.layout.type,i.layout)),qQ(t,i.timezoneOffset)}Wk.configure=NQ});var Gk=y((z_e,zk)=>{function $Q(i,e){return t=>{process.stderr.write(`${i(t,e)} +`)}}function BQ(i,e){let t=e.colouredLayout;return i.layout&&(t=e.layout(i.layout.type,i.layout)),$Q(t,i.timezoneOffset)}zk.exports.configure=BQ});var Kk=y((G_e,Vk)=>{function jQ(i,e,t,r){let n=r.getLevel(i),o=r.getLevel(e,r.FATAL);return s=>{let a=s.level;a.isGreaterThanOrEqualTo(n)&&a.isLessThanOrEqualTo(o)&&t(s)}}function UQ(i,e,t,r){let n=t(i.appender);return jQ(i.level,i.maxLevel,n,r)}Vk.exports.configure=UQ});var Xk=y((V_e,Yk)=>{var Jk=jt()("log4js:categoryFilter");function WQ(i,e){return typeof i=="string"&&(i=[i]),t=>{Jk(`Checking ${t.categoryName} against ${i}`),i.indexOf(t.categoryName)===-1&&(Jk("Not excluded, sending to appender"),e(t))}}function HQ(i,e,t){let r=t(i.appender);return WQ(i.exclude,r)}Yk.exports.configure=HQ});var eI=y((K_e,Qk)=>{var Zk=jt()("log4js:noLogFilter");function zQ(i){return i.filter(t=>t!=null&&t!=="")}function GQ(i,e){return t=>{Zk(`Checking data: ${t.data} against filters: ${i}`),typeof i=="string"&&(i=[i]),i=zQ(i);let r=new RegExp(i.join("|"),"i");(i.length===0||t.data.findIndex(n=>r.test(n))<0)&&(Zk("Not excluded, sending to appender"),e(t))}}function VQ(i,e,t){let r=t(i.appender);return GQ(i.exclude,r)}Qk.exports.configure=VQ});var Qr=y(FD=>{"use strict";FD.fromCallback=function(i){return Object.defineProperty(function(){if(typeof arguments[arguments.length-1]=="function")i.apply(this,arguments);else return new Promise((e,t)=>{arguments[arguments.length]=(r,n)=>{if(r)return t(r);e(n)},arguments.length++,i.apply(this,arguments)})},"name",{value:i.name})};FD.fromPromise=function(i){return Object.defineProperty(function(){let e=arguments[arguments.length-1];if(typeof e!="function")return i.apply(this,arguments);i.apply(this,arguments).then(t=>e(null,t),e)},"name",{value:i.name})}});var rI=y((Y_e,tI)=>{var ls=require("constants"),KQ=process.cwd,om=null,JQ=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return om||(om=KQ.call(process)),om};try{process.cwd()}catch(i){}var YQ=process.chdir;process.chdir=function(i){om=null,YQ.call(process,i)};tI.exports=XQ;function XQ(i){ls.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&e(i),i.lutimes||t(i),i.chown=o(i.chown),i.fchown=o(i.fchown),i.lchown=o(i.lchown),i.chmod=r(i.chmod),i.fchmod=r(i.fchmod),i.lchmod=r(i.lchmod),i.chownSync=s(i.chownSync),i.fchownSync=s(i.fchownSync),i.lchownSync=s(i.lchownSync),i.chmodSync=n(i.chmodSync),i.fchmodSync=n(i.fchmodSync),i.lchmodSync=n(i.lchmodSync),i.stat=a(i.stat),i.fstat=a(i.fstat),i.lstat=a(i.lstat),i.statSync=l(i.statSync),i.fstatSync=l(i.fstatSync),i.lstatSync=l(i.lstatSync),i.lchmod||(i.lchmod=function(c,f,p){p&&process.nextTick(p)},i.lchmodSync=function(){}),i.lchown||(i.lchown=function(c,f,p,d){d&&process.nextTick(d)},i.lchownSync=function(){}),JQ==="win32"&&(i.rename=function(c){return function(f,p,d){var h=Date.now(),m=0;c(f,p,function w(v){if(v&&(v.code==="EACCES"||v.code==="EPERM")&&Date.now()-h<6e4){setTimeout(function(){i.stat(p,function(D,x){D&&D.code==="ENOENT"?c(f,p,w):d(v)})},m),m<100&&(m+=10);return}d&&d(v)})}}(i.rename)),i.read=function(c){function f(p,d,h,m,w,v){var D;if(v&&typeof v=="function"){var x=0;D=function(S,P,A){if(S&&S.code==="EAGAIN"&&x<10)return x++,c.call(i,p,d,h,m,w,D);v.apply(this,arguments)}}return c.call(i,p,d,h,m,w,D)}return f.__proto__=c,f}(i.read),i.readSync=function(c){return function(f,p,d,h,m){for(var w=0;;)try{return c.call(i,f,p,d,h,m)}catch(v){if(v.code==="EAGAIN"&&w<10){w++;continue}throw v}}}(i.readSync);function e(c){c.lchmod=function(f,p,d){c.open(f,ls.O_WRONLY|ls.O_SYMLINK,p,function(h,m){if(h){d&&d(h);return}c.fchmod(m,p,function(w){c.close(m,function(v){d&&d(w||v)})})})},c.lchmodSync=function(f,p){var d=c.openSync(f,ls.O_WRONLY|ls.O_SYMLINK,p),h=!0,m;try{m=c.fchmodSync(d,p),h=!1}finally{if(h)try{c.closeSync(d)}catch(w){}else c.closeSync(d)}return m}}function t(c){ls.hasOwnProperty("O_SYMLINK")?(c.lutimes=function(f,p,d,h){c.open(f,ls.O_SYMLINK,function(m,w){if(m){h&&h(m);return}c.futimes(w,p,d,function(v){c.close(w,function(D){h&&h(v||D)})})})},c.lutimesSync=function(f,p,d){var h=c.openSync(f,ls.O_SYMLINK),m,w=!0;try{m=c.futimesSync(h,p,d),w=!1}finally{if(w)try{c.closeSync(h)}catch(v){}else c.closeSync(h)}return m}):(c.lutimes=function(f,p,d,h){h&&process.nextTick(h)},c.lutimesSync=function(){})}function r(c){return c&&function(f,p,d){return c.call(i,f,p,function(h){u(h)&&(h=null),d&&d.apply(this,arguments)})}}function n(c){return c&&function(f,p){try{return c.call(i,f,p)}catch(d){if(!u(d))throw d}}}function o(c){return c&&function(f,p,d,h){return c.call(i,f,p,d,function(m){u(m)&&(m=null),h&&h.apply(this,arguments)})}}function s(c){return c&&function(f,p,d){try{return c.call(i,f,p,d)}catch(h){if(!u(h))throw h}}}function a(c){return c&&function(f,p,d){typeof p=="function"&&(d=p,p=null);function h(m,w){w&&(w.uid<0&&(w.uid+=4294967296),w.gid<0&&(w.gid+=4294967296)),d&&d.apply(this,arguments)}return p?c.call(i,f,p,h):c.call(i,f,h)}}function l(c){return c&&function(f,p){var d=p?c.call(i,f,p):c.call(i,f);return d.uid<0&&(d.uid+=4294967296),d.gid<0&&(d.gid+=4294967296),d}}function u(c){if(!c||c.code==="ENOSYS")return!0;var f=!process.getuid||process.getuid()!==0;return!!(f&&(c.code==="EINVAL"||c.code==="EPERM"))}}});var oI=y((X_e,nI)=>{var iI=require("stream").Stream;nI.exports=ZQ;function ZQ(i){return{ReadStream:e,WriteStream:t};function e(r,n){if(!(this instanceof e))return new e(r,n);iI.call(this);var o=this;this.path=r,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=64*1024,n=n||{};for(var s=Object.keys(n),a=0,l=s.length;athis.end)throw new Error("start must be <= end");this.pos=this.start}if(this.fd!==null){process.nextTick(function(){o._read()});return}i.open(this.path,this.flags,this.mode,function(c,f){if(c){o.emit("error",c),o.readable=!1;return}o.fd=f,o.emit("open",f),o._read()})}function t(r,n){if(!(this instanceof t))return new t(r,n);iI.call(this),this.path=r,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,n=n||{};for(var o=Object.keys(n),s=0,a=o.length;s= zero");this.pos=this.start}this.busy=!1,this._queue=[],this.fd===null&&(this._open=i.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}});var aI=y((Z_e,sI)=>{"use strict";sI.exports=QQ;function QQ(i){if(i===null||typeof i!="object")return i;if(i instanceof Object)var e={__proto__:i.__proto__};else var e=Object.create(null);return Object.getOwnPropertyNames(i).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(i,t))}),e}});var Fe=y((Q_e,AD)=>{var cr=require("fs"),eee=rI(),tee=oI(),ree=aI(),sm=require("util"),vn,am;typeof Symbol=="function"&&typeof Symbol.for=="function"?(vn=Symbol.for("graceful-fs.queue"),am=Symbol.for("graceful-fs.previous")):(vn="___graceful-fs.queue",am="___graceful-fs.previous");function iee(){}function lI(i,e){Object.defineProperty(i,vn,{get:function(){return e}})}var Sf=iee;sm.debuglog?Sf=sm.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Sf=function(){var i=sm.format.apply(sm,arguments);i="GFS4: "+i.split(/\n/).join(` +GFS4: `),console.error(i)});cr[vn]||(uI=global[vn]||[],lI(cr,uI),cr.close=function(i){function e(t,r){return i.call(cr,t,function(n){n||ga(),typeof r=="function"&&r.apply(this,arguments)})}return Object.defineProperty(e,am,{value:i}),e}(cr.close),cr.closeSync=function(i){function e(t){i.apply(cr,arguments),ga()}return Object.defineProperty(e,am,{value:i}),e}(cr.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){Sf(cr[vn]),require("assert").equal(cr[vn].length,0)}));var uI;global[vn]||lI(global,cr[vn]);AD.exports=OD(ree(cr));process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!cr.__patched&&(AD.exports=OD(cr),cr.__patched=!0);function OD(i){eee(i),i.gracefulify=OD,i.createReadStream=x,i.createWriteStream=S;var e=i.readFile;i.readFile=t;function t(R,M,L){return typeof M=="function"&&(L=M,M=null),q(R,M,L);function q(F,O,U){return e(F,O,function(X){X&&(X.code==="EMFILE"||X.code==="ENFILE")?Cf([q,[F,O,U]]):(typeof U=="function"&&U.apply(this,arguments),ga())})}}var r=i.writeFile;i.writeFile=n;function n(R,M,L,q){return typeof L=="function"&&(q=L,L=null),F(R,M,L,q);function F(O,U,X,de){return r(O,U,X,function(Ae){Ae&&(Ae.code==="EMFILE"||Ae.code==="ENFILE")?Cf([F,[O,U,X,de]]):(typeof de=="function"&&de.apply(this,arguments),ga())})}}var o=i.appendFile;o&&(i.appendFile=s);function s(R,M,L,q){return typeof L=="function"&&(q=L,L=null),F(R,M,L,q);function F(O,U,X,de){return o(O,U,X,function(Ae){Ae&&(Ae.code==="EMFILE"||Ae.code==="ENFILE")?Cf([F,[O,U,X,de]]):(typeof de=="function"&&de.apply(this,arguments),ga())})}}var a=i.readdir;i.readdir=l;function l(R,M,L){var q=[R];return typeof M!="function"?q.push(M):L=M,q.push(F),u(q);function F(O,U){U&&U.sort&&U.sort(),O&&(O.code==="EMFILE"||O.code==="ENFILE")?Cf([u,[q]]):(typeof L=="function"&&L.apply(this,arguments),ga())}}function u(R){return a.apply(i,R)}if(process.version.substr(0,4)==="v0.8"){var c=tee(i);m=c.ReadStream,v=c.WriteStream}var f=i.ReadStream;f&&(m.prototype=Object.create(f.prototype),m.prototype.open=w);var p=i.WriteStream;p&&(v.prototype=Object.create(p.prototype),v.prototype.open=D),Object.defineProperty(i,"ReadStream",{get:function(){return m},set:function(R){m=R},enumerable:!0,configurable:!0}),Object.defineProperty(i,"WriteStream",{get:function(){return v},set:function(R){v=R},enumerable:!0,configurable:!0});var d=m;Object.defineProperty(i,"FileReadStream",{get:function(){return d},set:function(R){d=R},enumerable:!0,configurable:!0});var h=v;Object.defineProperty(i,"FileWriteStream",{get:function(){return h},set:function(R){h=R},enumerable:!0,configurable:!0});function m(R,M){return this instanceof m?(f.apply(this,arguments),this):m.apply(Object.create(m.prototype),arguments)}function w(){var R=this;A(R.path,R.flags,R.mode,function(M,L){M?(R.autoClose&&R.destroy(),R.emit("error",M)):(R.fd=L,R.emit("open",L),R.read())})}function v(R,M){return this instanceof v?(p.apply(this,arguments),this):v.apply(Object.create(v.prototype),arguments)}function D(){var R=this;A(R.path,R.flags,R.mode,function(M,L){M?(R.destroy(),R.emit("error",M)):(R.fd=L,R.emit("open",L))})}function x(R,M){return new i.ReadStream(R,M)}function S(R,M){return new i.WriteStream(R,M)}var P=i.open;i.open=A;function A(R,M,L,q){return typeof L=="function"&&(q=L,L=null),F(R,M,L,q);function F(O,U,X,de){return P(O,U,X,function(Ae,yt){Ae&&(Ae.code==="EMFILE"||Ae.code==="ENFILE")?Cf([F,[O,U,X,de]]):(typeof de=="function"&&de.apply(this,arguments),ga())})}}return i}function Cf(i){Sf("ENQUEUE",i[0].name,i[1]),cr[vn].push(i)}function ga(){var i=cr[vn].shift();i&&(Sf("RETRY",i[0].name,i[1]),i[0].apply(null,i[1]))}});var LD=y(va=>{"use strict";var cI=Qr().fromCallback,ji=Fe(),nee=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchown","lchmod","link","lstat","mkdir","mkdtemp","open","readFile","readdir","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(i=>typeof ji[i]=="function");Object.keys(ji).forEach(i=>{i!=="promises"&&(va[i]=ji[i])});nee.forEach(i=>{va[i]=cI(ji[i])});va.exists=function(i,e){return typeof e=="function"?ji.exists(i,e):new Promise(t=>ji.exists(i,t))};va.read=function(i,e,t,r,n,o){return typeof o=="function"?ji.read(i,e,t,r,n,o):new Promise((s,a)=>{ji.read(i,e,t,r,n,(l,u,c)=>{if(l)return a(l);s({bytesRead:u,buffer:c})})})};va.write=function(i,e,...t){return typeof t[t.length-1]=="function"?ji.write(i,e,...t):new Promise((r,n)=>{ji.write(i,e,...t,(o,s,a)=>{if(o)return n(o);r({bytesWritten:s,buffer:a})})})};typeof ji.realpath.native=="function"&&(va.realpath.native=cI(ji.realpath.native))});var qD=y((tTe,pI)=>{"use strict";var MD=require("path");function fI(i){return i=MD.normalize(MD.resolve(i)).split(MD.sep),i.length>0?i[0]:null}var oee=/[<>:"|?*]/;function see(i){let e=fI(i);return i=i.replace(e,""),oee.test(i)}pI.exports={getRootPath:fI,invalidWin32Path:see}});var hI=y((rTe,dI)=>{"use strict";var aee=Fe(),ND=require("path"),lee=qD().invalidWin32Path,uee=parseInt("0777",8);function $D(i,e,t,r){if(typeof e=="function"?(t=e,e={}):(!e||typeof e!="object")&&(e={mode:e}),process.platform==="win32"&&lee(i)){let s=new Error(i+" contains invalid WIN32 path characters.");return s.code="EINVAL",t(s)}let n=e.mode,o=e.fs||aee;n===void 0&&(n=uee&~process.umask()),r||(r=null),t=t||function(){},i=ND.resolve(i),o.mkdir(i,n,s=>{if(!s)return r=r||i,t(null,r);switch(s.code){case"ENOENT":if(ND.dirname(i)===i)return t(s);$D(ND.dirname(i),e,(a,l)=>{a?t(a,l):$D(i,e,t,l)});break;default:o.stat(i,(a,l)=>{a||!l.isDirectory()?t(s,r):t(null,r)});break}})}dI.exports=$D});var gI=y((iTe,mI)=>{"use strict";var cee=Fe(),BD=require("path"),fee=qD().invalidWin32Path,pee=parseInt("0777",8);function jD(i,e,t){(!e||typeof e!="object")&&(e={mode:e});let r=e.mode,n=e.fs||cee;if(process.platform==="win32"&&fee(i)){let o=new Error(i+" contains invalid WIN32 path characters.");throw o.code="EINVAL",o}r===void 0&&(r=pee&~process.umask()),t||(t=null),i=BD.resolve(i);try{n.mkdirSync(i,r),t=t||i}catch(o){if(o.code==="ENOENT"){if(BD.dirname(i)===i)throw o;t=jD(BD.dirname(i),e,t),jD(i,e,t)}else{let s;try{s=n.statSync(i)}catch(a){throw o}if(!s.isDirectory())throw o}}return t}mI.exports=jD});var yi=y((nTe,vI)=>{"use strict";var dee=Qr().fromCallback,UD=dee(hI()),WD=gI();vI.exports={mkdirs:UD,mkdirsSync:WD,mkdirp:UD,mkdirpSync:WD,ensureDir:UD,ensureDirSync:WD}});var HD=y((oTe,bI)=>{"use strict";var Sr=Fe(),yI=require("os"),lm=require("path");function hee(){let i=lm.join("millis-test-sync"+Date.now().toString()+Math.random().toString().slice(2));i=lm.join(yI.tmpdir(),i);let e=new Date(1435410243862);Sr.writeFileSync(i,"https://github.com/jprichardson/node-fs-extra/pull/141");let t=Sr.openSync(i,"r+");return Sr.futimesSync(t,e,e),Sr.closeSync(t),Sr.statSync(i).mtime>1435410243e3}function mee(i){let e=lm.join("millis-test"+Date.now().toString()+Math.random().toString().slice(2));e=lm.join(yI.tmpdir(),e);let t=new Date(1435410243862);Sr.writeFile(e,"https://github.com/jprichardson/node-fs-extra/pull/141",r=>{if(r)return i(r);Sr.open(e,"r+",(n,o)=>{if(n)return i(n);Sr.futimes(o,t,t,s=>{if(s)return i(s);Sr.close(o,a=>{if(a)return i(a);Sr.stat(e,(l,u)=>{if(l)return i(l);i(null,u.mtime>1435410243e3)})})})})})}function gee(i){if(typeof i=="number")return Math.floor(i/1e3)*1e3;if(i instanceof Date)return new Date(Math.floor(i.getTime()/1e3)*1e3);throw new Error("fs-extra: timeRemoveMillis() unknown parameter type")}function vee(i,e,t,r){Sr.open(i,"r+",(n,o)=>{if(n)return r(n);Sr.futimes(o,e,t,s=>{Sr.close(o,a=>{r&&r(s||a)})})})}function yee(i,e,t){let r=Sr.openSync(i,"r+");return Sr.futimesSync(r,e,t),Sr.closeSync(r)}bI.exports={hasMillisRes:mee,hasMillisResSync:hee,timeRemoveMillis:gee,utimesMillis:vee,utimesMillisSync:yee}});var Tf=y((sTe,EI)=>{"use strict";var Ui=Fe(),ei=require("path"),wI=10,DI=5,bee=0,zD=process.versions.node.split("."),xI=Number.parseInt(zD[0],10),SI=Number.parseInt(zD[1],10),wee=Number.parseInt(zD[2],10);function Ef(){if(xI>wI)return!0;if(xI===wI){if(SI>DI)return!0;if(SI===DI&&wee>=bee)return!0}return!1}function Dee(i,e,t){Ef()?Ui.stat(i,{bigint:!0},(r,n)=>{if(r)return t(r);Ui.stat(e,{bigint:!0},(o,s)=>o?o.code==="ENOENT"?t(null,{srcStat:n,destStat:null}):t(o):t(null,{srcStat:n,destStat:s}))}):Ui.stat(i,(r,n)=>{if(r)return t(r);Ui.stat(e,(o,s)=>o?o.code==="ENOENT"?t(null,{srcStat:n,destStat:null}):t(o):t(null,{srcStat:n,destStat:s}))})}function xee(i,e){let t,r;Ef()?t=Ui.statSync(i,{bigint:!0}):t=Ui.statSync(i);try{Ef()?r=Ui.statSync(e,{bigint:!0}):r=Ui.statSync(e)}catch(n){if(n.code==="ENOENT")return{srcStat:t,destStat:null};throw n}return{srcStat:t,destStat:r}}function See(i,e,t,r){Dee(i,e,(n,o)=>{if(n)return r(n);let{srcStat:s,destStat:a}=o;return a&&a.ino&&a.dev&&a.ino===s.ino&&a.dev===s.dev?r(new Error("Source and destination must not be the same.")):s.isDirectory()&&VD(i,e)?r(new Error(_f(i,e,t))):r(null,{srcStat:s,destStat:a})})}function Cee(i,e,t){let{srcStat:r,destStat:n}=xee(i,e);if(n&&n.ino&&n.dev&&n.ino===r.ino&&n.dev===r.dev)throw new Error("Source and destination must not be the same.");if(r.isDirectory()&&VD(i,e))throw new Error(_f(i,e,t));return{srcStat:r,destStat:n}}function GD(i,e,t,r,n){let o=ei.resolve(ei.dirname(i)),s=ei.resolve(ei.dirname(t));if(s===o||s===ei.parse(s).root)return n();Ef()?Ui.stat(s,{bigint:!0},(a,l)=>a?a.code==="ENOENT"?n():n(a):l.ino&&l.dev&&l.ino===e.ino&&l.dev===e.dev?n(new Error(_f(i,t,r))):GD(i,e,s,r,n)):Ui.stat(s,(a,l)=>a?a.code==="ENOENT"?n():n(a):l.ino&&l.dev&&l.ino===e.ino&&l.dev===e.dev?n(new Error(_f(i,t,r))):GD(i,e,s,r,n))}function CI(i,e,t,r){let n=ei.resolve(ei.dirname(i)),o=ei.resolve(ei.dirname(t));if(o===n||o===ei.parse(o).root)return;let s;try{Ef()?s=Ui.statSync(o,{bigint:!0}):s=Ui.statSync(o)}catch(a){if(a.code==="ENOENT")return;throw a}if(s.ino&&s.dev&&s.ino===e.ino&&s.dev===e.dev)throw new Error(_f(i,t,r));return CI(i,e,o,r)}function VD(i,e){let t=ei.resolve(i).split(ei.sep).filter(n=>n),r=ei.resolve(e).split(ei.sep).filter(n=>n);return t.reduce((n,o,s)=>n&&r[s]===o,!0)}function _f(i,e,t){return`Cannot ${t} '${i}' to a subdirectory of itself, '${e}'.`}EI.exports={checkPaths:See,checkPathsSync:Cee,checkParentPaths:GD,checkParentPathsSync:CI,isSrcSubdir:VD}});var TI=y((aTe,_I)=>{"use strict";_I.exports=function(i){if(typeof Buffer.allocUnsafe=="function")try{return Buffer.allocUnsafe(i)}catch(e){return new Buffer(i)}return new Buffer(i)}});var FI=y((lTe,II)=>{"use strict";var bt=Fe(),Pf=require("path"),Eee=yi().mkdirsSync,_ee=HD().utimesMillisSync,Rf=Tf();function Tee(i,e,t){typeof t=="function"&&(t={filter:t}),t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`);let{srcStat:r,destStat:n}=Rf.checkPathsSync(i,e,"copy");return Rf.checkParentPathsSync(i,r,e,"copy"),Pee(n,i,e,t)}function Pee(i,e,t,r){if(r.filter&&!r.filter(e,t))return;let n=Pf.dirname(t);return bt.existsSync(n)||Eee(n),PI(i,e,t,r)}function PI(i,e,t,r){if(!(r.filter&&!r.filter(e,t)))return Ree(i,e,t,r)}function Ree(i,e,t,r){let o=(r.dereference?bt.statSync:bt.lstatSync)(e);if(o.isDirectory())return Oee(o,i,e,t,r);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return kee(o,i,e,t,r);if(o.isSymbolicLink())return Mee(i,e,t,r)}function kee(i,e,t,r,n){return e?Iee(i,t,r,n):RI(i,t,r,n)}function Iee(i,e,t,r){if(r.overwrite)return bt.unlinkSync(t),RI(i,e,t,r);if(r.errorOnExist)throw new Error(`'${t}' already exists`)}function RI(i,e,t,r){return typeof bt.copyFileSync=="function"?(bt.copyFileSync(e,t),bt.chmodSync(t,i.mode),r.preserveTimestamps?_ee(t,i.atime,i.mtime):void 0):Fee(i,e,t,r)}function Fee(i,e,t,r){let n=64*1024,o=TI()(n),s=bt.openSync(e,"r"),a=bt.openSync(t,"w",i.mode),l=0;for(;lLee(r,i,e,t))}function Lee(i,e,t,r){let n=Pf.join(e,i),o=Pf.join(t,i),{destStat:s}=Rf.checkPathsSync(n,o,"copy");return PI(s,n,o,r)}function Mee(i,e,t,r){let n=bt.readlinkSync(e);if(r.dereference&&(n=Pf.resolve(process.cwd(),n)),i){let o;try{o=bt.readlinkSync(t)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return bt.symlinkSync(n,t);throw s}if(r.dereference&&(o=Pf.resolve(process.cwd(),o)),Rf.isSrcSubdir(n,o))throw new Error(`Cannot copy '${n}' to a subdirectory of itself, '${o}'.`);if(bt.statSync(t).isDirectory()&&Rf.isSrcSubdir(o,n))throw new Error(`Cannot overwrite '${o}' with '${n}'.`);return qee(n,t)}else return bt.symlinkSync(n,t)}function qee(i,e){return bt.unlinkSync(e),bt.symlinkSync(i,e)}II.exports=Tee});var KD=y((uTe,OI)=>{"use strict";OI.exports={copySync:FI()}});var Hn=y((cTe,LI)=>{"use strict";var Nee=Qr().fromPromise,AI=LD();function $ee(i){return AI.access(i).then(()=>!0).catch(()=>!1)}LI.exports={pathExists:Nee($ee),pathExistsSync:AI.existsSync}});var HI=y((fTe,WI)=>{"use strict";var fr=Fe(),kf=require("path"),Bee=yi().mkdirs,jee=Hn().pathExists,Uee=HD().utimesMillis,If=Tf();function Wee(i,e,t,r){typeof t=="function"&&!r?(r=t,t={}):typeof t=="function"&&(t={filter:t}),r=r||function(){},t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`),If.checkPaths(i,e,"copy",(n,o)=>{if(n)return r(n);let{srcStat:s,destStat:a}=o;If.checkParentPaths(i,s,e,"copy",l=>l?r(l):t.filter?qI(MI,a,i,e,t,r):MI(a,i,e,t,r))})}function MI(i,e,t,r,n){let o=kf.dirname(t);jee(o,(s,a)=>{if(s)return n(s);if(a)return JD(i,e,t,r,n);Bee(o,l=>l?n(l):JD(i,e,t,r,n))})}function qI(i,e,t,r,n,o){Promise.resolve(n.filter(t,r)).then(s=>s?i(e,t,r,n,o):o(),s=>o(s))}function JD(i,e,t,r,n){return r.filter?qI(NI,i,e,t,r,n):NI(i,e,t,r,n)}function NI(i,e,t,r,n){(r.dereference?fr.stat:fr.lstat)(e,(s,a)=>{if(s)return n(s);if(a.isDirectory())return Vee(a,i,e,t,r,n);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return Hee(a,i,e,t,r,n);if(a.isSymbolicLink())return Yee(i,e,t,r,n)})}function Hee(i,e,t,r,n,o){return e?zee(i,t,r,n,o):$I(i,t,r,n,o)}function zee(i,e,t,r,n){if(r.overwrite)fr.unlink(t,o=>o?n(o):$I(i,e,t,r,n));else return r.errorOnExist?n(new Error(`'${t}' already exists`)):n()}function $I(i,e,t,r,n){return typeof fr.copyFile=="function"?fr.copyFile(e,t,o=>o?n(o):BI(i,t,r,n)):Gee(i,e,t,r,n)}function Gee(i,e,t,r,n){let o=fr.createReadStream(e);o.on("error",s=>n(s)).once("open",()=>{let s=fr.createWriteStream(t,{mode:i.mode});s.on("error",a=>n(a)).on("open",()=>o.pipe(s)).once("close",()=>BI(i,t,r,n))})}function BI(i,e,t,r){fr.chmod(e,i.mode,n=>n?r(n):t.preserveTimestamps?Uee(e,i.atime,i.mtime,r):r())}function Vee(i,e,t,r,n,o){return e?e&&!e.isDirectory()?o(new Error(`Cannot overwrite non-directory '${r}' with directory '${t}'.`)):jI(t,r,n,o):Kee(i,t,r,n,o)}function Kee(i,e,t,r,n){fr.mkdir(t,o=>{if(o)return n(o);jI(e,t,r,s=>s?n(s):fr.chmod(t,i.mode,n))})}function jI(i,e,t,r){fr.readdir(i,(n,o)=>n?r(n):UI(o,i,e,t,r))}function UI(i,e,t,r,n){let o=i.pop();return o?Jee(i,o,e,t,r,n):n()}function Jee(i,e,t,r,n,o){let s=kf.join(t,e),a=kf.join(r,e);If.checkPaths(s,a,"copy",(l,u)=>{if(l)return o(l);let{destStat:c}=u;JD(c,s,a,n,f=>f?o(f):UI(i,t,r,n,o))})}function Yee(i,e,t,r,n){fr.readlink(e,(o,s)=>{if(o)return n(o);if(r.dereference&&(s=kf.resolve(process.cwd(),s)),i)fr.readlink(t,(a,l)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?fr.symlink(s,t,n):n(a):(r.dereference&&(l=kf.resolve(process.cwd(),l)),If.isSrcSubdir(s,l)?n(new Error(`Cannot copy '${s}' to a subdirectory of itself, '${l}'.`)):i.isDirectory()&&If.isSrcSubdir(l,s)?n(new Error(`Cannot overwrite '${l}' with '${s}'.`)):Xee(s,t,n)));else return fr.symlink(s,t,n)})}function Xee(i,e,t){fr.unlink(e,r=>r?t(r):fr.symlink(i,e,t))}WI.exports=Wee});var YD=y((pTe,zI)=>{"use strict";var Zee=Qr().fromCallback;zI.exports={copy:Zee(HI())}});var e1=y((dTe,QI)=>{"use strict";var GI=Fe(),VI=require("path"),Ge=require("assert"),Ff=process.platform==="win32";function KI(i){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(t=>{i[t]=i[t]||GI[t],t=t+"Sync",i[t]=i[t]||GI[t]}),i.maxBusyTries=i.maxBusyTries||3}function XD(i,e,t){let r=0;typeof e=="function"&&(t=e,e={}),Ge(i,"rimraf: missing path"),Ge.strictEqual(typeof i,"string","rimraf: path should be a string"),Ge.strictEqual(typeof t,"function","rimraf: callback function required"),Ge(e,"rimraf: invalid options argument provided"),Ge.strictEqual(typeof e,"object","rimraf: options should be object"),KI(e),JI(i,e,function n(o){if(o){if((o.code==="EBUSY"||o.code==="ENOTEMPTY"||o.code==="EPERM")&&rJI(i,e,n),s)}o.code==="ENOENT"&&(o=null)}t(o)})}function JI(i,e,t){Ge(i),Ge(e),Ge(typeof t=="function"),e.lstat(i,(r,n)=>{if(r&&r.code==="ENOENT")return t(null);if(r&&r.code==="EPERM"&&Ff)return YI(i,e,r,t);if(n&&n.isDirectory())return um(i,e,r,t);e.unlink(i,o=>{if(o){if(o.code==="ENOENT")return t(null);if(o.code==="EPERM")return Ff?YI(i,e,o,t):um(i,e,o,t);if(o.code==="EISDIR")return um(i,e,o,t)}return t(o)})})}function YI(i,e,t,r){Ge(i),Ge(e),Ge(typeof r=="function"),t&&Ge(t instanceof Error),e.chmod(i,438,n=>{n?r(n.code==="ENOENT"?null:t):e.stat(i,(o,s)=>{o?r(o.code==="ENOENT"?null:t):s.isDirectory()?um(i,e,t,r):e.unlink(i,r)})})}function XI(i,e,t){let r;Ge(i),Ge(e),t&&Ge(t instanceof Error);try{e.chmodSync(i,438)}catch(n){if(n.code==="ENOENT")return;throw t}try{r=e.statSync(i)}catch(n){if(n.code==="ENOENT")return;throw t}r.isDirectory()?cm(i,e,t):e.unlinkSync(i)}function um(i,e,t,r){Ge(i),Ge(e),t&&Ge(t instanceof Error),Ge(typeof r=="function"),e.rmdir(i,n=>{n&&(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")?Qee(i,e,r):n&&n.code==="ENOTDIR"?r(t):r(n)})}function Qee(i,e,t){Ge(i),Ge(e),Ge(typeof t=="function"),e.readdir(i,(r,n)=>{if(r)return t(r);let o=n.length,s;if(o===0)return e.rmdir(i,t);n.forEach(a=>{XD(VI.join(i,a),e,l=>{if(!s){if(l)return t(s=l);--o==0&&e.rmdir(i,t)}})})})}function ZI(i,e){let t;e=e||{},KI(e),Ge(i,"rimraf: missing path"),Ge.strictEqual(typeof i,"string","rimraf: path should be a string"),Ge(e,"rimraf: missing options"),Ge.strictEqual(typeof e,"object","rimraf: options should be object");try{t=e.lstatSync(i)}catch(r){if(r.code==="ENOENT")return;r.code==="EPERM"&&Ff&&XI(i,e,r)}try{t&&t.isDirectory()?cm(i,e,null):e.unlinkSync(i)}catch(r){if(r.code==="ENOENT")return;if(r.code==="EPERM")return Ff?XI(i,e,r):cm(i,e,r);if(r.code!=="EISDIR")throw r;cm(i,e,r)}}function cm(i,e,t){Ge(i),Ge(e),t&&Ge(t instanceof Error);try{e.rmdirSync(i)}catch(r){if(r.code==="ENOTDIR")throw t;if(r.code==="ENOTEMPTY"||r.code==="EEXIST"||r.code==="EPERM")ete(i,e);else if(r.code!=="ENOENT")throw r}}function ete(i,e){if(Ge(i),Ge(e),e.readdirSync(i).forEach(t=>ZI(VI.join(i,t),e)),Ff){let t=Date.now();do try{return e.rmdirSync(i,e)}catch(r){}while(Date.now()-t<500)}else return e.rmdirSync(i,e)}QI.exports=XD;XD.sync=ZI});var Of=y((hTe,r1)=>{"use strict";var tte=Qr().fromCallback,t1=e1();r1.exports={remove:tte(t1),removeSync:t1.sync}});var c1=y((mTe,u1)=>{"use strict";var rte=Qr().fromCallback,i1=Fe(),n1=require("path"),o1=yi(),s1=Of(),a1=rte(function(e,t){t=t||function(){},i1.readdir(e,(r,n)=>{if(r)return o1.mkdirs(e,t);n=n.map(s=>n1.join(e,s)),o();function o(){let s=n.pop();if(!s)return t();s1.remove(s,a=>{if(a)return t(a);o()})}})});function l1(i){let e;try{e=i1.readdirSync(i)}catch(t){return o1.mkdirsSync(i)}e.forEach(t=>{t=n1.join(i,t),s1.removeSync(t)})}u1.exports={emptyDirSync:l1,emptydirSync:l1,emptyDir:a1,emptydir:a1}});var h1=y((gTe,d1)=>{"use strict";var ite=Qr().fromCallback,f1=require("path"),Af=Fe(),p1=yi(),nte=Hn().pathExists;function ote(i,e){function t(){Af.writeFile(i,"",r=>{if(r)return e(r);e()})}Af.stat(i,(r,n)=>{if(!r&&n.isFile())return e();let o=f1.dirname(i);nte(o,(s,a)=>{if(s)return e(s);if(a)return t();p1.mkdirs(o,l=>{if(l)return e(l);t()})})})}function ste(i){let e;try{e=Af.statSync(i)}catch(r){}if(e&&e.isFile())return;let t=f1.dirname(i);Af.existsSync(t)||p1.mkdirsSync(t),Af.writeFileSync(i,"")}d1.exports={createFile:ite(ote),createFileSync:ste}});var b1=y((vTe,y1)=>{"use strict";var ate=Qr().fromCallback,m1=require("path"),ya=Fe(),g1=yi(),v1=Hn().pathExists;function lte(i,e,t){function r(n,o){ya.link(n,o,s=>{if(s)return t(s);t(null)})}v1(e,(n,o)=>{if(n)return t(n);if(o)return t(null);ya.lstat(i,s=>{if(s)return s.message=s.message.replace("lstat","ensureLink"),t(s);let a=m1.dirname(e);v1(a,(l,u)=>{if(l)return t(l);if(u)return r(i,e);g1.mkdirs(a,c=>{if(c)return t(c);r(i,e)})})})})}function ute(i,e){if(ya.existsSync(e))return;try{ya.lstatSync(i)}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let r=m1.dirname(e);return ya.existsSync(r)||g1.mkdirsSync(r),ya.linkSync(i,e)}y1.exports={createLink:ate(lte),createLinkSync:ute}});var D1=y((yTe,w1)=>{"use strict";var us=require("path"),Lf=Fe(),cte=Hn().pathExists;function fte(i,e,t){if(us.isAbsolute(i))return Lf.lstat(i,r=>r?(r.message=r.message.replace("lstat","ensureSymlink"),t(r)):t(null,{toCwd:i,toDst:i}));{let r=us.dirname(e),n=us.join(r,i);return cte(n,(o,s)=>o?t(o):s?t(null,{toCwd:n,toDst:i}):Lf.lstat(i,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),t(a)):t(null,{toCwd:i,toDst:us.relative(r,i)})))}}function pte(i,e){let t;if(us.isAbsolute(i)){if(t=Lf.existsSync(i),!t)throw new Error("absolute srcpath does not exist");return{toCwd:i,toDst:i}}else{let r=us.dirname(e),n=us.join(r,i);if(t=Lf.existsSync(n),t)return{toCwd:n,toDst:i};if(t=Lf.existsSync(i),!t)throw new Error("relative srcpath does not exist");return{toCwd:i,toDst:us.relative(r,i)}}}w1.exports={symlinkPaths:fte,symlinkPathsSync:pte}});var C1=y((bTe,S1)=>{"use strict";var x1=Fe();function dte(i,e,t){if(t=typeof e=="function"?e:t,e=typeof e=="function"?!1:e,e)return t(null,e);x1.lstat(i,(r,n)=>{if(r)return t(null,"file");e=n&&n.isDirectory()?"dir":"file",t(null,e)})}function hte(i,e){let t;if(e)return e;try{t=x1.lstatSync(i)}catch(r){return"file"}return t&&t.isDirectory()?"dir":"file"}S1.exports={symlinkType:dte,symlinkTypeSync:hte}});var I1=y((wTe,k1)=>{"use strict";var mte=Qr().fromCallback,E1=require("path"),zl=Fe(),_1=yi(),gte=_1.mkdirs,vte=_1.mkdirsSync,T1=D1(),yte=T1.symlinkPaths,bte=T1.symlinkPathsSync,P1=C1(),wte=P1.symlinkType,Dte=P1.symlinkTypeSync,R1=Hn().pathExists;function xte(i,e,t,r){r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,R1(e,(n,o)=>{if(n)return r(n);if(o)return r(null);yte(i,e,(s,a)=>{if(s)return r(s);i=a.toDst,wte(a.toCwd,t,(l,u)=>{if(l)return r(l);let c=E1.dirname(e);R1(c,(f,p)=>{if(f)return r(f);if(p)return zl.symlink(i,e,u,r);gte(c,d=>{if(d)return r(d);zl.symlink(i,e,u,r)})})})})})}function Ste(i,e,t){if(zl.existsSync(e))return;let n=bte(i,e);i=n.toDst,t=Dte(n.toCwd,t);let o=E1.dirname(e);return zl.existsSync(o)||vte(o),zl.symlinkSync(i,e,t)}k1.exports={createSymlink:mte(xte),createSymlinkSync:Ste}});var O1=y((DTe,F1)=>{"use strict";var fm=h1(),pm=b1(),dm=I1();F1.exports={createFile:fm.createFile,createFileSync:fm.createFileSync,ensureFile:fm.createFile,ensureFileSync:fm.createFileSync,createLink:pm.createLink,createLinkSync:pm.createLinkSync,ensureLink:pm.createLink,ensureLinkSync:pm.createLinkSync,createSymlink:dm.createSymlink,createSymlinkSync:dm.createSymlinkSync,ensureSymlink:dm.createSymlink,ensureSymlinkSync:dm.createSymlinkSync}});var q1=y((xTe,M1)=>{var Gl;try{Gl=Fe()}catch(i){Gl=require("fs")}function Cte(i,e,t){t==null&&(t=e,e={}),typeof e=="string"&&(e={encoding:e}),e=e||{};var r=e.fs||Gl,n=!0;"throws"in e&&(n=e.throws),r.readFile(i,e,function(o,s){if(o)return t(o);s=L1(s);var a;try{a=JSON.parse(s,e?e.reviver:null)}catch(l){return n?(l.message=i+": "+l.message,t(l)):t(null,null)}t(null,a)})}function Ete(i,e){e=e||{},typeof e=="string"&&(e={encoding:e});var t=e.fs||Gl,r=!0;"throws"in e&&(r=e.throws);try{var n=t.readFileSync(i,e);return n=L1(n),JSON.parse(n,e.reviver)}catch(o){if(r)throw o.message=i+": "+o.message,o;return null}}function A1(i,e){var t,r=` +`;typeof e=="object"&&e!==null&&(e.spaces&&(t=e.spaces),e.EOL&&(r=e.EOL));var n=JSON.stringify(i,e?e.replacer:null,t);return n.replace(/\n/g,r)+r}function _te(i,e,t,r){r==null&&(r=t,t={}),t=t||{};var n=t.fs||Gl,o="";try{o=A1(e,t)}catch(s){r&&r(s,null);return}n.writeFile(i,o,t,r)}function Tte(i,e,t){t=t||{};var r=t.fs||Gl,n=A1(e,t);return r.writeFileSync(i,n,t)}function L1(i){return Buffer.isBuffer(i)&&(i=i.toString("utf8")),i=i.replace(/^\uFEFF/,""),i}var Pte={readFile:Cte,readFileSync:Ete,writeFile:_te,writeFileSync:Tte};M1.exports=Pte});var mm=y((STe,$1)=>{"use strict";var N1=Qr().fromCallback,hm=q1();$1.exports={readJson:N1(hm.readFile),readJsonSync:hm.readFileSync,writeJson:N1(hm.writeFile),writeJsonSync:hm.writeFileSync}});var U1=y((CTe,j1)=>{"use strict";var Rte=require("path"),kte=yi(),Ite=Hn().pathExists,B1=mm();function Fte(i,e,t,r){typeof t=="function"&&(r=t,t={});let n=Rte.dirname(i);Ite(n,(o,s)=>{if(o)return r(o);if(s)return B1.writeJson(i,e,t,r);kte.mkdirs(n,a=>{if(a)return r(a);B1.writeJson(i,e,t,r)})})}j1.exports=Fte});var H1=y((ETe,W1)=>{"use strict";var Ote=Fe(),Ate=require("path"),Lte=yi(),Mte=mm();function qte(i,e,t){let r=Ate.dirname(i);Ote.existsSync(r)||Lte.mkdirsSync(r),Mte.writeJsonSync(i,e,t)}W1.exports=qte});var G1=y((_Te,z1)=>{"use strict";var Nte=Qr().fromCallback,$r=mm();$r.outputJson=Nte(U1());$r.outputJsonSync=H1();$r.outputJSON=$r.outputJson;$r.outputJSONSync=$r.outputJsonSync;$r.writeJSON=$r.writeJson;$r.writeJSONSync=$r.writeJsonSync;$r.readJSON=$r.readJson;$r.readJSONSync=$r.readJsonSync;z1.exports=$r});var Z1=y((TTe,X1)=>{"use strict";var V1=Fe(),$te=require("path"),Bte=KD().copySync,K1=Of().removeSync,jte=yi().mkdirpSync,J1=Tf();function Ute(i,e,t){t=t||{};let r=t.overwrite||t.clobber||!1,{srcStat:n}=J1.checkPathsSync(i,e,"move");return J1.checkParentPathsSync(i,n,e,"move"),jte($te.dirname(e)),Wte(i,e,r)}function Wte(i,e,t){if(t)return K1(e),Y1(i,e,t);if(V1.existsSync(e))throw new Error("dest already exists.");return Y1(i,e,t)}function Y1(i,e,t){try{V1.renameSync(i,e)}catch(r){if(r.code!=="EXDEV")throw r;return Hte(i,e,t)}}function Hte(i,e,t){return Bte(i,e,{overwrite:t,errorOnExist:!0}),K1(i)}X1.exports=Ute});var eF=y((PTe,Q1)=>{"use strict";Q1.exports={moveSync:Z1()}});var oF=y((RTe,nF)=>{"use strict";var zte=Fe(),Gte=require("path"),Vte=YD().copy,tF=Of().remove,Kte=yi().mkdirp,Jte=Hn().pathExists,rF=Tf();function Yte(i,e,t,r){typeof t=="function"&&(r=t,t={});let n=t.overwrite||t.clobber||!1;rF.checkPaths(i,e,"move",(o,s)=>{if(o)return r(o);let{srcStat:a}=s;rF.checkParentPaths(i,a,e,"move",l=>{if(l)return r(l);Kte(Gte.dirname(e),u=>u?r(u):Xte(i,e,n,r))})})}function Xte(i,e,t,r){if(t)return tF(e,n=>n?r(n):iF(i,e,t,r));Jte(e,(n,o)=>n?r(n):o?r(new Error("dest already exists.")):iF(i,e,t,r))}function iF(i,e,t,r){zte.rename(i,e,n=>n?n.code!=="EXDEV"?r(n):Zte(i,e,t,r):r())}function Zte(i,e,t,r){Vte(i,e,{overwrite:t,errorOnExist:!0},o=>o?r(o):tF(i,r))}nF.exports=Yte});var aF=y((kTe,sF)=>{"use strict";var Qte=Qr().fromCallback;sF.exports={move:Qte(oF())}});var fF=y((ITe,cF)=>{"use strict";var ere=Qr().fromCallback,Mf=Fe(),lF=require("path"),uF=yi(),tre=Hn().pathExists;function rre(i,e,t,r){typeof t=="function"&&(r=t,t="utf8");let n=lF.dirname(i);tre(n,(o,s)=>{if(o)return r(o);if(s)return Mf.writeFile(i,e,t,r);uF.mkdirs(n,a=>{if(a)return r(a);Mf.writeFile(i,e,t,r)})})}function ire(i,...e){let t=lF.dirname(i);if(Mf.existsSync(t))return Mf.writeFileSync(i,...e);uF.mkdirsSync(t),Mf.writeFileSync(i,...e)}cF.exports={outputFile:ere(rre),outputFileSync:ire}});var QD=y((FTe,ZD)=>{"use strict";ZD.exports=Object.assign({},LD(),KD(),YD(),c1(),O1(),G1(),yi(),eF(),aF(),fF(),Hn(),Of());var pF=require("fs");Object.getOwnPropertyDescriptor(pF,"promises")&&Object.defineProperty(ZD.exports,"promises",{get(){return pF.promises}})});var hF=y((OTe,dF)=>{dF.exports=()=>new Date});var ex=y((ATe,Wi)=>{"use strict";function mF(i,e){for(var t=i.toString();t.length-1,r=ba(wa(e,t,"Date")),n=ba(wa(e,t,"Month")+1),o=ba(wa(e,t,"FullYear")),s=ba(o.substring(2,4)),a=i.indexOf("yyyy")>-1?o:s,l=ba(wa(e,t,"Hours")),u=ba(wa(e,t,"Minutes")),c=ba(wa(e,t,"Seconds")),f=mF(wa(e,t,"Milliseconds"),3),p=nre(e.getTimezoneOffset()),d=i.replace(/dd/g,r).replace(/MM/g,n).replace(/y{1,4}/g,a).replace(/hh/g,l).replace(/mm/g,u).replace(/ss/g,c).replace(/SSS/g,f).replace(/O/g,p);return d}function ore(i,e,t){var r=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(u,c){u.setFullYear(c)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(u,c){u.setMonth(c-1)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(u,c){u.setDate(c)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(u,c){u.setHours(c)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(u,c){u.setMinutes(c)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(u,c){u.setSeconds(c)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(u,c){u.setMilliseconds(c)}},{pattern:/O/,regexp:"[+-]\\d{3,4}|Z",fn:function(u,c){c==="Z"&&(c=0);var f=Math.abs(c),p=f%100+Math.floor(f/100)*60;u.setMinutes(u.getMinutes()+(c>0?p:-p))}}],n=r.reduce(function(u,c){return c.pattern.test(u.regexp)?(c.index=u.regexp.match(c.pattern).index,u.regexp=u.regexp.replace(c.pattern,"("+c.regexp+")")):c.index=-1,u},{regexp:i,index:[]}),o=r.filter(function(u){return u.index>-1});o.sort(function(u,c){return u.index-c.index});var s=new RegExp(n.regexp),a=s.exec(e);if(a){var l=t||Wi.exports.now();return o.forEach(function(u,c){u.fn(l,a[c+1])}),l}throw new Error("String '"+e+"' could not be parsed as '"+i+"'")}function sre(i,e,t){if(!i)throw new Error("pattern must be supplied");return ore(i,e,t)}function are(){return new Date}Wi.exports=gF;Wi.exports.asString=gF;Wi.exports.parse=sre;Wi.exports.now=are;Wi.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS";Wi.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO";Wi.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS";Wi.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"});var bF=y((LTe,yF)=>{var lre=jt()("streamroller:fileNameFormatter"),ure=require("path"),vF=".",cre=".gz";yF.exports=({file:i,keepFileExt:e,needsIndex:t,alwaysIncludeDate:r,compress:n})=>{let o=ure.join(i.dir,i.name),s=f=>f+i.ext,a=(f,p,d)=>(t||!d)&&p?f+vF+p:f,l=(f,p,d)=>(p>0||r)&&d?f+vF+d:f,u=(f,p)=>p&&n?f+cre:f,c=e?[l,a,s,u]:[s,l,a,u];return({date:f,index:p})=>(lre(`_formatFileName: date=${f}, index=${p}`),c.reduce((d,h)=>h(d,p,f),o))}});var SF=y((MTe,xF)=>{var Da=jt()("streamroller:fileNameParser"),fre=".",wF=".gz",DF=ex();xF.exports=({file:i,keepFileExt:e,pattern:t})=>{let r=(c,f)=>c.endsWith(wF)?(Da("it is gzipped"),f.isCompressed=!0,c.slice(0,-1*wF.length)):c,n="__NOT_MATCHING__",u=[r,e?c=>c.startsWith(i.name)&&c.endsWith(i.ext)?(Da("it starts and ends with the right things"),c.slice(i.name.length+1,-1*i.ext.length)):n:c=>c.startsWith(i.base)?(Da("it starts with the right things"),c.slice(i.base.length+1)):n,t?(c,f)=>{let p=c.split(fre),d=p[p.length-1];Da("items: ",p,", indexStr: ",d);let h=c;d!==void 0&&d.match(/^\d+$/)?(h=c.slice(0,-1*(d.length+1)),Da(`dateStr is ${h}`),t&&!h&&(h=d,d="0")):d="0";try{let m=DF.parse(t,h,new Date(0,0));return DF.asString(t,m)!==h?c:(f.index=parseInt(d,10),f.date=h,f.timestamp=m.getTime(),"")}catch(m){return Da(`Problem parsing ${h} as ${t}, error was: `,m),c}}:(c,f)=>c.match(/^\d+$/)?(Da("it has an index"),f.index=parseInt(c,10),""):c];return c=>{let f={filename:c,index:0,isCompressed:!1};return u.reduce((d,h)=>h(d,f),c)?null:f}}});var EF=y((qTe,CF)=>{var xa=jt()("streamroller:moveAndMaybeCompressFile"),cs=QD(),pre=require("zlib"),dre=async(i,e,t)=>{if(i===e){xa("moveAndMaybeCompressFile: source and target are the same, not doing anything");return}if(await cs.pathExists(i))if(xa(`moveAndMaybeCompressFile: moving file from ${i} to ${e} ${t?"with":"without"} compress`),t)await new Promise((r,n)=>{cs.createReadStream(i).pipe(pre.createGzip()).pipe(cs.createWriteStream(e)).on("finish",()=>{xa(`moveAndMaybeCompressFile: finished compressing ${e}, deleting ${i}`),cs.unlink(i).then(r).catch(()=>{xa(`Deleting ${i} failed, truncating instead`),cs.truncate(i).then(r).catch(n)})})});else{xa(`moveAndMaybeCompressFile: deleting file=${e}, renaming ${i} to ${e}`);try{await cs.move(i,e,{overwrite:!0})}catch(r){xa(`moveAndMaybeCompressFile: error moving ${i} to ${e}`,r),xa("Trying copy+truncate instead"),await cs.copy(i,e,{overwrite:!0}),await cs.truncate(i)}}};CF.exports=dre});var bm=y((NTe,TF)=>{var bi=jt()("streamroller:RollingFileWriteStream"),qf=QD(),gm=require("path"),vm=hF(),ym=ex(),{Writable:hre}=require("stream"),mre=bF(),gre=SF(),vre=EF(),_F=class extends hre{constructor(e,t){bi(`constructor: creating RollingFileWriteStream. path=${e}`),super(t),this.options=this._parseOption(t),this.fileObject=gm.parse(e),this.fileObject.dir===""&&(this.fileObject=gm.parse(gm.join(process.cwd(),e))),this.fileFormatter=mre({file:this.fileObject,alwaysIncludeDate:this.options.alwaysIncludePattern,needsIndex:this.options.maxSize 0`);if(r.numToKeep<=0)throw new Error(`options.numToKeep (${r.numToKeep}) should be > 0`);return bi(`_parseOption: creating stream with option=${JSON.stringify(r)}`),r}_final(e){this.currentFileStream.end("",this.options.encoding,e)}_write(e,t,r){this._shouldRoll().then(()=>{bi(`_write: writing chunk. file=${this.currentFileStream.path} state=${JSON.stringify(this.state)} chunk=${e}`),this.currentFileStream.write(e,t,n=>{this.state.currentSize+=e.length,r(n)})})}async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(bi(`_shouldRoll: rolling because dateChanged? ${this._dateChanged()} or tooBig? ${this._tooBig()}`),await this._roll())}_dateChanged(){return this.state.currentDate&&this.state.currentDate!==ym(this.options.pattern,vm())}_tooBig(){return this.state.currentSize>=this.options.maxSize}_roll(){return bi("_roll: closing the current stream"),new Promise((e,t)=>{this.currentFileStream.end("",this.options.encoding,()=>{this._moveOldFiles().then(e).catch(t)})})}async _moveOldFiles(){let e=await this._getExistingFiles(),t=this.state.currentDate?e.filter(r=>r.date===this.state.currentDate):e;for(let r=t.length;r>=0;r--){bi(`_moveOldFiles: i = ${r}`);let n=this.fileFormatter({date:this.state.currentDate,index:r}),o=this.fileFormatter({date:this.state.currentDate,index:r+1});await vre(n,o,this.options.compress&&r===0)}this.state.currentSize=0,this.state.currentDate=this.state.currentDate?ym(this.options.pattern,vm()):null,bi(`_moveOldFiles: finished rolling files. state=${JSON.stringify(this.state)}`),this._renewWriteStream(),await new Promise((r,n)=>{this.currentFileStream.write("","utf8",()=>{this._clean().then(r).catch(n)})})}async _getExistingFiles(){let e=await qf.readdir(this.fileObject.dir).catch(()=>[]);bi(`_getExistingFiles: files=${e}`);let t=e.map(n=>this.fileNameParser(n)).filter(n=>n),r=n=>(n.timestamp?n.timestamp:vm().getTime())-n.index;return t.sort((n,o)=>r(n)-r(o)),t}_renewWriteStream(){qf.ensureDirSync(this.fileObject.dir);let e=this.fileFormatter({date:this.state.currentDate,index:0}),t={flags:this.options.flags,encoding:this.options.encoding,mode:this.options.mode};this.currentFileStream=qf.createWriteStream(e,t),this.currentFileStream.on("error",r=>{this.emit("error",r)})}async _clean(){let e=await this._getExistingFiles();if(bi(`_clean: numToKeep = ${this.options.numToKeep}, existingFiles = ${e.length}`),bi("_clean: existing files are: ",e),this._tooManyFiles(e.length)){let t=e.slice(0,e.length-this.options.numToKeep-1).map(r=>gm.format({dir:this.fileObject.dir,base:r.filename}));await yre(t)}}_tooManyFiles(e){return this.options.numToKeep>0&&e>this.options.numToKeep}},yre=i=>(bi(`deleteFiles: files to delete: ${i}`),Promise.all(i.map(e=>qf.unlink(e).catch(t=>{bi(`deleteFiles: error when unlinking ${e}, ignoring. Error was ${t}`)}))));TF.exports=_F});var kF=y(($Te,RF)=>{var bre=bm(),PF=class extends bre{constructor(e,t,r,n){n||(n={}),t&&(n.maxSize=t),r||(r=1),n.numToKeep=r,super(e,n),this.backups=this.options.numToKeep,this.size=this.options.maxSize}get theStream(){return this.currentFileStream}};RF.exports=PF});var OF=y((BTe,FF)=>{var wre=bm(),IF=class extends wre{constructor(e,t,r){t&&typeof t=="object"&&(r=t,t=null),r||(r={}),t||(t="yyyy-MM-dd"),r.daysToKeep&&(r.numToKeep=r.daysToKeep),t.startsWith(".")&&(t=t.substring(1)),r.pattern=t,super(e,r),this.mode=this.options.mode}get theStream(){return this.currentFileStream}};FF.exports=IF});var tx=y((jTe,AF)=>{AF.exports={RollingFileWriteStream:bm(),RollingFileStream:kF(),DateRollingFileStream:OF()}});var NF=y((UTe,qF)=>{var LF=jt()("log4js:file"),Dre=require("path"),xre=tx(),Sre=require("os"),Cre=Sre.EOL;function MF(i,e,t,r){let n=new xre.RollingFileStream(i,e,t,r);return n.on("error",o=>{console.error("log4js.fileAppender - Writing to file %s, error happened ",i,o)}),n.on("drain",()=>{process.emit("log4js:pause",!1)}),n}function Ere(i,e,t,r,n,o){i=Dre.normalize(i),r=r===void 0?5:r,r=r===0?1:r,LF("Creating file appender (",i,", ",t,", ",r,", ",n,", ",o,")");let s=MF(i,t,r,n),a=function(l){if(n.removeColor===!0){let u=/\x1b[[0-9;]*m/g;l.data=l.data.map(c=>typeof c=="string"?c.replace(u,""):c)}s.write(e(l,o)+Cre,"utf8")||process.emit("log4js:pause",!0)};return a.reopen=function(){s.end(()=>{s=MF(i,t,r,n)})},a.sighupHandler=function(){LF("SIGHUP handler called."),a.reopen()},a.shutdown=function(l){process.removeListener("SIGHUP",a.sighupHandler),s.end("","utf-8",l)},process.on("SIGHUP",a.sighupHandler),a}function _re(i,e){let t=e.basicLayout;return i.layout&&(t=e.layout(i.layout.type,i.layout)),Ere(i.filename,t,i.maxLogSize,i.backups,i,i.timezoneOffset)}qF.exports.configure=_re});var BF=y((WTe,$F)=>{var Tre=tx(),Pre=require("os"),Rre=Pre.EOL;function kre(i,e,t,r,n){r.maxSize=r.maxLogSize;let o=new Tre.DateRollingFileStream(i,e,r);o.on("drain",()=>{process.emit("log4js:pause",!1)});let s=function(a){o.write(t(a,n)+Rre,"utf8")||process.emit("log4js:pause",!0)};return s.shutdown=function(a){o.write("","utf-8",()=>{o.end(a)})},s}function Ire(i,e){let t=e.basicLayout;return i.layout&&(t=e.layout(i.layout.type,i.layout)),i.alwaysIncludePattern||(i.alwaysIncludePattern=!1),kre(i.filename,i.pattern,t,i,i.timezoneOffset)}$F.exports.configure=Ire});var HF=y((HTe,WF)=>{var go=jt()("log4js:fileSync"),Vl=require("path"),vo=require("fs"),Fre=require("os"),Ore=Fre.EOL||` +`;function jF(i,e){if(vo.existsSync(i))return;let t=vo.openSync(i,e.flags,e.mode);vo.closeSync(t)}var UF=class{constructor(e,t,r,n){go("In RollingFileStream");function o(){if(!e||!t||t<=0)throw new Error("You must specify a filename and file size")}o(),this.filename=e,this.size=t,this.backups=r||1,this.options=n,this.currentSize=0;function s(a){let l=0;try{l=vo.statSync(a).size}catch(u){jF(a,n)}return l}this.currentSize=s(this.filename)}shouldRoll(){return go("should roll with current size %d, and max size %d",this.currentSize,this.size),this.currentSize>=this.size}roll(e){let t=this,r=new RegExp(`^${Vl.basename(e)}`);function n(u){return r.test(u)}function o(u){return parseInt(u.substring(`${Vl.basename(e)}.`.length),10)||0}function s(u,c){return o(u)>o(c)?1:o(u) ${e}.${c+1}`),vo.renameSync(Vl.join(Vl.dirname(e),u),`${e}.${c+1}`)}}function l(){go("Renaming the old files"),vo.readdirSync(Vl.dirname(e)).filter(n).sort(s).reverse().forEach(a)}go("Rolling, rolling, rolling"),l()}write(e,t){let r=this;function n(){go("writing the chunk to the file"),r.currentSize+=e.length,vo.appendFileSync(r.filename,e)}go("in write"),this.shouldRoll()&&(this.currentSize=0,this.roll(this.filename)),n()}};function Are(i,e,t,r,n,o){go("fileSync appender created"),i=Vl.normalize(i),r=r===void 0?5:r,r=r===0?1:r;function s(l,u,c){let f;return u?f=new UF(l,u,c,o):f=(p=>(jF(p,o),{write(d){vo.appendFileSync(p,d)}}))(l),f}let a=s(i,t,r);return l=>{a.write(e(l,n)+Ore)}}function Lre(i,e){let t=e.basicLayout;i.layout&&(t=e.layout(i.layout.type,i.layout));let r={flags:i.flags||"a",encoding:i.encoding||"utf8",mode:i.mode||420};return Are(i.filename,t,i.maxLogSize,i.backups,i.timezoneOffset,r)}WF.exports.configure=Lre});var ix=y((zTe,KF)=>{var Mre=require("path"),Sa=jt()("log4js:appenders"),Hi=pa(),zF=nm(),qre=ma(),Nre=TD(),$re=Bk(),zn=new Map;zn.set("console",Uk());zn.set("stdout",Hk());zn.set("stderr",Gk());zn.set("logLevelFilter",Kk());zn.set("categoryFilter",Xk());zn.set("noLogFilter",eI());zn.set("file",NF());zn.set("dateFile",BF());zn.set("fileSync",HF());var Nf=new Map,rx=(i,e)=>{Sa("Loading module from ",i);try{return require(i)}catch(t){Hi.throwExceptionIf(e,t.code!=="MODULE_NOT_FOUND",`appender "${i}" could not be loaded (error was: ${t})`);return}},Bre=(i,e)=>zn.get(i)||rx(`./${i}`,e)||rx(i,e)||""||rx(Mre.join(process.cwd(),i),e),wm=new Set,GF=(i,e)=>{if(Nf.has(i))return Nf.get(i);if(!e.appenders[i])return!1;if(wm.has(i))throw new Error(`Dependency loop detected for appender ${i}.`);wm.add(i),Sa(`Creating appender ${i}`);let t=jre(i,e);return wm.delete(i),Nf.set(i,t),t},jre=(i,e)=>{let t=e.appenders[i],r=t.type.configure?t.type:Bre(t.type,e);return Hi.throwExceptionIf(e,Hi.not(r),`appender "${i}" is not valid (type "${t.type}" could not be found)`),r.appender&&Sa(`DEPRECATION: Appender ${t.type} exports an appender function.`),r.shutdown&&Sa(`DEPRECATION: Appender ${t.type} exports a shutdown function.`),Sa(`${i}: clustering.isMaster ? ${zF.isMaster()}`),Sa(`${i}: appenderModule is ${require("util").inspect(r)}`),zF.onlyOnMaster(()=>(Sa(`calling appenderModule.configure for ${i} / ${t.type}`),r.configure($re.modifyConfig(t),Nre,n=>GF(n,e),qre)),()=>{})},VF=i=>{Nf.clear(),wm.clear();let e=[];Object.values(i.categories).forEach(t=>{e.push(...t.appenders)}),Object.keys(i.appenders).forEach(t=>{(e.includes(t)||i.appenders[t].type==="tcp-server")&&GF(t,i)})};VF({appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"trace"}}});Hi.addListener(i=>{Hi.throwExceptionIf(i,Hi.not(Hi.anObject(i.appenders)),'must have a property "appenders" of type object.');let e=Object.keys(i.appenders);Hi.throwExceptionIf(i,Hi.not(e.length),"must define at least one appender."),e.forEach(t=>{Hi.throwExceptionIf(i,Hi.not(i.appenders[t].type),`appender "${t}" is not valid (must be an object with property "type")`)})});Hi.addListener(VF);KF.exports=Nf});var ox=y((GTe,ZF)=>{var Ca=jt()("log4js:categories"),Ft=pa(),nx=ma(),JF=ix(),Kl=new Map;function YF(i,e,t){if(e.inherit===!1)return;let r=t.lastIndexOf(".");if(r<0)return;let n=t.substring(0,r),o=i.categories[n];o||(o={inherit:!0,appenders:[]}),YF(i,o,n),!i.categories[n]&&o.appenders&&o.appenders.length&&o.level&&(i.categories[n]=o),e.appenders=e.appenders||[],e.level=e.level||o.level,o.appenders.forEach(s=>{e.appenders.includes(s)||e.appenders.push(s)}),e.parent=o}function Ure(i){if(!i.categories)return;Object.keys(i.categories).forEach(t=>{let r=i.categories[t];YF(i,r,t)})}Ft.addPreProcessingListener(i=>Ure(i));Ft.addListener(i=>{Ft.throwExceptionIf(i,Ft.not(Ft.anObject(i.categories)),'must have a property "categories" of type object.');let e=Object.keys(i.categories);Ft.throwExceptionIf(i,Ft.not(e.length),"must define at least one category."),e.forEach(t=>{let r=i.categories[t];Ft.throwExceptionIf(i,[Ft.not(r.appenders),Ft.not(r.level)],`category "${t}" is not valid (must be an object with properties "appenders" and "level")`),Ft.throwExceptionIf(i,Ft.not(Array.isArray(r.appenders)),`category "${t}" is not valid (appenders must be an array of appender names)`),Ft.throwExceptionIf(i,Ft.not(r.appenders.length),`category "${t}" is not valid (appenders must contain at least one appender name)`),Object.prototype.hasOwnProperty.call(r,"enableCallStack")&&Ft.throwExceptionIf(i,typeof r.enableCallStack!="boolean",`category "${t}" is not valid (enableCallStack must be boolean type)`),r.appenders.forEach(n=>{Ft.throwExceptionIf(i,Ft.not(JF.get(n)),`category "${t}" is not valid (appender "${n}" is not defined)`)}),Ft.throwExceptionIf(i,Ft.not(nx.getLevel(r.level)),`category "${t}" is not valid (level "${r.level}" not recognised; valid levels are ${nx.levels.join(", ")})`)}),Ft.throwExceptionIf(i,Ft.not(i.categories.default),'must define a "default" category.')});var XF=i=>{Kl.clear(),Object.keys(i.categories).forEach(t=>{let r=i.categories[t],n=[];r.appenders.forEach(o=>{n.push(JF.get(o)),Ca(`Creating category ${t}`),Kl.set(t,{appenders:n,level:nx.getLevel(r.level),enableCallStack:r.enableCallStack||!1})})})};XF({categories:{default:{appenders:["out"],level:"OFF"}}});Ft.addListener(XF);var Ea=i=>(Ca(`configForCategory: searching for config for ${i}`),Kl.has(i)?(Ca(`configForCategory: ${i} exists in config, returning it`),Kl.get(i)):i.indexOf(".")>0?(Ca(`configForCategory: ${i} has hierarchy, searching for parents`),Ea(i.substring(0,i.lastIndexOf(".")))):(Ca("configForCategory: returning config for default category"),Ea("default"))),Wre=i=>Ea(i).appenders,Hre=i=>Ea(i).level,zre=(i,e)=>{let t=Kl.get(i);if(Ca(`setLevelForCategory: found ${t} for ${i}`),!t){let r=Ea(i);Ca(`setLevelForCategory: no config found for category, found ${r} for parents of ${i}`),t={appenders:r.appenders}}t.level=e,Kl.set(i,t)},Gre=i=>Ea(i).enableCallStack===!0,Vre=(i,e)=>{Ea(i).enableCallStack=e};ZF.exports={appendersForCategory:Wre,getLevelForCategory:Hre,setLevelForCategory:zre,getEnableCallStackForCategory:Gre,setEnableCallStackForCategory:Vre}});var rO=y((VTe,tO)=>{var QF=jt()("log4js:logger"),Kre=RD(),fs=ma(),Jre=nm(),Dm=ox(),Yre=pa(),Xre=/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/;function Zre(i,e=4){let t=i.stack.split(` +`).slice(e),r=Xre.exec(t[0]);return r&&r.length===6?{functionName:r[1],fileName:r[2],lineNumber:parseInt(r[3],10),columnNumber:parseInt(r[4],10),callStack:t.join(` +`)}:null}var xm=class{constructor(e){if(!e)throw new Error("No category provided.");this.category=e,this.context={},this.parseCallStack=Zre,QF(`Logger created (${this.category}, ${this.level})`)}get level(){return fs.getLevel(Dm.getLevelForCategory(this.category),fs.TRACE)}set level(e){Dm.setLevelForCategory(this.category,fs.getLevel(e,this.level))}get useCallStack(){return Dm.getEnableCallStackForCategory(this.category)}set useCallStack(e){Dm.setEnableCallStackForCategory(this.category,e===!0)}log(e,...t){let r=fs.getLevel(e,fs.INFO);this.isLevelEnabled(r)&&this._log(r,t)}isLevelEnabled(e){return this.level.isLessThanOrEqualTo(e)}_log(e,t){QF(`sending log data (${e}) to appenders`);let r=new Kre(this.category,e,t,this.context,this.useCallStack&&this.parseCallStack(new Error));Jre.send(r)}addContext(e,t){this.context[e]=t}removeContext(e){delete this.context[e]}clearContext(){this.context={}}setParseCallStackFunction(e){this.parseCallStack=e}};function eO(i){let e=fs.getLevel(i),r=e.toString().toLowerCase().replace(/_([a-z])/g,o=>o[1].toUpperCase()),n=r[0].toUpperCase()+r.slice(1);xm.prototype[`is${n}Enabled`]=function(){return this.isLevelEnabled(e)},xm.prototype[r]=function(...o){this.log(e,...o)}}fs.levels.forEach(eO);Yre.addListener(()=>{fs.levels.forEach(eO)});tO.exports=xm});var oO=y((KTe,nO)=>{var Jl=ma(),Qre=':remote-addr - - ":method :url HTTP/:http-version" :status :content-length ":referrer" ":user-agent"';function eie(i){return i.originalUrl||i.url}function tie(i,e,t){let r=o=>{let s=o.concat();for(let a=0;ar.source?r.source:r);e=new RegExp(t.join("|"))}return e}function iie(i,e,t){let r=e;if(t){let n=t.find(o=>{let s=!1;return o.from&&o.to?s=i>=o.from&&i<=o.to:s=o.codes.indexOf(i)!==-1,s});n&&(r=Jl.getLevel(n.level,r))}return r}nO.exports=function(e,t){typeof t=="string"||typeof t=="function"?t={format:t}:t=t||{};let r=e,n=Jl.getLevel(t.level,Jl.INFO),o=t.format||Qre,s=rie(t.nolog);return(a,l,u)=>{if(a._logging||s&&s.test(a.originalUrl))return u();if(r.isLevelEnabled(n)||t.level==="auto"){let c=new Date,{writeHead:f}=l;a._logging=!0,l.writeHead=(p,d)=>{l.writeHead=f,l.writeHead(p,d),l.__statusCode=p,l.__headers=d||{}},l.on("finish",()=>{l.responseTime=new Date-c,l.statusCode&&t.level==="auto"&&(n=Jl.INFO,l.statusCode>=300&&(n=Jl.WARN),l.statusCode>=400&&(n=Jl.ERROR)),n=iie(l.statusCode,n,t.statusRules);let p=tie(a,l,t.tokens||[]);if(t.context&&r.addContext("res",l),typeof o=="function"){let d=o(a,l,h=>iO(h,p));d&&r.log(n,d)}else r.log(n,iO(o,p));t.context&&r.removeContext("res")})}return u()}}});var sx=y((JTe,lO)=>{var ps=jt()("log4js:main"),nie=require("fs"),oie=lk()({proto:!0}),sie=pa(),aie=TD(),lie=ma(),uie=ix(),cie=ox(),fie=rO(),pie=nm(),die=oO(),Sm=!1;function hie(i){if(!Sm)return;ps("Received log event ",i),cie.appendersForCategory(i.categoryName).forEach(t=>{t(i)})}function mie(i){ps(`Loading configuration from ${i}`);try{return JSON.parse(nie.readFileSync(i,"utf8"))}catch(e){throw new Error(`Problem reading config from file "${i}". Error was ${e.message}`,e)}}function sO(i){let e=i;return typeof e=="string"&&(e=mie(i)),ps(`Configuration is ${e}`),sie.configure(oie(e)),pie.onMessage(hie),Sm=!0,aO}function gie(i){ps("Shutdown called. Disabling all log writing."),Sm=!1;let e=Array.from(uie.values()),t=e.reduceRight((s,a)=>a.shutdown?s+1:s,0),r=0,n;ps(`Found ${t} appenders with shutdown functions.`);function o(s){n=n||s,r+=1,ps(`Appender shutdowns complete: ${r} / ${t}`),r>=t&&(ps("All shutdown functions completed."),i&&i(n))}return t===0?(ps("No appenders with shutdown functions found."),i!==void 0&&i()):(e.filter(s=>s.shutdown).forEach(s=>s.shutdown(o)),null)}function vie(i){return Sm||sO(process.env.LOG4JS_CONFIG||{appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"OFF"}}}),new fie(i||"default")}var aO={getLogger:vie,configure:sO,shutdown:gie,connectLogger:die,levels:lie,addLayout:aie.addLayout};lO.exports=aO});var wi=y(ax=>{"use strict";ax.fromCallback=function(i){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")i.apply(this,e);else return new Promise((t,r)=>{i.apply(this,e.concat([(n,o)=>n?r(n):t(o)]))})},"name",{value:i.name})};ax.fromPromise=function(i){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return i.apply(this,e);i.apply(this,e.slice(0,-1)).then(r=>t(null,r),t)},"name",{value:i.name})}});var $f=y(ds=>{"use strict";var uO=wi().fromCallback,Br=Fe(),yie=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter(i=>typeof Br[i]=="function");Object.keys(Br).forEach(i=>{i!=="promises"&&(ds[i]=Br[i])});yie.forEach(i=>{ds[i]=uO(Br[i])});ds.exists=function(i,e){return typeof e=="function"?Br.exists(i,e):new Promise(t=>Br.exists(i,t))};ds.read=function(i,e,t,r,n,o){return typeof o=="function"?Br.read(i,e,t,r,n,o):new Promise((s,a)=>{Br.read(i,e,t,r,n,(l,u,c)=>{if(l)return a(l);s({bytesRead:u,buffer:c})})})};ds.write=function(i,e,...t){return typeof t[t.length-1]=="function"?Br.write(i,e,...t):new Promise((r,n)=>{Br.write(i,e,...t,(o,s,a)=>{if(o)return n(o);r({bytesWritten:s,buffer:a})})})};typeof Br.writev=="function"&&(ds.writev=function(i,e,...t){return typeof t[t.length-1]=="function"?Br.writev(i,e,...t):new Promise((r,n)=>{Br.writev(i,e,...t,(o,s,a)=>{if(o)return n(o);r({bytesWritten:s,buffers:a})})})});typeof Br.realpath.native=="function"&&(ds.realpath.native=uO(Br.realpath.native))});var lx=y((ZTe,cO)=>{cO.exports=i=>{let e=process.versions.node.split(".").map(t=>parseInt(t,10));return i=i.split(".").map(t=>parseInt(t,10)),e[0]>i[0]||e[0]===i[0]&&(e[1]>i[1]||e[1]===i[1]&&e[2]>=i[2])}});var mO=y((QTe,ux)=>{"use strict";var Yl=$f(),yo=require("path"),bie=lx(),fO=bie("10.12.0"),pO=i=>{if(process.platform==="win32"&&/[<>:"|?*]/.test(i.replace(yo.parse(i).root,""))){let t=new Error(`Path contains invalid characters: ${i}`);throw t.code="EINVAL",t}},dO=i=>{let e={mode:511};return typeof i=="number"&&(i={mode:i}),mt(mt({},e),i)},hO=i=>{let e=new Error(`operation not permitted, mkdir '${i}'`);return e.code="EPERM",e.errno=-4048,e.path=i,e.syscall="mkdir",e};ux.exports.makeDir=async(i,e)=>{if(pO(i),e=dO(e),fO){let r=yo.resolve(i);return Yl.mkdir(r,{mode:e.mode,recursive:!0})}let t=async r=>{try{await Yl.mkdir(r,e.mode)}catch(n){if(n.code==="EPERM")throw n;if(n.code==="ENOENT"){if(yo.dirname(r)===r)throw hO(r);if(n.message.includes("null bytes"))throw n;return await t(yo.dirname(r)),t(r)}try{if(!(await Yl.stat(r)).isDirectory())throw new Error("The path is not a directory")}catch{throw n}}};return t(yo.resolve(i))};ux.exports.makeDirSync=(i,e)=>{if(pO(i),e=dO(e),fO){let r=yo.resolve(i);return Yl.mkdirSync(r,{mode:e.mode,recursive:!0})}let t=r=>{try{Yl.mkdirSync(r,e.mode)}catch(n){if(n.code==="EPERM")throw n;if(n.code==="ENOENT"){if(yo.dirname(r)===r)throw hO(r);if(n.message.includes("null bytes"))throw n;return t(yo.dirname(r)),t(r)}try{if(!Yl.statSync(r).isDirectory())throw new Error("The path is not a directory")}catch{throw n}}};return t(yo.resolve(i))}});var yn=y((ePe,gO)=>{"use strict";var wie=wi().fromPromise,{makeDir:Die,makeDirSync:cx}=mO(),fx=wie(Die);gO.exports={mkdirs:fx,mkdirsSync:cx,mkdirp:fx,mkdirpSync:cx,ensureDir:fx,ensureDirSync:cx}});var px=y((tPe,vO)=>{"use strict";var Xl=Fe();function xie(i,e,t,r){Xl.open(i,"r+",(n,o)=>{if(n)return r(n);Xl.futimes(o,e,t,s=>{Xl.close(o,a=>{r&&r(s||a)})})})}function Sie(i,e,t){let r=Xl.openSync(i,"r+");return Xl.futimesSync(r,e,t),Xl.closeSync(r)}vO.exports={utimesMillis:xie,utimesMillisSync:Sie}});var Bf=y((rPe,DO)=>{"use strict";var Zl=$f(),ti=require("path"),Cie=require("util"),Eie=lx(),Cm=Eie("10.5.0"),yO=i=>Cm?Zl.stat(i,{bigint:!0}):Zl.stat(i),dx=i=>Cm?Zl.statSync(i,{bigint:!0}):Zl.statSync(i);function _ie(i,e){return Promise.all([yO(i),yO(e).catch(t=>{if(t.code==="ENOENT")return null;throw t})]).then(([t,r])=>({srcStat:t,destStat:r}))}function Tie(i,e){let t,r=dx(i);try{t=dx(e)}catch(n){if(n.code==="ENOENT")return{srcStat:r,destStat:null};throw n}return{srcStat:r,destStat:t}}function Pie(i,e,t,r){Cie.callbackify(_ie)(i,e,(n,o)=>{if(n)return r(n);let{srcStat:s,destStat:a}=o;return a&&Em(s,a)?r(new Error("Source and destination must not be the same.")):s.isDirectory()&&hx(i,e)?r(new Error(_m(i,e,t))):r(null,{srcStat:s,destStat:a})})}function Rie(i,e,t){let{srcStat:r,destStat:n}=Tie(i,e);if(n&&Em(r,n))throw new Error("Source and destination must not be the same.");if(r.isDirectory()&&hx(i,e))throw new Error(_m(i,e,t));return{srcStat:r,destStat:n}}function bO(i,e,t,r,n){let o=ti.resolve(ti.dirname(i)),s=ti.resolve(ti.dirname(t));if(s===o||s===ti.parse(s).root)return n();let a=(l,u)=>l?l.code==="ENOENT"?n():n(l):Em(e,u)?n(new Error(_m(i,t,r))):bO(i,e,s,r,n);Cm?Zl.stat(s,{bigint:!0},a):Zl.stat(s,a)}function wO(i,e,t,r){let n=ti.resolve(ti.dirname(i)),o=ti.resolve(ti.dirname(t));if(o===n||o===ti.parse(o).root)return;let s;try{s=dx(o)}catch(a){if(a.code==="ENOENT")return;throw a}if(Em(e,s))throw new Error(_m(i,t,r));return wO(i,e,o,r)}function Em(i,e){return!!(e.ino&&e.dev&&e.ino===i.ino&&e.dev===i.dev&&(Cm||e.inon),r=ti.resolve(e).split(ti.sep).filter(n=>n);return t.reduce((n,o,s)=>n&&r[s]===o,!0)}function _m(i,e,t){return`Cannot ${t} '${i}' to a subdirectory of itself, '${e}'.`}DO.exports={checkPaths:Pie,checkPathsSync:Rie,checkParentPaths:bO,checkParentPathsSync:wO,isSrcSubdir:hx}});var _O=y((iPe,EO)=>{"use strict";var Cr=Fe(),jf=require("path"),kie=yn().mkdirsSync,Iie=px().utimesMillisSync,Uf=Bf();function Fie(i,e,t){typeof t=="function"&&(t={filter:t}),t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`);let{srcStat:r,destStat:n}=Uf.checkPathsSync(i,e,"copy");return Uf.checkParentPathsSync(i,r,e,"copy"),Oie(n,i,e,t)}function Oie(i,e,t,r){if(r.filter&&!r.filter(e,t))return;let n=jf.dirname(t);return Cr.existsSync(n)||kie(n),xO(i,e,t,r)}function xO(i,e,t,r){if(!(r.filter&&!r.filter(e,t)))return Aie(i,e,t,r)}function Aie(i,e,t,r){let o=(r.dereference?Cr.statSync:Cr.lstatSync)(e);if(o.isDirectory())return jie(o,i,e,t,r);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return Lie(o,i,e,t,r);if(o.isSymbolicLink())return Hie(i,e,t,r)}function Lie(i,e,t,r,n){return e?Mie(i,t,r,n):SO(i,t,r,n)}function Mie(i,e,t,r){if(r.overwrite)return Cr.unlinkSync(t),SO(i,e,t,r);if(r.errorOnExist)throw new Error(`'${t}' already exists`)}function SO(i,e,t,r){return Cr.copyFileSync(e,t),r.preserveTimestamps&&qie(i.mode,e,t),mx(t,i.mode)}function qie(i,e,t){return Nie(i)&&$ie(t,i),Bie(e,t)}function Nie(i){return(i&128)==0}function $ie(i,e){return mx(i,e|128)}function mx(i,e){return Cr.chmodSync(i,e)}function Bie(i,e){let t=Cr.statSync(i);return Iie(e,t.atime,t.mtime)}function jie(i,e,t,r,n){if(!e)return Uie(i.mode,t,r,n);if(e&&!e.isDirectory())throw new Error(`Cannot overwrite non-directory '${r}' with directory '${t}'.`);return CO(t,r,n)}function Uie(i,e,t,r){return Cr.mkdirSync(t),CO(e,t,r),mx(t,i)}function CO(i,e,t){Cr.readdirSync(i).forEach(r=>Wie(r,i,e,t))}function Wie(i,e,t,r){let n=jf.join(e,i),o=jf.join(t,i),{destStat:s}=Uf.checkPathsSync(n,o,"copy");return xO(s,n,o,r)}function Hie(i,e,t,r){let n=Cr.readlinkSync(e);if(r.dereference&&(n=jf.resolve(process.cwd(),n)),i){let o;try{o=Cr.readlinkSync(t)}catch(s){if(s.code==="EINVAL"||s.code==="UNKNOWN")return Cr.symlinkSync(n,t);throw s}if(r.dereference&&(o=jf.resolve(process.cwd(),o)),Uf.isSrcSubdir(n,o))throw new Error(`Cannot copy '${n}' to a subdirectory of itself, '${o}'.`);if(Cr.statSync(t).isDirectory()&&Uf.isSrcSubdir(o,n))throw new Error(`Cannot overwrite '${o}' with '${n}'.`);return zie(n,t)}else return Cr.symlinkSync(n,t)}function zie(i,e){return Cr.unlinkSync(e),Cr.symlinkSync(i,e)}EO.exports=Fie});var gx=y((nPe,TO)=>{"use strict";TO.exports={copySync:_O()}});var hs=y((oPe,RO)=>{"use strict";var Gie=wi().fromPromise,PO=$f();function Vie(i){return PO.access(i).then(()=>!0).catch(()=>!1)}RO.exports={pathExists:Gie(Vie),pathExistsSync:PO.existsSync}});var NO=y((sPe,qO)=>{"use strict";var ri=Fe(),Wf=require("path"),Kie=yn().mkdirs,Jie=hs().pathExists,Yie=px().utimesMillis,Hf=Bf();function Xie(i,e,t,r){typeof t=="function"&&!r?(r=t,t={}):typeof t=="function"&&(t={filter:t}),r=r||function(){},t=t||{},t.clobber="clobber"in t?!!t.clobber:!0,t.overwrite="overwrite"in t?!!t.overwrite:t.clobber,t.preserveTimestamps&&process.arch==="ia32"&&console.warn(`fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended; + + see https://github.com/jprichardson/node-fs-extra/issues/269`),Hf.checkPaths(i,e,"copy",(n,o)=>{if(n)return r(n);let{srcStat:s,destStat:a}=o;Hf.checkParentPaths(i,s,e,"copy",l=>l?r(l):t.filter?IO(kO,a,i,e,t,r):kO(a,i,e,t,r))})}function kO(i,e,t,r,n){let o=Wf.dirname(t);Jie(o,(s,a)=>{if(s)return n(s);if(a)return vx(i,e,t,r,n);Kie(o,l=>l?n(l):vx(i,e,t,r,n))})}function IO(i,e,t,r,n,o){Promise.resolve(n.filter(t,r)).then(s=>s?i(e,t,r,n,o):o(),s=>o(s))}function vx(i,e,t,r,n){return r.filter?IO(FO,i,e,t,r,n):FO(i,e,t,r,n)}function FO(i,e,t,r,n){(r.dereference?ri.stat:ri.lstat)(e,(s,a)=>{if(s)return n(s);if(a.isDirectory())return nne(a,i,e,t,r,n);if(a.isFile()||a.isCharacterDevice()||a.isBlockDevice())return Zie(a,i,e,t,r,n);if(a.isSymbolicLink())return ane(i,e,t,r,n)})}function Zie(i,e,t,r,n,o){return e?Qie(i,t,r,n,o):OO(i,t,r,n,o)}function Qie(i,e,t,r,n){if(r.overwrite)ri.unlink(t,o=>o?n(o):OO(i,e,t,r,n));else return r.errorOnExist?n(new Error(`'${t}' already exists`)):n()}function OO(i,e,t,r,n){ri.copyFile(e,t,o=>o?n(o):r.preserveTimestamps?ene(i.mode,e,t,n):Tm(t,i.mode,n))}function ene(i,e,t,r){return tne(i)?rne(t,i,n=>n?r(n):AO(i,e,t,r)):AO(i,e,t,r)}function tne(i){return(i&128)==0}function rne(i,e,t){return Tm(i,e|128,t)}function AO(i,e,t,r){ine(e,t,n=>n?r(n):Tm(t,i,r))}function Tm(i,e,t){return ri.chmod(i,e,t)}function ine(i,e,t){ri.stat(i,(r,n)=>r?t(r):Yie(e,n.atime,n.mtime,t))}function nne(i,e,t,r,n,o){return e?e&&!e.isDirectory()?o(new Error(`Cannot overwrite non-directory '${r}' with directory '${t}'.`)):LO(t,r,n,o):one(i.mode,t,r,n,o)}function one(i,e,t,r,n){ri.mkdir(t,o=>{if(o)return n(o);LO(e,t,r,s=>s?n(s):Tm(t,i,n))})}function LO(i,e,t,r){ri.readdir(i,(n,o)=>n?r(n):MO(o,i,e,t,r))}function MO(i,e,t,r,n){let o=i.pop();return o?sne(i,o,e,t,r,n):n()}function sne(i,e,t,r,n,o){let s=Wf.join(t,e),a=Wf.join(r,e);Hf.checkPaths(s,a,"copy",(l,u)=>{if(l)return o(l);let{destStat:c}=u;vx(c,s,a,n,f=>f?o(f):MO(i,t,r,n,o))})}function ane(i,e,t,r,n){ri.readlink(e,(o,s)=>{if(o)return n(o);if(r.dereference&&(s=Wf.resolve(process.cwd(),s)),i)ri.readlink(t,(a,l)=>a?a.code==="EINVAL"||a.code==="UNKNOWN"?ri.symlink(s,t,n):n(a):(r.dereference&&(l=Wf.resolve(process.cwd(),l)),Hf.isSrcSubdir(s,l)?n(new Error(`Cannot copy '${s}' to a subdirectory of itself, '${l}'.`)):i.isDirectory()&&Hf.isSrcSubdir(l,s)?n(new Error(`Cannot overwrite '${l}' with '${s}'.`)):lne(s,t,n)));else return ri.symlink(s,t,n)})}function lne(i,e,t){ri.unlink(e,r=>r?t(r):ri.symlink(i,e,t))}qO.exports=Xie});var yx=y((aPe,$O)=>{"use strict";var une=wi().fromCallback;$O.exports={copy:une(NO())}});var KO=y((lPe,VO)=>{"use strict";var BO=Fe(),jO=require("path"),at=require("assert"),zf=process.platform==="win32";function UO(i){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach(t=>{i[t]=i[t]||BO[t],t=t+"Sync",i[t]=i[t]||BO[t]}),i.maxBusyTries=i.maxBusyTries||3}function bx(i,e,t){let r=0;typeof e=="function"&&(t=e,e={}),at(i,"rimraf: missing path"),at.strictEqual(typeof i,"string","rimraf: path should be a string"),at.strictEqual(typeof t,"function","rimraf: callback function required"),at(e,"rimraf: invalid options argument provided"),at.strictEqual(typeof e,"object","rimraf: options should be object"),UO(e),WO(i,e,function n(o){if(o){if((o.code==="EBUSY"||o.code==="ENOTEMPTY"||o.code==="EPERM")&&rWO(i,e,n),s)}o.code==="ENOENT"&&(o=null)}t(o)})}function WO(i,e,t){at(i),at(e),at(typeof t=="function"),e.lstat(i,(r,n)=>{if(r&&r.code==="ENOENT")return t(null);if(r&&r.code==="EPERM"&&zf)return HO(i,e,r,t);if(n&&n.isDirectory())return Pm(i,e,r,t);e.unlink(i,o=>{if(o){if(o.code==="ENOENT")return t(null);if(o.code==="EPERM")return zf?HO(i,e,o,t):Pm(i,e,o,t);if(o.code==="EISDIR")return Pm(i,e,o,t)}return t(o)})})}function HO(i,e,t,r){at(i),at(e),at(typeof r=="function"),e.chmod(i,438,n=>{n?r(n.code==="ENOENT"?null:t):e.stat(i,(o,s)=>{o?r(o.code==="ENOENT"?null:t):s.isDirectory()?Pm(i,e,t,r):e.unlink(i,r)})})}function zO(i,e,t){let r;at(i),at(e);try{e.chmodSync(i,438)}catch(n){if(n.code==="ENOENT")return;throw t}try{r=e.statSync(i)}catch(n){if(n.code==="ENOENT")return;throw t}r.isDirectory()?Rm(i,e,t):e.unlinkSync(i)}function Pm(i,e,t,r){at(i),at(e),at(typeof r=="function"),e.rmdir(i,n=>{n&&(n.code==="ENOTEMPTY"||n.code==="EEXIST"||n.code==="EPERM")?cne(i,e,r):n&&n.code==="ENOTDIR"?r(t):r(n)})}function cne(i,e,t){at(i),at(e),at(typeof t=="function"),e.readdir(i,(r,n)=>{if(r)return t(r);let o=n.length,s;if(o===0)return e.rmdir(i,t);n.forEach(a=>{bx(jO.join(i,a),e,l=>{if(!s){if(l)return t(s=l);--o==0&&e.rmdir(i,t)}})})})}function GO(i,e){let t;e=e||{},UO(e),at(i,"rimraf: missing path"),at.strictEqual(typeof i,"string","rimraf: path should be a string"),at(e,"rimraf: missing options"),at.strictEqual(typeof e,"object","rimraf: options should be object");try{t=e.lstatSync(i)}catch(r){if(r.code==="ENOENT")return;r.code==="EPERM"&&zf&&zO(i,e,r)}try{t&&t.isDirectory()?Rm(i,e,null):e.unlinkSync(i)}catch(r){if(r.code==="ENOENT")return;if(r.code==="EPERM")return zf?zO(i,e,r):Rm(i,e,r);if(r.code!=="EISDIR")throw r;Rm(i,e,r)}}function Rm(i,e,t){at(i),at(e);try{e.rmdirSync(i)}catch(r){if(r.code==="ENOTDIR")throw t;if(r.code==="ENOTEMPTY"||r.code==="EEXIST"||r.code==="EPERM")fne(i,e);else if(r.code!=="ENOENT")throw r}}function fne(i,e){if(at(i),at(e),e.readdirSync(i).forEach(t=>GO(jO.join(i,t),e)),zf){let t=Date.now();do try{return e.rmdirSync(i,e)}catch{}while(Date.now()-t<500)}else return e.rmdirSync(i,e)}VO.exports=bx;bx.sync=GO});var Gf=y((uPe,YO)=>{"use strict";var pne=wi().fromCallback,JO=KO();YO.exports={remove:pne(JO),removeSync:JO.sync}});var nA=y((cPe,iA)=>{"use strict";var dne=wi().fromCallback,XO=Fe(),ZO=require("path"),QO=yn(),eA=Gf(),tA=dne(function(e,t){t=t||function(){},XO.readdir(e,(r,n)=>{if(r)return QO.mkdirs(e,t);n=n.map(s=>ZO.join(e,s)),o();function o(){let s=n.pop();if(!s)return t();eA.remove(s,a=>{if(a)return t(a);o()})}})});function rA(i){let e;try{e=XO.readdirSync(i)}catch{return QO.mkdirsSync(i)}e.forEach(t=>{t=ZO.join(i,t),eA.removeSync(t)})}iA.exports={emptyDirSync:rA,emptydirSync:rA,emptyDir:tA,emptydir:tA}});var lA=y((fPe,aA)=>{"use strict";var hne=wi().fromCallback,oA=require("path"),ms=Fe(),sA=yn();function mne(i,e){function t(){ms.writeFile(i,"",r=>{if(r)return e(r);e()})}ms.stat(i,(r,n)=>{if(!r&&n.isFile())return e();let o=oA.dirname(i);ms.stat(o,(s,a)=>{if(s)return s.code==="ENOENT"?sA.mkdirs(o,l=>{if(l)return e(l);t()}):e(s);a.isDirectory()?t():ms.readdir(o,l=>{if(l)return e(l)})})})}function gne(i){let e;try{e=ms.statSync(i)}catch{}if(e&&e.isFile())return;let t=oA.dirname(i);try{ms.statSync(t).isDirectory()||ms.readdirSync(t)}catch(r){if(r&&r.code==="ENOENT")sA.mkdirsSync(t);else throw r}ms.writeFileSync(i,"")}aA.exports={createFile:hne(mne),createFileSync:gne}});var dA=y((pPe,pA)=>{"use strict";var vne=wi().fromCallback,uA=require("path"),_a=Fe(),cA=yn(),fA=hs().pathExists;function yne(i,e,t){function r(n,o){_a.link(n,o,s=>{if(s)return t(s);t(null)})}fA(e,(n,o)=>{if(n)return t(n);if(o)return t(null);_a.lstat(i,s=>{if(s)return s.message=s.message.replace("lstat","ensureLink"),t(s);let a=uA.dirname(e);fA(a,(l,u)=>{if(l)return t(l);if(u)return r(i,e);cA.mkdirs(a,c=>{if(c)return t(c);r(i,e)})})})})}function bne(i,e){if(_a.existsSync(e))return;try{_a.lstatSync(i)}catch(o){throw o.message=o.message.replace("lstat","ensureLink"),o}let r=uA.dirname(e);return _a.existsSync(r)||cA.mkdirsSync(r),_a.linkSync(i,e)}pA.exports={createLink:vne(yne),createLinkSync:bne}});var mA=y((dPe,hA)=>{"use strict";var gs=require("path"),Vf=Fe(),wne=hs().pathExists;function Dne(i,e,t){if(gs.isAbsolute(i))return Vf.lstat(i,r=>r?(r.message=r.message.replace("lstat","ensureSymlink"),t(r)):t(null,{toCwd:i,toDst:i}));{let r=gs.dirname(e),n=gs.join(r,i);return wne(n,(o,s)=>o?t(o):s?t(null,{toCwd:n,toDst:i}):Vf.lstat(i,a=>a?(a.message=a.message.replace("lstat","ensureSymlink"),t(a)):t(null,{toCwd:i,toDst:gs.relative(r,i)})))}}function xne(i,e){let t;if(gs.isAbsolute(i)){if(t=Vf.existsSync(i),!t)throw new Error("absolute srcpath does not exist");return{toCwd:i,toDst:i}}else{let r=gs.dirname(e),n=gs.join(r,i);if(t=Vf.existsSync(n),t)return{toCwd:n,toDst:i};if(t=Vf.existsSync(i),!t)throw new Error("relative srcpath does not exist");return{toCwd:i,toDst:gs.relative(r,i)}}}hA.exports={symlinkPaths:Dne,symlinkPathsSync:xne}});var yA=y((hPe,vA)=>{"use strict";var gA=Fe();function Sne(i,e,t){if(t=typeof e=="function"?e:t,e=typeof e=="function"?!1:e,e)return t(null,e);gA.lstat(i,(r,n)=>{if(r)return t(null,"file");e=n&&n.isDirectory()?"dir":"file",t(null,e)})}function Cne(i,e){let t;if(e)return e;try{t=gA.lstatSync(i)}catch{return"file"}return t&&t.isDirectory()?"dir":"file"}vA.exports={symlinkType:Sne,symlinkTypeSync:Cne}});var EA=y((mPe,CA)=>{"use strict";var Ene=wi().fromCallback,bA=require("path"),Ql=Fe(),wA=yn(),_ne=wA.mkdirs,Tne=wA.mkdirsSync,DA=mA(),Pne=DA.symlinkPaths,Rne=DA.symlinkPathsSync,xA=yA(),kne=xA.symlinkType,Ine=xA.symlinkTypeSync,SA=hs().pathExists;function Fne(i,e,t,r){r=typeof t=="function"?t:r,t=typeof t=="function"?!1:t,SA(e,(n,o)=>{if(n)return r(n);if(o)return r(null);Pne(i,e,(s,a)=>{if(s)return r(s);i=a.toDst,kne(a.toCwd,t,(l,u)=>{if(l)return r(l);let c=bA.dirname(e);SA(c,(f,p)=>{if(f)return r(f);if(p)return Ql.symlink(i,e,u,r);_ne(c,d=>{if(d)return r(d);Ql.symlink(i,e,u,r)})})})})})}function One(i,e,t){if(Ql.existsSync(e))return;let n=Rne(i,e);i=n.toDst,t=Ine(n.toCwd,t);let o=bA.dirname(e);return Ql.existsSync(o)||Tne(o),Ql.symlinkSync(i,e,t)}CA.exports={createSymlink:Ene(Fne),createSymlinkSync:One}});var TA=y((gPe,_A)=>{"use strict";var km=lA(),Im=dA(),Fm=EA();_A.exports={createFile:km.createFile,createFileSync:km.createFileSync,ensureFile:km.createFile,ensureFileSync:km.createFileSync,createLink:Im.createLink,createLinkSync:Im.createLinkSync,ensureLink:Im.createLink,ensureLinkSync:Im.createLinkSync,createSymlink:Fm.createSymlink,createSymlinkSync:Fm.createSymlinkSync,ensureSymlink:Fm.createSymlink,ensureSymlinkSync:Fm.createSymlinkSync}});var PA=y(wx=>{"use strict";wx.fromCallback=function(i){return Object.defineProperty(function(...e){if(typeof e[e.length-1]=="function")i.apply(this,e);else return new Promise((t,r)=>{i.call(this,...e,(n,o)=>n!=null?r(n):t(o))})},"name",{value:i.name})};wx.fromPromise=function(i){return Object.defineProperty(function(...e){let t=e[e.length-1];if(typeof t!="function")return i.apply(this,e);i.apply(this,e.slice(0,-1)).then(r=>t(null,r),t)},"name",{value:i.name})}});var Om=y((yPe,RA)=>{function Ane(i,{EOL:e=` +`,finalEOL:t=!0,replacer:r=null,spaces:n}={}){let o=t?e:"";return JSON.stringify(i,r,n).replace(/\n/g,e)+o}function Lne(i){return Buffer.isBuffer(i)&&(i=i.toString("utf8")),i.replace(/^\uFEFF/,"")}RA.exports={stringify:Ane,stripBom:Lne}});var OA=y((bPe,FA)=>{var eu;try{eu=Fe()}catch(i){eu=require("fs")}var Am=PA(),{stringify:kA,stripBom:IA}=Om();async function Mne(i,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||eu,r="throws"in e?e.throws:!0,n=await Am.fromCallback(t.readFile)(i,e);n=IA(n);let o;try{o=JSON.parse(n,e?e.reviver:null)}catch(s){if(r)throw s.message=`${i}: ${s.message}`,s;return null}return o}var qne=Am.fromPromise(Mne);function Nne(i,e={}){typeof e=="string"&&(e={encoding:e});let t=e.fs||eu,r="throws"in e?e.throws:!0;try{let n=t.readFileSync(i,e);return n=IA(n),JSON.parse(n,e.reviver)}catch(n){if(r)throw n.message=`${i}: ${n.message}`,n;return null}}async function $ne(i,e,t={}){let r=t.fs||eu,n=kA(e,t);await Am.fromCallback(r.writeFile)(i,n,t)}var Bne=Am.fromPromise($ne);function jne(i,e,t={}){let r=t.fs||eu,n=kA(e,t);return r.writeFileSync(i,n,t)}var Une={readFile:qne,readFileSync:Nne,writeFile:Bne,writeFileSync:jne};FA.exports=Une});var LA=y((wPe,AA)=>{"use strict";var Lm=OA();AA.exports={readJson:Lm.readFile,readJsonSync:Lm.readFileSync,writeJson:Lm.writeFile,writeJsonSync:Lm.writeFileSync}});var Mm=y((DPe,NA)=>{"use strict";var Wne=wi().fromCallback,Kf=Fe(),MA=require("path"),qA=yn(),Hne=hs().pathExists;function zne(i,e,t,r){typeof t=="function"&&(r=t,t="utf8");let n=MA.dirname(i);Hne(n,(o,s)=>{if(o)return r(o);if(s)return Kf.writeFile(i,e,t,r);qA.mkdirs(n,a=>{if(a)return r(a);Kf.writeFile(i,e,t,r)})})}function Gne(i,...e){let t=MA.dirname(i);if(Kf.existsSync(t))return Kf.writeFileSync(i,...e);qA.mkdirsSync(t),Kf.writeFileSync(i,...e)}NA.exports={outputFile:Wne(zne),outputFileSync:Gne}});var BA=y((xPe,$A)=>{"use strict";var{stringify:Vne}=Om(),{outputFile:Kne}=Mm();async function Jne(i,e,t={}){let r=Vne(e,t);await Kne(i,r,t)}$A.exports=Jne});var UA=y((SPe,jA)=>{"use strict";var{stringify:Yne}=Om(),{outputFileSync:Xne}=Mm();function Zne(i,e,t){let r=Yne(e,t);Xne(i,r,t)}jA.exports=Zne});var HA=y((CPe,WA)=>{"use strict";var Qne=wi().fromPromise,jr=LA();jr.outputJson=Qne(BA());jr.outputJsonSync=UA();jr.outputJSON=jr.outputJson;jr.outputJSONSync=jr.outputJsonSync;jr.writeJSON=jr.writeJson;jr.writeJSONSync=jr.writeJsonSync;jr.readJSON=jr.readJson;jr.readJSONSync=jr.readJsonSync;WA.exports=jr});var YA=y((EPe,JA)=>{"use strict";var zA=Fe(),eoe=require("path"),toe=gx().copySync,GA=Gf().removeSync,roe=yn().mkdirpSync,VA=Bf();function ioe(i,e,t){t=t||{};let r=t.overwrite||t.clobber||!1,{srcStat:n}=VA.checkPathsSync(i,e,"move");return VA.checkParentPathsSync(i,n,e,"move"),roe(eoe.dirname(e)),noe(i,e,r)}function noe(i,e,t){if(t)return GA(e),KA(i,e,t);if(zA.existsSync(e))throw new Error("dest already exists.");return KA(i,e,t)}function KA(i,e,t){try{zA.renameSync(i,e)}catch(r){if(r.code!=="EXDEV")throw r;return ooe(i,e,t)}}function ooe(i,e,t){return toe(i,e,{overwrite:t,errorOnExist:!0}),GA(i)}JA.exports=ioe});var ZA=y((_Pe,XA)=>{"use strict";XA.exports={moveSync:YA()}});var iL=y((TPe,rL)=>{"use strict";var soe=Fe(),aoe=require("path"),loe=yx().copy,QA=Gf().remove,uoe=yn().mkdirp,coe=hs().pathExists,eL=Bf();function foe(i,e,t,r){typeof t=="function"&&(r=t,t={});let n=t.overwrite||t.clobber||!1;eL.checkPaths(i,e,"move",(o,s)=>{if(o)return r(o);let{srcStat:a}=s;eL.checkParentPaths(i,a,e,"move",l=>{if(l)return r(l);uoe(aoe.dirname(e),u=>u?r(u):poe(i,e,n,r))})})}function poe(i,e,t,r){if(t)return QA(e,n=>n?r(n):tL(i,e,t,r));coe(e,(n,o)=>n?r(n):o?r(new Error("dest already exists.")):tL(i,e,t,r))}function tL(i,e,t,r){soe.rename(i,e,n=>n?n.code!=="EXDEV"?r(n):doe(i,e,t,r):r())}function doe(i,e,t,r){loe(i,e,{overwrite:t,errorOnExist:!0},o=>o?r(o):QA(i,r))}rL.exports=foe});var oL=y((PPe,nL)=>{"use strict";var hoe=wi().fromCallback;nL.exports={move:hoe(iL())}});var bn=y((RPe,Dx)=>{"use strict";Dx.exports=mt(mt(mt(mt(mt(mt(mt(mt(mt(mt(mt(mt({},$f()),gx()),yx()),nA()),TA()),HA()),yn()),ZA()),oL()),Mm()),hs()),Gf());var sL=require("fs");Object.getOwnPropertyDescriptor(sL,"promises")&&Object.defineProperty(Dx.exports,"promises",{get(){return sL.promises}})});var W=y((kPe,uL)=>{var Ta=E(require("fs")),xx=E(sx()),qm=E(require("path")),aL=E(require("os")),lL=E(bn());function moe(){let i=process.env.NVIM_COC_LOG_FILE;if(i)return i;let e=process.env.XDG_RUNTIME_DIR;if(e)try{return Ta.default.accessSync(e,Ta.default.constants.R_OK|Ta.default.constants.W_OK),qm.default.join(e,`coc-nvim-${process.pid}.log`)}catch(r){}let t=aL.default.tmpdir();return e=qm.default.join(t,`coc.nvim-${process.pid}`),Ta.default.existsSync(e)||(0,lL.mkdirpSync)(e),qm.default.join(e,"coc-nvim.log")}var goe=1024*1024,voe=10,Nm=moe(),yoe=process.env.NVIM_COC_LOG_LEVEL||"info";if(Ta.default.existsSync(Nm))try{Ta.default.writeFileSync(Nm,"",{encoding:"utf8",mode:438})}catch(i){}xx.default.configure({disableClustering:!0,appenders:{out:{type:"file",mode:438,filename:Nm,maxLogSize:goe,backups:voe,layout:{type:"pattern",pattern:`%d{ISO8601} %p (pid:${process.pid}) [%c] - %m`}}},categories:{default:{appenders:["out"],level:yoe}}});uL.exports=(i="coc-nvim")=>{let e=xx.default.getLogger(i);return e.getLogFile=()=>Nm,e}});var $m=y(()=>{Promise.prototype.logError=function(){this.catch(i=>{W()("extensions").error(i)})}});var fL=y((Cx,cL)=>{cL.exports=Sx(typeof Buffer!="undefined"&&Buffer)||Sx(Cx.Buffer)||Sx(typeof window!="undefined"&&window.Buffer)||Cx.Buffer;function Sx(i){return i&&i.isBuffer&&i}});var Bm=y((OPe,pL)=>{var boe={}.toString;pL.exports=Array.isArray||function(i){return boe.call(i)=="[object Array]"}});var mL=y((ru,hL)=>{var tu=Di(),ru=hL.exports=dL(0);ru.alloc=dL;ru.concat=tu.concat;ru.from=woe;function dL(i){return new Array(i)}function woe(i){if(!tu.isBuffer(i)&&tu.isView(i))i=tu.Uint8Array.from(i);else if(tu.isArrayBuffer(i))i=new Uint8Array(i);else{if(typeof i=="string")return tu.from.call(ru,i);if(typeof i=="number")throw new TypeError('"value" argument must not be a number')}return Array.prototype.slice.call(i)}});var yL=y((nu,vL)=>{var bo=Di(),iu=bo.global,nu=vL.exports=bo.hasBuffer?gL(0):[];nu.alloc=bo.hasBuffer&&iu.alloc||gL;nu.concat=bo.concat;nu.from=Doe;function gL(i){return new iu(i)}function Doe(i){if(!bo.isBuffer(i)&&bo.isView(i))i=bo.Uint8Array.from(i);else if(bo.isArrayBuffer(i))i=new Uint8Array(i);else{if(typeof i=="string")return bo.from.call(nu,i);if(typeof i=="number")throw new TypeError('"value" argument must not be a number')}return iu.from&&iu.from.length!==1?iu.from(i):new iu(i)}});var DL=y((ou,wL)=>{var jm=Di(),ou=wL.exports=jm.hasArrayBuffer?bL(0):[];ou.alloc=bL;ou.concat=jm.concat;ou.from=xoe;function bL(i){return new Uint8Array(i)}function xoe(i){if(jm.isView(i)){var e=i.byteOffset,t=i.byteLength;i=i.buffer,i.byteLength!==t&&(i.slice?i=i.slice(e,e+t):(i=new Uint8Array(i),i.byteLength!==t&&(i=Array.prototype.slice.call(i,e,e+t))))}else{if(typeof i=="string")return jm.from.call(ou,i);if(typeof i=="number")throw new TypeError('"value" argument must not be a number')}return new Uint8Array(i)}});var xL=y(Um=>{Um.copy=Eoe;Um.toString=Coe;Um.write=Soe;function Soe(i,e){for(var t=this,r=e||(e|=0),n=i.length,o=0,s=0;s>>6,t[r++]=128|o&63):o<55296||o>57343?(t[r++]=224|o>>>12,t[r++]=128|o>>>6&63,t[r++]=128|o&63):(o=(o-55296<<10|i.charCodeAt(s++)-56320)+65536,t[r++]=240|o>>>18,t[r++]=128|o>>>12&63,t[r++]=128|o>>>6&63,t[r++]=128|o&63);return r-e}function Coe(i,e,t){var r=this,n=e|0;t||(t=r.length);for(var o="",s=0;n=65536?(s-=65536,o+=String.fromCharCode((s>>>10)+55296,(s&1023)+56320)):o+=String.fromCharCode(s)}return o}function Eoe(i,e,t,r){var n;t||(t=0),!r&&r!==0&&(r=this.length),e||(e=0);var o=r-t;if(i===this&&t=0;n--)i[n+e]=this[n+t];else for(n=0;n{var Ex=xL();Jf.copy=_L;Jf.slice=TL;Jf.toString=_oe;Jf.write=Toe("write");var vs=Di(),SL=vs.global,CL=vs.hasBuffer&&"TYPED_ARRAY_SUPPORT"in SL,EL=CL&&!SL.TYPED_ARRAY_SUPPORT;function _L(i,e,t,r){var n=vs.isBuffer(this),o=vs.isBuffer(i);if(n&&o)return this.copy(i,e,t,r);if(!EL&&!n&&!o&&vs.isView(this)&&vs.isView(i)){var s=t||r!=null?TL.call(this,t,r):this;return i.set(s,e),s.length}else return Ex.copy.call(this,i,e,t,r)}function TL(i,e){var t=this.slice||!EL&&this.subarray;if(t)return t.call(this,i,e);var r=vs.alloc.call(this,e-i);return _L.call(this,r,0,i,e),r}function _oe(i,e,t){var r=!CL&&vs.isBuffer(this)?this.toString:Ex.toString;return r.apply(this,arguments)}function Toe(i){return e;function e(){var t=this[i]||Ex[i];return t.apply(this,arguments)}}});var Di=y(Er=>{var _x=Er.global=fL(),PL=Er.hasBuffer=_x&&!!_x.isBuffer,Tx=Er.hasArrayBuffer=typeof ArrayBuffer!="undefined",Poe=Er.isArray=Bm();Er.isArrayBuffer=Tx?Aoe:kx;var Roe=Er.isBuffer=PL?_x.isBuffer:kx,koe=Er.isView=Tx?ArrayBuffer.isView||OL("ArrayBuffer","buffer"):kx;Er.alloc=Rx;Er.concat=Foe;Er.from=Ioe;var RL=Er.Array=mL(),kL=Er.Buffer=yL(),IL=Er.Uint8Array=DL(),Px=Er.prototype=Wm();function Ioe(i){return typeof i=="string"?Loe.call(this,i):FL(this).from(i)}function Rx(i){return FL(this).alloc(i)}function Foe(i,e){e||(e=0,Array.prototype.forEach.call(i,o));var t=this!==Er&&this||i[0],r=Rx.call(t,e),n=0;return Array.prototype.forEach.call(i,s),r;function o(a){e+=a.length}function s(a){n+=Px.copy.call(a,r,n)}}var Ooe=OL("ArrayBuffer");function Aoe(i){return i instanceof ArrayBuffer||Ooe(i)}function Loe(i){var e=i.length*3,t=Rx.call(this,e),r=Px.write.call(t,i);return e!==r&&(t=Px.slice.call(t,0,r)),t}function FL(i){return Roe(i)?kL:koe(i)?IL:Poe(i)?RL:PL?kL:Tx?IL:RL}function kx(){return!1}function OL(i,e){return i="[object "+i+"]",function(t){return t!=null&&{}.toString.call(e?t[e]:t)===i}}});var Hm=y(AL=>{AL.ExtBuffer=Ix;var Moe=Di();function Ix(i,e){if(!(this instanceof Ix))return new Ix(i,e);this.buffer=Moe.from(i),this.type=e}});var ML=y(LL=>{LL.setExtPackers=$oe;var zm=Di(),qoe=zm.global,wn=zm.Uint8Array.from,Fx,Noe={name:1,message:1,stack:1,columnNumber:1,fileName:1,lineNumber:1};function $oe(i){i.addExtPacker(14,Error,[Pa,zi]),i.addExtPacker(1,EvalError,[Pa,zi]),i.addExtPacker(2,RangeError,[Pa,zi]),i.addExtPacker(3,ReferenceError,[Pa,zi]),i.addExtPacker(4,SyntaxError,[Pa,zi]),i.addExtPacker(5,TypeError,[Pa,zi]),i.addExtPacker(6,URIError,[Pa,zi]),i.addExtPacker(10,RegExp,[Boe,zi]),i.addExtPacker(11,Boolean,[Ox,zi]),i.addExtPacker(12,String,[Ox,zi]),i.addExtPacker(13,Date,[Number,zi]),i.addExtPacker(15,Number,[Ox,zi]),typeof Uint8Array!="undefined"&&(i.addExtPacker(17,Int8Array,wn),i.addExtPacker(18,Uint8Array,wn),i.addExtPacker(19,Int16Array,wn),i.addExtPacker(20,Uint16Array,wn),i.addExtPacker(21,Int32Array,wn),i.addExtPacker(22,Uint32Array,wn),i.addExtPacker(23,Float32Array,wn),typeof Float64Array!="undefined"&&i.addExtPacker(24,Float64Array,wn),typeof Uint8ClampedArray!="undefined"&&i.addExtPacker(25,Uint8ClampedArray,wn),i.addExtPacker(26,ArrayBuffer,wn),i.addExtPacker(29,DataView,wn)),zm.hasBuffer&&i.addExtPacker(27,qoe,zm.from)}function zi(i){return Fx||(Fx=Ax().encode),Fx(i)}function Ox(i){return i.valueOf()}function Boe(i){i=RegExp.prototype.toString.call(i).split("/"),i.shift();var e=[i.pop()];return e.unshift(i.join("/")),e}function Pa(i){var e={};for(var t in Noe)e[t]=i[t];return e}});var Gm=y(Yf=>{var joe,Uoe,Woe,Hoe;(function(i){var e="undefined",t=e!==typeof Buffer&&Buffer,r=e!==typeof Uint8Array&&Uint8Array,n=e!==typeof ArrayBuffer&&ArrayBuffer,o=[0,0,0,0,0,0,0,0],s=Array.isArray||P,a=4294967296,l=16777216,u;joe=c("Uint64BE",!0,!0),Uoe=c("Int64BE",!0,!1),Woe=c("Uint64LE",!1,!0),Hoe=c("Int64LE",!1,!1);function c(A,R,M){var L=R?0:4,q=R?4:0,F=R?0:3,O=R?1:2,U=R?2:1,X=R?3:0,de=R?v:x,Ae=R?D:S,yt=Dr.prototype,wr="is"+A,Pt="_"+wr;return yt.buffer=void 0,yt.offset=0,yt[Pt]=!0,yt.toNumber=Yh,yt.toString=yD,yt.toJSON=Yh,yt.toArray=f,t&&(yt.toBuffer=p),r&&(yt.toArrayBuffer=d),Dr[wr]=ts,i[A]=Dr,Dr;function Dr(ke,Ce,Ee,Ie){return this instanceof Dr?mo(this,ke,Ce,Ee,Ie):new Dr(ke,Ce,Ee,Ie)}function ts(ke){return!!(ke&&ke[Pt])}function mo(ke,Ce,Ee,Ie,Rt){if(r&&n&&(Ce instanceof n&&(Ce=new r(Ce)),Ie instanceof n&&(Ie=new r(Ie))),!Ce&&!Ee&&!Ie&&!u){ke.buffer=w(o,0);return}if(!h(Ce,Ee)){var mn=u||Array;Rt=Ee,Ie=Ce,Ee=0,Ce=new mn(8)}ke.buffer=Ce,ke.offset=Ee|=0,e!==typeof Ie&&(typeof Ie=="string"?Jh(Ce,Ee,Ie,Rt||10):h(Ie,Rt)?m(Ce,Ee,Ie,Rt):typeof Rt=="number"?(ql(Ce,Ee+L,Ie),ql(Ce,Ee+q,Rt)):Ie>0?de(Ce,Ee,Ie):Ie<0?Ae(Ce,Ee,Ie):m(Ce,Ee,o,0))}function Jh(ke,Ce,Ee,Ie){var Rt=0,mn=Ee.length,gn=0,vi=0;Ee[0]==="-"&&Rt++;for(var rs=Rt;Rt=0))break;vi=vi*Ie+is,gn=gn*Ie+Math.floor(vi/a),vi%=a}rs&&(gn=~gn,vi?vi=a-vi:gn++),ql(ke,Ce+L,gn),ql(ke,Ce+q,vi)}function Yh(){var ke=this.buffer,Ce=this.offset,Ee=Nl(ke,Ce+L),Ie=Nl(ke,Ce+q);return M||(Ee|=0),Ee?Ee*a+Ie:Ie}function yD(ke){var Ce=this.buffer,Ee=this.offset,Ie=Nl(Ce,Ee+L),Rt=Nl(Ce,Ee+q),mn="",gn=!M&&Ie&2147483648;for(gn&&(Ie=~Ie,Rt=a-Rt),ke=ke||10;;){var vi=Ie%ke*a+Rt;if(Ie=Math.floor(Ie/ke),Rt=Math.floor(vi/ke),mn=(vi%ke).toString(ke)+mn,!Ie&&!Rt)break}return gn&&(mn="-"+mn),mn}function ql(ke,Ce,Ee){ke[Ce+X]=Ee&255,Ee=Ee>>8,ke[Ce+U]=Ee&255,Ee=Ee>>8,ke[Ce+O]=Ee&255,Ee=Ee>>8,ke[Ce+F]=Ee&255}function Nl(ke,Ce){return ke[Ce+F]*l+(ke[Ce+O]<<16)+(ke[Ce+U]<<8)+ke[Ce+X]}}function f(A){var R=this.buffer,M=this.offset;return u=null,A!==!1&&M===0&&R.length===8&&s(R)?R:w(R,M)}function p(A){var R=this.buffer,M=this.offset;if(u=t,A!==!1&&M===0&&R.length===8&&Buffer.isBuffer(R))return R;var L=new t(8);return m(L,0,R,M),L}function d(A){var R=this.buffer,M=this.offset,L=R.buffer;if(u=r,A!==!1&&M===0&&L instanceof n&&L.byteLength===8)return L;var q=new r(8);return m(q,0,R,M),q.buffer}function h(A,R){var M=A&&A.length;return R|=0,M&&R+8<=M&&typeof A[R]!="string"}function m(A,R,M,L){R|=0,L|=0;for(var q=0;q<8;q++)A[R++]=M[L++]&255}function w(A,R){return Array.prototype.slice.call(A,R,R+8)}function v(A,R,M){for(var L=R+8;L>R;)A[--L]=M&255,M/=256}function D(A,R,M){var L=R+8;for(M++;L>R;)A[--L]=-M&255^255,M/=256}function x(A,R,M){for(var L=R+8;R{Lx.read=function(i,e,t,r,n){var o,s,a=n*8-r-1,l=(1<>1,c=-7,f=t?n-1:0,p=t?-1:1,d=i[e+f];for(f+=p,o=d&(1<<-c)-1,d>>=-c,c+=a;c>0;o=o*256+i[e+f],f+=p,c-=8);for(s=o&(1<<-c)-1,o>>=-c,c+=r;c>0;s=s*256+i[e+f],f+=p,c-=8);if(o===0)o=1-u;else{if(o===l)return s?NaN:(d?-1:1)*Infinity;s=s+Math.pow(2,r),o=o-u}return(d?-1:1)*s*Math.pow(2,o-r)};Lx.write=function(i,e,t,r,n,o){var s,a,l,u=o*8-n-1,c=(1<>1,p=n===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:o-1,h=r?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===Infinity?(a=isNaN(e)?1:0,s=c):(s=Math.floor(Math.log(e)/Math.LN2),e*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+f>=1?e+=p/l:e+=p*Math.pow(2,1-f),e*l>=2&&(s++,l/=2),s+f>=c?(a=0,s=c):s+f>=1?(a=(e*l-1)*Math.pow(2,n),s=s+f):(a=e*Math.pow(2,f-1)*Math.pow(2,n),s=0));n>=8;i[t+d]=a&255,d+=h,a/=256,n-=8);for(s=s<0;i[t+d]=s&255,d+=h,s/=256,u-=8);i[t+d-h]|=m*128}});var qx=y(qL=>{var zoe=qL.uint8=new Array(256);for(var Vm=0;Vm<=255;Vm++)zoe[Vm]=Goe(Vm);function Goe(i){return function(e){var t=e.reserve(1);e.buffer[t]=i}}});var KL=y(VL=>{var NL=Mx(),$L=Gm(),Voe=$L.Uint64BE,Koe=$L.Int64BE,BL=qx().uint8,Km=Di(),wt=Km.global,Joe=Km.hasBuffer&&"TYPED_ARRAY_SUPPORT"in wt,Yoe=Joe&&!wt.TYPED_ARRAY_SUPPORT,jL=Km.hasBuffer&&wt.prototype||{};VL.getWriteToken=Xoe;function Xoe(i){return i&&i.uint8array?Zoe():Yoe||Km.hasBuffer&&i&&i.safe?Qoe():UL()}function Zoe(){var i=UL();return i[202]=et(202,4,zL),i[203]=et(203,8,GL),i}function UL(){var i=BL.slice();return i[196]=Xf(196),i[197]=Ra(197),i[198]=ka(198),i[199]=Xf(199),i[200]=Ra(200),i[201]=ka(201),i[202]=et(202,4,jL.writeFloatBE||zL,!0),i[203]=et(203,8,jL.writeDoubleBE||GL,!0),i[204]=Xf(204),i[205]=Ra(205),i[206]=ka(206),i[207]=et(207,8,WL),i[208]=Xf(208),i[209]=Ra(209),i[210]=ka(210),i[211]=et(211,8,HL),i[217]=Xf(217),i[218]=Ra(218),i[219]=ka(219),i[220]=Ra(220),i[221]=ka(221),i[222]=Ra(222),i[223]=ka(223),i}function Qoe(){var i=BL.slice();return i[196]=et(196,1,wt.prototype.writeUInt8),i[197]=et(197,2,wt.prototype.writeUInt16BE),i[198]=et(198,4,wt.prototype.writeUInt32BE),i[199]=et(199,1,wt.prototype.writeUInt8),i[200]=et(200,2,wt.prototype.writeUInt16BE),i[201]=et(201,4,wt.prototype.writeUInt32BE),i[202]=et(202,4,wt.prototype.writeFloatBE),i[203]=et(203,8,wt.prototype.writeDoubleBE),i[204]=et(204,1,wt.prototype.writeUInt8),i[205]=et(205,2,wt.prototype.writeUInt16BE),i[206]=et(206,4,wt.prototype.writeUInt32BE),i[207]=et(207,8,WL),i[208]=et(208,1,wt.prototype.writeInt8),i[209]=et(209,2,wt.prototype.writeInt16BE),i[210]=et(210,4,wt.prototype.writeInt32BE),i[211]=et(211,8,HL),i[217]=et(217,1,wt.prototype.writeUInt8),i[218]=et(218,2,wt.prototype.writeUInt16BE),i[219]=et(219,4,wt.prototype.writeUInt32BE),i[220]=et(220,2,wt.prototype.writeUInt16BE),i[221]=et(221,4,wt.prototype.writeUInt32BE),i[222]=et(222,2,wt.prototype.writeUInt16BE),i[223]=et(223,4,wt.prototype.writeUInt32BE),i}function Xf(i){return function(e,t){var r=e.reserve(2),n=e.buffer;n[r++]=i,n[r]=t}}function Ra(i){return function(e,t){var r=e.reserve(3),n=e.buffer;n[r++]=i,n[r++]=t>>>8,n[r]=t}}function ka(i){return function(e,t){var r=e.reserve(5),n=e.buffer;n[r++]=i,n[r++]=t>>>24,n[r++]=t>>>16,n[r++]=t>>>8,n[r]=t}}function et(i,e,t,r){return function(n,o){var s=n.reserve(e+1);n.buffer[s++]=i,t.call(n.buffer,o,s,r)}}function WL(i,e){new Voe(this,e,i)}function HL(i,e){new Koe(this,e,i)}function zL(i,e){NL.write(this,i,e,!1,23,4)}function GL(i,e){NL.write(this,i,e,!1,52,8)}});var QL=y(ZL=>{var ese=Bm(),JL=Gm(),tse=JL.Uint64BE,rse=JL.Int64BE,YL=Di(),XL=Wm(),ise=KL(),nse=qx().uint8,ose=Hm().ExtBuffer,sse=typeof Uint8Array!="undefined",ase=typeof Map!="undefined",su=[];su[1]=212;su[2]=213;su[4]=214;su[8]=215;su[16]=216;ZL.getWriteType=lse;function lse(i){var e=ise.getWriteToken(i),t=i&&i.useraw,r=sse&&i&&i.binarraybuffer,n=r?YL.isArrayBuffer:YL.isBuffer,o=r?P:S,s=ase&&i&&i.usemap,a=s?M:R,l={boolean:u,function:D,number:c,object:t?v:w,string:m(t?h:d),symbol:D,undefined:D};return l;function u(q,F){var O=F?195:194;e[O](q,F)}function c(q,F){var O=F|0,U;if(F!==O){U=203,e[U](q,F);return}else-32<=O&&O<=127?U=O&255:0<=O?U=O<=255?204:O<=65535?205:206:U=-128<=O?208:-32768<=O?209:210;e[U](q,O)}function f(q,F){var O=207;e[O](q,F.toArray())}function p(q,F){var O=211;e[O](q,F.toArray())}function d(q){return q<32?1:q<=255?2:q<=65535?3:5}function h(q){return q<32?1:q<=65535?3:5}function m(q){return F;function F(O,U){var X=U.length,de=5+X*3;O.offset=O.reserve(de);var Ae=O.buffer,yt=q(X),wr=O.offset+yt;X=XL.write.call(Ae,U,wr);var Pt=q(X);if(yt!==Pt){var Dr=wr+Pt-yt,ts=wr+X;XL.copy.call(Ae,Ae,Dr,wr,ts)}var mo=Pt===1?160+X:Pt<=3?215+Pt:219;e[mo](O,X),O.offset+=X}}function w(q,F){if(F===null)return D(q,F);if(n(F))return o(q,F);if(ese(F))return x(q,F);if(tse.isUint64BE(F))return f(q,F);if(rse.isInt64BE(F))return p(q,F);var O=q.codec.getExtPacker(F);if(O&&(F=O(F)),F instanceof ose)return A(q,F);a(q,F)}function v(q,F){if(n(F))return L(q,F);w(q,F)}function D(q,F){var O=192;e[O](q,F)}function x(q,F){var O=F.length,U=O<16?144+O:O<=65535?220:221;e[U](q,O);for(var X=q.codec.encode,de=0;de{var use=Bm();Zf.createCodec=eM;Zf.install=fse;Zf.filter=hse;var cse=Di();function au(i){if(!(this instanceof au))return new au(i);this.options=i,this.init()}au.prototype.init=function(){var i=this.options;return i&&i.uint8array&&(this.bufferish=cse.Uint8Array),this};function fse(i){for(var e in i)au.prototype[e]=pse(au.prototype[e],i[e])}function pse(i,e){return i&&e?t:i||e;function t(){return i.apply(this,arguments),e.apply(this,arguments)}}function dse(i){return i=i.slice(),function(t){return i.reduce(e,t)};function e(t,r){return r(t)}}function hse(i){return use(i)?dse(i):i}function eM(i){return new au(i)}Zf.preset=eM({preset:!0})});var Jm=y(rM=>{var mse=Hm().ExtBuffer,gse=ML(),vse=QL(),Nx=Qf();Nx.install({addExtPacker:bse,getExtPacker:wse,init:tM});rM.preset=tM.call(Nx.preset);function yse(i){var e=vse.getWriteType(i);return t;function t(r,n){var o=e[typeof n];if(!o)throw new Error('Unsupported type "'+typeof n+'": '+n);o(r,n)}}function tM(){var i=this.options;return this.encode=yse(i),i&&i.preset&&gse.setExtPackers(this),this}function bse(i,e,t){t=Nx.filter(t);var r=e.name;if(r&&r!=="Object"){var n=this.extPackers||(this.extPackers={});n[r]=s}else{var o=this.extEncoderList||(this.extEncoderList=[]);o.unshift([e,s])}function s(a){return t&&(a=t(a)),new mse(a,i)}}function wse(i){var e=this.extPackers||(this.extPackers={}),t=i.constructor,r=t&&t.name&&e[t.name];if(r)return r;for(var n=this.extEncoderList||(this.extEncoderList=[]),o=n.length,s=0;s{$x.FlexDecoder=lu;$x.FlexEncoder=uu;var ep=Di(),Dse=2048,xse=65536,iM="BUFFER_SHORTAGE";function lu(){if(!(this instanceof lu))return new lu}function uu(){if(!(this instanceof uu))return new uu}lu.mixin=sM(Sse());lu.mixin(lu.prototype);uu.mixin=sM(Cse());uu.mixin(uu.prototype);function Sse(){return{bufferish:ep,write:i,fetch:_se,flush:e,push:oM,pull:Tse,read:nM,reserve:t,offset:0};function i(r){var n=this.offset?ep.prototype.slice.call(this.buffer,this.offset):this.buffer;this.buffer=n?r?this.bufferish.concat([n,r]):n:r,this.offset=0}function e(){for(;this.offsetthis.buffer.length)throw new Error(iM);return this.offset=o,n}}function Cse(){return{bufferish:ep,write:Ese,fetch:i,flush:e,push:oM,pull:t,read:nM,reserve:r,send:n,maxBufferSize:xse,minBufferSize:Dse,offset:0,start:0};function i(){var o=this.start;if(o1?this.bufferish.concat(o):o[0];return o.length=0,s}function r(o){var s=o|0;if(this.buffer){var a=this.buffer.length,l=this.offset|0,u=l+s;if(uthis.minBufferSize)this.flush(),this.push(o);else{var a=this.reserve(s);ep.prototype.copy.call(o,this.buffer,a)}}}function Ese(){throw new Error("method not implemented: write()")}function _se(){throw new Error("method not implemented: fetch()")}function nM(){var i=this.buffers&&this.buffers.length;return i?(this.flush(),this.pull()):this.fetch()}function oM(i){var e=this.buffers||(this.buffers=[]);e.push(i)}function Tse(){var i=this.buffers||(this.buffers=[]);return i.shift()}function sM(i){return e;function e(t){for(var r in i)t[r]=i[r];return t}}});var Ym=y(aM=>{aM.EncodeBuffer=cu;var Pse=Jm().preset,Rse=Bx().FlexEncoder;Rse.mixin(cu.prototype);function cu(i){if(!(this instanceof cu))return new cu(i);if(i&&(this.options=i,i.codec)){var e=this.codec=i.codec;e.bufferish&&(this.bufferish=e.bufferish)}}cu.prototype.codec=Pse;cu.prototype.write=function(i){this.codec.encode(this,i)}});var Ax=y(lM=>{lM.encode=Ise;var kse=Ym().EncodeBuffer;function Ise(i,e){var t=new kse(e);return t.write(i),t.read()}});var fM=y(cM=>{cM.setExtUnpackers=Ase;var uM=Di(),Fse=uM.global,jx,Ose={name:1,message:1,stack:1,columnNumber:1,fileName:1,lineNumber:1};function Ase(i){i.addExtUnpacker(14,[Gi,Ia(Error)]),i.addExtUnpacker(1,[Gi,Ia(EvalError)]),i.addExtUnpacker(2,[Gi,Ia(RangeError)]),i.addExtUnpacker(3,[Gi,Ia(ReferenceError)]),i.addExtUnpacker(4,[Gi,Ia(SyntaxError)]),i.addExtUnpacker(5,[Gi,Ia(TypeError)]),i.addExtUnpacker(6,[Gi,Ia(URIError)]),i.addExtUnpacker(10,[Gi,Lse]),i.addExtUnpacker(11,[Gi,Ur(Boolean)]),i.addExtUnpacker(12,[Gi,Ur(String)]),i.addExtUnpacker(13,[Gi,Ur(Date)]),i.addExtUnpacker(15,[Gi,Ur(Number)]),typeof Uint8Array!="undefined"&&(i.addExtUnpacker(17,Ur(Int8Array)),i.addExtUnpacker(18,Ur(Uint8Array)),i.addExtUnpacker(19,[ys,Ur(Int16Array)]),i.addExtUnpacker(20,[ys,Ur(Uint16Array)]),i.addExtUnpacker(21,[ys,Ur(Int32Array)]),i.addExtUnpacker(22,[ys,Ur(Uint32Array)]),i.addExtUnpacker(23,[ys,Ur(Float32Array)]),typeof Float64Array!="undefined"&&i.addExtUnpacker(24,[ys,Ur(Float64Array)]),typeof Uint8ClampedArray!="undefined"&&i.addExtUnpacker(25,Ur(Uint8ClampedArray)),i.addExtUnpacker(26,ys),i.addExtUnpacker(29,[ys,Ur(DataView)])),uM.hasBuffer&&i.addExtUnpacker(27,Ur(Fse))}function Gi(i){return jx||(jx=Ux().decode),jx(i)}function Lse(i){return RegExp.apply(null,i)}function Ia(i){return function(e){var t=new i;for(var r in Ose)t[r]=e[r];return t}}function Ur(i){return function(e){return new i(e)}}function ys(i){return new Uint8Array(i).buffer}});var zx=y(Hx=>{var pM=Mx(),dM=Gm(),hM=dM.Uint64BE,mM=dM.Int64BE;Hx.getReadFormat=Nse;Hx.readUint8=gM;var Wx=Di(),Xm=Wm(),Mse=typeof Map!="undefined",qse=!0;function Nse(i){var e=Wx.hasArrayBuffer&&i&&i.binarraybuffer,t=i&&i.int64,r=Mse&&i&&i.usemap,n={map:r?Bse:$se,array:jse,str:Use,bin:e?Hse:Wse,ext:zse,uint8:gM,uint16:Vse,uint32:Jse,uint64:Zm(8,t?Qse:Xse),int8:Gse,int16:Kse,int32:Yse,int64:Zm(8,t?eae:Zse),float32:Zm(4,tae),float64:Zm(8,rae)};return n}function $se(i,e){var t={},r,n=new Array(e),o=new Array(e),s=i.codec.decode;for(r=0;r{var iae=zx();yM.getReadToken=nae;function nae(i){var e=iae.getReadFormat(i);return i&&i.useraw?oae(e):vM(e)}function vM(i){var e,t=new Array(256);for(e=0;e<=127;e++)t[e]=tp(e);for(e=128;e<=143;e++)t[e]=wo(e-128,i.map);for(e=144;e<=159;e++)t[e]=wo(e-144,i.array);for(e=160;e<=191;e++)t[e]=wo(e-160,i.str);for(t[192]=tp(null),t[193]=null,t[194]=tp(!1),t[195]=tp(!0),t[196]=xi(i.uint8,i.bin),t[197]=xi(i.uint16,i.bin),t[198]=xi(i.uint32,i.bin),t[199]=xi(i.uint8,i.ext),t[200]=xi(i.uint16,i.ext),t[201]=xi(i.uint32,i.ext),t[202]=i.float32,t[203]=i.float64,t[204]=i.uint8,t[205]=i.uint16,t[206]=i.uint32,t[207]=i.uint64,t[208]=i.int8,t[209]=i.int16,t[210]=i.int32,t[211]=i.int64,t[212]=wo(1,i.ext),t[213]=wo(2,i.ext),t[214]=wo(4,i.ext),t[215]=wo(8,i.ext),t[216]=wo(16,i.ext),t[217]=xi(i.uint8,i.str),t[218]=xi(i.uint16,i.str),t[219]=xi(i.uint32,i.str),t[220]=xi(i.uint16,i.array),t[221]=xi(i.uint32,i.array),t[222]=xi(i.uint16,i.map),t[223]=xi(i.uint32,i.map),e=224;e<=255;e++)t[e]=tp(e-256);return t}function oae(i){var e,t=vM(i).slice();for(t[217]=t[196],t[218]=t[197],t[219]=t[198],e=160;e<=191;e++)t[e]=wo(e-160,i.bin);return t}function tp(i){return function(){return i}}function xi(i,e){return function(t){var r=i(t);return e(t,r)}}function wo(i,e){return function(t){return e(t,i)}}});var Qm=y(DM=>{var sae=Hm().ExtBuffer,aae=fM(),lae=zx().readUint8,uae=bM(),Gx=Qf();Gx.install({addExtUnpacker:fae,getExtUnpacker:pae,init:wM});DM.preset=wM.call(Gx.preset);function cae(i){var e=uae.getReadToken(i);return t;function t(r){var n=lae(r),o=e[n];if(!o)throw new Error("Invalid type: "+(n&&"0x"+n.toString(16)));return o(r)}}function wM(){var i=this.options;return this.decode=cae(i),i&&i.preset&&aae.setExtUnpackers(this),this}function fae(i,e){var t=this.extUnpackers||(this.extUnpackers=[]);t[i]=Gx.filter(e)}function pae(i){var e=this.extUnpackers||(this.extUnpackers=[]);return e[i]||t;function t(r){return new sae(r,i)}}});var eg=y(xM=>{xM.DecodeBuffer=fu;var dae=Qm().preset,hae=Bx().FlexDecoder;hae.mixin(fu.prototype);function fu(i){if(!(this instanceof fu))return new fu(i);if(i&&(this.options=i,i.codec)){var e=this.codec=i.codec;e.bufferish&&(this.bufferish=e.bufferish)}}fu.prototype.codec=dae;fu.prototype.fetch=function(){return this.codec.decode(this)}});var Ux=y(SM=>{SM.decode=gae;var mae=eg().DecodeBuffer;function gae(i,e){var t=new mae(e);return t.write(i),t.read()}});var Jx=y((tRe,Kx)=>{function Vx(){if(!(this instanceof Vx))return new Vx}(function(i){typeof Kx!="undefined"&&(Kx.exports=i);var e="listeners",t={on:n,once:o,off:s,emit:a};r(i.prototype),i.mixin=r;function r(u){for(var c in t)u[c]=t[c];return u}function n(u,c){return l(this,u).push(c),this}function o(u,c){var f=this;return p.originalListener=c,l(f,u).push(p),f;function p(){s.call(f,u,p),c.apply(this,arguments)}}function s(u,c){var f=this,p;if(!arguments.length)delete f[e];else if(c){if(p=l(f,u,!0),p){if(p=p.filter(d),!p.length)return s.call(f,u);f[e][u]=p}}else if(p=f[e],p&&(delete p[u],!Object.keys(p).length))return s.call(f);return f;function d(h){return h!==c&&h.originalListener!==c}}function a(u,c){var f=this,p=l(f,u,!0);if(!p)return!1;var d=arguments.length;if(d===1)p.forEach(m);else if(d===2)p.forEach(w);else{var h=Array.prototype.slice.call(arguments,1);p.forEach(v)}return!!p.length;function m(D){D.call(f)}function w(D){D.call(f,c)}function v(D){D.apply(f,h)}}function l(u,c,f){if(!(f&&!u[e])){var p=u[e]||(u[e]={});return p[c]||(p[c]=[])}}})(Vx)});var _M=y(EM=>{EM.Encoder=Fa;var vae=Jx(),CM=Ym().EncodeBuffer;function Fa(i){if(!(this instanceof Fa))return new Fa(i);CM.call(this,i)}Fa.prototype=new CM;vae.mixin(Fa.prototype);Fa.prototype.encode=function(i){this.write(i),this.emit("data",this.read())};Fa.prototype.end=function(i){arguments.length&&this.encode(i),this.flush(),this.emit("end")}});var RM=y(PM=>{PM.Decoder=bs;var yae=Jx(),TM=eg().DecodeBuffer;function bs(i){if(!(this instanceof bs))return new bs(i);TM.call(this,i)}bs.prototype=new TM;yae.mixin(bs.prototype);bs.prototype.decode=function(i){arguments.length&&this.write(i),this.flush()};bs.prototype.push=function(i){this.emit("data",i)};bs.prototype.end=function(i){this.decode(i),this.emit("end")}});var FM=y(IM=>{IM.createEncodeStream=pu;var bae=require("util"),kM=require("stream").Transform,wae=Ym().EncodeBuffer;bae.inherits(pu,kM);var Dae={objectMode:!0};function pu(i){if(!(this instanceof pu))return new pu(i);i?i.objectMode=!0:i=Dae,kM.call(this,i);var e=this,t=this.encoder=new wae(i);t.push=function(r){e.push(r)}}pu.prototype._transform=function(i,e,t){this.encoder.write(i),t&&t()};pu.prototype._flush=function(i){this.encoder.flush(),i&&i()}});var LM=y(AM=>{AM.createDecodeStream=rp;var xae=require("util"),OM=require("stream").Transform,Sae=eg().DecodeBuffer;xae.inherits(rp,OM);var Cae={objectMode:!0};function rp(i){if(!(this instanceof rp))return new rp(i);i?i.objectMode=!0:i=Cae,OM.call(this,i);var e=this,t=this.decoder=new Sae(i);t.push=function(r){e.push(r)}}rp.prototype._transform=function(i,e,t){this.decoder.write(i),this.decoder.flush(),t&&t()}});var qM=y(MM=>{Qm();Jm();MM.createCodec=Qf().createCodec});var $M=y(NM=>{Qm();Jm();NM.codec={preset:Qf().preset}});var BM=y(Do=>{Do.encode=Ax().encode;Do.decode=Ux().decode;Do.Encoder=_M().Encoder;Do.Decoder=RM().Decoder;Do.createEncodeStream=FM().createEncodeStream;Do.createDecodeStream=LM().createDecodeStream;Do.createCodec=qM().createCodec;Do.codec=$M().codec});var UM=y(Yx=>{"use strict";Object.defineProperty(Yx,"__esModule",{value:!0});var Eae=require("stream"),jM=class extends Eae.Transform{constructor(){super({readableHighWaterMark:10*1024*1024,writableHighWaterMark:10*1024*1024});this.chunks=null,this.timer=null}sendData(){let{chunks:e}=this;if(e){this.chunks=null;let t=Buffer.concat(e);this.push(t)}}_transform(e,t,r){let{chunks:n,timer:o}=this,s=Buffer.poolSize;if(o&&clearTimeout(o),e.length{"use strict";Object.defineProperty(tg,"__esModule",{value:!0});tg.BaseApi=void 0;var _ae=require("events"),Tae=process.env.VIM_NODE_RPC=="1",WM=class extends _ae.EventEmitter{constructor({transport:e,data:t,client:r}){super();this.setTransport(e),this.data=t,this.client=r}setTransport(e){this.transport=e}equals(e){try{return String(this.data)===String(e.data)}catch(t){return!1}}async request(e,t=[]){let r=Error().stack;return new Promise((n,o)=>{this.transport.request(e,this.getArgsByPrefix(t),(s,a)=>{if(s){let l=new Error(`request error ${e} - ${s[1]}`);l.stack=r,e.endsWith("get_var")||this.client.logError(`request error on "${e}"`,t,s[1],r),o(l)}else n(a)})})}getArgsByPrefix(e){return this.prefix!=="nvim_"&&e[0]!=this?[Tae?this.data:this,...e]:e}getVar(e){return this.request(`${this.prefix}get_var`,[e]).then(t=>t,t=>null)}setVar(e,t,r=!1){if(r){this.notify(`${this.prefix}set_var`,[e,t]);return}return this.request(`${this.prefix}set_var`,[e,t])}deleteVar(e){this.notify(`${this.prefix}del_var`,[e])}getOption(e){return this.request(`${this.prefix}get_option`,[e])}setOption(e,t,r){if(r){this.notify(`${this.prefix}set_option`,[e,t]);return}return this.request(`${this.prefix}set_option`,[e,t])}notify(e,t=[]){this.transport.notify(e,this.getArgsByPrefix(t))}};tg.BaseApi=WM});var np=y(rg=>{"use strict";Object.defineProperty(rg,"__esModule",{value:!0});rg.Buffer=void 0;var Pae=ip(),HM=class extends Pae.BaseApi{constructor(){super(...arguments);this.prefix="nvim_buf_"}async attach(e=!1,t={}){return await this.request(`${this.prefix}attach`,[e,t])}async detach(){return await this.request(`${this.prefix}detach`,[])}get id(){return this.data}get length(){return this.request(`${this.prefix}line_count`,[])}get lines(){return this.getLines()}get changedtick(){return this.request(`${this.prefix}get_changedtick`,[])}get commands(){return this.getCommands()}getCommands(e={}){return this.request(`${this.prefix}get_commands`,[e])}getLines({start:e,end:t,strictIndexing:r}={start:0,end:-1,strictIndexing:!0}){let n=typeof r=="undefined"?!0:r;return this.request(`${this.prefix}get_lines`,[e,t,n])}setLines(e,{start:t,end:r,strictIndexing:n}={strictIndexing:!0},o=!1){let s=typeof n=="undefined"?!0:n,a=typeof e=="string"?[e]:e,l=typeof r!="undefined"?r:t+1;return this[o?"notify":"request"](`${this.prefix}set_lines`,[t,l,s,a])}setVirtualText(e,t,r,n={}){return this.notify(`${this.prefix}set_virtual_text`,[e,t,r,n]),Promise.resolve(e)}insert(e,t){return this.setLines(e,{start:t,end:t,strictIndexing:!0})}replace(e,t){let r=typeof e=="string"?[e]:e;return this.setLines(r,{start:t,end:t+r.length,strictIndexing:!1})}remove(e,t,r=!1){return this.setLines([],{start:e,end:t,strictIndexing:r})}append(e){return this.setLines(e,{start:-1,end:-1,strictIndexing:!1})}get name(){return this.request(`${this.prefix}get_name`,[])}setName(e){return this.request(`${this.prefix}set_name`,[e])}get valid(){return this.request(`${this.prefix}is_valid`,[])}mark(e){return this.request(`${this.prefix}get_mark`,[e])}getKeymap(e){return this.request(`${this.prefix}get_keymap`,[e])}get loaded(){return this.request(`${this.prefix}is_loaded`,[])}getOffset(e){return this.request(`${this.prefix}get_offset`,[e])}addHighlight({hlGroup:e,line:t,colStart:r,colEnd:n,srcId:o}){if(!e)throw new Error("hlGroup should not empty");let s=typeof n!="undefined"?n:-1,a=typeof r!="undefined"?r:-0,l=typeof o!="undefined"?o:-1,u=l==0?"request":"notify",c=this[u](`${this.prefix}add_highlight`,[l,e,t,a,s]);return u==="request"?c:Promise.resolve(null)}clearHighlight(e={}){let t={srcId:-1,lineStart:0,lineEnd:-1},{srcId:r,lineStart:n,lineEnd:o}=Object.assign({},t,e);return this.notify(`${this.prefix}clear_highlight`,[r,n,o])}highlightRanges(e,t,r){this.client.call("coc#highlight#ranges",[this.id,e,t,r],!0)}clearNamespace(e,t=0,r=-1){this.client.call("coc#highlight#clear_highlight",[this.id,e,t,r])}listen(e,t,r){this.client.attachBufferEvent(this,e,t),r&&r.push({dispose:()=>{this.client.detachBufferEvent(this,e,t)}})}};rg.Buffer=HM});var op=y(ig=>{"use strict";Object.defineProperty(ig,"__esModule",{value:!0});ig.Window=void 0;var Rae=ip(),Xx=require("timers"),zM=class extends Rae.BaseApi{constructor(){super(...arguments);this.prefix="nvim_win_"}get id(){return this.data}get buffer(){return this.request(`${this.prefix}get_buf`,[])}get tabpage(){return this.request(`${this.prefix}get_tabpage`,[])}get cursor(){return this.request(`${this.prefix}get_cursor`,[])}setCursor(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_cursor`,[e])}get height(){return this.request(`${this.prefix}get_height`,[])}setHeight(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_height`,[e])}get width(){return this.request(`${this.prefix}get_width`,[])}setWidth(e,t=!1){return this[t?"notify":"request"](`${this.prefix}set_height`,[e])}get position(){return this.request(`${this.prefix}get_position`,[])}get row(){return this.request(`${this.prefix}get_position`,[]).then(e=>e[0])}get col(){return this.request(`${this.prefix}get_position`,[]).then(e=>e[1])}get valid(){return this.request(`${this.prefix}is_valid`,[])}get number(){return this.request(`${this.prefix}get_number`,[])}setConfig(e,t){return this[t?"notify":"request"](`${this.prefix}set_config`,[e])}getConfig(){return this.request(`${this.prefix}get_config`,[])}close(e,t){if(t){this.notify(`${this.prefix}close`,[e]);let r=0,n=setInterval(()=>{if(r==5)return Xx.clearInterval(n);this.request(`${this.prefix}is_valid`,[]).then(o=>{o?this.notify(`${this.prefix}close`,[e]):Xx.clearInterval(n)},()=>{Xx.clearInterval(n)}),r++},50);return null}return this.request(`${this.prefix}close`,[e])}highlightRanges(e,t,r=10,n){if(n){this.client.call("coc#highlight#match_ranges",[this.id,0,t,e,r],!0);return}return this.client.call("coc#highlight#match_ranges",[this.id,0,t,e,r])}clearMatchGroup(e){this.client.call("coc#highlight#clear_match_group",[this.id,e],!0)}clearMatches(e){this.client.call("coc#highlight#clear_matches",[this.id,e],!0)}};ig.Window=zM});var sp=y(ng=>{"use strict";Object.defineProperty(ng,"__esModule",{value:!0});ng.Tabpage=void 0;var kae=ip(),GM=class extends kae.BaseApi{constructor(){super(...arguments);this.prefix="nvim_tabpage_"}get windows(){return this.request(`${this.prefix}list_wins`,[])}get window(){return this.request(`${this.prefix}get_win`,[])}get valid(){return this.request(`${this.prefix}is_valid`,[])}get number(){return this.request(`${this.prefix}get_number`,[])}getOption(){throw new Error("Tabpage does not have `getOption`")}setOption(){throw new Error("Tabpage does not have `setOption`")}};ng.Tabpage=GM});var VM=y(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.Metadata=Oa.ExtType=void 0;var Iae=np(),Fae=op(),Oae=sp(),Aae;(function(i){i[i.Buffer=0]="Buffer",i[i.Window=1]="Window",i[i.Tabpage=2]="Tabpage"})(Aae=Oa.ExtType||(Oa.ExtType={}));Oa.Metadata=[{constructor:Iae.Buffer,name:"Buffer",prefix:"nvim_buf_"},{constructor:Fae.Window,name:"Window",prefix:"nvim_win_"},{constructor:Oae.Tabpage,name:"Tabpage",prefix:"nvim_tabpage_"}]});var ap=y(du=>{"use strict";var Zx=du&&du.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(du,"__esModule",{value:!0});du.createLogger=void 0;var Qx=Zx(require("fs")),Lae=Zx(require("os")),e0=Zx(require("path"));function Mae(){let i=process.env.NODE_CLIENT_LOG_FILE;if(i)return i;let e=process.env.XDG_RUNTIME_DIR;return e?e0.default.join(e,"node-client.log"):e0.default.join(Lae.default.tmpdir(),`node-client-${process.pid}.log`)}var t0=Mae(),KM=process.env.NODE_CLIENT_LOG_LEVEL||"info",r0=process.getuid&&process.getuid()==0;if(!r0)try{Qx.default.mkdirSync(e0.default.dirname(t0),{recursive:!0}),Qx.default.writeFileSync(t0,"",{encoding:"utf8",mode:438})}catch(i){r0=!0}function JM(i){return i==null?i:Array.isArray(i)?i.map(e=>JM(e)):typeof i=="object"&&typeof i.prefix=="string"&&typeof i.data=="number"?"["+i.prefix+i.data+"]":i}function qae(i){return i==null?String(i):typeof i=="object"?JSON.stringify(i,null,2):String(i)}var YM=class{constructor(e){this.name=e}get stream(){return r0?null:this._stream?this._stream:(this._stream=Qx.default.createWriteStream(t0,{encoding:"utf8"}),this._stream)}getText(e,t,r){let n="";if(r.length){let o=JM(r);n=" "+o.map(s=>qae(s))}return`${new Date().toLocaleTimeString()} ${e.toUpperCase()} [${this.name}] - ${t}${n} +`}debug(e,...t){KM!="debug"||this.stream==null||this.stream.write(this.getText("debug",e,t))}info(e,...t){this.stream!=null&&this.stream.write(this.getText("info",e,t))}error(e,...t){this.stream!=null&&this.stream.write(this.getText("error",e,t))}trace(e,...t){KM!="trace"||this.stream==null||this.stream.write(this.getText("trace",e,t))}};function Nae(i){return new YM(i)}du.createLogger=Nae});var n0=y(i0=>{"use strict";Object.defineProperty(i0,"__esModule",{value:!0});var $ae=require("events"),Bae=ap(),XM=process.env.NODE_CLIENT_LOG_LEVEL=="debug",lp=Bae.createLogger("transport"),ZM=class extends $ae.EventEmitter{constructor(e){super();this.logger=e,this.pauseLevel=0,this.paused=new Map}debug(e,...t){!XM||lp.debug(e,...t)}info(e,...t){lp.info(e,...t)}debugMessage(e){if(!XM)return;let t=e[0];t==0?lp.debug("receive request:",e.slice(1)):t==1||(t==2?lp.debug("receive notification:",e.slice(1)):lp.debug("unknown message:",e))}pauseNotification(){this.pauseLevel=this.pauseLevel+1,this.paused.set(this.pauseLevel,[])}cancelNotification(){let{pauseLevel:e}=this;e>0&&(this.paused.delete(e),this.pauseLevel=e-1)}resumeNotification(e=!1){let{pauseLevel:t}=this;if(t==0)return e?null:Promise.resolve([null,null]);let r=Error().stack;this.pauseLevel=t-1;let n=this.paused.get(t);return this.paused.delete(t),n&&n.length?new Promise((o,s)=>{if(!e)return this.request("nvim_call_atomic",[n],(a,l)=>{if(a){let u=new Error(`call_atomic error: ${a[1]}`);return u.stack=r,s(u)}if(Array.isArray(l)&&l[1]!=null){let[u,c,f]=l[1],[p,d]=n[u];this.logger.error(`request error ${c} on "${p}"`,d,f,r)}o(l)});this.notify("nvim_call_atomic",[n]),o()}):e?null:Promise.resolve([[],void 0])}};i0.default=ZM});var tq=y(Vi=>{"use strict";var jae=Vi&&Vi.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t),Object.defineProperty(i,r,{enumerable:!0,get:function(){return e[t]}})}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),Uae=Vi&&Vi.__setModuleDefault||(Object.create?function(i,e){Object.defineProperty(i,"default",{enumerable:!0,value:e})}:function(i,e){i.default=e}),Wae=Vi&&Vi.__importStar||function(i){if(i&&i.__esModule)return i;var e={};if(i!=null)for(var t in i)t!=="default"&&Object.prototype.hasOwnProperty.call(i,t)&&jae(e,i,t);return Uae(e,i),e},QM=Vi&&Vi.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(Vi,"__esModule",{value:!0});Vi.NvimTransport=void 0;var xo=Wae(BM()),Hae=QM(UM()),zae=VM(),Gae=QM(n0()),eq=class extends Gae.default{constructor(e){super(e);this.pending=new Map,this.nextRequestId=1,this.attached=!1;let t=this.setupCodec();this.encodeStream=xo.createEncodeStream({codec:t}),this.decodeStream=xo.createDecodeStream({codec:t}),this.decodeStream.on("data",r=>{this.parseMessage(r)}),this.decodeStream.on("end",()=>{this.detach(),this.emit("detach")})}parseMessage(e){let t=e[0];if(this.debugMessage(e),t===0)this.emit("request",e[2].toString(),e[3],this.createResponse(e[1]));else if(t===1){let r=e[1],n=this.pending.get(r);if(n){this.pending.delete(r);let o=e[2];o&&o.length!=2&&(o=[0,o instanceof Error?o.message:o]),n(o,e[3])}}else t===2?this.emit("notification",e[1].toString(),e[2]):console.error(`Invalid message type ${t}`)}setupCodec(){let e=xo.createCodec();return zae.Metadata.forEach(({constructor:t},r)=>{e.addExtPacker(r,t,n=>xo.encode(n.data)),e.addExtUnpacker(r,n=>new t({transport:this,client:this.client,data:xo.decode(n)}))}),this.codec=e,this.codec}attach(e,t,r){this.encodeStream=this.encodeStream.pipe(e);let n=new Hae.default;t.pipe(n).pipe(this.decodeStream),this.writer=e,this.reader=t,this.client=r,this.attached=!0}detach(){!this.attached||(this.attached=!1,this.encodeStream.unpipe(this.writer),this.reader.unpipe(this.decodeStream))}request(e,t,r){if(!this.attached)return;let n=this.nextRequestId;this.nextRequestId=this.nextRequestId+1;let o=Date.now();this.debug("request to nvim:",n,e,t),this.encodeStream.write(xo.encode([0,n,e,t],{codec:this.codec}));let s=Error().stack,a=setTimeout(()=>{this.debug(`request to vim blocked more than 1s: ${e}`,t,s)},1e3);this.pending.set(n,(l,u)=>{clearTimeout(a),this.debug("response of nvim:",n,`${Date.now()-o}ms`,u,l),r(l,u)})}notify(e,t){if(!!this.attached){if(this.pauseLevel!=0){let r=this.paused.get(this.pauseLevel);if(r){r.push([e,t]);return}}this.debug("nvim notification:",e,t),this.encodeStream.write(xo.encode([2,e,t],{codec:this.codec}))}}send(e){this.encodeStream.write(xo.encode(e,{codec:this.codec}))}createResponse(e){let{encodeStream:t}=this,r=Date.now(),n=!1,o=setTimeout(()=>{this.debug("request to client cost more than 1s",e)},1e3);return{send:(s,a)=>{clearTimeout(o),!(n||!this.attached)&&(this.debug("response of client:",e,`${Date.now()-r}ms`,s,a==!0),n=!0,t.write(xo.encode([1,e,a?s:null,a?null:s])))}}}};Vi.NvimTransport=eq});var nq=y(up=>{"use strict";var rq=up&&up.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(up,"__esModule",{value:!0});var Vae=rq(require("events")),Kae=rq(require("readline")),Jae=ap(),hu=Jae.createLogger("connection"),yRe=process.env.NODE_CLIENT_LOG_LEVEL=="debug",iq=class extends Vae.default{constructor(e,t){super();this.readable=e,this.writeable=t;let r=Kae.default.createInterface(this.readable);r.on("line",n=>{this.parseData(n)}),r.on("close",()=>{hu.error("connection closed"),process.exit(0)})}parseData(e){if(e.length==0)return;let t;try{t=JSON.parse(e)}catch(o){console.error(`Invalid data from vim: ${e}`);return}let[r,n]=t;r>0?(hu.debug("received request:",r,n),this.emit("request",r,n)):r==0?(hu.debug("received notification:",n),this.emit("notification",n)):(hu.debug("received response:",r,n),this.emit("response",r,n))}response(e,t){this.send([e,t||null])}notify(e,t){this.send([0,[e,t||null]])}send(e){hu.debug("send to vim:",e);try{this.writeable.write(JSON.stringify(e)+` +`)}catch(t){hu.error("Send error:",e)}}redraw(e=!1){this.send(["redraw",e?"force":""])}commmand(e){this.send(["ex",e])}expr(e){this.send(["expr",e])}call(e,t,r){if(!r){this.send(["call",e,t]);return}this.send(["call",e,t,r])}dispose(){this.removeAllListeners()}};up.default=iq});var sq=y(o0=>{"use strict";Object.defineProperty(o0,"__esModule",{value:!0});var Yae=ap(),Xae=Yae.createLogger("request"),Zae=process.env.NODE_CLIENT_LOG_LEVEL=="debug",Qae=process.env.COC_NVIM=="1"?"coc#api#call":"nvim#api#call",oq=class{constructor(e,t,r){this.connection=e,this.cb=t,this.id=r}request(e,t=[]){this.method=e,this.args=t,this.connection.call(Qae,[e.slice(5),t],this.id)}callback(e,t,r){let{method:n,cb:o}=this;if(Zae&&t&&Xae.debug(`request ${this.method} error:`,t,this.args),t)return o([0,t.toString()]);switch(n){case"nvim_list_wins":case"nvim_tabpage_list_wins":return o(null,r.map(s=>e.createWindow(s)));case"nvim_tabpage_get_win":case"nvim_get_current_win":case"nvim_open_win":return o(null,e.createWindow(r));case"nvim_list_bufs":return o(null,r.map(s=>e.createBuffer(s)));case"nvim_win_get_buf":case"nvim_create_buf":case"nvim_get_current_buf":return o(null,e.createBuffer(r));case"nvim_list_tabpages":return o(null,r.map(s=>e.createTabpage(s)));case"nvim_get_current_tabpage":return o(null,e.createTabpage(r));default:return o(null,r)}}};o0.default=oq});var lq=y(mu=>{"use strict";var s0=mu&&mu.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(mu,"__esModule",{value:!0});mu.VimTransport=void 0;var ele=s0(n0()),tle=s0(nq()),rle=s0(sq()),aq=class extends ele.default{constructor(e){super(e);this.pending=new Map,this.nextRequestId=-1,this.attached=!1,this.notifyMethod=process.env.COC_NVIM=="1"?"coc#api#notify":"nvim#api#notify"}attach(e,t,r){let n=this.connection=new tle.default(t,e);this.attached=!0,this.client=r,n.on("request",(o,s)=>{let[a,l]=s;this.emit("request",a,l,this.createResponse(o))}),n.on("notification",o=>{let[s,a]=o;this.emit("notification",s.toString(),a)}),n.on("response",(o,s)=>{let a=this.pending.get(o);if(a){this.pending.delete(o);let l=null,u=null;Array.isArray(s)?(l=s[0],u=s[1]):l=s,a.callback(this.client,l,u)}})}send(e){this.connection.send(e)}detach(){!this.attached||(this.attached=!1,this.connection.dispose())}request(e,t,r){if(!this.attached)return r([0,"transport disconnected"]);let n=this.nextRequestId;this.nextRequestId=this.nextRequestId-1;let o=Date.now();this.debug("request to vim:",n,e,t);let s=setTimeout(()=>{this.debug("request to vim cost more than 1s",e,t)},1e3),a=new rle.default(this.connection,(l,u)=>{clearTimeout(s),this.debug("response from vim cost:",n,`${Date.now()-o}ms`),r(l,u)},n);this.pending.set(n,a),a.request(e,t)}notify(e,t){if(!!this.attached){if(this.pauseLevel!=0){let r=this.paused.get(this.pauseLevel);if(r){r.push([e,t]);return}}this.connection.call(this.notifyMethod,[e.slice(5),t])}}createResponse(e){let t=!1,{connection:r}=this,n=Date.now(),o=setTimeout(()=>{this.debug("request to client cost more than 1s",e)},1e3);return{send:(s,a)=>{if(clearTimeout(o),t||!this.attached)return;t=!0;let l=null;a&&(l=typeof s=="string"?s:s.toString()),this.debug("response of client cost:",e,`${Date.now()-n}ms`),r.response(e,[l,a?null:s])}}}};mu.VimTransport=aq});var cq=y(og=>{"use strict";Object.defineProperty(og,"__esModule",{value:!0});og.Neovim=void 0;var ile=ip(),nle=np(),ole=sp(),sle=op(),ale=process.env.VIM_NODE_RPC=="1",uq=class extends ile.BaseApi{constructor(){super(...arguments);this.prefix="nvim_",this.Buffer=nle.Buffer,this.Window=sle.Window,this.Tabpage=ole.Tabpage}getArgs(e){return e?Array.isArray(e)?e:[e]:[]}get apiInfo(){return this.request(`${this.prefix}get_api_info`)}get buffers(){return this.request(`${this.prefix}list_bufs`)}get buffer(){return this.request(`${this.prefix}get_current_buf`)}async setBuffer(e){await this.request(`${this.prefix}set_current_buf`,[e])}get chans(){return this.request(`${this.prefix}list_chans`)}getChanInfo(e){return this.request(`${this.prefix}get_chan_info`,[e])}createNamespace(e=""){return this.request(`${this.prefix}create_namespace`,[e])}get namespaces(){return this.request(`${this.prefix}get_namespaces`,[])}get commands(){return this.getCommands()}getCommands(e={}){return this.request(`${this.prefix}get_commands`,[e])}get tabpages(){return this.request(`${this.prefix}list_tabpages`)}get tabpage(){return this.request(`${this.prefix}get_current_tabpage`)}async setTabpage(e){await this.request(`${this.prefix}set_current_tabpage`,[e])}get windows(){return this.getWindows()}get window(){return this.request(`${this.prefix}get_current_win`)}getWindows(){return this.request(`${this.prefix}list_wins`)}async setWindow(e){await this.request(`${this.prefix}set_current_win`,[e])}get runtimePaths(){return this.request(`${this.prefix}list_runtime_paths`)}setDirectory(e){return this.request(`${this.prefix}set_current_dir`,[e])}get line(){return this.getLine()}createNewBuffer(e=!1,t=!1){return this.request(`${this.prefix}create_buf`,[e,t])}openFloatWindow(e,t,r){return this.request(`${this.prefix}open_win`,[e,t,r])}getLine(){return this.request(`${this.prefix}get_current_line`)}setLine(e){return this.request(`${this.prefix}set_current_line`,[e])}getKeymap(e){return this.request(`${this.prefix}get_keymap`,[e])}get mode(){return this.request(`${this.prefix}get_mode`)}get colorMap(){return this.request(`${this.prefix}get_color_map`)}getColorByName(e){return this.request(`${this.prefix}get_color_by_name`,[e])}getHighlight(e,t=!0){let r=typeof e=="string"?"by_name":"by_id";return this.request(`${this.prefix}get_hl_${r}`,[e,t])}getHighlightByName(e,t=!0){return this.request(`${this.prefix}get_hl_by_name`,[e,t])}getHighlightById(e,t=!0){return this.request(`${this.prefix}get_hl_by_id`,[e,t])}deleteCurrentLine(){return this.request(`${this.prefix}del_current_line`)}eval(e){return this.request(`${this.prefix}eval`,[e])}lua(e,t=[]){let r=this.getArgs(t);return this.request(`${this.prefix}execute_lua`,[e,r])}executeLua(e,t=[]){return this.lua(e,t)}callDictFunction(e,t,r=[]){let n=this.getArgs(r);return this.request(`${this.prefix}call_dict_function`,[e,t,n])}call(e,t=[],r){let n=this.getArgs(t);return r?(this.notify(`${this.prefix}call_function`,[e,n]),null):this.request(`${this.prefix}call_function`,[e,n])}callTimer(e,t=[],r){let n=this.getArgs(t);return r?(this.notify(`${this.prefix}call_function`,["coc#util#timer",[e,n]]),null):ale?(this.notify(`${this.prefix}call_function`,["coc#util#timer",[e,n]]),new Promise(o=>{setTimeout(()=>{o(null)},20)})):this.request(`${this.prefix}call_function`,["coc#util#timer",[e,n]])}callAsync(e,t=[]){let r=this.getArgs(t);return this.client.sendAsyncRequest(e,r)}callFunction(e,t=[]){return this.call(e,t)}callAtomic(e){return this.request(`${this.prefix}call_atomic`,[e])}command(e,t){return t?(this.notify(`${this.prefix}command`,[e]),null):this.request(`${this.prefix}command`,[e])}commandOutput(e){return this.request(`${this.prefix}command_output`,[e])}getVvar(e){return this.request(`${this.prefix}get_vvar`,[e])}feedKeys(e,t,r){return this.request(`${this.prefix}feedkeys`,[e,t,r])}input(e){return this.request(`${this.prefix}input`,[e])}parseExpression(e,t,r){return this.request(`${this.prefix}parse_expression`,[e,t,r])}getProc(e){return this.request(`${this.prefix}get_proc`,[e])}getProcChildren(e){return this.request(`${this.prefix}get_proc_children`,[e])}replaceTermcodes(e,t,r,n){return this.request(`${this.prefix}replace_termcodes`,[e,t,r,n])}strWidth(e){return this.request(`${this.prefix}strwidth`,[e])}outWrite(e){this.notify(`${this.prefix}out_write`,[e])}outWriteLine(e){this.outWrite(`${e} +`)}errWrite(e){this.notify(`${this.prefix}err_write`,[e])}errWriteLine(e){this.notify(`${this.prefix}err_writeln`,[e])}get uis(){return this.request(`${this.prefix}list_uis`)}uiAttach(e,t,r){return this.request(`${this.prefix}ui_attach`,[e,t,r])}uiDetach(){return this.request(`${this.prefix}ui_detach`,[])}uiTryResize(e,t){return this.request(`${this.prefix}ui_try_resize`,[e,t])}uiSetOption(e,t){return this.request(`${this.prefix}ui_set_option`,[e,t])}subscribe(e){return this.request(`${this.prefix}subscribe`,[e])}unsubscribe(e){return this.request(`${this.prefix}unsubscribe`,[e])}setClientInfo(e,t,r,n,o){this.notify(`${this.prefix}set_client_info`,[e,t,r,n,o])}async quit(){this.command("qa!",!0),this.transport&&this.transport.detach()}};og.Neovim=uq});var sg=y(gu=>{"use strict";Object.defineProperty(gu,"__esModule",{value:!0});gu.NeovimClient=gu.AsyncResponse=void 0;var lle=tq(),ule=lq(),cle=cq(),fle=np(),ple=op(),dle=sp(),hle=ap(),fq=hle.createLogger("client"),mle=process.env.VIM_NODE_RPC=="1",a0=class{constructor(e,t){this.requestId=e,this.cb=t,this.finished=!1}finish(e,t){if(!this.finished){if(this.finished=!0,e){this.cb(new Error(e));return}this.cb(null,t)}}};gu.AsyncResponse=a0;var pq=class extends cle.Neovim{constructor(e){super({});this.logger=e,this.requestId=1,this.responses=new Map,this.attachedBuffers=new Map,Object.defineProperty(this,"client",{value:this});let t=mle?new ule.VimTransport(e):new lle.NvimTransport(e);this.setTransport(t),this.transportAttached=!1,this.handleRequest=this.handleRequest.bind(this),this.handleNotification=this.handleNotification.bind(this)}logError(e,...t){!this.logger||this.logger.error(e,...t)}createBuffer(e){return new fle.Buffer({transport:this.transport,data:e,client:this})}createWindow(e){return new ple.Window({transport:this.transport,data:e,client:this})}createTabpage(e){return new dle.Tabpage({transport:this.transport,data:e,client:this})}send(e){this.transport.send(e)}attach({reader:e,writer:t},r=!0){this.transport.attach(t,e,this),this.transportAttached=!0,this.setupTransport(r)}detach(){this.transport.detach(),this.transportAttached=!1}get isApiReady(){return this.transportAttached&&typeof this._channelId!="undefined"}get channelId(){return this._isReady.then(()=>this._channelId)}isAttached(e){return this.attachedBuffers.has(e)}handleRequest(e,t,r){this.emit("request",e,t,r)}sendAsyncRequest(e,t){let r=this.requestId;return this.requestId=r+1,this.notify("nvim_call_function",["coc#rpc#async_request",[r,e,t||[]]]),new Promise((n,o)=>{let s=new a0(r,(a,l)=>{if(a)return o(a);n(l)});this.responses.set(r,s)})}emitNotification(e,t){if(e.endsWith("_event")){if(e.startsWith("nvim_buf_")){let r=e.replace(/nvim_buf_(.*)_event/,"$1"),{id:n}=t[0];if(!this.attachedBuffers.has(n))return;(this.attachedBuffers.get(n).get(r)||[]).forEach(a=>a(...t)),r==="detach"&&this.attachedBuffers.delete(n);return}if(e.startsWith("nvim_async_request")){let[r,n,o]=t;this.handleRequest(n,o,{send:(s,a)=>{this.notify("nvim_call_function",["coc#rpc#async_response",[r,s,a]])}})}if(e.startsWith("nvim_async_response")){let[r,n,o]=t,s=this.responses.get(r);if(!s){console.error(`Response not found for request ${r}`);return}this.responses.delete(r),s.finish(n,o);return}}else this.emit("notification",e,t)}handleNotification(e,t){this.emitNotification(e,t)}setupTransport(e=!0){if(!this.transportAttached)throw new Error("Not attached to input/output");this.transport.on("request",this.handleRequest),this.transport.on("notification",this.handleNotification),this.transport.on("detach",()=>{this.emit("disconnect"),this.transport.removeAllListeners("request"),this.transport.removeAllListeners("notification"),this.transport.removeAllListeners("detach")}),e?this._isReady=this.generateApi():(this._channelId=0,this._isReady=Promise.resolve(!0))}requestApi(){return new Promise((e,t)=>{this.transport.request("nvim_get_api_info",[],(r,n)=>{r?t(new Error(Array.isArray(r)?r[1]:r.message||r.toString())):e(n)})})}async generateApi(){let e;try{e=await this.requestApi()}catch(t){console.error("Could not get vim api results"),fq.error(t)}if(e)try{let[t,r]=e;return this.functions=r.functions.map(n=>n.name),this._channelId=t,!0}catch(t){return fq.error(t.stack),null}return null}attachBufferEvent(e,t,r){let n=this.attachedBuffers.get(e.id)||new Map,o=n.get(t)||[];o.includes(r)||(o.push(r),n.set(t,o),this.attachedBuffers.set(e.id,n))}detachBufferEvent(e,t,r){let n=this.attachedBuffers.get(e.id);if(!n||!n.has(t))return;let o=n.get(t).filter(s=>s!==r);n.set(t,o)}pauseNotification(){this.transport.pauseNotification();let e=Error().stack;process.nextTick(()=>{this.transport.pauseLevel>0&&this.logError("resumeNotification not called within same tick:",e)})}resumeNotification(e,t){return e?Promise.resolve(this.transport.cancelNotification()):t?Promise.resolve(this.transport.resumeNotification(!0)):Promise.resolve(this.transport.resumeNotification())}hasFunction(e){return this.functions?this.functions.indexOf(e)!==-1:!0}};gu.NeovimClient=pq});var dq=y(ag=>{"use strict";Object.defineProperty(ag,"__esModule",{value:!0});ag.attach=void 0;var gle=require("net"),vle=sg();function yle({reader:i,writer:e,proc:t,socket:r},n=null,o=!0){let s,a,l;if(r){let u=gle.createConnection(r);s=u,a=u,u.once("close",()=>{l.detach()})}else i&&e?(s=e,a=i):t&&(s=t.stdin,a=t.stdout,t.once("disconnect",()=>{l.detach()}));if(s.on("error",u=>{u.code=="EPIPE"&&l.detach()}),s&&a)return l=new vle.NeovimClient(n),l.attach({writer:s,reader:a},o),l;throw new Error("Invalid arguments, could not attach")}ag.attach=yle});var hq=y(Ki=>{"use strict";Object.defineProperty(Ki,"__esModule",{value:!0});Ki.Tabpage=Ki.Window=Ki.Buffer=Ki.NeovimClient=Ki.Neovim=void 0;var ble=sg();Object.defineProperty(Ki,"Neovim",{enumerable:!0,get:function(){return ble.NeovimClient}});var wle=sg();Object.defineProperty(Ki,"NeovimClient",{enumerable:!0,get:function(){return wle.NeovimClient}});var Dle=np();Object.defineProperty(Ki,"Buffer",{enumerable:!0,get:function(){return Dle.Buffer}});var xle=op();Object.defineProperty(Ki,"Window",{enumerable:!0,get:function(){return xle.Window}});var Sle=sp();Object.defineProperty(Ki,"Tabpage",{enumerable:!0,get:function(){return Sle.Tabpage}})});var l0=y(ii=>{"use strict";Object.defineProperty(ii,"__esModule",{value:!0});ii.Window=ii.Tabpage=ii.Buffer=ii.NeovimClient=ii.Neovim=ii.attach=void 0;var Cle=dq();Object.defineProperty(ii,"attach",{enumerable:!0,get:function(){return Cle.attach}});var cp=hq();Object.defineProperty(ii,"Neovim",{enumerable:!0,get:function(){return cp.Neovim}});Object.defineProperty(ii,"NeovimClient",{enumerable:!0,get:function(){return cp.NeovimClient}});Object.defineProperty(ii,"Buffer",{enumerable:!0,get:function(){return cp.Buffer}});Object.defineProperty(ii,"Tabpage",{enumerable:!0,get:function(){return cp.Tabpage}});Object.defineProperty(ii,"Window",{enumerable:!0,get:function(){return cp.Window}})});var So=y(f0=>{"use strict";Object.defineProperty(f0,"__esModule",{value:!0});var u0;function c0(){if(u0===void 0)throw new Error("No runtime abstraction layer installed");return u0}(function(i){function e(t){if(t===void 0)throw new Error("No runtime abstraction layer provided");u0=t}i.install=e})(c0||(c0={}));f0.default=c0});var p0=y(fp=>{"use strict";Object.defineProperty(fp,"__esModule",{value:!0});fp.Disposable=void 0;var Ele;(function(i){function e(t){return{dispose:t}}i.create=e})(Ele=fp.Disposable||(fp.Disposable={}))});var gq=y(lg=>{"use strict";Object.defineProperty(lg,"__esModule",{value:!0});lg.AbstractMessageBuffer=void 0;var _le=13,Tle=10,Ple=`\r +`,mq=class{constructor(e="utf-8"){this._encoding=e,this._chunks=[],this._totalLength=0}get encoding(){return this._encoding}append(e){let t=typeof e=="string"?this.fromString(e,this._encoding):e;this._chunks.push(t),this._totalLength+=t.byteLength}tryReadHeaders(){if(this._chunks.length===0)return;let e=0,t=0,r=0,n=0;e:for(;tthis._totalLength)throw new Error("Cannot read so many bytes!");if(this._chunks[0].byteLength===e){let o=this._chunks[0];return this._chunks.shift(),this._totalLength-=e,this.asNative(o)}if(this._chunks[0].byteLength>e){let o=this._chunks[0],s=this.asNative(o,e);return this._chunks[0]=o.slice(e),this._totalLength-=e,s}let t=this.allocNative(e),r=0,n=0;for(;e>0;){let o=this._chunks[n];if(o.byteLength>e){let s=o.slice(0,e);t.set(s,r),r+=e,this._chunks[n]=o.slice(e),this._totalLength-=e,e-=e}else t.set(o,r),r+=o.byteLength,this._chunks.shift(),this._totalLength-=o.byteLength,e-=o.byteLength}return t}};lg.AbstractMessageBuffer=mq});var Dq=y(h0=>{"use strict";Object.defineProperty(h0,"__esModule",{value:!0});var Rle=So(),vq=require("util"),Aa=p0(),kle=gq(),pp=class extends kle.AbstractMessageBuffer{constructor(e="utf-8"){super(e)}emptyBuffer(){return pp.emptyBuffer}fromString(e,t){return Buffer.from(e,t)}toString(e,t){return e instanceof Buffer?e.toString(t):new vq.TextDecoder(t).decode(e)}asNative(e,t){return t===void 0?e instanceof Buffer?e:Buffer.from(e):e instanceof Buffer?e.slice(0,t):Buffer.from(e,0,t)}allocNative(e){return Buffer.allocUnsafe(e)}};pp.emptyBuffer=Buffer.allocUnsafe(0);var yq=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Aa.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Aa.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Aa.Disposable.create(()=>this.stream.off("end",e))}onData(e){return this.stream.on("data",e),Aa.Disposable.create(()=>this.stream.off("data",e))}},bq=class{constructor(e){this.stream=e}onClose(e){return this.stream.on("close",e),Aa.Disposable.create(()=>this.stream.off("close",e))}onError(e){return this.stream.on("error",e),Aa.Disposable.create(()=>this.stream.off("error",e))}onEnd(e){return this.stream.on("end",e),Aa.Disposable.create(()=>this.stream.off("end",e))}write(e,t){return new Promise((r,n)=>{let o=s=>{s==null?r():n(s)};typeof e=="string"?this.stream.write(e,t,o):this.stream.write(e,o)})}end(){this.stream.end()}},wq=Object.freeze({messageBuffer:Object.freeze({create:i=>new pp(i)}),applicationJson:Object.freeze({encoder:Object.freeze({name:"application/json",encode:(i,e)=>{try{return Promise.resolve(Buffer.from(JSON.stringify(i,void 0,0),e.charset))}catch(t){return Promise.reject(t)}}}),decoder:Object.freeze({name:"application/json",decode:(i,e)=>{try{return i instanceof Buffer?Promise.resolve(JSON.parse(i.toString(e.charset))):Promise.resolve(JSON.parse(new vq.TextDecoder(e.charset).decode(i)))}catch(t){return Promise.reject(t)}}})}),stream:Object.freeze({asReadableStream:i=>new yq(i),asWritableStream:i=>new bq(i)}),console,timer:Object.freeze({setTimeout(i,e,...t){return setTimeout(i,e,...t)},clearTimeout(i){clearTimeout(i)},setImmediate(i,...e){return setImmediate(i,...e)},clearImmediate(i){clearImmediate(i)}})});function d0(){return wq}(function(i){function e(){Rle.default.install(wq)}i.install=e})(d0||(d0={}));h0.default=d0});var vu=y(_r=>{"use strict";Object.defineProperty(_r,"__esModule",{value:!0});_r.stringArray=_r.array=_r.func=_r.error=_r.number=_r.string=_r.boolean=void 0;function Ile(i){return i===!0||i===!1}_r.boolean=Ile;function xq(i){return typeof i=="string"||i instanceof String}_r.string=xq;function Fle(i){return typeof i=="number"||i instanceof Number}_r.number=Fle;function Ole(i){return i instanceof Error}_r.error=Ole;function Ale(i){return typeof i=="function"}_r.func=Ale;function Sq(i){return Array.isArray(i)}_r.array=Sq;function Lle(i){return Sq(i)&&i.every(e=>xq(e))}_r.stringArray=Lle});var m0=y(te=>{"use strict";Object.defineProperty(te,"__esModule",{value:!0});te.isResponseMessage=te.isNotificationMessage=te.isRequestMessage=te.NotificationType9=te.NotificationType8=te.NotificationType7=te.NotificationType6=te.NotificationType5=te.NotificationType4=te.NotificationType3=te.NotificationType2=te.NotificationType1=te.NotificationType0=te.NotificationType=te.RequestType9=te.RequestType8=te.RequestType7=te.RequestType6=te.RequestType5=te.RequestType4=te.RequestType3=te.RequestType2=te.RequestType1=te.RequestType=te.RequestType0=te.AbstractMessageSignature=te.ParameterStructures=te.ResponseError=te.ErrorCodes=void 0;var La=vu(),Cq;(function(i){i.ParseError=-32700,i.InvalidRequest=-32600,i.MethodNotFound=-32601,i.InvalidParams=-32602,i.InternalError=-32603,i.jsonrpcReservedErrorRangeStart=-32099,i.serverErrorStart=i.jsonrpcReservedErrorRangeStart,i.MessageWriteError=-32099,i.MessageReadError=-32098,i.ServerNotInitialized=-32002,i.UnknownErrorCode=-32001,i.jsonrpcReservedErrorRangeEnd=-32e3,i.serverErrorEnd=i.jsonrpcReservedErrorRangeEnd})(Cq=te.ErrorCodes||(te.ErrorCodes={}));var ug=class extends Error{constructor(e,t,r){super(t);this.code=La.number(e)?e:Cq.UnknownErrorCode,this.data=r,Object.setPrototypeOf(this,ug.prototype)}toJson(){return{code:this.code,message:this.message,data:this.data}}};te.ResponseError=ug;var pr=class{constructor(e){this.kind=e}static is(e){return e===pr.auto||e===pr.byName||e===pr.byPosition}toString(){return this.kind}};te.ParameterStructures=pr;pr.auto=new pr("auto");pr.byPosition=new pr("byPosition");pr.byName=new pr("byName");var Dt=class{constructor(e,t){this.method=e,this.numberOfParams=t}get parameterStructures(){return pr.auto}};te.AbstractMessageSignature=Dt;var Eq=class extends Dt{constructor(e){super(e,0)}};te.RequestType0=Eq;var _q=class extends Dt{constructor(e,t=pr.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};te.RequestType=_q;var Tq=class extends Dt{constructor(e,t=pr.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};te.RequestType1=Tq;var Pq=class extends Dt{constructor(e){super(e,2)}};te.RequestType2=Pq;var Rq=class extends Dt{constructor(e){super(e,3)}};te.RequestType3=Rq;var kq=class extends Dt{constructor(e){super(e,4)}};te.RequestType4=kq;var Iq=class extends Dt{constructor(e){super(e,5)}};te.RequestType5=Iq;var Fq=class extends Dt{constructor(e){super(e,6)}};te.RequestType6=Fq;var Oq=class extends Dt{constructor(e){super(e,7)}};te.RequestType7=Oq;var Aq=class extends Dt{constructor(e){super(e,8)}};te.RequestType8=Aq;var Lq=class extends Dt{constructor(e){super(e,9)}};te.RequestType9=Lq;var Mq=class extends Dt{constructor(e,t=pr.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};te.NotificationType=Mq;var qq=class extends Dt{constructor(e){super(e,0)}};te.NotificationType0=qq;var Nq=class extends Dt{constructor(e,t=pr.auto){super(e,1);this._parameterStructures=t}get parameterStructures(){return this._parameterStructures}};te.NotificationType1=Nq;var $q=class extends Dt{constructor(e){super(e,2)}};te.NotificationType2=$q;var Bq=class extends Dt{constructor(e){super(e,3)}};te.NotificationType3=Bq;var jq=class extends Dt{constructor(e){super(e,4)}};te.NotificationType4=jq;var Uq=class extends Dt{constructor(e){super(e,5)}};te.NotificationType5=Uq;var Wq=class extends Dt{constructor(e){super(e,6)}};te.NotificationType6=Wq;var Hq=class extends Dt{constructor(e){super(e,7)}};te.NotificationType7=Hq;var zq=class extends Dt{constructor(e){super(e,8)}};te.NotificationType8=zq;var Gq=class extends Dt{constructor(e){super(e,9)}};te.NotificationType9=Gq;function Mle(i){let e=i;return e&&La.string(e.method)&&(La.string(e.id)||La.number(e.id))}te.isRequestMessage=Mle;function qle(i){let e=i;return e&&La.string(e.method)&&i.id===void 0}te.isNotificationMessage=qle;function Nle(i){let e=i;return e&&(e.result!==void 0||!!e.error)&&(La.string(e.id)||La.number(e.id)||e.id===null)}te.isResponseMessage=Nle});var yu=y(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.Emitter=Ma.Event=void 0;var $le=So(),Ble;(function(i){let e={dispose(){}};i.None=function(){return e}})(Ble=Ma.Event||(Ma.Event={}));var Vq=class{add(e,t=null,r){this._callbacks||(this._callbacks=[],this._contexts=[]),this._callbacks.push(e),this._contexts.push(t),Array.isArray(r)&&r.push({dispose:()=>this.remove(e,t)})}remove(e,t=null){if(!this._callbacks)return;let r=!1;for(let n=0,o=this._callbacks.length;n{this._callbacks||(this._callbacks=new Vq),this._options&&this._options.onFirstListenerAdd&&this._callbacks.isEmpty()&&this._options.onFirstListenerAdd(this),this._callbacks.add(e,t);let n={dispose:()=>{!this._callbacks||(this._callbacks.remove(e,t),n.dispose=dp._noop,this._options&&this._options.onLastListenerRemove&&this._callbacks.isEmpty()&&this._options.onLastListenerRemove(this))}};return Array.isArray(r)&&r.push(n),n}),this._event}fire(e){this._callbacks&&this._callbacks.invoke.call(this._callbacks,e)}dispose(){this._callbacks&&(this._callbacks.dispose(),this._callbacks=void 0)}};Ma.Emitter=dp;dp._noop=function(){}});var b0=y(qa=>{"use strict";Object.defineProperty(qa,"__esModule",{value:!0});qa.CancellationTokenSource=qa.CancellationToken=void 0;var Kq=So(),jle=vu(),g0=yu(),v0;(function(i){i.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:g0.Event.None}),i.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:g0.Event.None});function e(t){let r=t;return r&&(r===i.None||r===i.Cancelled||jle.boolean(r.isCancellationRequested)&&!!r.onCancellationRequested)}i.is=e})(v0=qa.CancellationToken||(qa.CancellationToken={}));var Ule=Object.freeze(function(i,e){let t=Kq.default().timer.setTimeout(i.bind(e),0);return{dispose(){Kq.default().timer.clearTimeout(t)}}}),y0=class{constructor(){this._isCancelled=!1}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Ule:(this._emitter||(this._emitter=new g0.Emitter),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)}},Jq=class{get token(){return this._token||(this._token=new y0),this._token}cancel(){this._token?this._token.cancel():this._token=v0.Cancelled}dispose(){this._token?this._token instanceof y0&&this._token.dispose():this._token=v0.None}};qa.CancellationTokenSource=Jq});var Xq=y(Co=>{"use strict";Object.defineProperty(Co,"__esModule",{value:!0});Co.ReadableStreamMessageReader=Co.AbstractMessageReader=Co.MessageReader=void 0;var cg=So(),bu=vu(),w0=yu(),Wle;(function(i){function e(t){let r=t;return r&&bu.func(r.listen)&&bu.func(r.dispose)&&bu.func(r.onError)&&bu.func(r.onClose)&&bu.func(r.onPartialMessage)}i.is=e})(Wle=Co.MessageReader||(Co.MessageReader={}));var D0=class{constructor(){this.errorEmitter=new w0.Emitter,this.closeEmitter=new w0.Emitter,this.partialMessageEmitter=new w0.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e){this.errorEmitter.fire(this.asError(e))}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}get onPartialMessage(){return this.partialMessageEmitter.event}firePartialMessage(e){this.partialMessageEmitter.fire(e)}asError(e){return e instanceof Error?e:new Error(`Reader received error. Reason: ${bu.string(e.message)?e.message:"unknown"}`)}};Co.AbstractMessageReader=D0;var x0;(function(i){function e(t){var r;let n,o,s,a=new Map,l,u=new Map;if(t===void 0||typeof t=="string")n=t!=null?t:"utf-8";else{if(n=(r=t.charset)!==null&&r!==void 0?r:"utf-8",t.contentDecoder!==void 0&&(s=t.contentDecoder,a.set(s.name,s)),t.contentDecoders!==void 0)for(let c of t.contentDecoders)a.set(c.name,c);if(t.contentTypeDecoder!==void 0&&(l=t.contentTypeDecoder,u.set(l.name,l)),t.contentTypeDecoders!==void 0)for(let c of t.contentTypeDecoders)u.set(c.name,c)}return l===void 0&&(l=cg.default().applicationJson.decoder,u.set(l.name,l)),{charset:n,contentDecoder:s,contentDecoders:a,contentTypeDecoder:l,contentTypeDecoders:u}}i.fromOptions=e})(x0||(x0={}));var Yq=class extends D0{constructor(e,t){super();this.readable=e,this.options=x0.fromOptions(t),this.buffer=cg.default().messageBuffer.create(this.options.charset),this._partialMessageTimeout=1e4,this.nextMessageLength=-1,this.messageToken=0}set partialMessageTimeout(e){this._partialMessageTimeout=e}get partialMessageTimeout(){return this._partialMessageTimeout}listen(e){this.nextMessageLength=-1,this.messageToken=0,this.partialMessageTimer=void 0,this.callback=e;let t=this.readable.onData(r=>{this.onData(r)});return this.readable.onError(r=>this.fireError(r)),this.readable.onClose(()=>this.fireClose()),t}onData(e){for(this.buffer.append(e);;){if(this.nextMessageLength===-1){let n=this.buffer.tryReadHeaders();if(!n)return;let o=n.get("Content-Length");if(!o)throw new Error("Header must provide a Content-Length property.");let s=parseInt(o);if(isNaN(s))throw new Error("Content-Length value must be a number.");this.nextMessageLength=s}let t=this.buffer.tryReadBody(this.nextMessageLength);if(t===void 0){this.setPartialMessageTimer();return}this.clearPartialMessageTimer(),this.nextMessageLength=-1;let r;this.options.contentDecoder!==void 0?r=this.options.contentDecoder.decode(t):r=Promise.resolve(t),r.then(n=>{this.options.contentTypeDecoder.decode(n,this.options).then(o=>{this.callback(o)},o=>{this.fireError(o)})},n=>{this.fireError(n)})}}clearPartialMessageTimer(){this.partialMessageTimer&&(cg.default().timer.clearTimeout(this.partialMessageTimer),this.partialMessageTimer=void 0)}setPartialMessageTimer(){this.clearPartialMessageTimer(),!(this._partialMessageTimeout<=0)&&(this.partialMessageTimer=cg.default().timer.setTimeout((e,t)=>{this.partialMessageTimer=void 0,e===this.messageToken&&(this.firePartialMessage({messageToken:e,waitingTime:t}),this.setPartialMessageTimer())},this._partialMessageTimeout,this.messageToken,this._partialMessageTimeout))}};Co.ReadableStreamMessageReader=Yq});var Qq=y(fg=>{"use strict";Object.defineProperty(fg,"__esModule",{value:!0});fg.Semaphore=void 0;var Hle=So(),Zq=class{constructor(e=1){if(e<=0)throw new Error("Capacity must be greater than 0");this._capacity=e,this._active=0,this._waiting=[]}lock(e){return new Promise((t,r)=>{this._waiting.push({thunk:e,resolve:t,reject:r}),this.runNext()})}get active(){return this._active}runNext(){this._waiting.length===0||this._active===this._capacity||Hle.default().timer.setImmediate(()=>this.doRunNext())}doRunNext(){if(this._waiting.length===0||this._active===this._capacity)return;let e=this._waiting.shift();if(this._active++,this._active>this._capacity)throw new Error("To many thunks active");try{let t=e.thunk();t instanceof Promise?t.then(r=>{this._active--,e.resolve(r),this.runNext()},r=>{this._active--,e.reject(r),this.runNext()}):(this._active--,e.resolve(t),this.runNext())}catch(t){this._active--,e.reject(t),this.runNext()}}};fg.Semaphore=Zq});var nN=y(Eo=>{"use strict";Object.defineProperty(Eo,"__esModule",{value:!0});Eo.WriteableStreamMessageWriter=Eo.AbstractMessageWriter=Eo.MessageWriter=void 0;var eN=So(),hp=vu(),zle=Qq(),tN=yu(),Gle="Content-Length: ",rN=`\r +`,Vle;(function(i){function e(t){let r=t;return r&&hp.func(r.dispose)&&hp.func(r.onClose)&&hp.func(r.onError)&&hp.func(r.write)}i.is=e})(Vle=Eo.MessageWriter||(Eo.MessageWriter={}));var S0=class{constructor(){this.errorEmitter=new tN.Emitter,this.closeEmitter=new tN.Emitter}dispose(){this.errorEmitter.dispose(),this.closeEmitter.dispose()}get onError(){return this.errorEmitter.event}fireError(e,t,r){this.errorEmitter.fire([this.asError(e),t,r])}get onClose(){return this.closeEmitter.event}fireClose(){this.closeEmitter.fire(void 0)}asError(e){return e instanceof Error?e:new Error(`Writer received error. Reason: ${hp.string(e.message)?e.message:"unknown"}`)}};Eo.AbstractMessageWriter=S0;var C0;(function(i){function e(t){var r,n;return t===void 0||typeof t=="string"?{charset:t!=null?t:"utf-8",contentTypeEncoder:eN.default().applicationJson.encoder}:{charset:(r=t.charset)!==null&&r!==void 0?r:"utf-8",contentEncoder:t.contentEncoder,contentTypeEncoder:(n=t.contentTypeEncoder)!==null&&n!==void 0?n:eN.default().applicationJson.encoder}}i.fromOptions=e})(C0||(C0={}));var iN=class extends S0{constructor(e,t){super();this.writable=e,this.options=C0.fromOptions(t),this.errorCount=0,this.writeSemaphore=new zle.Semaphore(1),this.writable.onError(r=>this.fireError(r)),this.writable.onClose(()=>this.fireClose())}async write(e){return this.writeSemaphore.lock(async()=>this.options.contentTypeEncoder.encode(e,this.options).then(r=>this.options.contentEncoder!==void 0?this.options.contentEncoder.encode(r):r).then(r=>{let n=[];return n.push(Gle,r.byteLength.toString(),rN),n.push(rN),this.doWrite(e,n,r)},r=>{throw this.fireError(r),r}))}async doWrite(e,t,r){try{return await this.writable.write(t.join(""),"ascii"),this.writable.write(r)}catch(n){return this.handleError(n,e),Promise.reject(n)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){this.writable.end()}};Eo.WriteableStreamMessageWriter=iN});var sN=y(_o=>{"use strict";Object.defineProperty(_o,"__esModule",{value:!0});_o.LRUCache=_o.LinkedMap=_o.Touch=void 0;var Wr;(function(i){i.None=0,i.First=1,i.AsOld=i.First,i.Last=2,i.AsNew=i.Last})(Wr=_o.Touch||(_o.Touch={}));var E0=class{constructor(){this[Symbol.toStringTag]="LinkedMap",this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0,this._state=0}clear(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0,this._state++}isEmpty(){return!this._head&&!this._tail}get size(){return this._size}get first(){var e;return(e=this._head)===null||e===void 0?void 0:e.value}get last(){var e;return(e=this._tail)===null||e===void 0?void 0:e.value}has(e){return this._map.has(e)}get(e,t=Wr.None){let r=this._map.get(e);if(!!r)return t!==Wr.None&&this.touch(r,t),r.value}set(e,t,r=Wr.None){let n=this._map.get(e);if(n)n.value=t,r!==Wr.None&&this.touch(n,r);else{switch(n={key:e,value:t,next:void 0,previous:void 0},r){case Wr.None:this.addItemLast(n);break;case Wr.First:this.addItemFirst(n);break;case Wr.Last:this.addItemLast(n);break;default:this.addItemLast(n);break}this._map.set(e,n),this._size++}return this}delete(e){return!!this.remove(e)}remove(e){let t=this._map.get(e);if(!!t)return this._map.delete(e),this.removeItem(t),this._size--,t.value}shift(){if(!this._head&&!this._tail)return;if(!this._head||!this._tail)throw new Error("Invalid list");let e=this._head;return this._map.delete(e.key),this.removeItem(e),this._size--,e.value}forEach(e,t){let r=this._state,n=this._head;for(;n;){if(t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),this._state!==r)throw new Error("LinkedMap got modified during iteration.");n=n.next}}keys(){let e=this,t=this._state,r=this._head,n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){let o={value:r.key,done:!1};return r=r.next,o}else return{value:void 0,done:!0}}};return n}values(){let e=this,t=this._state,r=this._head,n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){let o={value:r.value,done:!1};return r=r.next,o}else return{value:void 0,done:!0}}};return n}entries(){let e=this,t=this._state,r=this._head,n={[Symbol.iterator](){return n},next(){if(e._state!==t)throw new Error("LinkedMap got modified during iteration.");if(r){let o={value:[r.key,r.value],done:!1};return r=r.next,o}else return{value:void 0,done:!0}}};return n}[Symbol.iterator](){return this.entries()}trimOld(e){if(e>=this.size)return;if(e===0){this.clear();return}let t=this._head,r=this.size;for(;t&&r>e;)this._map.delete(t.key),t=t.next,r--;this._head=t,this._size=r,t&&(t.previous=void 0),this._state++}addItemFirst(e){if(!this._head&&!this._tail)this._tail=e;else if(this._head)e.next=this._head,this._head.previous=e;else throw new Error("Invalid list");this._head=e,this._state++}addItemLast(e){if(!this._head&&!this._tail)this._head=e;else if(this._tail)e.previous=this._tail,this._tail.next=e;else throw new Error("Invalid list");this._tail=e,this._state++}removeItem(e){if(e===this._head&&e===this._tail)this._head=void 0,this._tail=void 0;else if(e===this._head){if(!e.next)throw new Error("Invalid list");e.next.previous=void 0,this._head=e.next}else if(e===this._tail){if(!e.previous)throw new Error("Invalid list");e.previous.next=void 0,this._tail=e.previous}else{let t=e.next,r=e.previous;if(!t||!r)throw new Error("Invalid list");t.previous=r,r.next=t}e.next=void 0,e.previous=void 0,this._state++}touch(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(!(t!==Wr.First&&t!==Wr.Last)){if(t===Wr.First){if(e===this._head)return;let r=e.next,n=e.previous;e===this._tail?(n.next=void 0,this._tail=n):(r.previous=n,n.next=r),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e,this._state++}else if(t===Wr.Last){if(e===this._tail)return;let r=e.next,n=e.previous;e===this._head?(r.previous=void 0,this._head=r):(r.previous=n,n.next=r),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e,this._state++}}}toJSON(){let e=[];return this.forEach((t,r)=>{e.push([r,t])}),e}fromJSON(e){this.clear();for(let[t,r]of e)this.set(t,r)}};_o.LinkedMap=E0;var oN=class extends E0{constructor(e,t=1){super();this._limit=e,this._ratio=Math.min(Math.max(0,t),1)}get limit(){return this._limit}set limit(e){this._limit=e,this.checkTrim()}get ratio(){return this._ratio}set ratio(e){this._ratio=Math.min(Math.max(0,e),1),this.checkTrim()}get(e,t=Wr.AsNew){return super.get(e,t)}peek(e){return super.get(e,Wr.None)}set(e,t){return super.set(e,t,Wr.Last),this.checkTrim(),this}checkTrim(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))}};_o.LRUCache=oN});var pN=y(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.createMessageConnection=ve.ConnectionOptions=ve.CancellationStrategy=ve.CancellationSenderStrategy=ve.CancellationReceiverStrategy=ve.ConnectionStrategy=ve.ConnectionError=ve.ConnectionErrors=ve.LogTraceNotification=ve.SetTraceNotification=ve.TraceFormat=ve.Trace=ve.NullLogger=ve.ProgressType=void 0;var aN=So(),or=vu(),he=m0(),lN=sN(),mp=yu(),_0=b0(),gp;(function(i){i.type=new he.NotificationType("$/cancelRequest")})(gp||(gp={}));var pg;(function(i){i.type=new he.NotificationType("$/progress")})(pg||(pg={}));var uN=class{constructor(){}};ve.ProgressType=uN;var T0;(function(i){function e(t){return or.func(t)}i.is=e})(T0||(T0={}));ve.NullLogger=Object.freeze({error:()=>{},warn:()=>{},info:()=>{},log:()=>{}});var Wt;(function(i){i[i.Off=0]="Off",i[i.Messages=1]="Messages",i[i.Verbose=2]="Verbose"})(Wt=ve.Trace||(ve.Trace={}));(function(i){function e(r){if(!or.string(r))return i.Off;switch(r=r.toLowerCase(),r){case"off":return i.Off;case"messages":return i.Messages;case"verbose":return i.Verbose;default:return i.Off}}i.fromString=e;function t(r){switch(r){case i.Off:return"off";case i.Messages:return"messages";case i.Verbose:return"verbose";default:return"off"}}i.toString=t})(Wt=ve.Trace||(ve.Trace={}));var Dn;(function(i){i.Text="text",i.JSON="json"})(Dn=ve.TraceFormat||(ve.TraceFormat={}));(function(i){function e(t){return t=t.toLowerCase(),t==="json"?i.JSON:i.Text}i.fromString=e})(Dn=ve.TraceFormat||(ve.TraceFormat={}));var cN;(function(i){i.type=new he.NotificationType("$/setTrace")})(cN=ve.SetTraceNotification||(ve.SetTraceNotification={}));var P0;(function(i){i.type=new he.NotificationType("$/logTrace")})(P0=ve.LogTraceNotification||(ve.LogTraceNotification={}));var dg;(function(i){i[i.Closed=1]="Closed",i[i.Disposed=2]="Disposed",i[i.AlreadyListening=3]="AlreadyListening"})(dg=ve.ConnectionErrors||(ve.ConnectionErrors={}));var Na=class extends Error{constructor(e,t){super(t);this.code=e,Object.setPrototypeOf(this,Na.prototype)}};ve.ConnectionError=Na;var fN;(function(i){function e(t){let r=t;return r&&or.func(r.cancelUndispatched)}i.is=e})(fN=ve.ConnectionStrategy||(ve.ConnectionStrategy={}));var R0;(function(i){i.Message=Object.freeze({createCancellationTokenSource(t){return new _0.CancellationTokenSource}});function e(t){let r=t;return r&&or.func(r.createCancellationTokenSource)}i.is=e})(R0=ve.CancellationReceiverStrategy||(ve.CancellationReceiverStrategy={}));var k0;(function(i){i.Message=Object.freeze({sendCancellation(t,r){t.sendNotification(gp.type,{id:r})},cleanup(t){}});function e(t){let r=t;return r&&or.func(r.sendCancellation)&&or.func(r.cleanup)}i.is=e})(k0=ve.CancellationSenderStrategy||(ve.CancellationSenderStrategy={}));var I0;(function(i){i.Message=Object.freeze({receiver:R0.Message,sender:k0.Message});function e(t){let r=t;return r&&R0.is(r.receiver)&&k0.is(r.sender)}i.is=e})(I0=ve.CancellationStrategy||(ve.CancellationStrategy={}));var Kle;(function(i){function e(t){let r=t;return r&&(I0.is(r.cancellationStrategy)||fN.is(r.connectionStrategy))}i.is=e})(Kle=ve.ConnectionOptions||(ve.ConnectionOptions={}));var xn;(function(i){i[i.New=1]="New",i[i.Listening=2]="Listening",i[i.Closed=3]="Closed",i[i.Disposed=4]="Disposed"})(xn||(xn={}));function Jle(i,e,t,r){let n=t!==void 0?t:ve.NullLogger,o=0,s=0,a=0,l="2.0",u,c=Object.create(null),f,p=Object.create(null),d=new Map,h,m=new lN.LinkedMap,w=Object.create(null),v=Object.create(null),D=Wt.Off,x=Dn.Text,S,P=xn.New,A=new mp.Emitter,R=new mp.Emitter,M=new mp.Emitter,L=new mp.Emitter,q=new mp.Emitter,F=r&&r.cancellationStrategy?r.cancellationStrategy:I0.Message;function O(k){if(k===null)throw new Error("Can't send requests with id null since the response can't be correlated.");return"req-"+k.toString()}function U(k){return k===null?"res-unknown-"+(++a).toString():"res-"+k.toString()}function X(){return"not-"+(++s).toString()}function de(k,H){he.isRequestMessage(H)?k.set(O(H.id),H):he.isResponseMessage(H)?k.set(U(H.id),H):k.set(X(),H)}function Ae(k){}function yt(){return P===xn.Listening}function wr(){return P===xn.Closed}function Pt(){return P===xn.Disposed}function Dr(){(P===xn.New||P===xn.Listening)&&(P=xn.Closed,R.fire(void 0))}function ts(k){A.fire([k,void 0,void 0])}function mo(k){A.fire(k)}i.onClose(Dr),i.onError(ts),e.onClose(Dr),e.onError(mo);function Jh(){h||m.size===0||(h=aN.default().timer.setImmediate(()=>{h=void 0,Yh()}))}function Yh(){if(m.size===0)return;let k=m.shift();try{he.isRequestMessage(k)?ql(k):he.isNotificationMessage(k)?ke(k):he.isResponseMessage(k)?Nl(k):Ce(k)}finally{Jh()}}let yD=k=>{try{if(he.isNotificationMessage(k)&&k.method===gp.type.method){let H=O(k.params.id),K=m.get(H);if(he.isRequestMessage(K)){let ae=r==null?void 0:r.connectionStrategy,ze=ae&&ae.cancelUndispatched?ae.cancelUndispatched(K,Ae):Ae(K);if(ze&&(ze.error!==void 0||ze.result!==void 0)){m.delete(H),ze.id=K.id,Rt(ze,k.method,Date.now()),e.write(ze);return}}}de(m,k)}finally{Jh()}};function ql(k){if(Pt())return;function H(Ye,It,Xe){let Xt={jsonrpc:l,id:k.id};Ye instanceof he.ResponseError?Xt.error=Ye.toJson():Xt.result=Ye===void 0?null:Ye,Rt(Xt,It,Xe),e.write(Xt)}function K(Ye,It,Xe){let Xt={jsonrpc:l,id:k.id,error:Ye.toJson()};Rt(Xt,It,Xe),e.write(Xt)}function ae(Ye,It,Xe){Ye===void 0&&(Ye=null);let Xt={jsonrpc:l,id:k.id,result:Ye};Rt(Xt,It,Xe),e.write(Xt)}mn(k);let ze=c[k.method],kt,Yt;ze&&(kt=ze.type,Yt=ze.handler);let nr=Date.now();if(Yt||u){let Ye=String(k.id),It=F.receiver.createCancellationTokenSource(Ye);v[Ye]=It;try{let Xe;if(Yt)if(k.params===void 0){if(kt!==void 0&&kt.numberOfParams!==0){K(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${k.method} defines ${kt.numberOfParams} params but recevied none.`),k.method,nr);return}Xe=Yt(It.token)}else if(Array.isArray(k.params)){if(kt!==void 0&&kt.parameterStructures===he.ParameterStructures.byName){K(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${k.method} defines parameters by name but received parameters by position`),k.method,nr);return}Xe=Yt(...k.params,It.token)}else{if(kt!==void 0&&kt.parameterStructures===he.ParameterStructures.byPosition){K(new he.ResponseError(he.ErrorCodes.InvalidParams,`Request ${k.method} defines parameters by position but received parameters by name`),k.method,nr);return}Xe=Yt(k.params,It.token)}else u&&(Xe=u(k.method,k.params,It.token));let Xt=Xe;Xe?Xt.then?Xt.then(Zr=>{delete v[Ye],H(Zr,k.method,nr)},Zr=>{delete v[Ye],Zr instanceof he.ResponseError?K(Zr,k.method,nr):Zr&&or.string(Zr.message)?K(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${k.method} failed with message: ${Zr.message}`),k.method,nr):K(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${k.method} failed unexpectedly without providing any details.`),k.method,nr)}):(delete v[Ye],H(Xe,k.method,nr)):(delete v[Ye],ae(Xe,k.method,nr))}catch(Xe){delete v[Ye],Xe instanceof he.ResponseError?H(Xe,k.method,nr):Xe&&or.string(Xe.message)?K(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${k.method} failed with message: ${Xe.message}`),k.method,nr):K(new he.ResponseError(he.ErrorCodes.InternalError,`Request ${k.method} failed unexpectedly without providing any details.`),k.method,nr)}}else K(new he.ResponseError(he.ErrorCodes.MethodNotFound,`Unhandled method ${k.method}`),k.method,nr)}function Nl(k){if(!Pt())if(k.id===null)k.error?n.error(`Received response message without id: Error is: +${JSON.stringify(k.error,void 0,4)}`):n.error("Received response message without id. No further error information provided.");else{let H=String(k.id),K=w[H];if(vi(k,K),K){delete w[H];try{if(k.error){let ae=k.error;K.reject(new he.ResponseError(ae.code,ae.message,ae.data))}else if(k.result!==void 0)K.resolve(k.result);else throw new Error("Should never happen.")}catch(ae){ae.message?n.error(`Response handler '${K.method}' failed with message: ${ae.message}`):n.error(`Response handler '${K.method}' failed unexpectedly.`)}}}}function ke(k){if(Pt())return;let H,K;if(k.method===gp.type.method)K=ae=>{let ze=ae.id,kt=v[String(ze)];kt&&kt.cancel()};else{let ae=p[k.method];ae&&(K=ae.handler,H=ae.type)}if(K||f)try{gn(k),K?k.params===void 0?(H!==void 0&&H.numberOfParams!==0&&H.parameterStructures!==he.ParameterStructures.byName&&n.error(`Notification ${k.method} defines ${H.numberOfParams} params but recevied none.`),K()):Array.isArray(k.params)?(H!==void 0&&(H.parameterStructures===he.ParameterStructures.byName&&n.error(`Notification ${k.method} defines parameters by name but received parameters by position`),H.numberOfParams!==k.params.length&&n.error(`Notification ${k.method} defines ${H.numberOfParams} params but received ${k.params.length} argumennts`)),K(...k.params)):(H!==void 0&&H.parameterStructures===he.ParameterStructures.byPosition&&n.error(`Notification ${k.method} defines parameters by position but received parameters by name`),K(k.params)):f&&f(k.method,k.params)}catch(ae){ae.message?n.error(`Notification handler '${k.method}' failed with message: ${ae.message}`):n.error(`Notification handler '${k.method}' failed unexpectedly.`)}else M.fire(k)}function Ce(k){if(!k){n.error("Received empty message.");return}n.error(`Received message which is neither a response nor a notification message: +${JSON.stringify(k,null,4)}`);let H=k;if(or.string(H.id)||or.number(H.id)){let K=String(H.id),ae=w[K];ae&&ae.reject(new Error("The received response has neither a result nor an error property."))}}function Ee(k){if(!(D===Wt.Off||!S))if(x===Dn.Text){let H;D===Wt.Verbose&&k.params&&(H=`Params: ${JSON.stringify(k.params,null,4)} + +`),S.log(`Sending request '${k.method} - (${k.id})'.`,H)}else rs("send-request",k)}function Ie(k){if(!(D===Wt.Off||!S))if(x===Dn.Text){let H;D===Wt.Verbose&&(k.params?H=`Params: ${JSON.stringify(k.params,null,4)} + +`:H=`No parameters provided. + +`),S.log(`Sending notification '${k.method}'.`,H)}else rs("send-notification",k)}function Rt(k,H,K){if(!(D===Wt.Off||!S))if(x===Dn.Text){let ae;D===Wt.Verbose&&(k.error&&k.error.data?ae=`Error data: ${JSON.stringify(k.error.data,null,4)} + +`:k.result?ae=`Result: ${JSON.stringify(k.result,null,4)} + +`:k.error===void 0&&(ae=`No result returned. + +`)),S.log(`Sending response '${H} - (${k.id})'. Processing request took ${Date.now()-K}ms`,ae)}else rs("send-response",k)}function mn(k){if(!(D===Wt.Off||!S))if(x===Dn.Text){let H;D===Wt.Verbose&&k.params&&(H=`Params: ${JSON.stringify(k.params,null,4)} + +`),S.log(`Received request '${k.method} - (${k.id})'.`,H)}else rs("receive-request",k)}function gn(k){if(!(D===Wt.Off||!S||k.method===P0.type.method))if(x===Dn.Text){let H;D===Wt.Verbose&&(k.params?H=`Params: ${JSON.stringify(k.params,null,4)} + +`:H=`No parameters provided. + +`),S.log(`Received notification '${k.method}'.`,H)}else rs("receive-notification",k)}function vi(k,H){if(!(D===Wt.Off||!S))if(x===Dn.Text){let K;if(D===Wt.Verbose&&(k.error&&k.error.data?K=`Error data: ${JSON.stringify(k.error.data,null,4)} + +`:k.result?K=`Result: ${JSON.stringify(k.result,null,4)} + +`:k.error===void 0&&(K=`No result returned. + +`)),H){let ae=k.error?` Request failed: ${k.error.message} (${k.error.code}).`:"";S.log(`Received response '${H.method} - (${k.id})' in ${Date.now()-H.timerStart}ms.${ae}`,K)}else S.log(`Received response ${k.id} without active response promise.`,K)}else rs("receive-response",k)}function rs(k,H){if(!S||D===Wt.Off)return;let K={isLSPMessage:!0,type:k,message:H,timestamp:Date.now()};S.log(K)}function is(){if(wr())throw new Na(dg.Closed,"Connection is closed.");if(Pt())throw new Na(dg.Disposed,"Connection is disposed.")}function MZ(){if(yt())throw new Na(dg.AlreadyListening,"Connection is already listening")}function qZ(){if(!yt())throw new Error("Call listen() first.")}function vf(k){return k===void 0?null:k}function UR(k){if(k!==null)return k}function WR(k){return k!=null&&!Array.isArray(k)&&typeof k=="object"}function bD(k,H){switch(k){case he.ParameterStructures.auto:return WR(H)?UR(H):[vf(H)];case he.ParameterStructures.byName:if(!WR(H))throw new Error("Recevied parameters by name but param is not an object literal.");return UR(H);case he.ParameterStructures.byPosition:return[vf(H)];default:throw new Error(`Unknown parameter structure ${k.toString()}`)}}function HR(k,H){let K,ae=k.numberOfParams;switch(ae){case 0:K=void 0;break;case 1:K=bD(k.parameterStructures,H[0]);break;default:K=[];for(let ze=0;ze{is();let K,ae;if(or.string(k)){K=k;let kt=H[0],Yt=0,nr=he.ParameterStructures.auto;he.ParameterStructures.is(kt)&&(Yt=1,nr=kt);let Ye=H.length,It=Ye-Yt;switch(It){case 0:ae=void 0;break;case 1:ae=bD(nr,H[Yt]);break;default:if(nr===he.ParameterStructures.byName)throw new Error(`Recevied ${It} parameters for 'by Name' notification parameter structure.`);ae=H.slice(Yt,Ye).map(Xe=>vf(Xe));break}}else{let kt=H;K=k.method,ae=HR(k,kt)}let ze={jsonrpc:l,method:K,params:ae};Ie(ze),e.write(ze)},onNotification:(k,H)=>{is();let K;return or.func(k)?f=k:H&&(or.string(k)?(K=k,p[k]={type:void 0,handler:H}):(K=k.method,p[k.method]={type:k,handler:H})),{dispose:()=>{K!==void 0?delete p[K]:f=void 0}}},onProgress:(k,H,K)=>{if(d.has(H))throw new Error(`Progress handler for token ${H} already registered`);return d.set(H,K),{dispose:()=>{d.delete(H)}}},sendProgress:(k,H,K)=>{$l.sendNotification(pg.type,{token:H,value:K})},onUnhandledProgress:L.event,sendRequest:(k,...H)=>{is(),qZ();let K,ae,ze;if(or.string(k)){K=k;let Ye=H[0],It=H[H.length-1],Xe=0,Xt=he.ParameterStructures.auto;he.ParameterStructures.is(Ye)&&(Xe=1,Xt=Ye);let Zr=H.length;_0.CancellationToken.is(It)&&(Zr=Zr-1,ze=It);let ua=Zr-Xe;switch(ua){case 0:ae=void 0;break;case 1:ae=bD(Xt,H[Xe]);break;default:if(Xt===he.ParameterStructures.byName)throw new Error(`Recevied ${ua} parameters for 'by Name' request parameter structure.`);ae=H.slice(Xe,Zr).map(ns=>vf(ns));break}}else{let Ye=H;K=k.method,ae=HR(k,Ye);let It=k.numberOfParams;ze=_0.CancellationToken.is(Ye[It])?Ye[It]:void 0}let kt=o++,Yt;return ze&&(Yt=ze.onCancellationRequested(()=>{F.sender.sendCancellation($l,kt)})),new Promise((Ye,It)=>{let Xe={jsonrpc:l,id:kt,method:K,params:ae},Xt=ns=>{Ye(ns),F.sender.cleanup(kt),Yt==null||Yt.dispose()},Zr=ns=>{It(ns),F.sender.cleanup(kt),Yt==null||Yt.dispose()},ua={method:K,timerStart:Date.now(),resolve:Xt,reject:Zr};Ee(Xe);try{e.write(Xe)}catch(ns){ua.reject(new he.ResponseError(he.ErrorCodes.MessageWriteError,ns.message?ns.message:"Unknown reason")),ua=null}ua&&(w[String(kt)]=ua)})},onRequest:(k,H)=>{is();let K=null;return T0.is(k)?(K=void 0,u=k):or.string(k)?(K=null,H!==void 0&&(K=k,c[k]={handler:H,type:void 0})):H!==void 0&&(K=k.method,c[k.method]={type:k,handler:H}),{dispose:()=>{K!==null&&(K!==void 0?delete c[K]:u=void 0)}}},trace:(k,H,K)=>{let ae=!1,ze=Dn.Text;K!==void 0&&(or.boolean(K)?ae=K:(ae=K.sendNotification||!1,ze=K.traceFormat||Dn.Text)),D=k,x=ze,D===Wt.Off?S=void 0:S=H,ae&&!wr()&&!Pt()&&$l.sendNotification(cN.type,{value:Wt.toString(k)})},onError:A.event,onClose:R.event,onUnhandledNotification:M.event,onDispose:q.event,end:()=>{e.end()},dispose:()=>{if(Pt())return;P=xn.Disposed,q.fire(void 0);let k=new Error("Connection got disposed.");Object.keys(w).forEach(H=>{w[H].reject(k)}),w=Object.create(null),v=Object.create(null),m=new lN.LinkedMap,or.func(e.dispose)&&e.dispose(),or.func(i.dispose)&&i.dispose()},listen:()=>{is(),MZ(),P=xn.Listening,i.listen(yD)},inspect:()=>{aN.default().console.log("inspect")}};return $l.onNotification(P0.type,k=>{D===Wt.Off||!S||S.log(k.message,D===Wt.Verbose?k.verbose:void 0)}),$l.onNotification(pg.type,k=>{let H=d.get(k.token);H?H(k.value):L.fire(k)}),$l}ve.createMessageConnection=Jle});var A0=y(z=>{"use strict";Object.defineProperty(z,"__esModule",{value:!0});z.CancellationSenderStrategy=z.CancellationReceiverStrategy=z.ConnectionError=z.ConnectionErrors=z.LogTraceNotification=z.SetTraceNotification=z.TraceFormat=z.Trace=z.ProgressType=z.createMessageConnection=z.NullLogger=z.ConnectionOptions=z.ConnectionStrategy=z.WriteableStreamMessageWriter=z.AbstractMessageWriter=z.MessageWriter=z.ReadableStreamMessageReader=z.AbstractMessageReader=z.MessageReader=z.CancellationToken=z.CancellationTokenSource=z.Emitter=z.Event=z.Disposable=z.ParameterStructures=z.NotificationType9=z.NotificationType8=z.NotificationType7=z.NotificationType6=z.NotificationType5=z.NotificationType4=z.NotificationType3=z.NotificationType2=z.NotificationType1=z.NotificationType0=z.NotificationType=z.ErrorCodes=z.ResponseError=z.RequestType9=z.RequestType8=z.RequestType7=z.RequestType6=z.RequestType5=z.RequestType4=z.RequestType3=z.RequestType2=z.RequestType1=z.RequestType0=z.RequestType=z.RAL=void 0;z.CancellationStrategy=void 0;var gt=m0();Object.defineProperty(z,"RequestType",{enumerable:!0,get:function(){return gt.RequestType}});Object.defineProperty(z,"RequestType0",{enumerable:!0,get:function(){return gt.RequestType0}});Object.defineProperty(z,"RequestType1",{enumerable:!0,get:function(){return gt.RequestType1}});Object.defineProperty(z,"RequestType2",{enumerable:!0,get:function(){return gt.RequestType2}});Object.defineProperty(z,"RequestType3",{enumerable:!0,get:function(){return gt.RequestType3}});Object.defineProperty(z,"RequestType4",{enumerable:!0,get:function(){return gt.RequestType4}});Object.defineProperty(z,"RequestType5",{enumerable:!0,get:function(){return gt.RequestType5}});Object.defineProperty(z,"RequestType6",{enumerable:!0,get:function(){return gt.RequestType6}});Object.defineProperty(z,"RequestType7",{enumerable:!0,get:function(){return gt.RequestType7}});Object.defineProperty(z,"RequestType8",{enumerable:!0,get:function(){return gt.RequestType8}});Object.defineProperty(z,"RequestType9",{enumerable:!0,get:function(){return gt.RequestType9}});Object.defineProperty(z,"ResponseError",{enumerable:!0,get:function(){return gt.ResponseError}});Object.defineProperty(z,"ErrorCodes",{enumerable:!0,get:function(){return gt.ErrorCodes}});Object.defineProperty(z,"NotificationType",{enumerable:!0,get:function(){return gt.NotificationType}});Object.defineProperty(z,"NotificationType0",{enumerable:!0,get:function(){return gt.NotificationType0}});Object.defineProperty(z,"NotificationType1",{enumerable:!0,get:function(){return gt.NotificationType1}});Object.defineProperty(z,"NotificationType2",{enumerable:!0,get:function(){return gt.NotificationType2}});Object.defineProperty(z,"NotificationType3",{enumerable:!0,get:function(){return gt.NotificationType3}});Object.defineProperty(z,"NotificationType4",{enumerable:!0,get:function(){return gt.NotificationType4}});Object.defineProperty(z,"NotificationType5",{enumerable:!0,get:function(){return gt.NotificationType5}});Object.defineProperty(z,"NotificationType6",{enumerable:!0,get:function(){return gt.NotificationType6}});Object.defineProperty(z,"NotificationType7",{enumerable:!0,get:function(){return gt.NotificationType7}});Object.defineProperty(z,"NotificationType8",{enumerable:!0,get:function(){return gt.NotificationType8}});Object.defineProperty(z,"NotificationType9",{enumerable:!0,get:function(){return gt.NotificationType9}});Object.defineProperty(z,"ParameterStructures",{enumerable:!0,get:function(){return gt.ParameterStructures}});var Yle=p0();Object.defineProperty(z,"Disposable",{enumerable:!0,get:function(){return Yle.Disposable}});var dN=yu();Object.defineProperty(z,"Event",{enumerable:!0,get:function(){return dN.Event}});Object.defineProperty(z,"Emitter",{enumerable:!0,get:function(){return dN.Emitter}});var hN=b0();Object.defineProperty(z,"CancellationTokenSource",{enumerable:!0,get:function(){return hN.CancellationTokenSource}});Object.defineProperty(z,"CancellationToken",{enumerable:!0,get:function(){return hN.CancellationToken}});var F0=Xq();Object.defineProperty(z,"MessageReader",{enumerable:!0,get:function(){return F0.MessageReader}});Object.defineProperty(z,"AbstractMessageReader",{enumerable:!0,get:function(){return F0.AbstractMessageReader}});Object.defineProperty(z,"ReadableStreamMessageReader",{enumerable:!0,get:function(){return F0.ReadableStreamMessageReader}});var O0=nN();Object.defineProperty(z,"MessageWriter",{enumerable:!0,get:function(){return O0.MessageWriter}});Object.defineProperty(z,"AbstractMessageWriter",{enumerable:!0,get:function(){return O0.AbstractMessageWriter}});Object.defineProperty(z,"WriteableStreamMessageWriter",{enumerable:!0,get:function(){return O0.WriteableStreamMessageWriter}});var ni=pN();Object.defineProperty(z,"ConnectionStrategy",{enumerable:!0,get:function(){return ni.ConnectionStrategy}});Object.defineProperty(z,"ConnectionOptions",{enumerable:!0,get:function(){return ni.ConnectionOptions}});Object.defineProperty(z,"NullLogger",{enumerable:!0,get:function(){return ni.NullLogger}});Object.defineProperty(z,"createMessageConnection",{enumerable:!0,get:function(){return ni.createMessageConnection}});Object.defineProperty(z,"ProgressType",{enumerable:!0,get:function(){return ni.ProgressType}});Object.defineProperty(z,"Trace",{enumerable:!0,get:function(){return ni.Trace}});Object.defineProperty(z,"TraceFormat",{enumerable:!0,get:function(){return ni.TraceFormat}});Object.defineProperty(z,"SetTraceNotification",{enumerable:!0,get:function(){return ni.SetTraceNotification}});Object.defineProperty(z,"LogTraceNotification",{enumerable:!0,get:function(){return ni.LogTraceNotification}});Object.defineProperty(z,"ConnectionErrors",{enumerable:!0,get:function(){return ni.ConnectionErrors}});Object.defineProperty(z,"ConnectionError",{enumerable:!0,get:function(){return ni.ConnectionError}});Object.defineProperty(z,"CancellationReceiverStrategy",{enumerable:!0,get:function(){return ni.CancellationReceiverStrategy}});Object.defineProperty(z,"CancellationSenderStrategy",{enumerable:!0,get:function(){return ni.CancellationSenderStrategy}});Object.defineProperty(z,"CancellationStrategy",{enumerable:!0,get:function(){return ni.CancellationStrategy}});var Xle=So();z.RAL=Xle.default});var $a=y(Ve=>{"use strict";var Zle=Ve&&Ve.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t),Object.defineProperty(i,r,{enumerable:!0,get:function(){return e[t]}})}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),Qle=Ve&&Ve.__exportStar||function(i,e){for(var t in i)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Zle(e,i,t)};Object.defineProperty(Ve,"__esModule",{value:!0});Ve.createMessageConnection=Ve.createServerSocketTransport=Ve.createClientSocketTransport=Ve.createServerPipeTransport=Ve.createClientPipeTransport=Ve.generateRandomPipeName=Ve.StreamMessageWriter=Ve.StreamMessageReader=Ve.SocketMessageWriter=Ve.SocketMessageReader=Ve.IPCMessageWriter=Ve.IPCMessageReader=void 0;var wu=Dq();wu.default.install();var Gn=A0(),mN=require("path"),eue=require("os"),tue=require("crypto"),hg=require("net");Qle(A0(),Ve);var gN=class extends Gn.AbstractMessageReader{constructor(e){super();this.process=e;let t=this.process;t.on("error",r=>this.fireError(r)),t.on("close",()=>this.fireClose())}listen(e){return this.process.on("message",e),Gn.Disposable.create(()=>this.process.off("message",e))}};Ve.IPCMessageReader=gN;var vN=class extends Gn.AbstractMessageWriter{constructor(e){super();this.process=e,this.errorCount=0;let t=this.process;t.on("error",r=>this.fireError(r)),t.on("close",()=>this.fireClose)}write(e){try{return typeof this.process.send=="function"&&this.process.send(e,void 0,void 0,t=>{t?(this.errorCount++,this.handleError(t,e)):this.errorCount=0}),Promise.resolve()}catch(t){return this.handleError(t,e),Promise.reject(t)}}handleError(e,t){this.errorCount++,this.fireError(e,t,this.errorCount)}end(){}};Ve.IPCMessageWriter=vN;var Du=class extends Gn.ReadableStreamMessageReader{constructor(e,t="utf-8"){super(wu.default().stream.asReadableStream(e),t)}};Ve.SocketMessageReader=Du;var xu=class extends Gn.WriteableStreamMessageWriter{constructor(e,t){super(wu.default().stream.asWritableStream(e),t);this.socket=e}dispose(){super.dispose(),this.socket.destroy()}};Ve.SocketMessageWriter=xu;var L0=class extends Gn.ReadableStreamMessageReader{constructor(e,t){super(wu.default().stream.asReadableStream(e),t)}};Ve.StreamMessageReader=L0;var M0=class extends Gn.WriteableStreamMessageWriter{constructor(e,t){super(wu.default().stream.asWritableStream(e),t)}};Ve.StreamMessageWriter=M0;var yN=process.env.XDG_RUNTIME_DIR,rue=new Map([["linux",107],["darwin",103]]);function iue(){let i=tue.randomBytes(21).toString("hex");if(process.platform==="win32")return`\\\\.\\pipe\\vscode-jsonrpc-${i}-sock`;let e;yN?e=mN.join(yN,`vscode-ipc-${i}.sock`):e=mN.join(eue.tmpdir(),`vscode-${i}.sock`);let t=rue.get(process.platform);return t!==void 0&&e.length>=t&&wu.default().console.warn(`WARNING: IPC handle "${e}" is longer than ${t} characters.`),e}Ve.generateRandomPipeName=iue;function nue(i,e="utf-8"){let t,r=new Promise((n,o)=>{t=n});return new Promise((n,o)=>{let s=hg.createServer(a=>{s.close(),t([new Du(a,e),new xu(a,e)])});s.on("error",o),s.listen(i,()=>{s.removeListener("error",o),n({onConnected:()=>r})})})}Ve.createClientPipeTransport=nue;function oue(i,e="utf-8"){let t=hg.createConnection(i);return[new Du(t,e),new xu(t,e)]}Ve.createServerPipeTransport=oue;function sue(i,e="utf-8"){let t,r=new Promise((n,o)=>{t=n});return new Promise((n,o)=>{let s=hg.createServer(a=>{s.close(),t([new Du(a,e),new xu(a,e)])});s.on("error",o),s.listen(i,"127.0.0.1",()=>{s.removeListener("error",o),n({onConnected:()=>r})})})}Ve.createClientSocketTransport=sue;function aue(i,e="utf-8"){let t=hg.createConnection(i,"127.0.0.1");return[new Du(t,e),new xu(t,e)]}Ve.createServerSocketTransport=aue;function lue(i){let e=i;return e.read!==void 0&&e.addListener!==void 0}function uue(i){let e=i;return e.write!==void 0&&e.addListener!==void 0}function cue(i,e,t,r){t||(t=Gn.NullLogger);let n=lue(i)?new L0(i):i,o=uue(e)?new M0(e):e;return Gn.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),Gn.createMessageConnection(n,o,t,r)}Ve.createMessageConnection=cue});var q0=y((URe,bN)=>{"use strict";bN.exports=$a()});var DN={};os(DN,{AnnotatedTextEdit:()=>Po,ChangeAnnotation:()=>Ba,ChangeAnnotationIdentifier:()=>dr,CodeAction:()=>hS,CodeActionContext:()=>dS,CodeActionKind:()=>pS,CodeDescription:()=>G0,CodeLens:()=>mS,Color:()=>mg,ColorInformation:()=>B0,ColorPresentation:()=>j0,Command:()=>Su,CompletionItem:()=>tS,CompletionItemKind:()=>Y0,CompletionItemTag:()=>Z0,CompletionList:()=>rS,CreateFile:()=>Cu,DeleteFile:()=>_u,Diagnostic:()=>yp,DiagnosticRelatedInformation:()=>gg,DiagnosticSeverity:()=>H0,DiagnosticTag:()=>z0,DocumentHighlight:()=>aS,DocumentHighlightKind:()=>sS,DocumentLink:()=>vS,DocumentSymbol:()=>fS,EOL:()=>pue,FoldingRange:()=>W0,FoldingRangeKind:()=>U0,FormattingOptions:()=>gS,Hover:()=>iS,InsertReplaceEdit:()=>Q0,InsertTextFormat:()=>X0,InsertTextMode:()=>eS,Location:()=>oi,LocationLink:()=>$0,MarkedString:()=>Dp,MarkupContent:()=>bg,MarkupKind:()=>Tu,OptionalVersionedTextDocumentIdentifier:()=>wp,ParameterInformation:()=>nS,Position:()=>Si,Range:()=>Oe,RenameFile:()=>Eu,SelectionRange:()=>yS,SignatureInformation:()=>oS,SymbolInformation:()=>cS,SymbolKind:()=>lS,SymbolTag:()=>uS,TextDocument:()=>bS,TextDocumentEdit:()=>bp,TextDocumentIdentifier:()=>V0,TextDocumentItem:()=>J0,TextEdit:()=>To,VersionedTextDocumentIdentifier:()=>K0,WorkspaceChange:()=>fue,WorkspaceEdit:()=>vg,integer:()=>N0,uinteger:()=>vp});var N0,vp,Si,Oe,oi,$0,mg,B0,j0,U0,W0,gg,H0,z0,G0,yp,Su,To,Ba,dr,Po,bp,Cu,Eu,_u,vg,yg,wN,fue,V0,K0,wp,J0,Tu,bg,Y0,X0,Z0,Q0,eS,tS,rS,Dp,iS,nS,oS,sS,aS,lS,uS,cS,fS,pS,dS,hS,mS,gS,vS,yS,pue,bS,due,$,Ro=I(()=>{"use strict";(function(i){i.MIN_VALUE=-2147483648,i.MAX_VALUE=2147483647})(N0||(N0={}));(function(i){i.MIN_VALUE=0,i.MAX_VALUE=2147483647})(vp||(vp={}));(function(i){function e(r,n){return r===Number.MAX_VALUE&&(r=vp.MAX_VALUE),n===Number.MAX_VALUE&&(n=vp.MAX_VALUE),{line:r,character:n}}i.create=e;function t(r){var n=r;return $.objectLiteral(n)&&$.uinteger(n.line)&&$.uinteger(n.character)}i.is=t})(Si||(Si={}));(function(i){function e(r,n,o,s){if($.uinteger(r)&&$.uinteger(n)&&$.uinteger(o)&&$.uinteger(s))return{start:Si.create(r,n),end:Si.create(o,s)};if(Si.is(r)&&Si.is(n))return{start:r,end:n};throw new Error("Range#create called with invalid arguments["+r+", "+n+", "+o+", "+s+"]")}i.create=e;function t(r){var n=r;return $.objectLiteral(n)&&Si.is(n.start)&&Si.is(n.end)}i.is=t})(Oe||(Oe={}));(function(i){function e(r,n){return{uri:r,range:n}}i.create=e;function t(r){var n=r;return $.defined(n)&&Oe.is(n.range)&&($.string(n.uri)||$.undefined(n.uri))}i.is=t})(oi||(oi={}));(function(i){function e(r,n,o,s){return{targetUri:r,targetRange:n,targetSelectionRange:o,originSelectionRange:s}}i.create=e;function t(r){var n=r;return $.defined(n)&&Oe.is(n.targetRange)&&$.string(n.targetUri)&&(Oe.is(n.targetSelectionRange)||$.undefined(n.targetSelectionRange))&&(Oe.is(n.originSelectionRange)||$.undefined(n.originSelectionRange))}i.is=t})($0||($0={}));(function(i){function e(r,n,o,s){return{red:r,green:n,blue:o,alpha:s}}i.create=e;function t(r){var n=r;return $.numberRange(n.red,0,1)&&$.numberRange(n.green,0,1)&&$.numberRange(n.blue,0,1)&&$.numberRange(n.alpha,0,1)}i.is=t})(mg||(mg={}));(function(i){function e(r,n){return{range:r,color:n}}i.create=e;function t(r){var n=r;return Oe.is(n.range)&&mg.is(n.color)}i.is=t})(B0||(B0={}));(function(i){function e(r,n,o){return{label:r,textEdit:n,additionalTextEdits:o}}i.create=e;function t(r){var n=r;return $.string(n.label)&&($.undefined(n.textEdit)||To.is(n))&&($.undefined(n.additionalTextEdits)||$.typedArray(n.additionalTextEdits,To.is))}i.is=t})(j0||(j0={}));(function(i){i.Comment="comment",i.Imports="imports",i.Region="region"})(U0||(U0={}));(function(i){function e(r,n,o,s,a){var l={startLine:r,endLine:n};return $.defined(o)&&(l.startCharacter=o),$.defined(s)&&(l.endCharacter=s),$.defined(a)&&(l.kind=a),l}i.create=e;function t(r){var n=r;return $.uinteger(n.startLine)&&$.uinteger(n.startLine)&&($.undefined(n.startCharacter)||$.uinteger(n.startCharacter))&&($.undefined(n.endCharacter)||$.uinteger(n.endCharacter))&&($.undefined(n.kind)||$.string(n.kind))}i.is=t})(W0||(W0={}));(function(i){function e(r,n){return{location:r,message:n}}i.create=e;function t(r){var n=r;return $.defined(n)&&oi.is(n.location)&&$.string(n.message)}i.is=t})(gg||(gg={}));(function(i){i.Error=1,i.Warning=2,i.Information=3,i.Hint=4})(H0||(H0={}));(function(i){i.Unnecessary=1,i.Deprecated=2})(z0||(z0={}));(function(i){function e(t){var r=t;return r!=null&&$.string(r.href)}i.is=e})(G0||(G0={}));(function(i){function e(r,n,o,s,a,l){var u={range:r,message:n};return $.defined(o)&&(u.severity=o),$.defined(s)&&(u.code=s),$.defined(a)&&(u.source=a),$.defined(l)&&(u.relatedInformation=l),u}i.create=e;function t(r){var n,o=r;return $.defined(o)&&Oe.is(o.range)&&$.string(o.message)&&($.number(o.severity)||$.undefined(o.severity))&&($.integer(o.code)||$.string(o.code)||$.undefined(o.code))&&($.undefined(o.codeDescription)||$.string((n=o.codeDescription)===null||n===void 0?void 0:n.href))&&($.string(o.source)||$.undefined(o.source))&&($.undefined(o.relatedInformation)||$.typedArray(o.relatedInformation,gg.is))}i.is=t})(yp||(yp={}));(function(i){function e(r,n){for(var o=[],s=2;s0&&(a.arguments=o),a}i.create=e;function t(r){var n=r;return $.defined(n)&&$.string(n.title)&&$.string(n.command)}i.is=t})(Su||(Su={}));(function(i){function e(o,s){return{range:o,newText:s}}i.replace=e;function t(o,s){return{range:{start:o,end:o},newText:s}}i.insert=t;function r(o){return{range:o,newText:""}}i.del=r;function n(o){var s=o;return $.objectLiteral(s)&&$.string(s.newText)&&Oe.is(s.range)}i.is=n})(To||(To={}));(function(i){function e(r,n,o){var s={label:r};return n!==void 0&&(s.needsConfirmation=n),o!==void 0&&(s.description=o),s}i.create=e;function t(r){var n=r;return n!==void 0&&$.objectLiteral(n)&&$.string(n.label)&&($.boolean(n.needsConfirmation)||n.needsConfirmation===void 0)&&($.string(n.description)||n.description===void 0)}i.is=t})(Ba||(Ba={}));(function(i){function e(t){var r=t;return typeof r=="string"}i.is=e})(dr||(dr={}));(function(i){function e(o,s,a){return{range:o,newText:s,annotationId:a}}i.replace=e;function t(o,s,a){return{range:{start:o,end:o},newText:s,annotationId:a}}i.insert=t;function r(o,s){return{range:o,newText:"",annotationId:s}}i.del=r;function n(o){var s=o;return To.is(s)&&(Ba.is(s.annotationId)||dr.is(s.annotationId))}i.is=n})(Po||(Po={}));(function(i){function e(r,n){return{textDocument:r,edits:n}}i.create=e;function t(r){var n=r;return $.defined(n)&&wp.is(n.textDocument)&&Array.isArray(n.edits)}i.is=t})(bp||(bp={}));(function(i){function e(r,n,o){var s={kind:"create",uri:r};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(s.options=n),o!==void 0&&(s.annotationId=o),s}i.create=e;function t(r){var n=r;return n&&n.kind==="create"&&$.string(n.uri)&&(n.options===void 0||(n.options.overwrite===void 0||$.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||$.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||dr.is(n.annotationId))}i.is=t})(Cu||(Cu={}));(function(i){function e(r,n,o,s){var a={kind:"rename",oldUri:r,newUri:n};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(a.options=o),s!==void 0&&(a.annotationId=s),a}i.create=e;function t(r){var n=r;return n&&n.kind==="rename"&&$.string(n.oldUri)&&$.string(n.newUri)&&(n.options===void 0||(n.options.overwrite===void 0||$.boolean(n.options.overwrite))&&(n.options.ignoreIfExists===void 0||$.boolean(n.options.ignoreIfExists)))&&(n.annotationId===void 0||dr.is(n.annotationId))}i.is=t})(Eu||(Eu={}));(function(i){function e(r,n,o){var s={kind:"delete",uri:r};return n!==void 0&&(n.recursive!==void 0||n.ignoreIfNotExists!==void 0)&&(s.options=n),o!==void 0&&(s.annotationId=o),s}i.create=e;function t(r){var n=r;return n&&n.kind==="delete"&&$.string(n.uri)&&(n.options===void 0||(n.options.recursive===void 0||$.boolean(n.options.recursive))&&(n.options.ignoreIfNotExists===void 0||$.boolean(n.options.ignoreIfNotExists)))&&(n.annotationId===void 0||dr.is(n.annotationId))}i.is=t})(_u||(_u={}));(function(i){function e(t){var r=t;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(function(n){return $.string(n.kind)?Cu.is(n)||Eu.is(n)||_u.is(n):bp.is(n)}))}i.is=e})(vg||(vg={}));yg=function(){function i(e,t){this.edits=e,this.changeAnnotations=t}return i.prototype.insert=function(e,t,r){var n,o;if(r===void 0?n=To.insert(e,t):dr.is(r)?(o=r,n=Po.insert(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),n=Po.insert(e,t,o)),this.edits.push(n),o!==void 0)return o},i.prototype.replace=function(e,t,r){var n,o;if(r===void 0?n=To.replace(e,t):dr.is(r)?(o=r,n=Po.replace(e,t,r)):(this.assertChangeAnnotations(this.changeAnnotations),o=this.changeAnnotations.manage(r),n=Po.replace(e,t,o)),this.edits.push(n),o!==void 0)return o},i.prototype.delete=function(e,t){var r,n;if(t===void 0?r=To.del(e):dr.is(t)?(n=t,r=Po.del(e,t)):(this.assertChangeAnnotations(this.changeAnnotations),n=this.changeAnnotations.manage(t),r=Po.del(e,n)),this.edits.push(r),n!==void 0)return n},i.prototype.add=function(e){this.edits.push(e)},i.prototype.all=function(){return this.edits},i.prototype.clear=function(){this.edits.splice(0,this.edits.length)},i.prototype.assertChangeAnnotations=function(e){if(e===void 0)throw new Error("Text edit change is not configured to manage change annotations.")},i}(),wN=function(){function i(e){this._annotations=e===void 0?Object.create(null):e,this._counter=0,this._size=0}return i.prototype.all=function(){return this._annotations},Object.defineProperty(i.prototype,"size",{get:function(){return this._size},enumerable:!1,configurable:!0}),i.prototype.manage=function(e,t){var r;if(dr.is(e)?r=e:(r=this.nextId(),t=e),this._annotations[r]!==void 0)throw new Error("Id "+r+" is already in use.");if(t===void 0)throw new Error("No annotation provided for id "+r);return this._annotations[r]=t,this._size++,r},i.prototype.nextId=function(){return this._counter++,this._counter.toString()},i}(),fue=function(){function i(e){var t=this;this._textEditChanges=Object.create(null),e!==void 0?(this._workspaceEdit=e,e.documentChanges?(this._changeAnnotations=new wN(e.changeAnnotations),e.changeAnnotations=this._changeAnnotations.all(),e.documentChanges.forEach(function(r){if(bp.is(r)){var n=new yg(r.edits,t._changeAnnotations);t._textEditChanges[r.textDocument.uri]=n}})):e.changes&&Object.keys(e.changes).forEach(function(r){var n=new yg(e.changes[r]);t._textEditChanges[r]=n})):this._workspaceEdit={}}return Object.defineProperty(i.prototype,"edit",{get:function(){return this.initDocumentChanges(),this._changeAnnotations!==void 0&&(this._changeAnnotations.size===0?this._workspaceEdit.changeAnnotations=void 0:this._workspaceEdit.changeAnnotations=this._changeAnnotations.all()),this._workspaceEdit},enumerable:!1,configurable:!0}),i.prototype.getTextEditChange=function(e){if(wp.is(e)){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var t={uri:e.uri,version:e.version},r=this._textEditChanges[t.uri];if(!r){var n=[],o={textDocument:t,edits:n};this._workspaceEdit.documentChanges.push(o),r=new yg(n,this._changeAnnotations),this._textEditChanges[t.uri]=r}return r}else{if(this.initChanges(),this._workspaceEdit.changes===void 0)throw new Error("Workspace edit is not configured for normal text edit changes.");var r=this._textEditChanges[e];if(!r){var n=[];this._workspaceEdit.changes[e]=n,r=new yg(n),this._textEditChanges[e]=r}return r}},i.prototype.initDocumentChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._changeAnnotations=new wN,this._workspaceEdit.documentChanges=[],this._workspaceEdit.changeAnnotations=this._changeAnnotations.all())},i.prototype.initChanges=function(){this._workspaceEdit.documentChanges===void 0&&this._workspaceEdit.changes===void 0&&(this._workspaceEdit.changes=Object.create(null))},i.prototype.createFile=function(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;Ba.is(t)||dr.is(t)?n=t:r=t;var o,s;if(n===void 0?o=Cu.create(e,r):(s=dr.is(n)?n:this._changeAnnotations.manage(n),o=Cu.create(e,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},i.prototype.renameFile=function(e,t,r,n){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var o;Ba.is(r)||dr.is(r)?o=r:n=r;var s,a;if(o===void 0?s=Eu.create(e,t,n):(a=dr.is(o)?o:this._changeAnnotations.manage(o),s=Eu.create(e,t,n,a)),this._workspaceEdit.documentChanges.push(s),a!==void 0)return a},i.prototype.deleteFile=function(e,t,r){if(this.initDocumentChanges(),this._workspaceEdit.documentChanges===void 0)throw new Error("Workspace edit is not configured for document changes.");var n;Ba.is(t)||dr.is(t)?n=t:r=t;var o,s;if(n===void 0?o=_u.create(e,r):(s=dr.is(n)?n:this._changeAnnotations.manage(n),o=_u.create(e,r,s)),this._workspaceEdit.documentChanges.push(o),s!==void 0)return s},i}();(function(i){function e(r){return{uri:r}}i.create=e;function t(r){var n=r;return $.defined(n)&&$.string(n.uri)}i.is=t})(V0||(V0={}));(function(i){function e(r,n){return{uri:r,version:n}}i.create=e;function t(r){var n=r;return $.defined(n)&&$.string(n.uri)&&$.integer(n.version)}i.is=t})(K0||(K0={}));(function(i){function e(r,n){return{uri:r,version:n}}i.create=e;function t(r){var n=r;return $.defined(n)&&$.string(n.uri)&&(n.version===null||$.integer(n.version))}i.is=t})(wp||(wp={}));(function(i){function e(r,n,o,s){return{uri:r,languageId:n,version:o,text:s}}i.create=e;function t(r){var n=r;return $.defined(n)&&$.string(n.uri)&&$.string(n.languageId)&&$.integer(n.version)&&$.string(n.text)}i.is=t})(J0||(J0={}));(function(i){i.PlainText="plaintext",i.Markdown="markdown"})(Tu||(Tu={}));(function(i){function e(t){var r=t;return r===i.PlainText||r===i.Markdown}i.is=e})(Tu||(Tu={}));(function(i){function e(t){var r=t;return $.objectLiteral(t)&&Tu.is(r.kind)&&$.string(r.value)}i.is=e})(bg||(bg={}));(function(i){i.Text=1,i.Method=2,i.Function=3,i.Constructor=4,i.Field=5,i.Variable=6,i.Class=7,i.Interface=8,i.Module=9,i.Property=10,i.Unit=11,i.Value=12,i.Enum=13,i.Keyword=14,i.Snippet=15,i.Color=16,i.File=17,i.Reference=18,i.Folder=19,i.EnumMember=20,i.Constant=21,i.Struct=22,i.Event=23,i.Operator=24,i.TypeParameter=25})(Y0||(Y0={}));(function(i){i.PlainText=1,i.Snippet=2})(X0||(X0={}));(function(i){i.Deprecated=1})(Z0||(Z0={}));(function(i){function e(r,n,o){return{newText:r,insert:n,replace:o}}i.create=e;function t(r){var n=r;return n&&$.string(n.newText)&&Oe.is(n.insert)&&Oe.is(n.replace)}i.is=t})(Q0||(Q0={}));(function(i){i.asIs=1,i.adjustIndentation=2})(eS||(eS={}));(function(i){function e(t){return{label:t}}i.create=e})(tS||(tS={}));(function(i){function e(t,r){return{items:t||[],isIncomplete:!!r}}i.create=e})(rS||(rS={}));(function(i){function e(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}i.fromPlainText=e;function t(r){var n=r;return $.string(n)||$.objectLiteral(n)&&$.string(n.language)&&$.string(n.value)}i.is=t})(Dp||(Dp={}));(function(i){function e(t){var r=t;return!!r&&$.objectLiteral(r)&&(bg.is(r.contents)||Dp.is(r.contents)||$.typedArray(r.contents,Dp.is))&&(t.range===void 0||Oe.is(t.range))}i.is=e})(iS||(iS={}));(function(i){function e(t,r){return r?{label:t,documentation:r}:{label:t}}i.create=e})(nS||(nS={}));(function(i){function e(t,r){for(var n=[],o=2;o=0;c--){var f=l[c],p=o.offsetAt(f.range.start),d=o.offsetAt(f.range.end);if(d<=u)a=a.substring(0,p)+f.newText+a.substring(d,a.length);else throw new Error("Overlapping edit");u=p}return a}i.applyEdits=r;function n(o,s){if(o.length<=1)return o;var a=o.length/2|0,l=o.slice(0,a),u=o.slice(a);n(l,s),n(u,s);for(var c=0,f=0,p=0;c0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},i.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),r=0,n=t.length;if(n===0)return Si.create(0,e);for(;re?n=o:r=o+1}var s=r-1;return Si.create(s,e-t[s])},i.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var r=t[e.line],n=e.line+1{"use strict";Object.defineProperty(Ji,"__esModule",{value:!0});Ji.ProtocolNotificationType=Ji.ProtocolNotificationType0=Ji.ProtocolRequestType=Ji.ProtocolRequestType0=Ji.RegistrationType=void 0;var Pu=$a(),xN=class{constructor(e){this.method=e}};Ji.RegistrationType=xN;var SN=class extends Pu.RequestType0{constructor(e){super(e)}};Ji.ProtocolRequestType0=SN;var CN=class extends Pu.RequestType{constructor(e){super(e,Pu.ParameterStructures.byName)}};Ji.ProtocolRequestType=CN;var EN=class extends Pu.NotificationType0{constructor(e){super(e)}};Ji.ProtocolNotificationType0=EN;var _N=class extends Pu.NotificationType{constructor(e){super(e,Pu.ParameterStructures.byName)}};Ji.ProtocolNotificationType=_N});var RN=y(Ht=>{"use strict";Object.defineProperty(Ht,"__esModule",{value:!0});Ht.objectLiteral=Ht.typedArray=Ht.stringArray=Ht.array=Ht.func=Ht.error=Ht.number=Ht.string=Ht.boolean=void 0;function hue(i){return i===!0||i===!1}Ht.boolean=hue;function TN(i){return typeof i=="string"||i instanceof String}Ht.string=TN;function mue(i){return typeof i=="number"||i instanceof Number}Ht.number=mue;function gue(i){return i instanceof Error}Ht.error=gue;function vue(i){return typeof i=="function"}Ht.func=vue;function PN(i){return Array.isArray(i)}Ht.array=PN;function yue(i){return PN(i)&&i.every(e=>TN(e))}Ht.stringArray=yue;function bue(i,e){return Array.isArray(i)&&i.every(e)}Ht.typedArray=bue;function wue(i){return i!==null&&typeof i=="object"}Ht.objectLiteral=wue});var kN=y(xp=>{"use strict";Object.defineProperty(xp,"__esModule",{value:!0});xp.ImplementationRequest=void 0;var Due=sr(),xue;(function(i){i.method="textDocument/implementation",i.type=new Due.ProtocolRequestType(i.method)})(xue=xp.ImplementationRequest||(xp.ImplementationRequest={}))});var IN=y(Sp=>{"use strict";Object.defineProperty(Sp,"__esModule",{value:!0});Sp.TypeDefinitionRequest=void 0;var Sue=sr(),Cue;(function(i){i.method="textDocument/typeDefinition",i.type=new Sue.ProtocolRequestType(i.method)})(Cue=Sp.TypeDefinitionRequest||(Sp.TypeDefinitionRequest={}))});var ON=y(ws=>{"use strict";Object.defineProperty(ws,"__esModule",{value:!0});ws.DidChangeWorkspaceFoldersNotification=ws.WorkspaceFoldersRequest=void 0;var FN=sr(),Eue;(function(i){i.type=new FN.ProtocolRequestType0("workspace/workspaceFolders")})(Eue=ws.WorkspaceFoldersRequest||(ws.WorkspaceFoldersRequest={}));var _ue;(function(i){i.type=new FN.ProtocolNotificationType("workspace/didChangeWorkspaceFolders")})(_ue=ws.DidChangeWorkspaceFoldersNotification||(ws.DidChangeWorkspaceFoldersNotification={}))});var AN=y(Cp=>{"use strict";Object.defineProperty(Cp,"__esModule",{value:!0});Cp.ConfigurationRequest=void 0;var Tue=sr(),Pue;(function(i){i.type=new Tue.ProtocolRequestType("workspace/configuration")})(Pue=Cp.ConfigurationRequest||(Cp.ConfigurationRequest={}))});var MN=y(Ds=>{"use strict";Object.defineProperty(Ds,"__esModule",{value:!0});Ds.ColorPresentationRequest=Ds.DocumentColorRequest=void 0;var LN=sr(),Rue;(function(i){i.method="textDocument/documentColor",i.type=new LN.ProtocolRequestType(i.method)})(Rue=Ds.DocumentColorRequest||(Ds.DocumentColorRequest={}));var kue;(function(i){i.type=new LN.ProtocolRequestType("textDocument/colorPresentation")})(kue=Ds.ColorPresentationRequest||(Ds.ColorPresentationRequest={}))});var qN=y(xs=>{"use strict";Object.defineProperty(xs,"__esModule",{value:!0});xs.FoldingRangeRequest=xs.FoldingRangeKind=void 0;var Iue=sr(),Fue;(function(i){i.Comment="comment",i.Imports="imports",i.Region="region"})(Fue=xs.FoldingRangeKind||(xs.FoldingRangeKind={}));var Oue;(function(i){i.method="textDocument/foldingRange",i.type=new Iue.ProtocolRequestType(i.method)})(Oue=xs.FoldingRangeRequest||(xs.FoldingRangeRequest={}))});var NN=y(Ep=>{"use strict";Object.defineProperty(Ep,"__esModule",{value:!0});Ep.DeclarationRequest=void 0;var Aue=sr(),Lue;(function(i){i.method="textDocument/declaration",i.type=new Aue.ProtocolRequestType(i.method)})(Lue=Ep.DeclarationRequest||(Ep.DeclarationRequest={}))});var $N=y(_p=>{"use strict";Object.defineProperty(_p,"__esModule",{value:!0});_p.SelectionRangeRequest=void 0;var Mue=sr(),que;(function(i){i.method="textDocument/selectionRange",i.type=new Mue.ProtocolRequestType(i.method)})(que=_p.SelectionRangeRequest||(_p.SelectionRangeRequest={}))});var jN=y(Sn=>{"use strict";Object.defineProperty(Sn,"__esModule",{value:!0});Sn.WorkDoneProgressCancelNotification=Sn.WorkDoneProgressCreateRequest=Sn.WorkDoneProgress=void 0;var Nue=$a(),BN=sr(),$ue;(function(i){i.type=new Nue.ProgressType;function e(t){return t===i.type}i.is=e})($ue=Sn.WorkDoneProgress||(Sn.WorkDoneProgress={}));var Bue;(function(i){i.type=new BN.ProtocolRequestType("window/workDoneProgress/create")})(Bue=Sn.WorkDoneProgressCreateRequest||(Sn.WorkDoneProgressCreateRequest={}));var jue;(function(i){i.type=new BN.ProtocolNotificationType("window/workDoneProgress/cancel")})(jue=Sn.WorkDoneProgressCancelNotification||(Sn.WorkDoneProgressCancelNotification={}))});var UN=y(Cn=>{"use strict";Object.defineProperty(Cn,"__esModule",{value:!0});Cn.CallHierarchyOutgoingCallsRequest=Cn.CallHierarchyIncomingCallsRequest=Cn.CallHierarchyPrepareRequest=void 0;var wS=sr(),Uue;(function(i){i.method="textDocument/prepareCallHierarchy",i.type=new wS.ProtocolRequestType(i.method)})(Uue=Cn.CallHierarchyPrepareRequest||(Cn.CallHierarchyPrepareRequest={}));var Wue;(function(i){i.method="callHierarchy/incomingCalls",i.type=new wS.ProtocolRequestType(i.method)})(Wue=Cn.CallHierarchyIncomingCallsRequest||(Cn.CallHierarchyIncomingCallsRequest={}));var Hue;(function(i){i.method="callHierarchy/outgoingCalls",i.type=new wS.ProtocolRequestType(i.method)})(Hue=Cn.CallHierarchyOutgoingCallsRequest||(Cn.CallHierarchyOutgoingCallsRequest={}))});var WN=y(tt=>{"use strict";Object.defineProperty(tt,"__esModule",{value:!0});tt.SemanticTokensRefreshRequest=tt.SemanticTokensRangeRequest=tt.SemanticTokensDeltaRequest=tt.SemanticTokensRequest=tt.SemanticTokensRegistrationType=tt.TokenFormat=tt.SemanticTokens=tt.SemanticTokenModifiers=tt.SemanticTokenTypes=void 0;var Tp=sr(),zue;(function(i){i.namespace="namespace",i.type="type",i.class="class",i.enum="enum",i.interface="interface",i.struct="struct",i.typeParameter="typeParameter",i.parameter="parameter",i.variable="variable",i.property="property",i.enumMember="enumMember",i.event="event",i.function="function",i.method="method",i.macro="macro",i.keyword="keyword",i.modifier="modifier",i.comment="comment",i.string="string",i.number="number",i.regexp="regexp",i.operator="operator"})(zue=tt.SemanticTokenTypes||(tt.SemanticTokenTypes={}));var Gue;(function(i){i.declaration="declaration",i.definition="definition",i.readonly="readonly",i.static="static",i.deprecated="deprecated",i.abstract="abstract",i.async="async",i.modification="modification",i.documentation="documentation",i.defaultLibrary="defaultLibrary"})(Gue=tt.SemanticTokenModifiers||(tt.SemanticTokenModifiers={}));var Vue;(function(i){function e(t){let r=t;return r!==void 0&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}i.is=e})(Vue=tt.SemanticTokens||(tt.SemanticTokens={}));var Kue;(function(i){i.Relative="relative"})(Kue=tt.TokenFormat||(tt.TokenFormat={}));var Jue;(function(i){i.method="textDocument/semanticTokens",i.type=new Tp.RegistrationType(i.method)})(Jue=tt.SemanticTokensRegistrationType||(tt.SemanticTokensRegistrationType={}));var Yue;(function(i){i.method="textDocument/semanticTokens/full",i.type=new Tp.ProtocolRequestType(i.method)})(Yue=tt.SemanticTokensRequest||(tt.SemanticTokensRequest={}));var Xue;(function(i){i.method="textDocument/semanticTokens/full/delta",i.type=new Tp.ProtocolRequestType(i.method)})(Xue=tt.SemanticTokensDeltaRequest||(tt.SemanticTokensDeltaRequest={}));var Zue;(function(i){i.method="textDocument/semanticTokens/range",i.type=new Tp.ProtocolRequestType(i.method)})(Zue=tt.SemanticTokensRangeRequest||(tt.SemanticTokensRangeRequest={}));var Que;(function(i){i.method="workspace/semanticTokens/refresh",i.type=new Tp.ProtocolRequestType0(i.method)})(Que=tt.SemanticTokensRefreshRequest||(tt.SemanticTokensRefreshRequest={}))});var HN=y(Pp=>{"use strict";Object.defineProperty(Pp,"__esModule",{value:!0});Pp.ShowDocumentRequest=void 0;var ece=sr(),tce;(function(i){i.method="window/showDocument",i.type=new ece.ProtocolRequestType(i.method)})(tce=Pp.ShowDocumentRequest||(Pp.ShowDocumentRequest={}))});var zN=y(Rp=>{"use strict";Object.defineProperty(Rp,"__esModule",{value:!0});Rp.LinkedEditingRangeRequest=void 0;var rce=sr(),ice;(function(i){i.method="textDocument/linkedEditingRange",i.type=new rce.ProtocolRequestType(i.method)})(ice=Rp.LinkedEditingRangeRequest||(Rp.LinkedEditingRangeRequest={}))});var GN=y(St=>{"use strict";Object.defineProperty(St,"__esModule",{value:!0});St.WillDeleteFilesRequest=St.DidDeleteFilesNotification=St.DidRenameFilesNotification=St.WillRenameFilesRequest=St.DidCreateFilesNotification=St.WillCreateFilesRequest=St.FileOperationPatternKind=void 0;var Ru=sr(),nce;(function(i){i.file="file",i.folder="folder"})(nce=St.FileOperationPatternKind||(St.FileOperationPatternKind={}));var oce;(function(i){i.method="workspace/willCreateFiles",i.type=new Ru.ProtocolRequestType(i.method)})(oce=St.WillCreateFilesRequest||(St.WillCreateFilesRequest={}));var sce;(function(i){i.method="workspace/didCreateFiles",i.type=new Ru.ProtocolNotificationType(i.method)})(sce=St.DidCreateFilesNotification||(St.DidCreateFilesNotification={}));var ace;(function(i){i.method="workspace/willRenameFiles",i.type=new Ru.ProtocolRequestType(i.method)})(ace=St.WillRenameFilesRequest||(St.WillRenameFilesRequest={}));var lce;(function(i){i.method="workspace/didRenameFiles",i.type=new Ru.ProtocolNotificationType(i.method)})(lce=St.DidRenameFilesNotification||(St.DidRenameFilesNotification={}));var uce;(function(i){i.method="workspace/didDeleteFiles",i.type=new Ru.ProtocolNotificationType(i.method)})(uce=St.DidDeleteFilesNotification||(St.DidDeleteFilesNotification={}));var cce;(function(i){i.method="workspace/willDeleteFiles",i.type=new Ru.ProtocolRequestType(i.method)})(cce=St.WillDeleteFilesRequest||(St.WillDeleteFilesRequest={}))});var VN=y(En=>{"use strict";Object.defineProperty(En,"__esModule",{value:!0});En.MonikerRequest=En.MonikerKind=En.UniquenessLevel=void 0;var fce=sr(),pce;(function(i){i.document="document",i.project="project",i.group="group",i.scheme="scheme",i.global="global"})(pce=En.UniquenessLevel||(En.UniquenessLevel={}));var dce;(function(i){i.import="import",i.export="export",i.local="local"})(dce=En.MonikerKind||(En.MonikerKind={}));var hce;(function(i){i.method="textDocument/moniker",i.type=new fce.ProtocolRequestType(i.method)})(hce=En.MonikerRequest||(En.MonikerRequest={}))});var ZN=y(_=>{"use strict";Object.defineProperty(_,"__esModule",{value:!0});_.DocumentLinkRequest=_.CodeLensRefreshRequest=_.CodeLensResolveRequest=_.CodeLensRequest=_.WorkspaceSymbolRequest=_.CodeActionResolveRequest=_.CodeActionRequest=_.DocumentSymbolRequest=_.DocumentHighlightRequest=_.ReferencesRequest=_.DefinitionRequest=_.SignatureHelpRequest=_.SignatureHelpTriggerKind=_.HoverRequest=_.CompletionResolveRequest=_.CompletionRequest=_.CompletionTriggerKind=_.PublishDiagnosticsNotification=_.WatchKind=_.FileChangeType=_.DidChangeWatchedFilesNotification=_.WillSaveTextDocumentWaitUntilRequest=_.WillSaveTextDocumentNotification=_.TextDocumentSaveReason=_.DidSaveTextDocumentNotification=_.DidCloseTextDocumentNotification=_.DidChangeTextDocumentNotification=_.TextDocumentContentChangeEvent=_.DidOpenTextDocumentNotification=_.TextDocumentSyncKind=_.TelemetryEventNotification=_.LogMessageNotification=_.ShowMessageRequest=_.ShowMessageNotification=_.MessageType=_.DidChangeConfigurationNotification=_.ExitNotification=_.ShutdownRequest=_.InitializedNotification=_.InitializeError=_.InitializeRequest=_.WorkDoneProgressOptions=_.TextDocumentRegistrationOptions=_.StaticRegistrationOptions=_.FailureHandlingKind=_.ResourceOperationKind=_.UnregistrationRequest=_.RegistrationRequest=_.DocumentSelector=_.DocumentFilter=void 0;_.MonikerRequest=_.MonikerKind=_.UniquenessLevel=_.WillDeleteFilesRequest=_.DidDeleteFilesNotification=_.WillRenameFilesRequest=_.DidRenameFilesNotification=_.WillCreateFilesRequest=_.DidCreateFilesNotification=_.FileOperationPatternKind=_.LinkedEditingRangeRequest=_.ShowDocumentRequest=_.SemanticTokensRegistrationType=_.SemanticTokensRefreshRequest=_.SemanticTokensRangeRequest=_.SemanticTokensDeltaRequest=_.SemanticTokensRequest=_.TokenFormat=_.SemanticTokens=_.SemanticTokenModifiers=_.SemanticTokenTypes=_.CallHierarchyPrepareRequest=_.CallHierarchyOutgoingCallsRequest=_.CallHierarchyIncomingCallsRequest=_.WorkDoneProgressCancelNotification=_.WorkDoneProgressCreateRequest=_.WorkDoneProgress=_.SelectionRangeRequest=_.DeclarationRequest=_.FoldingRangeRequest=_.ColorPresentationRequest=_.DocumentColorRequest=_.ConfigurationRequest=_.DidChangeWorkspaceFoldersNotification=_.WorkspaceFoldersRequest=_.TypeDefinitionRequest=_.ImplementationRequest=_.ApplyWorkspaceEditRequest=_.ExecuteCommandRequest=_.PrepareRenameRequest=_.RenameRequest=_.PrepareSupportDefaultBehavior=_.DocumentOnTypeFormattingRequest=_.DocumentRangeFormattingRequest=_.DocumentFormattingRequest=_.DocumentLinkResolveRequest=void 0;var Ss=RN(),De=sr(),mce=kN();Object.defineProperty(_,"ImplementationRequest",{enumerable:!0,get:function(){return mce.ImplementationRequest}});var gce=IN();Object.defineProperty(_,"TypeDefinitionRequest",{enumerable:!0,get:function(){return gce.TypeDefinitionRequest}});var KN=ON();Object.defineProperty(_,"WorkspaceFoldersRequest",{enumerable:!0,get:function(){return KN.WorkspaceFoldersRequest}});Object.defineProperty(_,"DidChangeWorkspaceFoldersNotification",{enumerable:!0,get:function(){return KN.DidChangeWorkspaceFoldersNotification}});var vce=AN();Object.defineProperty(_,"ConfigurationRequest",{enumerable:!0,get:function(){return vce.ConfigurationRequest}});var JN=MN();Object.defineProperty(_,"DocumentColorRequest",{enumerable:!0,get:function(){return JN.DocumentColorRequest}});Object.defineProperty(_,"ColorPresentationRequest",{enumerable:!0,get:function(){return JN.ColorPresentationRequest}});var yce=qN();Object.defineProperty(_,"FoldingRangeRequest",{enumerable:!0,get:function(){return yce.FoldingRangeRequest}});var bce=NN();Object.defineProperty(_,"DeclarationRequest",{enumerable:!0,get:function(){return bce.DeclarationRequest}});var wce=$N();Object.defineProperty(_,"SelectionRangeRequest",{enumerable:!0,get:function(){return wce.SelectionRangeRequest}});var DS=jN();Object.defineProperty(_,"WorkDoneProgress",{enumerable:!0,get:function(){return DS.WorkDoneProgress}});Object.defineProperty(_,"WorkDoneProgressCreateRequest",{enumerable:!0,get:function(){return DS.WorkDoneProgressCreateRequest}});Object.defineProperty(_,"WorkDoneProgressCancelNotification",{enumerable:!0,get:function(){return DS.WorkDoneProgressCancelNotification}});var xS=UN();Object.defineProperty(_,"CallHierarchyIncomingCallsRequest",{enumerable:!0,get:function(){return xS.CallHierarchyIncomingCallsRequest}});Object.defineProperty(_,"CallHierarchyOutgoingCallsRequest",{enumerable:!0,get:function(){return xS.CallHierarchyOutgoingCallsRequest}});Object.defineProperty(_,"CallHierarchyPrepareRequest",{enumerable:!0,get:function(){return xS.CallHierarchyPrepareRequest}});var ko=WN();Object.defineProperty(_,"SemanticTokenTypes",{enumerable:!0,get:function(){return ko.SemanticTokenTypes}});Object.defineProperty(_,"SemanticTokenModifiers",{enumerable:!0,get:function(){return ko.SemanticTokenModifiers}});Object.defineProperty(_,"SemanticTokens",{enumerable:!0,get:function(){return ko.SemanticTokens}});Object.defineProperty(_,"TokenFormat",{enumerable:!0,get:function(){return ko.TokenFormat}});Object.defineProperty(_,"SemanticTokensRequest",{enumerable:!0,get:function(){return ko.SemanticTokensRequest}});Object.defineProperty(_,"SemanticTokensDeltaRequest",{enumerable:!0,get:function(){return ko.SemanticTokensDeltaRequest}});Object.defineProperty(_,"SemanticTokensRangeRequest",{enumerable:!0,get:function(){return ko.SemanticTokensRangeRequest}});Object.defineProperty(_,"SemanticTokensRefreshRequest",{enumerable:!0,get:function(){return ko.SemanticTokensRefreshRequest}});Object.defineProperty(_,"SemanticTokensRegistrationType",{enumerable:!0,get:function(){return ko.SemanticTokensRegistrationType}});var Dce=HN();Object.defineProperty(_,"ShowDocumentRequest",{enumerable:!0,get:function(){return Dce.ShowDocumentRequest}});var xce=zN();Object.defineProperty(_,"LinkedEditingRangeRequest",{enumerable:!0,get:function(){return xce.LinkedEditingRangeRequest}});var ja=GN();Object.defineProperty(_,"FileOperationPatternKind",{enumerable:!0,get:function(){return ja.FileOperationPatternKind}});Object.defineProperty(_,"DidCreateFilesNotification",{enumerable:!0,get:function(){return ja.DidCreateFilesNotification}});Object.defineProperty(_,"WillCreateFilesRequest",{enumerable:!0,get:function(){return ja.WillCreateFilesRequest}});Object.defineProperty(_,"DidRenameFilesNotification",{enumerable:!0,get:function(){return ja.DidRenameFilesNotification}});Object.defineProperty(_,"WillRenameFilesRequest",{enumerable:!0,get:function(){return ja.WillRenameFilesRequest}});Object.defineProperty(_,"DidDeleteFilesNotification",{enumerable:!0,get:function(){return ja.DidDeleteFilesNotification}});Object.defineProperty(_,"WillDeleteFilesRequest",{enumerable:!0,get:function(){return ja.WillDeleteFilesRequest}});var SS=VN();Object.defineProperty(_,"UniquenessLevel",{enumerable:!0,get:function(){return SS.UniquenessLevel}});Object.defineProperty(_,"MonikerKind",{enumerable:!0,get:function(){return SS.MonikerKind}});Object.defineProperty(_,"MonikerRequest",{enumerable:!0,get:function(){return SS.MonikerRequest}});var YN;(function(i){function e(t){let r=t;return Ss.string(r.language)||Ss.string(r.scheme)||Ss.string(r.pattern)}i.is=e})(YN=_.DocumentFilter||(_.DocumentFilter={}));var XN;(function(i){function e(t){if(!Array.isArray(t))return!1;for(let r of t)if(!Ss.string(r)&&!YN.is(r))return!1;return!0}i.is=e})(XN=_.DocumentSelector||(_.DocumentSelector={}));var Sce;(function(i){i.type=new De.ProtocolRequestType("client/registerCapability")})(Sce=_.RegistrationRequest||(_.RegistrationRequest={}));var Cce;(function(i){i.type=new De.ProtocolRequestType("client/unregisterCapability")})(Cce=_.UnregistrationRequest||(_.UnregistrationRequest={}));var Ece;(function(i){i.Create="create",i.Rename="rename",i.Delete="delete"})(Ece=_.ResourceOperationKind||(_.ResourceOperationKind={}));var _ce;(function(i){i.Abort="abort",i.Transactional="transactional",i.TextOnlyTransactional="textOnlyTransactional",i.Undo="undo"})(_ce=_.FailureHandlingKind||(_.FailureHandlingKind={}));var Tce;(function(i){function e(t){let r=t;return r&&Ss.string(r.id)&&r.id.length>0}i.hasId=e})(Tce=_.StaticRegistrationOptions||(_.StaticRegistrationOptions={}));var Pce;(function(i){function e(t){let r=t;return r&&(r.documentSelector===null||XN.is(r.documentSelector))}i.is=e})(Pce=_.TextDocumentRegistrationOptions||(_.TextDocumentRegistrationOptions={}));var Rce;(function(i){function e(r){let n=r;return Ss.objectLiteral(n)&&(n.workDoneProgress===void 0||Ss.boolean(n.workDoneProgress))}i.is=e;function t(r){let n=r;return n&&Ss.boolean(n.workDoneProgress)}i.hasWorkDoneProgress=t})(Rce=_.WorkDoneProgressOptions||(_.WorkDoneProgressOptions={}));var kce;(function(i){i.type=new De.ProtocolRequestType("initialize")})(kce=_.InitializeRequest||(_.InitializeRequest={}));var Ice;(function(i){i.unknownProtocolVersion=1})(Ice=_.InitializeError||(_.InitializeError={}));var Fce;(function(i){i.type=new De.ProtocolNotificationType("initialized")})(Fce=_.InitializedNotification||(_.InitializedNotification={}));var Oce;(function(i){i.type=new De.ProtocolRequestType0("shutdown")})(Oce=_.ShutdownRequest||(_.ShutdownRequest={}));var Ace;(function(i){i.type=new De.ProtocolNotificationType0("exit")})(Ace=_.ExitNotification||(_.ExitNotification={}));var Lce;(function(i){i.type=new De.ProtocolNotificationType("workspace/didChangeConfiguration")})(Lce=_.DidChangeConfigurationNotification||(_.DidChangeConfigurationNotification={}));var Mce;(function(i){i.Error=1,i.Warning=2,i.Info=3,i.Log=4})(Mce=_.MessageType||(_.MessageType={}));var qce;(function(i){i.type=new De.ProtocolNotificationType("window/showMessage")})(qce=_.ShowMessageNotification||(_.ShowMessageNotification={}));var Nce;(function(i){i.type=new De.ProtocolRequestType("window/showMessageRequest")})(Nce=_.ShowMessageRequest||(_.ShowMessageRequest={}));var $ce;(function(i){i.type=new De.ProtocolNotificationType("window/logMessage")})($ce=_.LogMessageNotification||(_.LogMessageNotification={}));var Bce;(function(i){i.type=new De.ProtocolNotificationType("telemetry/event")})(Bce=_.TelemetryEventNotification||(_.TelemetryEventNotification={}));var jce;(function(i){i.None=0,i.Full=1,i.Incremental=2})(jce=_.TextDocumentSyncKind||(_.TextDocumentSyncKind={}));var Uce;(function(i){i.method="textDocument/didOpen",i.type=new De.ProtocolNotificationType(i.method)})(Uce=_.DidOpenTextDocumentNotification||(_.DidOpenTextDocumentNotification={}));var Wce;(function(i){function e(r){let n=r;return n!=null&&typeof n.text=="string"&&n.range!==void 0&&(n.rangeLength===void 0||typeof n.rangeLength=="number")}i.isIncremental=e;function t(r){let n=r;return n!=null&&typeof n.text=="string"&&n.range===void 0&&n.rangeLength===void 0}i.isFull=t})(Wce=_.TextDocumentContentChangeEvent||(_.TextDocumentContentChangeEvent={}));var Hce;(function(i){i.method="textDocument/didChange",i.type=new De.ProtocolNotificationType(i.method)})(Hce=_.DidChangeTextDocumentNotification||(_.DidChangeTextDocumentNotification={}));var zce;(function(i){i.method="textDocument/didClose",i.type=new De.ProtocolNotificationType(i.method)})(zce=_.DidCloseTextDocumentNotification||(_.DidCloseTextDocumentNotification={}));var Gce;(function(i){i.method="textDocument/didSave",i.type=new De.ProtocolNotificationType(i.method)})(Gce=_.DidSaveTextDocumentNotification||(_.DidSaveTextDocumentNotification={}));var Vce;(function(i){i.Manual=1,i.AfterDelay=2,i.FocusOut=3})(Vce=_.TextDocumentSaveReason||(_.TextDocumentSaveReason={}));var Kce;(function(i){i.method="textDocument/willSave",i.type=new De.ProtocolNotificationType(i.method)})(Kce=_.WillSaveTextDocumentNotification||(_.WillSaveTextDocumentNotification={}));var Jce;(function(i){i.method="textDocument/willSaveWaitUntil",i.type=new De.ProtocolRequestType(i.method)})(Jce=_.WillSaveTextDocumentWaitUntilRequest||(_.WillSaveTextDocumentWaitUntilRequest={}));var Yce;(function(i){i.type=new De.ProtocolNotificationType("workspace/didChangeWatchedFiles")})(Yce=_.DidChangeWatchedFilesNotification||(_.DidChangeWatchedFilesNotification={}));var Xce;(function(i){i.Created=1,i.Changed=2,i.Deleted=3})(Xce=_.FileChangeType||(_.FileChangeType={}));var Zce;(function(i){i.Create=1,i.Change=2,i.Delete=4})(Zce=_.WatchKind||(_.WatchKind={}));var Qce;(function(i){i.type=new De.ProtocolNotificationType("textDocument/publishDiagnostics")})(Qce=_.PublishDiagnosticsNotification||(_.PublishDiagnosticsNotification={}));var efe;(function(i){i.Invoked=1,i.TriggerCharacter=2,i.TriggerForIncompleteCompletions=3})(efe=_.CompletionTriggerKind||(_.CompletionTriggerKind={}));var tfe;(function(i){i.method="textDocument/completion",i.type=new De.ProtocolRequestType(i.method)})(tfe=_.CompletionRequest||(_.CompletionRequest={}));var rfe;(function(i){i.method="completionItem/resolve",i.type=new De.ProtocolRequestType(i.method)})(rfe=_.CompletionResolveRequest||(_.CompletionResolveRequest={}));var ife;(function(i){i.method="textDocument/hover",i.type=new De.ProtocolRequestType(i.method)})(ife=_.HoverRequest||(_.HoverRequest={}));var nfe;(function(i){i.Invoked=1,i.TriggerCharacter=2,i.ContentChange=3})(nfe=_.SignatureHelpTriggerKind||(_.SignatureHelpTriggerKind={}));var ofe;(function(i){i.method="textDocument/signatureHelp",i.type=new De.ProtocolRequestType(i.method)})(ofe=_.SignatureHelpRequest||(_.SignatureHelpRequest={}));var sfe;(function(i){i.method="textDocument/definition",i.type=new De.ProtocolRequestType(i.method)})(sfe=_.DefinitionRequest||(_.DefinitionRequest={}));var afe;(function(i){i.method="textDocument/references",i.type=new De.ProtocolRequestType(i.method)})(afe=_.ReferencesRequest||(_.ReferencesRequest={}));var lfe;(function(i){i.method="textDocument/documentHighlight",i.type=new De.ProtocolRequestType(i.method)})(lfe=_.DocumentHighlightRequest||(_.DocumentHighlightRequest={}));var ufe;(function(i){i.method="textDocument/documentSymbol",i.type=new De.ProtocolRequestType(i.method)})(ufe=_.DocumentSymbolRequest||(_.DocumentSymbolRequest={}));var cfe;(function(i){i.method="textDocument/codeAction",i.type=new De.ProtocolRequestType(i.method)})(cfe=_.CodeActionRequest||(_.CodeActionRequest={}));var ffe;(function(i){i.method="codeAction/resolve",i.type=new De.ProtocolRequestType(i.method)})(ffe=_.CodeActionResolveRequest||(_.CodeActionResolveRequest={}));var pfe;(function(i){i.method="workspace/symbol",i.type=new De.ProtocolRequestType(i.method)})(pfe=_.WorkspaceSymbolRequest||(_.WorkspaceSymbolRequest={}));var dfe;(function(i){i.method="textDocument/codeLens",i.type=new De.ProtocolRequestType(i.method)})(dfe=_.CodeLensRequest||(_.CodeLensRequest={}));var hfe;(function(i){i.method="codeLens/resolve",i.type=new De.ProtocolRequestType(i.method)})(hfe=_.CodeLensResolveRequest||(_.CodeLensResolveRequest={}));var mfe;(function(i){i.method="workspace/codeLens/refresh",i.type=new De.ProtocolRequestType0(i.method)})(mfe=_.CodeLensRefreshRequest||(_.CodeLensRefreshRequest={}));var gfe;(function(i){i.method="textDocument/documentLink",i.type=new De.ProtocolRequestType(i.method)})(gfe=_.DocumentLinkRequest||(_.DocumentLinkRequest={}));var vfe;(function(i){i.method="documentLink/resolve",i.type=new De.ProtocolRequestType(i.method)})(vfe=_.DocumentLinkResolveRequest||(_.DocumentLinkResolveRequest={}));var yfe;(function(i){i.method="textDocument/formatting",i.type=new De.ProtocolRequestType(i.method)})(yfe=_.DocumentFormattingRequest||(_.DocumentFormattingRequest={}));var bfe;(function(i){i.method="textDocument/rangeFormatting",i.type=new De.ProtocolRequestType(i.method)})(bfe=_.DocumentRangeFormattingRequest||(_.DocumentRangeFormattingRequest={}));var wfe;(function(i){i.method="textDocument/onTypeFormatting",i.type=new De.ProtocolRequestType(i.method)})(wfe=_.DocumentOnTypeFormattingRequest||(_.DocumentOnTypeFormattingRequest={}));var Dfe;(function(i){i.Identifier=1})(Dfe=_.PrepareSupportDefaultBehavior||(_.PrepareSupportDefaultBehavior={}));var xfe;(function(i){i.method="textDocument/rename",i.type=new De.ProtocolRequestType(i.method)})(xfe=_.RenameRequest||(_.RenameRequest={}));var Sfe;(function(i){i.method="textDocument/prepareRename",i.type=new De.ProtocolRequestType(i.method)})(Sfe=_.PrepareRenameRequest||(_.PrepareRenameRequest={}));var Cfe;(function(i){i.type=new De.ProtocolRequestType("workspace/executeCommand")})(Cfe=_.ExecuteCommandRequest||(_.ExecuteCommandRequest={}));var Efe;(function(i){i.type=new De.ProtocolRequestType("workspace/applyEdit")})(Efe=_.ApplyWorkspaceEditRequest||(_.ApplyWorkspaceEditRequest={}))});var e2=y(wg=>{"use strict";Object.defineProperty(wg,"__esModule",{value:!0});wg.createProtocolConnection=void 0;var QN=$a();function _fe(i,e,t,r){return QN.ConnectionStrategy.is(r)&&(r={connectionStrategy:r}),QN.createMessageConnection(i,e,t,r)}wg.createProtocolConnection=_fe});var t2=y(Hr=>{"use strict";var Tfe=Hr&&Hr.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t),Object.defineProperty(i,r,{enumerable:!0,get:function(){return e[t]}})}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),Dg=Hr&&Hr.__exportStar||function(i,e){for(var t in i)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&Tfe(e,i,t)};Object.defineProperty(Hr,"__esModule",{value:!0});Hr.LSPErrorCodes=Hr.createProtocolConnection=void 0;Dg($a(),Hr);Dg((Ro(),DN),Hr);Dg(sr(),Hr);Dg(ZN(),Hr);var Pfe=e2();Object.defineProperty(Hr,"createProtocolConnection",{enumerable:!0,get:function(){return Pfe.createProtocolConnection}});var Rfe;(function(i){i.lspReservedErrorRangeStart=-32899,i.ContentModified=-32801,i.RequestCancelled=-32800,i.lspReservedErrorRangeEnd=-32800})(Rfe=Hr.LSPErrorCodes||(Hr.LSPErrorCodes={}))});var G=y(Vn=>{"use strict";var kfe=Vn&&Vn.__createBinding||(Object.create?function(i,e,t,r){r===void 0&&(r=t),Object.defineProperty(i,r,{enumerable:!0,get:function(){return e[t]}})}:function(i,e,t,r){r===void 0&&(r=t),i[r]=e[t]}),r2=Vn&&Vn.__exportStar||function(i,e){for(var t in i)t!=="default"&&!Object.prototype.hasOwnProperty.call(e,t)&&kfe(e,i,t)};Object.defineProperty(Vn,"__esModule",{value:!0});Vn.createProtocolConnection=void 0;var Ife=q0();r2(q0(),Vn);r2(t2(),Vn);function Ffe(i,e,t,r){return Ife.createMessageConnection(i,e,t,r)}Vn.createProtocolConnection=Ffe});var zr=y((cke,i2)=>{function CS(i,e,t){var r,n,o,s,a;e==null&&(e=100);function l(){var c=Date.now()-s;c=0?r=setTimeout(l,e-c):(r=null,t||(a=i.apply(o,n),o=n=null))}var u=function(){o=this,n=arguments,s=Date.now();var c=t&&!r;return r||(r=setTimeout(l,e)),c&&(a=i.apply(o,n),o=n=null),a};return u.clear=function(){r&&(clearTimeout(r),r=null)},u.flush=function(){r&&(a=i.apply(o,n),o=n=null,clearTimeout(r),r=null)},u}CS.debounce=CS;i2.exports=CS});var o2=y((fke,n2)=>{"use strict";var Ot={rfc3986:{}};Ot.generate=function(){var i="|",e="0-9",t="["+e+"]",r="a-zA-Z",n="["+r+"]";Ot.rfc3986.cidr=t+i+"[1-2]"+t+i+"3[0-2]";var o=e+"A-Fa-f",s="["+o+"]",a=r+e+"-\\._~",l="!\\$&'\\(\\)\\*\\+,;=",u="%"+o,c=a+u+l+":@",f="["+c+"]",p="0?",d="(?:"+p+p+t+i+p+"[1-9]"+t+i+"1"+t+t+i+"2[0-4]"+t+i+"25[0-5])";Ot.rfc3986.IPv4address="(?:"+d+"\\.){3}"+d;var h=s+"{1,4}",m="(?:"+h+":"+h+"|"+Ot.rfc3986.IPv4address+")",w="(?:"+h+":){6}"+m,v="::(?:"+h+":){5}"+m,D="(?:"+h+")?::(?:"+h+":){4}"+m,x="(?:(?:"+h+":){0,1}"+h+")?::(?:"+h+":){3}"+m,S="(?:(?:"+h+":){0,2}"+h+")?::(?:"+h+":){2}"+m,P="(?:(?:"+h+":){0,3}"+h+")?::"+h+":"+m,A="(?:(?:"+h+":){0,4}"+h+")?::"+m,R="(?:(?:"+h+":){0,5}"+h+")?::"+h,M="(?:(?:"+h+":){0,6}"+h+")?::";Ot.rfc3986.IPv6address="(?:"+w+i+v+i+D+i+x+i+S+i+P+i+A+i+R+i+M+")",Ot.rfc3986.IPvFuture="v"+s+"+\\.["+a+l+":]+",Ot.rfc3986.scheme=n+"["+r+e+"+-\\.]*";var L="["+a+u+l+":]*";Ot.rfc3986.IPLiteral="\\[(?:"+Ot.rfc3986.IPv6address+i+Ot.rfc3986.IPvFuture+")\\]";var q="["+a+u+l+"]{0,255}",F="(?:"+Ot.rfc3986.IPLiteral+i+Ot.rfc3986.IPv4address+i+q+")",O=t+"*",U="(?:"+L+"@)?"+F+"(?::"+O+")?",X=f+"*",de=f+"+",Ae="(?:\\/"+X+")*",yt="\\/(?:"+de+Ae+")?",wr=de+Ae;Ot.rfc3986.hierPart="(?:(?:\\/\\/"+U+Ae+")"+i+yt+i+wr+")",Ot.rfc3986.query="["+c+"\\/\\?]*(?=#|$)",Ot.rfc3986.fragment="["+c+"\\/\\?]*",Ot.rfc3986.uri="^(?:"+Ot.rfc3986.scheme+":"+Ot.rfc3986.hierPart+")(?:\\?"+Ot.rfc3986.query+")?(?:#"+Ot.rfc3986.fragment+")?$"};Ot.generate();n2.exports=Ot.rfc3986});var ES=y((pke,s2)=>{"use strict";var kp=o2();function Ofe(i){return i.replace(/[\^\$\.\*\+\-\?\=\!\:\|\\\/\(\)\[\]\{\}\,]/g,"\\$&")}var Ip={Uri:{createUriRegex:function(i){if(i=i||{},typeof i!="object"||Array.isArray(i))throw new Error("options must be an object");var e="";if(i.scheme){if(Array.isArray(i.scheme)||(i.scheme=[i.scheme]),i.scheme.length<=0)throw new Error("scheme must have at least 1 scheme specified");for(var t=0;t=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||o===45||o===46||o===95||o===126||e&&o===47)r!==-1&&(t+=encodeURIComponent(i.substring(r,n)),r=-1),t!==void 0&&(t+=i.charAt(n));else{t===void 0&&(t=i.substr(0,n));var s=u2[o];s!==void 0?(r!==-1&&(t+=encodeURIComponent(i.substring(r,n)),r=-1),t+=s):r===-1&&(r=n)}}return r!==-1&&(t+=encodeURIComponent(i.substring(r))),t!==void 0?t:i}function Ufe(i){for(var e=void 0,t=0;t1&&i.scheme==="file"?t="//"+i.authority+i.path:i.path.charCodeAt(0)===47&&(i.path.charCodeAt(1)>=65&&i.path.charCodeAt(1)<=90||i.path.charCodeAt(1)>=97&&i.path.charCodeAt(1)<=122)&&i.path.charCodeAt(2)===58?e?t=i.path.substr(1):t=i.path[1].toLowerCase()+i.path.substr(2):t=i.path,Fp&&(t=t.replace(/\//g,"\\")),t}function _S(i,e){var t=e?Ufe:c2,r="",n=i.scheme,o=i.authority,s=i.path,a=i.query,l=i.fragment;if(n&&(r+=n,r+=":"),(o||n==="file")&&(r+=_n,r+=_n),o){var u=o.indexOf("@");if(u!==-1){var c=o.substr(0,u);o=o.substr(u+1),u=c.indexOf(":"),u===-1?r+=t(c,!1):(r+=t(c.substr(0,u),!1),r+=":",r+=t(c.substr(u+1),!1)),r+="@"}o=o.toLowerCase(),u=o.indexOf(":"),u===-1?r+=t(o,!1):(r+=t(o.substr(0,u),!1),r+=o.substr(u))}if(s){if(s.length>=3&&s.charCodeAt(0)===47&&s.charCodeAt(2)===58){var f=s.charCodeAt(1);f>=65&&f<=90&&(s="/"+String.fromCharCode(f+32)+":"+s.substr(3))}else if(s.length>=2&&s.charCodeAt(1)===58){var f=s.charCodeAt(0);f>=65&&f<=90&&(s=String.fromCharCode(f+32)+":"+s.substr(2))}r+=t(s,!0)}return a&&(r+="?",r+=t(a,!1)),l&&(r+="#",r+=e?l:c2(l,!1)),r}function p2(i){try{return decodeURIComponent(i)}catch(e){return i.length>3?i.substr(0,3)+p2(i.substr(3)):i}}function xg(i){return i.match(d2)?i.replace(d2,function(e){return p2(e)}):i}var Afe,Mt,Fp,a2,Lfe,Mfe,qfe,lt,_n,jfe,j,l2,ku,u2,d2,Ze=I(()=>{"use strict";Afe=function(){var i=function(e,t){return i=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,n){r.__proto__=n}||function(r,n){for(var o in n)n.hasOwnProperty(o)&&(r[o]=n[o])},i(e,t)};return function(e,t){i(e,t);function r(){this.constructor=e}e.prototype=t===null?Object.create(t):(r.prototype=t.prototype,new r)}}();typeof process=="object"?Fp=process.platform==="win32":typeof navigator=="object"&&(a2=navigator.userAgent,Fp=a2.indexOf("Windows")>=0);Lfe=/^\w[\w\d+.-]*$/,Mfe=/^\//,qfe=/^\/\//;lt="",_n="/",jfe=/^(([^:/?#]+?):)?(\/\/([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?/,j=function(){function i(e,t,r,n,o,s){s===void 0&&(s=!1),typeof e=="object"?(this.scheme=e.scheme||lt,this.authority=e.authority||lt,this.path=e.path||lt,this.query=e.query||lt,this.fragment=e.fragment||lt):(this.scheme=$fe(e,s),this.authority=t||lt,this.path=Bfe(this.scheme,r||lt),this.query=n||lt,this.fragment=o||lt,Nfe(this,s))}return i.isUri=function(e){return e instanceof i?!0:e?typeof e.authority=="string"&&typeof e.fragment=="string"&&typeof e.path=="string"&&typeof e.query=="string"&&typeof e.scheme=="string"&&typeof e.fsPath=="function"&&typeof e.with=="function"&&typeof e.toString=="function":!1},Object.defineProperty(i.prototype,"fsPath",{get:function(){return f2(this,!1)},enumerable:!0,configurable:!0}),i.prototype.with=function(e){if(!e)return this;var t=e.scheme,r=e.authority,n=e.path,o=e.query,s=e.fragment;return t===void 0?t=this.scheme:t===null&&(t=lt),r===void 0?r=this.authority:r===null&&(r=lt),n===void 0?n=this.path:n===null&&(n=lt),o===void 0?o=this.query:o===null&&(o=lt),s===void 0?s=this.fragment:s===null&&(s=lt),t===this.scheme&&r===this.authority&&n===this.path&&o===this.query&&s===this.fragment?this:new ku(t,r,n,o,s)},i.parse=function(e,t){t===void 0&&(t=!1);var r=jfe.exec(e);return r?new ku(r[2]||lt,xg(r[4]||lt),xg(r[5]||lt),xg(r[7]||lt),xg(r[9]||lt),t):new ku(lt,lt,lt,lt,lt)},i.file=function(e){var t=lt;if(Fp&&(e=e.replace(/\\/g,_n)),e[0]===_n&&e[1]===_n){var r=e.indexOf(_n,2);r===-1?(t=e.substring(2),e=_n):(t=e.substring(2,r),e=e.substring(r)||_n)}return new ku("file",t,e,lt,lt)},i.from=function(e){return new ku(e.scheme,e.authority,e.path,e.query,e.fragment)},i.prototype.toString=function(e){return e===void 0&&(e=!1),_S(this,e)},i.prototype.toJSON=function(){return this},i.revive=function(e){if(e){if(e instanceof i)return e;var t=new ku(e);return t._formatted=e.external,t._fsPath=e._sep===l2?e.fsPath:null,t}else return e},i}(),l2=Fp?1:void 0,ku=function(i){Afe(e,i);function e(){var t=i!==null&&i.apply(this,arguments)||this;return t._formatted=null,t._fsPath=null,t}return Object.defineProperty(e.prototype,"fsPath",{get:function(){return this._fsPath||(this._fsPath=f2(this,!1)),this._fsPath},enumerable:!0,configurable:!0}),e.prototype.toString=function(t){return t===void 0&&(t=!1),t?_S(this,!0):(this._formatted||(this._formatted=_S(this,!1)),this._formatted)},e.prototype.toJSON=function(){var t={$mid:1};return this._fsPath&&(t.fsPath=this._fsPath,t._sep=l2),this._formatted&&(t.external=this._formatted),this.path&&(t.path=this.path),this.scheme&&(t.scheme=this.scheme),this.authority&&(t.authority=this.authority),this.query&&(t.query=this.query),this.fragment&&(t.fragment=this.fragment),t},e}(j),u2=(Mt={},Mt[58]="%3A",Mt[47]="%2F",Mt[63]="%3F",Mt[35]="%23",Mt[91]="%5B",Mt[93]="%5D",Mt[64]="%40",Mt[33]="%21",Mt[36]="%24",Mt[38]="%26",Mt[39]="%27",Mt[40]="%28",Mt[41]="%29",Mt[42]="%2A",Mt[43]="%2B",Mt[44]="%2C",Mt[59]="%3B",Mt[61]="%3D",Mt[32]="%20",Mt);d2=/(%[0-9A-Za-z][0-9A-Za-z])+/g});var y2=y((hke,v2)=>{v2.exports=g2;g2.sync=Hfe;var h2=require("fs");function Wfe(i,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var r=0;r{x2.exports=w2;w2.sync=zfe;var b2=require("fs");function w2(i,e,t){b2.stat(i,function(r,n){t(r,r?!1:D2(n,e))})}function zfe(i,e){return D2(b2.statSync(i),e)}function D2(i,e){return i.isFile()&&Gfe(i,e)}function Gfe(i,e){var t=i.mode,r=i.uid,n=i.gid,o=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),s=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),u=parseInt("001",8),c=a|l,f=t&u||t&l&&n===s||t&a&&r===o||t&c&&o===0;return f}});var E2=y((vke,C2)=>{var gke=require("fs"),Sg;process.platform==="win32"||global.TESTING_WINDOWS?Sg=y2():Sg=S2();C2.exports=TS;TS.sync=Vfe;function TS(i,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(r,n){TS(i,e||{},function(o,s){o?n(o):r(s)})})}Sg(i,e||{},function(r,n){r&&(r.code==="EACCES"||e&&e.ignoreErrors)&&(r=null,n=!1),t(r,n)})}function Vfe(i,e){try{return Sg.sync(i,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var Op=y((yke,I2)=>{var Iu=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",_2=require("path"),Kfe=Iu?";":":",T2=E2(),P2=i=>Object.assign(new Error(`not found: ${i}`),{code:"ENOENT"}),R2=(i,e)=>{let t=e.colon||Kfe,r=i.match(/\//)||Iu&&i.match(/\\/)?[""]:[...Iu?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Iu?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",o=Iu?n.split(t):[""];return Iu&&i.indexOf(".")!==-1&&o[0]!==""&&o.unshift(""),{pathEnv:r,pathExt:o,pathExtExe:n}},k2=(i,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:r,pathExt:n,pathExtExe:o}=R2(i,e),s=[],a=u=>new Promise((c,f)=>{if(u===r.length)return e.all&&s.length?c(s):f(P2(i));let p=r[u],d=/^".*"$/.test(p)?p.slice(1,-1):p,h=_2.join(d,i),m=!d&&/^\.[\\\/]/.test(i)?i.slice(0,2)+h:h;c(l(m,u,0))}),l=(u,c,f)=>new Promise((p,d)=>{if(f===n.length)return p(a(c+1));let h=n[f];T2(u+h,{pathExt:o},(m,w)=>{if(!m&&w)if(e.all)s.push(u+h);else return p(u+h);return p(l(u,c,f+1))})});return t?a(0).then(u=>t(null,u),t):a(0)},Jfe=(i,e)=>{e=e||{};let{pathEnv:t,pathExt:r,pathExtExe:n}=R2(i,e),o=[];for(let s=0;snpe,OperatingSystem:()=>Fu,Platform:()=>Ua,globals:()=>ipe,isLinux:()=>Zfe,isMacintosh:()=>kS,isNative:()=>Qfe,isWeb:()=>epe,isWindows:()=>Io,language:()=>Xfe,platform:()=>tpe});var Cg,Eg,PS,RS,Yfe,Xfe,Ua,_g,Io,kS,Zfe,Qfe,epe,tpe,rpe,ipe,Fu,npe,Ap=I(()=>{Cg=!1,Eg=!1,PS=!1,RS=!1,Yfe=!1,Xfe="en";typeof process=="object"&&typeof process.nextTick=="function"&&typeof process.platform=="string"&&(Cg=process.platform==="win32",Eg=process.platform==="darwin",PS=process.platform==="linux",RS=!0);(function(n){n[n.Web=0]="Web",n[n.Mac=1]="Mac",n[n.Linux=2]="Linux",n[n.Windows=3]="Windows"})(Ua||(Ua={}));_g=0;RS&&(Eg?_g=1:Cg?_g=3:PS&&(_g=2));Io=Cg,kS=Eg,Zfe=PS,Qfe=RS,epe=Yfe,tpe=_g,rpe=typeof self=="object"?self:typeof global=="object"?global:{},ipe=rpe;(function(r){r[r.Windows=1]="Windows",r[r.Macintosh=2]="Macintosh",r[r.Linux=3]="Linux"})(Fu||(Fu={}));npe=Eg?2:Cg?1:3});function nt(i){return new Promise(e=>{setTimeout(()=>{e(void 0)},i)})}function Tg(i,e,t,r){return i?(Io&&!r&&!i.startsWith("jdt://")&&(i=IS.default.win32.normalize(i)),IS.default.isAbsolute(i)?j.file(i).toString():L2.default.isValid(i)?j.parse(i).toString():t!=""?`${t}:${e}`:`unknown:${e}`):`untitled:${e}`}function J(i){for(;i.length;){let e=i.pop();e&&e.dispose()}}function Lp(i){try{M2.default.sync(i)}catch(e){return!1}return!0}function Kn(i,e={},t){return Io||(e.shell=e.shell||process.env.SHELL),e.maxBuffer=500*1024,new Promise((r,n)=>{let o;t&&(o=setTimeout(()=>{n(new Error(`timeout after ${t}s`))},t*1e3)),(0,F2.exec)(i,e,(s,a,l)=>{if(o&&clearTimeout(o),s){n(new Error(`exited with ${s.code} +${s} +${l}`));return}r(a)})})}function Au(i,e){let t=(0,O2.default)(e,100);try{let r=A2.default.watch(i,{persistent:!0,recursive:!1,encoding:"utf8"},()=>{t()});return FS.Disposable.create(()=>{t.clear(),r.close()})}catch(r){return FS.Disposable.create(()=>{t.clear()})}}function q2(i){try{return process.kill(i,0)==!0}catch(e){return e.code==="EPERM"}}function OS(i){return i=="n"||i=="o"||i=="x"||i=="v"?"":i=="i"?"":i=="s"?"":""}function Mp(i,e,t=3){if(i.length==0)return Promise.resolve();let r=0,n=i.length,o=i.slice();return new Promise(s=>{let a=l=>{let u=()=>{if(r=r+1,r==n)s();else if(o.length){let c=o.shift();a(c)}};e(l).then(u,u)};for(let l=0;l{F2=E(require("child_process")),O2=E(zr()),A2=E(require("fs")),L2=E(ES()),IS=E(require("path")),FS=E(G());Ze();M2=E(Op());Ap();Dke=W()("util-index"),Tn="coc-settings.json"});function Pg(i){return i&&typeof i.word=="string"}function Fo(i){return typeof i=="boolean"}function Le(i){return typeof i=="string"}function Rg(i){return typeof i=="number"}function Cs(i){return typeof i=="function"}function zt(i){return i!=null&&typeof i=="object"&&!Array.isArray(i)&&!(i instanceof RegExp)&&!(i instanceof Date)}function kg(i){if(!zt(i))return!1;for(let e in i)if(ope.call(i,e))return!1;return!0}var ope,Yi=I(()=>{ope=Object.prototype.hasOwnProperty});function Oo(i){if(!i||typeof i!="object"||i instanceof RegExp)return i;let e=Array.isArray(i)?[]:{};return Object.keys(i).forEach(t=>{i[t]&&typeof i[t]=="object"?e[t]=Oo(i[t]):e[t]=i[t]}),e}function N2(i){if(!i||typeof i!="object")return i;let e=[i];for(;e.length>0;){let t=e.shift();Object.freeze(t);for(let r in t)if(spe.call(t,r)){let n=t[r];typeof n=="object"&&!Object.isFrozen(n)&&e.push(n)}}return i}function AS(i,e,t=!0){return zt(i)?(zt(e)&&Object.keys(e).forEach(r=>{r in i?t&&(zt(i[r])&&zt(e[r])?AS(i[r],e[r],t):i[r]=e[r]):i[r]=e[r]}),i):e}function rt(i,e){if(i===e)return!0;if(i==null||e===null||e===void 0||typeof i!=typeof e||typeof i!="object"||Array.isArray(i)!==Array.isArray(e))return!1;let t,r;if(Array.isArray(i)){if(i.length!==e.length)return!1;for(t=0;t{Yi();spe=Object.prototype.hasOwnProperty});var LS,$2,B2,N,je=I(()=>{LS=E(G());ye();Gr();$2=W()("events"),B2=class{constructor(){this.handlers=new Map;this.insertMode=!1}get cursor(){return this._cursor}async fire(e,t){let r=this.handlers.get(e);if(e=="InsertEnter"?this.insertMode=!0:e=="InsertLeave"?this.insertMode=!1:!this.insertMode&&(e=="CursorHoldI"||e=="CursorMovedI")?(this.insertMode=!0,await this.fire("InsertEnter",[t[0]])):this.insertMode&&(e=="CursorHold"||e=="CursorMoved")&&(this.insertMode=!1,await this.fire("InsertLeave",[t[0]])),e=="CursorMoved"||e=="CursorMovedI"){let n={bufnr:t[0],lnum:t[1][0],col:t[1][1],insert:e=="CursorMovedI"};if(this._cursor&&rt(this._cursor,n))return;this._cursor=n}if(r)try{await Promise.all(r.map(n=>n(t)))}catch(n){if(n.message&&n.message.indexOf("transport disconnected")==-1)return;$2.error(`Error on event: ${e}`,n.stack)}}on(e,t,r,n){if(Array.isArray(e)){let o=n||[];for(let s of e)this.on(s,t,r,o);return LS.Disposable.create(()=>{J(o)})}else{let o=this.handlers.get(e)||[],s=Error().stack,a=u=>new Promise((c,f)=>{let p;try{Promise.resolve(t.apply(r||null,u)).then(()=>{p&&clearTimeout(p),c(void 0)},d=>{p&&clearTimeout(p),f(d)}),p=setTimeout(()=>{$2.warn(`Handler of ${e} blocked more than 2s:`,s)},2e3)}catch(d){f(d)}});o.push(a),this.handlers.set(e,o);let l=LS.Disposable.create(()=>{let u=o.indexOf(a);u!==-1&&o.splice(u,1)});return n&&n.push(l),l}}},N=new B2});var qp=y((kke,j2)=>{var ape="2.0.0",lpe=256,upe=Number.MAX_SAFE_INTEGER||9007199254740991,cpe=16;j2.exports={SEMVER_SPEC_VERSION:ape,MAX_LENGTH:lpe,MAX_SAFE_INTEGER:upe,MAX_SAFE_COMPONENT_LENGTH:cpe}});var Np=y((Ike,U2)=>{var fpe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...i)=>console.error("SEMVER",...i):()=>{};U2.exports=fpe});var Wa=y((Es,W2)=>{var{MAX_SAFE_COMPONENT_LENGTH:MS}=qp(),ppe=Np();Es=W2.exports={};var dpe=Es.re=[],Z=Es.src=[],Q=Es.t={},hpe=0,xe=(i,e,t)=>{let r=hpe++;ppe(r,e),Q[i]=r,Z[r]=e,dpe[r]=new RegExp(e,t?"g":void 0)};xe("NUMERICIDENTIFIER","0|[1-9]\\d*");xe("NUMERICIDENTIFIERLOOSE","[0-9]+");xe("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");xe("MAINVERSION",`(${Z[Q.NUMERICIDENTIFIER]})\\.(${Z[Q.NUMERICIDENTIFIER]})\\.(${Z[Q.NUMERICIDENTIFIER]})`);xe("MAINVERSIONLOOSE",`(${Z[Q.NUMERICIDENTIFIERLOOSE]})\\.(${Z[Q.NUMERICIDENTIFIERLOOSE]})\\.(${Z[Q.NUMERICIDENTIFIERLOOSE]})`);xe("PRERELEASEIDENTIFIER",`(?:${Z[Q.NUMERICIDENTIFIER]}|${Z[Q.NONNUMERICIDENTIFIER]})`);xe("PRERELEASEIDENTIFIERLOOSE",`(?:${Z[Q.NUMERICIDENTIFIERLOOSE]}|${Z[Q.NONNUMERICIDENTIFIER]})`);xe("PRERELEASE",`(?:-(${Z[Q.PRERELEASEIDENTIFIER]}(?:\\.${Z[Q.PRERELEASEIDENTIFIER]})*))`);xe("PRERELEASELOOSE",`(?:-?(${Z[Q.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Z[Q.PRERELEASEIDENTIFIERLOOSE]})*))`);xe("BUILDIDENTIFIER","[0-9A-Za-z-]+");xe("BUILD",`(?:\\+(${Z[Q.BUILDIDENTIFIER]}(?:\\.${Z[Q.BUILDIDENTIFIER]})*))`);xe("FULLPLAIN",`v?${Z[Q.MAINVERSION]}${Z[Q.PRERELEASE]}?${Z[Q.BUILD]}?`);xe("FULL",`^${Z[Q.FULLPLAIN]}$`);xe("LOOSEPLAIN",`[v=\\s]*${Z[Q.MAINVERSIONLOOSE]}${Z[Q.PRERELEASELOOSE]}?${Z[Q.BUILD]}?`);xe("LOOSE",`^${Z[Q.LOOSEPLAIN]}$`);xe("GTLT","((?:<|>)?=?)");xe("XRANGEIDENTIFIERLOOSE",`${Z[Q.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);xe("XRANGEIDENTIFIER",`${Z[Q.NUMERICIDENTIFIER]}|x|X|\\*`);xe("XRANGEPLAIN",`[v=\\s]*(${Z[Q.XRANGEIDENTIFIER]})(?:\\.(${Z[Q.XRANGEIDENTIFIER]})(?:\\.(${Z[Q.XRANGEIDENTIFIER]})(?:${Z[Q.PRERELEASE]})?${Z[Q.BUILD]}?)?)?`);xe("XRANGEPLAINLOOSE",`[v=\\s]*(${Z[Q.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Z[Q.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Z[Q.XRANGEIDENTIFIERLOOSE]})(?:${Z[Q.PRERELEASELOOSE]})?${Z[Q.BUILD]}?)?)?`);xe("XRANGE",`^${Z[Q.GTLT]}\\s*${Z[Q.XRANGEPLAIN]}$`);xe("XRANGELOOSE",`^${Z[Q.GTLT]}\\s*${Z[Q.XRANGEPLAINLOOSE]}$`);xe("COERCE",`(^|[^\\d])(\\d{1,${MS}})(?:\\.(\\d{1,${MS}}))?(?:\\.(\\d{1,${MS}}))?(?:$|[^\\d])`);xe("COERCERTL",Z[Q.COERCE],!0);xe("LONETILDE","(?:~>?)");xe("TILDETRIM",`(\\s*)${Z[Q.LONETILDE]}\\s+`,!0);Es.tildeTrimReplace="$1~";xe("TILDE",`^${Z[Q.LONETILDE]}${Z[Q.XRANGEPLAIN]}$`);xe("TILDELOOSE",`^${Z[Q.LONETILDE]}${Z[Q.XRANGEPLAINLOOSE]}$`);xe("LONECARET","(?:\\^)");xe("CARETTRIM",`(\\s*)${Z[Q.LONECARET]}\\s+`,!0);Es.caretTrimReplace="$1^";xe("CARET",`^${Z[Q.LONECARET]}${Z[Q.XRANGEPLAIN]}$`);xe("CARETLOOSE",`^${Z[Q.LONECARET]}${Z[Q.XRANGEPLAINLOOSE]}$`);xe("COMPARATORLOOSE",`^${Z[Q.GTLT]}\\s*(${Z[Q.LOOSEPLAIN]})$|^$`);xe("COMPARATOR",`^${Z[Q.GTLT]}\\s*(${Z[Q.FULLPLAIN]})$|^$`);xe("COMPARATORTRIM",`(\\s*)${Z[Q.GTLT]}\\s*(${Z[Q.LOOSEPLAIN]}|${Z[Q.XRANGEPLAIN]})`,!0);Es.comparatorTrimReplace="$1$2$3";xe("HYPHENRANGE",`^\\s*(${Z[Q.XRANGEPLAIN]})\\s+-\\s+(${Z[Q.XRANGEPLAIN]})\\s*$`);xe("HYPHENRANGELOOSE",`^\\s*(${Z[Q.XRANGEPLAINLOOSE]})\\s+-\\s+(${Z[Q.XRANGEPLAINLOOSE]})\\s*$`);xe("STAR","(<|>)?=?\\s*\\*");xe("GTE0","^\\s*>=\\s*0.0.0\\s*$");xe("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var Ig=y((Fke,G2)=>{var H2=/^[0-9]+$/,z2=(i,e)=>{let t=H2.test(i),r=H2.test(e);return t&&r&&(i=+i,e=+e),i===e?0:t&&!r?-1:r&&!t?1:iz2(e,i);G2.exports={compareIdentifiers:z2,rcompareIdentifiers:mpe}});var Tr=y((Oke,Y2)=>{var Fg=Np(),{MAX_LENGTH:V2,MAX_SAFE_INTEGER:Og}=qp(),{re:K2,t:J2}=Wa(),{compareIdentifiers:$p}=Ig(),Xi=class{constructor(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Xi){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>V2)throw new TypeError(`version is longer than ${V2} characters`);Fg("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let r=e.trim().match(t.loose?K2[J2.LOOSE]:K2[J2.FULL]);if(!r)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+r[1],this.minor=+r[2],this.patch=+r[3],this.major>Og||this.major<0)throw new TypeError("Invalid major version");if(this.minor>Og||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>Og||this.patch<0)throw new TypeError("Invalid patch version");r[4]?this.prerelease=r[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let o=+n;if(o>=0&&o=0;)typeof this.prerelease[r]=="number"&&(this.prerelease[r]++,r=-2);r===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};Y2.exports=Xi});var Ha=y((Ake,e$)=>{var{MAX_LENGTH:gpe}=qp(),{re:X2,t:Z2}=Wa(),Q2=Tr(),vpe=(i,e)=>{if((!e||typeof e!="object")&&(e={loose:!!e,includePrerelease:!1}),i instanceof Q2)return i;if(typeof i!="string"||i.length>gpe||!(e.loose?X2[Z2.LOOSE]:X2[Z2.FULL]).test(i))return null;try{return new Q2(i,e)}catch(r){return null}};e$.exports=vpe});var r$=y((Lke,t$)=>{var ype=Ha(),bpe=(i,e)=>{let t=ype(i,e);return t?t.version:null};t$.exports=bpe});var n$=y((Mke,i$)=>{var wpe=Ha(),Dpe=(i,e)=>{let t=wpe(i.trim().replace(/^[=v]+/,""),e);return t?t.version:null};i$.exports=Dpe});var s$=y((qke,o$)=>{var xpe=Tr(),Spe=(i,e,t,r)=>{typeof t=="string"&&(r=t,t=void 0);try{return new xpe(i,t).inc(e,r).version}catch(n){return null}};o$.exports=Spe});var Zi=y((Nke,l$)=>{var a$=Tr(),Cpe=(i,e,t)=>new a$(i,t).compare(new a$(e,t));l$.exports=Cpe});var Ag=y(($ke,u$)=>{var Epe=Zi(),_pe=(i,e,t)=>Epe(i,e,t)===0;u$.exports=_pe});var p$=y((Bke,f$)=>{var c$=Ha(),Tpe=Ag(),Ppe=(i,e)=>{if(Tpe(i,e))return null;{let t=c$(i),r=c$(e),n=t.prerelease.length||r.prerelease.length,o=n?"pre":"",s=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==r[a])return o+a;return s}};f$.exports=Ppe});var h$=y((jke,d$)=>{var Rpe=Tr(),kpe=(i,e)=>new Rpe(i,e).major;d$.exports=kpe});var g$=y((Uke,m$)=>{var Ipe=Tr(),Fpe=(i,e)=>new Ipe(i,e).minor;m$.exports=Fpe});var y$=y((Wke,v$)=>{var Ope=Tr(),Ape=(i,e)=>new Ope(i,e).patch;v$.exports=Ape});var w$=y((Hke,b$)=>{var Lpe=Ha(),Mpe=(i,e)=>{let t=Lpe(i,e);return t&&t.prerelease.length?t.prerelease:null};b$.exports=Mpe});var x$=y((zke,D$)=>{var qpe=Zi(),Npe=(i,e,t)=>qpe(e,i,t);D$.exports=Npe});var C$=y((Gke,S$)=>{var $pe=Zi(),Bpe=(i,e)=>$pe(i,e,!0);S$.exports=Bpe});var Lg=y((Vke,_$)=>{var E$=Tr(),jpe=(i,e,t)=>{let r=new E$(i,t),n=new E$(e,t);return r.compare(n)||r.compareBuild(n)};_$.exports=jpe});var P$=y((Kke,T$)=>{var Upe=Lg(),Wpe=(i,e)=>i.sort((t,r)=>Upe(t,r,e));T$.exports=Wpe});var k$=y((Jke,R$)=>{var Hpe=Lg(),zpe=(i,e)=>i.sort((t,r)=>Hpe(r,t,e));R$.exports=zpe});var Bp=y((Yke,I$)=>{var Gpe=Zi(),Vpe=(i,e,t)=>Gpe(i,e,t)>0;I$.exports=Vpe});var Mg=y((Xke,F$)=>{var Kpe=Zi(),Jpe=(i,e,t)=>Kpe(i,e,t)<0;F$.exports=Jpe});var qS=y((Zke,O$)=>{var Ype=Zi(),Xpe=(i,e,t)=>Ype(i,e,t)!==0;O$.exports=Xpe});var qg=y((Qke,A$)=>{var Zpe=Zi(),Qpe=(i,e,t)=>Zpe(i,e,t)>=0;A$.exports=Qpe});var Ng=y((eIe,L$)=>{var ede=Zi(),tde=(i,e,t)=>ede(i,e,t)<=0;L$.exports=tde});var NS=y((tIe,M$)=>{var rde=Ag(),ide=qS(),nde=Bp(),ode=qg(),sde=Mg(),ade=Ng(),lde=(i,e,t,r)=>{switch(e){case"===":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i===t;case"!==":return typeof i=="object"&&(i=i.version),typeof t=="object"&&(t=t.version),i!==t;case"":case"=":case"==":return rde(i,t,r);case"!=":return ide(i,t,r);case">":return nde(i,t,r);case">=":return ode(i,t,r);case"<":return sde(i,t,r);case"<=":return ade(i,t,r);default:throw new TypeError(`Invalid operator: ${e}`)}};M$.exports=lde});var N$=y((rIe,q$)=>{var ude=Tr(),cde=Ha(),{re:$g,t:Bg}=Wa(),fde=(i,e)=>{if(i instanceof ude)return i;if(typeof i=="number"&&(i=String(i)),typeof i!="string")return null;e=e||{};let t=null;if(!e.rtl)t=i.match($g[Bg.COERCE]);else{let r;for(;(r=$g[Bg.COERCERTL].exec(i))&&(!t||t.index+t[0].length!==i.length);)(!t||r.index+r[0].length!==t.index+t[0].length)&&(t=r),$g[Bg.COERCERTL].lastIndex=r.index+r[1].length+r[2].length;$g[Bg.COERCERTL].lastIndex=-1}return t===null?null:cde(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};q$.exports=fde});var Qi=y((iIe,B$)=>{var Lu=class{constructor(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Lu)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new Lu(e.raw,t);if(e instanceof $S)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(r=>this.parseRange(r.trim())).filter(r=>r.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let t=this.options.loose;e=e.trim();let r=t?Pr[hr.HYPHENRANGELOOSE]:Pr[hr.HYPHENRANGE];e=e.replace(r,Ede(this.options.includePrerelease)),qt("hyphen replace",e),e=e.replace(Pr[hr.COMPARATORTRIM],dde),qt("comparator trim",e,Pr[hr.COMPARATORTRIM]),e=e.replace(Pr[hr.TILDETRIM],hde),e=e.replace(Pr[hr.CARETTRIM],mde),e=e.split(/\s+/).join(" ");let n=t?Pr[hr.COMPARATORLOOSE]:Pr[hr.COMPARATOR];return e.split(" ").map(o=>gde(o,this.options)).join(" ").split(/\s+/).map(o=>Cde(o,this.options)).filter(this.options.loose?o=>!!o.match(n):()=>!0).map(o=>new $S(o,this.options))}intersects(e,t){if(!(e instanceof Lu))throw new TypeError("a Range is required");return this.set.some(r=>$$(r,t)&&e.set.some(n=>$$(n,t)&&r.every(o=>n.every(s=>o.intersects(s,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new pde(e,this.options)}catch(t){return!1}for(let t=0;t{let t=!0,r=i.slice(),n=r.pop();for(;t&&r.length;)t=r.every(o=>n.intersects(o,e)),n=r.pop();return t},gde=(i,e)=>(qt("comp",i,e),i=bde(i,e),qt("caret",i),i=vde(i,e),qt("tildes",i),i=Dde(i,e),qt("xrange",i),i=Sde(i,e),qt("stars",i),i),Vr=i=>!i||i.toLowerCase()==="x"||i==="*",vde=(i,e)=>i.trim().split(/\s+/).map(t=>yde(t,e)).join(" "),yde=(i,e)=>{let t=e.loose?Pr[hr.TILDELOOSE]:Pr[hr.TILDE];return i.replace(t,(r,n,o,s,a)=>{qt("tilde",i,r,n,o,s,a);let l;return Vr(n)?l="":Vr(o)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Vr(s)?l=`>=${n}.${o}.0 <${n}.${+o+1}.0-0`:a?(qt("replaceTilde pr",a),l=`>=${n}.${o}.${s}-${a} <${n}.${+o+1}.0-0`):l=`>=${n}.${o}.${s} <${n}.${+o+1}.0-0`,qt("tilde return",l),l})},bde=(i,e)=>i.trim().split(/\s+/).map(t=>wde(t,e)).join(" "),wde=(i,e)=>{qt("caret",i,e);let t=e.loose?Pr[hr.CARETLOOSE]:Pr[hr.CARET],r=e.includePrerelease?"-0":"";return i.replace(t,(n,o,s,a,l)=>{qt("caret",i,n,o,s,a,l);let u;return Vr(o)?u="":Vr(s)?u=`>=${o}.0.0${r} <${+o+1}.0.0-0`:Vr(a)?o==="0"?u=`>=${o}.${s}.0${r} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.0${r} <${+o+1}.0.0-0`:l?(qt("replaceCaret pr",l),o==="0"?s==="0"?u=`>=${o}.${s}.${a}-${l} <${o}.${s}.${+a+1}-0`:u=`>=${o}.${s}.${a}-${l} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.${a}-${l} <${+o+1}.0.0-0`):(qt("no pr"),o==="0"?s==="0"?u=`>=${o}.${s}.${a}${r} <${o}.${s}.${+a+1}-0`:u=`>=${o}.${s}.${a}${r} <${o}.${+s+1}.0-0`:u=`>=${o}.${s}.${a} <${+o+1}.0.0-0`),qt("caret return",u),u})},Dde=(i,e)=>(qt("replaceXRanges",i,e),i.split(/\s+/).map(t=>xde(t,e)).join(" ")),xde=(i,e)=>{i=i.trim();let t=e.loose?Pr[hr.XRANGELOOSE]:Pr[hr.XRANGE];return i.replace(t,(r,n,o,s,a,l)=>{qt("xRange",i,r,n,o,s,a,l);let u=Vr(o),c=u||Vr(s),f=c||Vr(a),p=f;return n==="="&&p&&(n=""),l=e.includePrerelease?"-0":"",u?n===">"||n==="<"?r="<0.0.0-0":r="*":n&&p?(c&&(s=0),a=0,n===">"?(n=">=",c?(o=+o+1,s=0,a=0):(s=+s+1,a=0)):n==="<="&&(n="<",c?o=+o+1:s=+s+1),n==="<"&&(l="-0"),r=`${n+o}.${s}.${a}${l}`):c?r=`>=${o}.0.0${l} <${+o+1}.0.0-0`:f&&(r=`>=${o}.${s}.0${l} <${o}.${+s+1}.0-0`),qt("xRange return",r),r})},Sde=(i,e)=>(qt("replaceStars",i,e),i.trim().replace(Pr[hr.STAR],"")),Cde=(i,e)=>(qt("replaceGTE0",i,e),i.trim().replace(Pr[e.includePrerelease?hr.GTE0PRE:hr.GTE0],"")),Ede=i=>(e,t,r,n,o,s,a,l,u,c,f,p,d)=>(Vr(r)?t="":Vr(n)?t=`>=${r}.0.0${i?"-0":""}`:Vr(o)?t=`>=${r}.${n}.0${i?"-0":""}`:s?t=`>=${t}`:t=`>=${t}${i?"-0":""}`,Vr(u)?l="":Vr(c)?l=`<${+u+1}.0.0-0`:Vr(f)?l=`<${u}.${+c+1}.0-0`:p?l=`<=${u}.${c}.${f}-${p}`:i?l=`<${u}.${c}.${+f+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),_de=(i,e,t)=>{for(let r=0;r0){let n=i[r].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var jp=y((nIe,z$)=>{var Up=Symbol("SemVer ANY"),Wp=class{static get ANY(){return Up}constructor(e,t){if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),e instanceof Wp){if(e.loose===!!t.loose)return e;e=e.value}jS("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===Up?this.value="":this.value=this.operator+this.semver.version,jS("comp",this)}parse(e){let t=this.options.loose?j$[U$.COMPARATORLOOSE]:j$[U$.COMPARATOR],r=e.match(t);if(!r)throw new TypeError(`Invalid comparator: ${e}`);this.operator=r[1]!==void 0?r[1]:"",this.operator==="="&&(this.operator=""),r[2]?this.semver=new W$(r[2],this.options.loose):this.semver=Up}toString(){return this.value}test(e){if(jS("Comparator.test",e,this.options.loose),this.semver===Up||e===Up)return!0;if(typeof e=="string")try{e=new W$(e,this.options)}catch(t){return!1}return BS(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Wp))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new H$(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new H$(this.value,t).test(e.semver);let r=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),o=this.semver.version===e.semver.version,s=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=BS(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=BS(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return r||n||o&&s||a||l}};z$.exports=Wp;var{re:j$,t:U$}=Wa(),BS=NS(),jS=Np(),W$=Tr(),H$=Qi()});var Hp=y((oIe,G$)=>{var Tde=Qi(),Pde=(i,e,t)=>{try{e=new Tde(e,t)}catch(r){return!1}return e.test(i)};G$.exports=Pde});var K$=y((sIe,V$)=>{var Rde=Qi(),kde=(i,e)=>new Rde(i,e).set.map(t=>t.map(r=>r.value).join(" ").trim().split(" "));V$.exports=kde});var Y$=y((aIe,J$)=>{var Ide=Tr(),Fde=Qi(),Ode=(i,e,t)=>{let r=null,n=null,o=null;try{o=new Fde(e,t)}catch(s){return null}return i.forEach(s=>{o.test(s)&&(!r||n.compare(s)===-1)&&(r=s,n=new Ide(r,t))}),r};J$.exports=Ode});var Z$=y((lIe,X$)=>{var Ade=Tr(),Lde=Qi(),Mde=(i,e,t)=>{let r=null,n=null,o=null;try{o=new Lde(e,t)}catch(s){return null}return i.forEach(s=>{o.test(s)&&(!r||n.compare(s)===1)&&(r=s,n=new Ade(r,t))}),r};X$.exports=Mde});var eB=y((uIe,Q$)=>{var US=Tr(),qde=Qi(),Nde=Bp(),$de=(i,e)=>{i=new qde(i,e);let t=new US("0.0.0");if(i.test(t)||(t=new US("0.0.0-0"),i.test(t)))return t;t=null;for(let r=0;r{let s=new US(o.semver.version);switch(o.operator){case">":s.prerelease.length===0?s.patch++:s.prerelease.push(0),s.raw=s.format();case"":case">=":(!t||Nde(t,s))&&(t=s);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}});return t&&i.test(t)?t:null};Q$.exports=$de});var rB=y((cIe,tB)=>{var Bde=Qi(),jde=(i,e)=>{try{return new Bde(i,e).range||"*"}catch(t){return null}};tB.exports=jde});var jg=y((fIe,sB)=>{var Ude=Tr(),iB=jp(),{ANY:Wde}=iB,Hde=Qi(),zde=Hp(),nB=Bp(),oB=Mg(),Gde=Ng(),Vde=qg(),Kde=(i,e,t,r)=>{i=new Ude(i,r),e=new Hde(e,r);let n,o,s,a,l;switch(t){case">":n=nB,o=Gde,s=oB,a=">",l=">=";break;case"<":n=oB,o=Vde,s=nB,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(zde(i,e,r))return!1;for(let u=0;u{d.semver===Wde&&(d=new iB(">=0.0.0")),f=f||d,p=p||d,n(d.semver,f.semver,r)?f=d:s(d.semver,p.semver,r)&&(p=d)}),f.operator===a||f.operator===l||(!p.operator||p.operator===a)&&o(i,p.semver))return!1;if(p.operator===l&&s(i,p.semver))return!1}return!0};sB.exports=Kde});var lB=y((pIe,aB)=>{var Jde=jg(),Yde=(i,e,t)=>Jde(i,e,">",t);aB.exports=Yde});var cB=y((dIe,uB)=>{var Xde=jg(),Zde=(i,e,t)=>Xde(i,e,"<",t);uB.exports=Zde});var dB=y((hIe,pB)=>{var fB=Qi(),Qde=(i,e,t)=>(i=new fB(i,t),e=new fB(e,t),i.intersects(e));pB.exports=Qde});var mB=y((mIe,hB)=>{var ehe=Hp(),the=Zi();hB.exports=(i,e,t)=>{let r=[],n=null,o=null,s=i.sort((c,f)=>the(c,f,t));for(let c of s)ehe(c,e,t)?(o=c,n||(n=c)):(o&&r.push([n,o]),o=null,n=null);n&&r.push([n,null]);let a=[];for(let[c,f]of r)c===f?a.push(c):!f&&c===s[0]?a.push("*"):f?c===s[0]?a.push(`<=${f}`):a.push(`${c} - ${f}`):a.push(`>=${c}`);let l=a.join(" || "),u=typeof e.raw=="string"?e.raw:String(e);return l.length{var gB=Qi(),{ANY:vB}=jp(),zp=Hp(),WS=Zi(),rhe=(i,e,t)=>{i=new gB(i,t),e=new gB(e,t);let r=!1;e:for(let n of i.set){for(let o of e.set){let s=ihe(n,o,t);if(r=r||s!==null,s)continue e}if(r)return!1}return!0},ihe=(i,e,t)=>{if(i.length===1&&i[0].semver===vB)return e.length===1&&e[0].semver===vB;let r=new Set,n,o;for(let f of i)f.operator===">"||f.operator===">="?n=yB(n,f,t):f.operator==="<"||f.operator==="<="?o=bB(o,f,t):r.add(f.semver);if(r.size>1)return null;let s;if(n&&o){if(s=WS(n.semver,o.semver,t),s>0)return null;if(s===0&&(n.operator!==">="||o.operator!=="<="))return null}for(let f of r){if(n&&!zp(f,String(n),t)||o&&!zp(f,String(o),t))return null;for(let p of e)if(!zp(f,String(p),t))return!1;return!0}let a,l,u,c;for(let f of e){if(c=c||f.operator===">"||f.operator===">=",u=u||f.operator==="<"||f.operator==="<=",n){if(f.operator===">"||f.operator===">="){if(a=yB(n,f,t),a===f)return!1}else if(n.operator===">="&&!zp(n.semver,String(f),t))return!1}if(o){if(f.operator==="<"||f.operator==="<="){if(l=bB(o,f,t),l===f)return!1}else if(o.operator==="<="&&!zp(o.semver,String(f),t))return!1}if(!f.operator&&(o||n)&&s!==0)return!1}return!(n&&u&&!o&&s!==0||o&&c&&!n&&s!==0)},yB=(i,e,t)=>{if(!i)return e;let r=WS(i.semver,e.semver,t);return r>0?i:r<0||e.operator===">"&&i.operator===">="?e:i},bB=(i,e,t)=>{if(!i)return e;let r=WS(i.semver,e.semver,t);return r<0?i:r>0||e.operator==="<"&&i.operator==="<="?e:i};wB.exports=rhe});var Gp=y((vIe,xB)=>{var HS=Wa();xB.exports={re:HS.re,src:HS.src,tokens:HS.t,SEMVER_SPEC_VERSION:qp().SEMVER_SPEC_VERSION,SemVer:Tr(),compareIdentifiers:Ig().compareIdentifiers,rcompareIdentifiers:Ig().rcompareIdentifiers,parse:Ha(),valid:r$(),clean:n$(),inc:s$(),diff:p$(),major:h$(),minor:g$(),patch:y$(),prerelease:w$(),compare:Zi(),rcompare:x$(),compareLoose:C$(),compareBuild:Lg(),sort:P$(),rsort:k$(),gt:Bp(),lt:Mg(),eq:Ag(),neq:qS(),gte:qg(),lte:Ng(),cmp:NS(),coerce:N$(),Comparator:jp(),Range:Qi(),satisfies:Hp(),toComparators:K$(),maxSatisfying:Y$(),minSatisfying:Z$(),minVersion:eB(),validRange:rB(),outside:jg(),gtr:lB(),ltr:cB(),intersects:dB(),simplifyRange:mB(),subset:DB()}});var Mu=y((yIe,zS)=>{function SB(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:null,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tokenizer:null,walkTokens:null,xhtml:!1}}function nhe(i){zS.exports.defaults=i}zS.exports={defaults:SB(),getDefaults:SB,changeDefaults:nhe}});var za=y((bIe,PB)=>{var ohe=/[&<>"']/,she=/[&<>"']/g,ahe=/[<>"']|&(?!#?\w+;)/,lhe=/[<>"']|&(?!#?\w+;)/g,uhe={"&":"&","<":"<",">":">",'"':""","'":"'"},CB=i=>uhe[i];function che(i,e){if(e){if(ohe.test(i))return i.replace(she,CB)}else if(ahe.test(i))return i.replace(lhe,CB);return i}var fhe=/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig;function EB(i){return i.replace(fhe,(e,t)=>(t=t.toLowerCase(),t==="colon"?":":t.charAt(0)==="#"?t.charAt(1)==="x"?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""))}var phe=/(^|[^\[])\^/g;function dhe(i,e){i=i.source||i,e=e||"";let t={replace:(r,n)=>(n=n.source||n,n=n.replace(phe,"$1"),i=i.replace(r,n),t),getRegex:()=>new RegExp(i,e)};return t}var hhe=/[^\w:]/g,mhe=/^$|^[a-z][a-z0-9+.-]*:|^[?#]/i;function ghe(i,e,t){if(i){let r;try{r=decodeURIComponent(EB(t)).replace(hhe,"").toLowerCase()}catch(n){return null}if(r.indexOf("javascript:")===0||r.indexOf("vbscript:")===0||r.indexOf("data:")===0)return null}e&&!mhe.test(t)&&(t=_B(e,t));try{t=encodeURI(t).replace(/%25/g,"%")}catch(r){return null}return t}var Ug={},vhe=/^[^:]+:\/*[^/]*$/,yhe=/^([^:]+:)[\s\S]*$/,bhe=/^([^:]+:\/*[^/]*)[\s\S]*$/;function _B(i,e){Ug[" "+i]||(vhe.test(i)?Ug[" "+i]=i+"/":Ug[" "+i]=TB(i,"/",!0)),i=Ug[" "+i];let t=i.indexOf(":")===-1;return e.substring(0,2)==="//"?t?e:i.replace(yhe,"$1")+e:e.charAt(0)==="/"?t?e:i.replace(bhe,"$1")+e:i+e}var whe={exec:function(){}};function Dhe(i){let e=1,t,r;for(;e{let l=!1,u=s;for(;--u>=0&&a[u]==="\\";)l=!l;return l?"|":" |"}),r=t.split(/ \|/),n=0;if(r.length>e)r.splice(e);else for(;r.length1;)e&1&&(t+=i),e>>=1,i+=i;return t+i}PB.exports={escape:che,unescape:EB,edit:dhe,cleanUrl:ghe,resolveUrl:_B,noopTest:whe,merge:Dhe,splitCells:xhe,rtrim:TB,findClosingBracket:She,checkSanitizeDeprecation:Che,repeatString:Ehe}});var GS=y((DIe,kB)=>{var{defaults:_he}=Mu(),{rtrim:The,splitCells:Wg,escape:en,findClosingBracket:Phe}=za();function RB(i,e,t){let r=e.href,n=e.title?en(e.title):null,o=i[1].replace(/\\([\[\]])/g,"$1");return i[0].charAt(0)!=="!"?{type:"link",raw:t,href:r,title:n,text:o}:{type:"image",raw:t,href:r,title:n,text:en(o)}}function Rhe(i,e){let t=i.match(/^(\s+)(?:```)/);if(t===null)return e;let r=t[1];return e.split(` +`).map(n=>{let o=n.match(/^\s+/);if(o===null)return n;let[s]=o;return s.length>=r.length?n.slice(r.length):n}).join(` +`)}kB.exports=class{constructor(e){this.options=e||_he}space(e){let t=this.rules.block.newline.exec(e);if(t)return t[0].length>1?{type:"space",raw:t[0]}:{raw:` +`}}code(e,t){let r=this.rules.block.code.exec(e);if(r){let n=t[t.length-1];if(n&&n.type==="paragraph")return{raw:r[0],text:r[0].trimRight()};let o=r[0].replace(/^ {4}/gm,"");return{type:"code",raw:r[0],codeBlockStyle:"indented",text:this.options.pedantic?o:The(o,` +`)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let r=t[0],n=Rhe(r,t[3]||"");return{type:"code",raw:r,lang:t[2]?t[2].trim():t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t)return{type:"heading",raw:t[0],depth:t[1].length,text:t[2]}}nptable(e){let t=this.rules.block.nptable.exec(e);if(t){let r={type:"table",header:Wg(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split(` +`):[],raw:t[0]};if(r.header.length===r.align.length){let n=r.align.length,o;for(o=0;o ?/gm,"");return{type:"blockquote",raw:t[0],text:r}}}list(e){let t=this.rules.block.list.exec(e);if(t){let r=t[0],n=t[2],o=n.length>1,s={type:"list",raw:r,ordered:o,start:o?+n.slice(0,-1):"",loose:!1,items:[]},a=t[0].match(this.rules.block.item),l=!1,u,c,f,p,d,h,m,w,v=a.length;f=this.rules.block.listItemStart.exec(a[0]);for(let D=0;Df[0].length||p[1].length>3){a.splice(D,2,a[D]+` +`+a[D+1]),D--,v--;continue}else(!this.options.pedantic||this.options.smartLists?p[2][p[2].length-1]!==n[n.length-1]:o===(p[2].length===1))&&(d=a.slice(D+1).join(` +`),s.raw=s.raw.substring(0,s.raw.length-d.length),D=v-1);f=p}c=u.length,u=u.replace(/^ *([*+-]|\d+[.)]) ?/,""),~u.indexOf(` + `)&&(c-=u.length,u=this.options.pedantic?u.replace(/^ {1,4}/gm,""):u.replace(new RegExp("^ {1,"+c+"}","gm"),"")),h=l||/\n\n(?!\s*$)/.test(u),D!==v-1&&(l=u.charAt(u.length-1)===` +`,h||(h=l)),h&&(s.loose=!0),this.options.gfm&&(m=/^\[[ xX]\] /.test(u),w=void 0,m&&(w=u[1]!==" ",u=u.replace(/^\[[ xX]\] +/,""))),s.items.push({type:"list_item",raw:r,task:m,checked:w,loose:h,text:u})}return s}}html(e){let t=this.rules.block.html.exec(e);if(t)return{type:this.options.sanitize?"paragraph":"html",raw:t[0],pre:!this.options.sanitizer&&(t[1]==="pre"||t[1]==="script"||t[1]==="style"),text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(t[0]):en(t[0]):t[0]}}def(e){let t=this.rules.block.def.exec(e);if(t)return t[3]&&(t[3]=t[3].substring(1,t[3].length-1)),{tag:t[1].toLowerCase().replace(/\s+/g," "),raw:t[0],href:t[2],title:t[3]}}table(e){let t=this.rules.block.table.exec(e);if(t){let r={type:"table",header:Wg(t[1].replace(/^ *| *\| *$/g,"")),align:t[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:t[3]?t[3].replace(/\n$/,"").split(` +`):[]};if(r.header.length===r.align.length){r.raw=t[0];let n=r.align.length,o;for(o=0;o/i.test(n[0])&&(t=!1),!r&&/^<(pre|code|kbd|script)(\s|>)/i.test(n[0])?r=!0:r&&/^<\/(pre|code|kbd|script)(\s|>)/i.test(n[0])&&(r=!1),{type:this.options.sanitize?"text":"html",raw:n[0],inLink:t,inRawBlock:r,text:this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):en(n[0]):n[0]}}link(e){let t=this.rules.inline.link.exec(e);if(t){let r=Phe(t[2],"()");if(r>-1){let l=(t[0].indexOf("!")===0?5:4)+t[1].length+r;t[2]=t[2].substring(0,r),t[0]=t[0].substring(0,l).trim(),t[3]=""}let n=t[2],o="";if(this.options.pedantic){let a=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(n);a?(n=a[1],o=a[3]):o=""}else o=t[3]?t[3].slice(1,-1):"";return n=n.trim().replace(/^<([\s\S]*)>$/,"$1"),RB(t,{href:n&&n.replace(this.rules.inline._escapes,"$1"),title:o&&o.replace(this.rules.inline._escapes,"$1")},t[0])}}reflink(e,t){let r;if((r=this.rules.inline.reflink.exec(e))||(r=this.rules.inline.nolink.exec(e))){let n=(r[2]||r[1]).replace(/\s+/g," ");if(n=t[n.toLowerCase()],!n||!n.href){let s=r[0].charAt(0);return{type:"text",raw:s,text:s}}return RB(r,n,r[0])}}strong(e,t,r=""){let n=this.rules.inline.strong.start.exec(e);if(n&&(!n[1]||n[1]&&(r===""||this.rules.inline.punctuation.exec(r)))){t=t.slice(-1*e.length);let o=n[0]==="**"?this.rules.inline.strong.endAst:this.rules.inline.strong.endUnd;o.lastIndex=0;let s;for(;(n=o.exec(t))!=null;)if(s=this.rules.inline.strong.middle.exec(t.slice(0,n.index+3)),s)return{type:"strong",raw:e.slice(0,s[0].length),text:e.slice(2,s[0].length-2)}}}em(e,t,r=""){let n=this.rules.inline.em.start.exec(e);if(n&&(!n[1]||n[1]&&(r===""||this.rules.inline.punctuation.exec(r)))){t=t.slice(-1*e.length);let o=n[0]==="*"?this.rules.inline.em.endAst:this.rules.inline.em.endUnd;o.lastIndex=0;let s;for(;(n=o.exec(t))!=null;)if(s=this.rules.inline.em.middle.exec(t.slice(0,n.index+2)),s)return{type:"em",raw:e.slice(0,s[0].length),text:e.slice(1,s[0].length-1)}}}codespan(e){let t=this.rules.inline.code.exec(e);if(t){let r=t[2].replace(/\n/g," "),n=/[^ ]/.test(r),o=r.startsWith(" ")&&r.endsWith(" ");return n&&o&&(r=r.substring(1,r.length-1)),r=en(r,!0),{type:"codespan",raw:t[0],text:r}}}br(e){let t=this.rules.inline.br.exec(e);if(t)return{type:"br",raw:t[0]}}del(e){let t=this.rules.inline.del.exec(e);if(t)return{type:"del",raw:t[0],text:t[2]}}autolink(e,t){let r=this.rules.inline.autolink.exec(e);if(r){let n,o;return r[2]==="@"?(n=en(this.options.mangle?t(r[1]):r[1]),o="mailto:"+n):(n=en(r[1]),o=n),{type:"link",raw:r[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}url(e,t){let r;if(r=this.rules.inline.url.exec(e)){let n,o;if(r[2]==="@")n=en(this.options.mangle?t(r[0]):r[0]),o="mailto:"+n;else{let s;do s=r[0],r[0]=this.rules.inline._backpedal.exec(r[0])[0];while(s!==r[0]);n=en(r[0]),r[1]==="www."?o="http://"+n:o=n}return{type:"link",raw:r[0],text:n,href:o,tokens:[{type:"text",raw:n,text:n}]}}}inlineText(e,t,r){let n=this.rules.inline.text.exec(e);if(n){let o;return t?o=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(n[0]):en(n[0]):n[0]:o=en(this.options.smartypants?r(n[0]):n[0]),{type:"text",raw:n[0],text:o}}}}});var FB=y((xIe,IB)=>{var{noopTest:Vp,edit:Me,merge:Ga}=za(),fe={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:/^ {0,3}(`{3,}(?=[^`\n]*\n)|~{3,})([^\n]*)\n(?:|([\s\S]*?)\n)(?: {0,3}\1[~`]* *(?:\n+|$)|$)/,hr:/^ {0,3}((?:- *){3,}|(?:_ *){3,}|(?:\* *){3,})(?:\n+|$)/,heading:/^ {0,3}(#{1,6}) +([^\n]*?)(?: +#+)? *(?:\n+|$)/,blockquote:/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( {0,3})(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?! {0,3}bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,nptable:Vp,table:Vp,lheading:/^([^\n]+)\n {0,3}(=+|-+) *(?:\n+|$)/,_paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html)[^\n]+)*)/,text:/^[^\n]+/};fe._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/;fe._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/;fe.def=Me(fe.def).replace("label",fe._label).replace("title",fe._title).getRegex();fe.bullet=/(?:[*+-]|\d{1,9}[.)])/;fe.item=/^( *)(bull) ?[^\n]*(?:\n(?! *bull ?)[^\n]*)*/;fe.item=Me(fe.item,"gm").replace(/bull/g,fe.bullet).getRegex();fe.listItemStart=Me(/^( *)(bull)/).replace("bull",fe.bullet).getRegex();fe.list=Me(fe.list).replace(/bull/g,fe.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+fe.def.source+")").getRegex();fe._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul";fe._comment=/|$)/;fe.html=Me(fe.html,"i").replace("comment",fe._comment).replace("tag",fe._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex();fe.paragraph=Me(fe._paragraph).replace("hr",fe.hr).replace("heading"," {0,3}#{1,6} ").replace("|lheading","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",fe._tag).getRegex();fe.blockquote=Me(fe.blockquote).replace("paragraph",fe.paragraph).getRegex();fe.normal=Ga({},fe);fe.gfm=Ga({},fe.normal,{nptable:"^ *([^|\\n ].*\\|.*)\\n {0,3}([-:]+ *\\|[-| :]*)(?:\\n((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)",table:"^ *\\|(.+)\\n {0,3}\\|?( *[-:]+[-| :]*)(?:\\n *((?:(?!\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)"});fe.gfm.nptable=Me(fe.gfm.nptable).replace("hr",fe.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",fe._tag).getRegex();fe.gfm.table=Me(fe.gfm.table).replace("hr",fe.hr).replace("heading"," {0,3}#{1,6} ").replace("blockquote"," {0,3}>").replace("code"," {4}[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|!--)").replace("tag",fe._tag).getRegex();fe.pedantic=Ga({},fe.normal,{html:Me(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",fe._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *(?:#+ *)?(?:\n+|$)/,fences:Vp,paragraph:Me(fe.normal._paragraph).replace("hr",fe.hr).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",fe.lheading).replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").getRegex()});var V={escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:Vp,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(\s*(href)(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,reflinkSearch:"reflink|nolink(?!\\()",strong:{start:/^(?:(\*\*(?=[*punctuation]))|\*\*)(?![\s])|__/,middle:/^\*\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*\*$|^__(?![\s])((?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?)__$/,endAst:/[^punctuation\s]\*\*(?!\*)|[punctuation]\*\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]__(?!_)(?:(?=[punctuation*\s])|$)/},em:{start:/^(?:(\*(?=[punctuation]))|\*)(?![*\s])|_/,middle:/^\*(?:(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)|\*(?:(?!overlapSkip)(?:[^*]|\\\*)|overlapSkip)*?\*)+?\*$|^_(?![_\s])(?:(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)|_(?:(?!overlapSkip)(?:[^_]|\\_)|overlapSkip)*?_)+?_$/,endAst:/[^punctuation\s]\*(?!\*)|[punctuation]\*(?!\*)(?:(?=[punctuation_\s]|$))/,endUnd:/[^\s]_(?!_)(?:(?=[punctuation*\s])|$)/},code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,br:/^( {2,}|\\)\n(?!\s*$)/,del:Vp,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\?@\\[\\]`^{|}~";V.punctuation=Me(V.punctuation).replace(/punctuation/g,V._punctuation).getRegex();V._blockSkip="\\[[^\\]]*?\\]\\([^\\)]*?\\)|`[^`]*?`|<[^>]*?>";V._overlapSkip="__[^_]*?__|\\*\\*\\[^\\*\\]*?\\*\\*";V._comment=Me(fe._comment).replace("(?:-->|$)","-->").getRegex();V.em.start=Me(V.em.start).replace(/punctuation/g,V._punctuation).getRegex();V.em.middle=Me(V.em.middle).replace(/punctuation/g,V._punctuation).replace(/overlapSkip/g,V._overlapSkip).getRegex();V.em.endAst=Me(V.em.endAst,"g").replace(/punctuation/g,V._punctuation).getRegex();V.em.endUnd=Me(V.em.endUnd,"g").replace(/punctuation/g,V._punctuation).getRegex();V.strong.start=Me(V.strong.start).replace(/punctuation/g,V._punctuation).getRegex();V.strong.middle=Me(V.strong.middle).replace(/punctuation/g,V._punctuation).replace(/overlapSkip/g,V._overlapSkip).getRegex();V.strong.endAst=Me(V.strong.endAst,"g").replace(/punctuation/g,V._punctuation).getRegex();V.strong.endUnd=Me(V.strong.endUnd,"g").replace(/punctuation/g,V._punctuation).getRegex();V.blockSkip=Me(V._blockSkip,"g").getRegex();V.overlapSkip=Me(V._overlapSkip,"g").getRegex();V._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g;V._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/;V._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/;V.autolink=Me(V.autolink).replace("scheme",V._scheme).replace("email",V._email).getRegex();V._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/;V.tag=Me(V.tag).replace("comment",V._comment).replace("attribute",V._attribute).getRegex();V._label=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/;V._href=/<(?:\\[<>]?|[^\s<>\\])*>|[^\s\x00-\x1f]*/;V._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/;V.link=Me(V.link).replace("label",V._label).replace("href",V._href).replace("title",V._title).getRegex();V.reflink=Me(V.reflink).replace("label",V._label).getRegex();V.reflinkSearch=Me(V.reflinkSearch,"g").replace("reflink",V.reflink).replace("nolink",V.nolink).getRegex();V.normal=Ga({},V);V.pedantic=Ga({},V.normal,{strong:{start:/^__|\*\*/,middle:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,endAst:/\*\*(?!\*)/g,endUnd:/__(?!_)/g},em:{start:/^_|\*/,middle:/^()\*(?=\S)([\s\S]*?\S)\*(?!\*)|^_(?=\S)([\s\S]*?\S)_(?!_)/,endAst:/\*(?!\*)/g,endUnd:/_(?!_)/g},link:Me(/^!?\[(label)\]\((.*?)\)/).replace("label",V._label).getRegex(),reflink:Me(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",V._label).getRegex()});V.gfm=Ga({},V.normal,{escape:Me(V.escape).replace("])","~|])").getRegex(),_extended_email:/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/,url:/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/,_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])([\s\S]*?[^\s~])\1(?=[^~]|$)/,text:/^([`~]+|[^`~])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\{var khe=GS(),{defaults:Ihe}=Mu(),{block:Hg,inline:Kp}=FB(),{repeatString:OB}=za();function Fhe(i){return i.replace(/---/g,"\u2014").replace(/--/g,"\u2013").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1\u2018").replace(/'/g,"\u2019").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1\u201C").replace(/"/g,"\u201D").replace(/\.{3}/g,"\u2026")}function AB(i){let e="",t,r,n=i.length;for(t=0;t.5&&(r="x"+r.toString(16)),e+="&#"+r+";";return e}LB.exports=class VS{constructor(e){this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Ihe,this.options.tokenizer=this.options.tokenizer||new khe,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options;let t={block:Hg.normal,inline:Kp.normal};this.options.pedantic?(t.block=Hg.pedantic,t.inline=Kp.pedantic):this.options.gfm&&(t.block=Hg.gfm,this.options.breaks?t.inline=Kp.breaks:t.inline=Kp.gfm),this.tokenizer.rules=t}static get rules(){return{block:Hg,inline:Kp}}static lex(e,t){return new VS(t).lex(e)}static lexInline(e,t){return new VS(t).inlineTokens(e)}lex(e){return e=e.replace(/\r\n|\r/g,` +`).replace(/\t/g," "),this.blockTokens(e,this.tokens,!0),this.inline(this.tokens),this.tokens}blockTokens(e,t=[],r=!0){e=e.replace(/^ +$/gm,"");let n,o,s,a;for(;e;){if(n=this.tokenizer.space(e)){e=e.substring(n.raw.length),n.type&&t.push(n);continue}if(n=this.tokenizer.code(e,t)){e=e.substring(n.raw.length),n.type?t.push(n):(a=t[t.length-1],a.raw+=` +`+n.raw,a.text+=` +`+n.text);continue}if(n=this.tokenizer.fences(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.heading(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.nptable(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.hr(e)){e=e.substring(n.raw.length),t.push(n);continue}if(n=this.tokenizer.blockquote(e)){e=e.substring(n.raw.length),n.tokens=this.blockTokens(n.text,[],r),t.push(n);continue}if(n=this.tokenizer.list(e)){for(e=e.substring(n.raw.length),s=n.items.length,o=0;o0)for(;(a=this.tokenizer.rules.inline.reflinkSearch.exec(s))!=null;)c.includes(a[0].slice(a[0].lastIndexOf("[")+1,-1))&&(s=s.slice(0,a.index)+"["+OB("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(a=this.tokenizer.rules.inline.blockSkip.exec(s))!=null;)s=s.slice(0,a.index)+"["+OB("a",a[0].length-2)+"]"+s.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);for(;e;){if(l||(u=""),l=!1,o=this.tokenizer.escape(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.tag(e,r,n)){e=e.substring(o.raw.length),r=o.inLink,n=o.inRawBlock,t.push(o);continue}if(o=this.tokenizer.link(e)){e=e.substring(o.raw.length),o.type==="link"&&(o.tokens=this.inlineTokens(o.text,[],!0,n)),t.push(o);continue}if(o=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(o.raw.length),o.type==="link"&&(o.tokens=this.inlineTokens(o.text,[],!0,n)),t.push(o);continue}if(o=this.tokenizer.strong(e,s,u)){e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],r,n),t.push(o);continue}if(o=this.tokenizer.em(e,s,u)){e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],r,n),t.push(o);continue}if(o=this.tokenizer.codespan(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.br(e)){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.del(e)){e=e.substring(o.raw.length),o.tokens=this.inlineTokens(o.text,[],r,n),t.push(o);continue}if(o=this.tokenizer.autolink(e,AB)){e=e.substring(o.raw.length),t.push(o);continue}if(!r&&(o=this.tokenizer.url(e,AB))){e=e.substring(o.raw.length),t.push(o);continue}if(o=this.tokenizer.inlineText(e,n,Fhe)){e=e.substring(o.raw.length),u=o.raw.slice(-1),l=!0,t.push(o);continue}if(e){let c="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(c);break}else throw new Error(c)}}return t}}});var KS=y((EIe,NB)=>{var{defaults:Ohe}=Mu(),{cleanUrl:qB,escape:zg}=za();NB.exports=class{constructor(e){this.options=e||Ohe}code(e,t,r){let n=(t||"").match(/\S*/)[0];if(this.options.highlight){let o=this.options.highlight(e,n);o!=null&&o!==e&&(r=!0,e=o)}return n?'
'+(r?e:zg(e,!0))+`
+`:"
"+(r?e:zg(e,!0))+`
+`}blockquote(e){return`
+`+e+`
+`}html(e){return e}heading(e,t,r,n){return this.options.headerIds?"'+e+" +`:""+e+" +`}hr(){return this.options.xhtml?`
+`:`
+`}list(e,t,r){let n=t?"ol":"ul",o=t&&r!==1?' start="'+r+'"':"";return"<"+n+o+`> +`+e+" +`}listitem(e){return"
  • "+e+`
  • +`}checkbox(e){return" "}paragraph(e){return"

    "+e+`

    +`}table(e,t){return t&&(t=""+t+""),` + +`+e+` +`+t+`
    +`}tablerow(e){return` +`+e+` +`}tablecell(e,t){let r=t.header?"th":"td";return(t.align?"<"+r+' align="'+t.align+'">':"<"+r+">")+e+" +`}strong(e){return""+e+""}em(e){return""+e+""}codespan(e){return""+e+""}br(){return this.options.xhtml?"
    ":"
    "}del(e){return""+e+""}link(e,t,r){if(e=qB(this.options.sanitize,this.options.baseUrl,e),e===null)return r;let n='",n}image(e,t,r){if(e=qB(this.options.sanitize,this.options.baseUrl,e),e===null)return r;let n=''+r+'":">",n}text(e){return e}}});var JS=y((TIe,$B)=>{$B.exports=class{strong(e){return e}em(e){return e}codespan(e){return e}del(e){return e}html(e){return e}text(e){return e}link(e,t,r){return""+r}image(e,t,r){return""+r}br(){return""}}});var YS=y((RIe,BB)=>{BB.exports=class{constructor(){this.seen={}}serialize(e){return e.toLowerCase().trim().replace(/<[!\/a-z].*?>/ig,"").replace(/[\u2000-\u206F\u2E00-\u2E7F\\'!"#$%&()*+,./:;<=>?@[\]^`{|}~]/g,"").replace(/\s/g,"-")}getNextSafeSlug(e,t){let r=e,n=0;if(this.seen.hasOwnProperty(r)){n=this.seen[e];do n++,r=e+"-"+n;while(this.seen.hasOwnProperty(r))}return t||(this.seen[e]=n,this.seen[r]=0),r}slug(e,t={}){let r=this.serialize(e);return this.getNextSafeSlug(r,t.dryrun)}}});var UB=y((kIe,jB)=>{var Ahe=KS(),Lhe=JS(),Mhe=YS(),{defaults:qhe}=Mu(),{unescape:Nhe}=za();jB.exports=class XS{constructor(e){this.options=e||qhe,this.options.renderer=this.options.renderer||new Ahe,this.renderer=this.options.renderer,this.renderer.options=this.options,this.textRenderer=new Lhe,this.slugger=new Mhe}static parse(e,t){return new XS(t).parse(e)}static parseInline(e,t){return new XS(t).parseInline(e)}parse(e,t=!0){let r="",n,o,s,a,l,u,c,f,p,d,h,m,w,v,D,x,S,P,A=e.length;for(n=0;n0&&D.tokens[0].type==="text"?(D.tokens[0].text=P+" "+D.tokens[0].text,D.tokens[0].tokens&&D.tokens[0].tokens.length>0&&D.tokens[0].tokens[0].type==="text"&&(D.tokens[0].tokens[0].text=P+" "+D.tokens[0].tokens[0].text)):D.tokens.unshift({type:"text",text:P}):v+=P),v+=this.parse(D.tokens,w),p+=this.renderer.listitem(v,S,x);r+=this.renderer.list(p,h,m);continue}case"html":{r+=this.renderer.html(d.text);continue}case"paragraph":{r+=this.renderer.paragraph(this.parseInline(d.tokens));continue}case"text":{for(p=d.tokens?this.parseInline(d.tokens):d.text;n+1{var Jp=MB(),Yp=UB(),WB=GS(),HB=KS(),$he=JS(),Bhe=YS(),{merge:Gg,checkSanitizeDeprecation:zB,escape:GB}=za(),{getDefaults:jhe,changeDefaults:Uhe,defaults:Whe}=Mu();function qe(i,e,t){if(typeof i=="undefined"||i===null)throw new Error("marked(): input parameter is undefined or null");if(typeof i!="string")throw new Error("marked(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected");if(typeof e=="function"&&(t=e,e=null),e=Gg({},qe.defaults,e||{}),zB(e),t){let r=e.highlight,n;try{n=Jp.lex(i,e)}catch(a){return t(a)}let o=function(a){let l;if(!a)try{l=Yp.parse(n,e)}catch(u){a=u}return e.highlight=r,a?t(a):t(null,l)};if(!r||r.length<3||(delete e.highlight,!n.length))return o();let s=0;qe.walkTokens(n,function(a){a.type==="code"&&(s++,setTimeout(()=>{r(a.text,a.lang,function(l,u){if(l)return o(l);u!=null&&u!==a.text&&(a.text=u,a.escaped=!0),s--,s===0&&o()})},0))}),s===0&&o();return}try{let r=Jp.lex(i,e);return e.walkTokens&&qe.walkTokens(r,e.walkTokens),Yp.parse(r,e)}catch(r){if(r.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

    An error occurred:

    "+GB(r.message+"",!0)+"
    ";throw r}}qe.options=qe.setOptions=function(i){return Gg(qe.defaults,i),Uhe(qe.defaults),qe};qe.getDefaults=jhe;qe.defaults=Whe;qe.use=function(i){let e=Gg({},i);if(i.renderer){let t=qe.defaults.renderer||new HB;for(let r in i.renderer){let n=t[r];t[r]=(...o)=>{let s=i.renderer[r].apply(t,o);return s===!1&&(s=n.apply(t,o)),s}}e.renderer=t}if(i.tokenizer){let t=qe.defaults.tokenizer||new WB;for(let r in i.tokenizer){let n=t[r];t[r]=(...o)=>{let s=i.tokenizer[r].apply(t,o);return s===!1&&(s=n.apply(t,o)),s}}e.tokenizer=t}if(i.walkTokens){let t=qe.defaults.walkTokens;e.walkTokens=r=>{i.walkTokens(r),t&&t(r)}}qe.setOptions(e)};qe.walkTokens=function(i,e){for(let t of i)switch(e(t),t.type){case"table":{for(let r of t.tokens.header)qe.walkTokens(r,e);for(let r of t.tokens.cells)for(let n of r)qe.walkTokens(n,e);break}case"list":{qe.walkTokens(t.items,e);break}default:t.tokens&&qe.walkTokens(t.tokens,e)}};qe.parseInline=function(i,e){if(typeof i=="undefined"||i===null)throw new Error("marked.parseInline(): input parameter is undefined or null");if(typeof i!="string")throw new Error("marked.parseInline(): input parameter is of type "+Object.prototype.toString.call(i)+", string expected");e=Gg({},qe.defaults,e||{}),zB(e);try{let t=Jp.lexInline(i,e);return e.walkTokens&&qe.walkTokens(t,e.walkTokens),Yp.parseInline(t,e)}catch(t){if(t.message+=` +Please report this to https://github.com/markedjs/marked.`,e.silent)return"

    An error occurred:

    "+GB(t.message+"",!0)+"
    ";throw t}};qe.Parser=Yp;qe.parser=Yp.parse;qe.Renderer=HB;qe.TextRenderer=$he;qe.Lexer=Jp;qe.lexer=Jp.lex;qe.Tokenizer=WB;qe.Slugger=Bhe;qe.parse=qe;VB.exports=qe});var YB=y((FIe,JB)=>{"use strict";var Hhe=/[|\\{}()[\]^$+*?.]/g;JB.exports=function(i){if(typeof i!="string")throw new TypeError("Expected a string");return i.replace(Hhe,"\\$&")}});var ZB=y((OIe,XB)=>{"use strict";XB.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var QS=y((AIe,r3)=>{var Va=ZB(),QB={};for(var ZS in Va)Va.hasOwnProperty(ZS)&&(QB[Va[ZS]]=ZS);var re=r3.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var si in re)if(re.hasOwnProperty(si)){if(!("channels"in re[si]))throw new Error("missing channels property: "+si);if(!("labels"in re[si]))throw new Error("missing channel labels property: "+si);if(re[si].labels.length!==re[si].channels)throw new Error("channel and label counts mismatch: "+si);e3=re[si].channels,t3=re[si].labels,delete re[si].channels,delete re[si].labels,Object.defineProperty(re[si],"channels",{value:e3}),Object.defineProperty(re[si],"labels",{value:t3})}var e3,t3;re.rgb.hsl=function(i){var e=i[0]/255,t=i[1]/255,r=i[2]/255,n=Math.min(e,t,r),o=Math.max(e,t,r),s=o-n,a,l,u;return o===n?a=0:e===o?a=(t-r)/s:t===o?a=2+(r-e)/s:r===o&&(a=4+(e-t)/s),a=Math.min(a*60,360),a<0&&(a+=360),u=(n+o)/2,o===n?l=0:u<=.5?l=s/(o+n):l=s/(2-o-n),[a,l*100,u*100]};re.rgb.hsv=function(i){var e,t,r,n,o,s=i[0]/255,a=i[1]/255,l=i[2]/255,u=Math.max(s,a,l),c=u-Math.min(s,a,l),f=function(p){return(u-p)/6/c+1/2};return c===0?n=o=0:(o=c/u,e=f(s),t=f(a),r=f(l),s===u?n=r-t:a===u?n=1/3+e-r:l===u&&(n=2/3+t-e),n<0?n+=1:n>1&&(n-=1)),[n*360,o*100,u*100]};re.rgb.hwb=function(i){var e=i[0],t=i[1],r=i[2],n=re.rgb.hsl(i)[0],o=1/255*Math.min(e,Math.min(t,r));return r=1-1/255*Math.max(e,Math.max(t,r)),[n,o*100,r*100]};re.rgb.cmyk=function(i){var e=i[0]/255,t=i[1]/255,r=i[2]/255,n,o,s,a;return a=Math.min(1-e,1-t,1-r),n=(1-e-a)/(1-a)||0,o=(1-t-a)/(1-a)||0,s=(1-r-a)/(1-a)||0,[n*100,o*100,s*100,a*100]};function zhe(i,e){return Math.pow(i[0]-e[0],2)+Math.pow(i[1]-e[1],2)+Math.pow(i[2]-e[2],2)}re.rgb.keyword=function(i){var e=QB[i];if(e)return e;var t=Infinity,r;for(var n in Va)if(Va.hasOwnProperty(n)){var o=Va[n],s=zhe(i,o);s.04045?Math.pow((e+.055)/1.055,2.4):e/12.92,t=t>.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92;var n=e*.4124+t*.3576+r*.1805,o=e*.2126+t*.7152+r*.0722,s=e*.0193+t*.1192+r*.9505;return[n*100,o*100,s*100]};re.rgb.lab=function(i){var e=re.rgb.xyz(i),t=e[0],r=e[1],n=e[2],o,s,a;return t/=95.047,r/=100,n/=108.883,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=n>.008856?Math.pow(n,1/3):7.787*n+16/116,o=116*r-16,s=500*(t-r),a=200*(r-n),[o,s,a]};re.hsl.rgb=function(i){var e=i[0]/360,t=i[1]/100,r=i[2]/100,n,o,s,a,l;if(t===0)return l=r*255,[l,l,l];r<.5?o=r*(1+t):o=r+t-r*t,n=2*r-o,a=[0,0,0];for(var u=0;u<3;u++)s=e+1/3*-(u-1),s<0&&s++,s>1&&s--,6*s<1?l=n+(o-n)*6*s:2*s<1?l=o:3*s<2?l=n+(o-n)*(2/3-s)*6:l=n,a[u]=l*255;return a};re.hsl.hsv=function(i){var e=i[0],t=i[1]/100,r=i[2]/100,n=t,o=Math.max(r,.01),s,a;return r*=2,t*=r<=1?r:2-r,n*=o<=1?o:2-o,a=(r+t)/2,s=r===0?2*n/(o+n):2*t/(r+t),[e,s*100,a*100]};re.hsv.rgb=function(i){var e=i[0]/60,t=i[1]/100,r=i[2]/100,n=Math.floor(e)%6,o=e-Math.floor(e),s=255*r*(1-t),a=255*r*(1-t*o),l=255*r*(1-t*(1-o));switch(r*=255,n){case 0:return[r,l,s];case 1:return[a,r,s];case 2:return[s,r,l];case 3:return[s,a,r];case 4:return[l,s,r];case 5:return[r,s,a]}};re.hsv.hsl=function(i){var e=i[0],t=i[1]/100,r=i[2]/100,n=Math.max(r,.01),o,s,a;return a=(2-t)*r,o=(2-t)*n,s=t*n,s/=o<=1?o:2-o,s=s||0,a/=2,[e,s*100,a*100]};re.hwb.rgb=function(i){var e=i[0]/360,t=i[1]/100,r=i[2]/100,n=t+r,o,s,a,l;n>1&&(t/=n,r/=n),o=Math.floor(6*e),s=1-r,a=6*e-o,(o&1)!=0&&(a=1-a),l=t+a*(s-t);var u,c,f;switch(o){default:case 6:case 0:u=s,c=l,f=t;break;case 1:u=l,c=s,f=t;break;case 2:u=t,c=s,f=l;break;case 3:u=t,c=l,f=s;break;case 4:u=l,c=t,f=s;break;case 5:u=s,c=t,f=l;break}return[u*255,c*255,f*255]};re.cmyk.rgb=function(i){var e=i[0]/100,t=i[1]/100,r=i[2]/100,n=i[3]/100,o,s,a;return o=1-Math.min(1,e*(1-n)+n),s=1-Math.min(1,t*(1-n)+n),a=1-Math.min(1,r*(1-n)+n),[o*255,s*255,a*255]};re.xyz.rgb=function(i){var e=i[0]/100,t=i[1]/100,r=i[2]/100,n,o,s;return n=e*3.2406+t*-1.5372+r*-.4986,o=e*-.9689+t*1.8758+r*.0415,s=e*.0557+t*-.204+r*1.057,n=n>.0031308?1.055*Math.pow(n,1/2.4)-.055:n*12.92,o=o>.0031308?1.055*Math.pow(o,1/2.4)-.055:o*12.92,s=s>.0031308?1.055*Math.pow(s,1/2.4)-.055:s*12.92,n=Math.min(Math.max(0,n),1),o=Math.min(Math.max(0,o),1),s=Math.min(Math.max(0,s),1),[n*255,o*255,s*255]};re.xyz.lab=function(i){var e=i[0],t=i[1],r=i[2],n,o,s;return e/=95.047,t/=100,r/=108.883,e=e>.008856?Math.pow(e,1/3):7.787*e+16/116,t=t>.008856?Math.pow(t,1/3):7.787*t+16/116,r=r>.008856?Math.pow(r,1/3):7.787*r+16/116,n=116*t-16,o=500*(e-t),s=200*(t-r),[n,o,s]};re.lab.xyz=function(i){var e=i[0],t=i[1],r=i[2],n,o,s;o=(e+16)/116,n=t/500+o,s=o-r/200;var a=Math.pow(o,3),l=Math.pow(n,3),u=Math.pow(s,3);return o=a>.008856?a:(o-16/116)/7.787,n=l>.008856?l:(n-16/116)/7.787,s=u>.008856?u:(s-16/116)/7.787,n*=95.047,o*=100,s*=108.883,[n,o,s]};re.lab.lch=function(i){var e=i[0],t=i[1],r=i[2],n,o,s;return n=Math.atan2(r,t),o=n*360/2/Math.PI,o<0&&(o+=360),s=Math.sqrt(t*t+r*r),[e,s,o]};re.lch.lab=function(i){var e=i[0],t=i[1],r=i[2],n,o,s;return s=r/360*2*Math.PI,n=t*Math.cos(s),o=t*Math.sin(s),[e,n,o]};re.rgb.ansi16=function(i){var e=i[0],t=i[1],r=i[2],n=1 in arguments?arguments[1]:re.rgb.hsv(i)[2];if(n=Math.round(n/50),n===0)return 30;var o=30+(Math.round(r/255)<<2|Math.round(t/255)<<1|Math.round(e/255));return n===2&&(o+=60),o};re.hsv.ansi16=function(i){return re.rgb.ansi16(re.hsv.rgb(i),i[2])};re.rgb.ansi256=function(i){var e=i[0],t=i[1],r=i[2];if(e===t&&t===r)return e<8?16:e>248?231:Math.round((e-8)/247*24)+232;var n=16+36*Math.round(e/255*5)+6*Math.round(t/255*5)+Math.round(r/255*5);return n};re.ansi16.rgb=function(i){var e=i%10;if(e===0||e===7)return i>50&&(e+=3.5),e=e/10.5*255,[e,e,e];var t=(~~(i>50)+1)*.5,r=(e&1)*t*255,n=(e>>1&1)*t*255,o=(e>>2&1)*t*255;return[r,n,o]};re.ansi256.rgb=function(i){if(i>=232){var e=(i-232)*10+8;return[e,e,e]}i-=16;var t,r=Math.floor(i/36)/5*255,n=Math.floor((t=i%36)/6)/5*255,o=t%6/5*255;return[r,n,o]};re.rgb.hex=function(i){var e=((Math.round(i[0])&255)<<16)+((Math.round(i[1])&255)<<8)+(Math.round(i[2])&255),t=e.toString(16).toUpperCase();return"000000".substring(t.length)+t};re.hex.rgb=function(i){var e=i.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];var t=e[0];e[0].length===3&&(t=t.split("").map(function(a){return a+a}).join(""));var r=parseInt(t,16),n=r>>16&255,o=r>>8&255,s=r&255;return[n,o,s]};re.rgb.hcg=function(i){var e=i[0]/255,t=i[1]/255,r=i[2]/255,n=Math.max(Math.max(e,t),r),o=Math.min(Math.min(e,t),r),s=n-o,a,l;return s<1?a=o/(1-s):a=0,s<=0?l=0:n===e?l=(t-r)/s%6:n===t?l=2+(r-e)/s:l=4+(e-t)/s+4,l/=6,l%=1,[l*360,s*100,a*100]};re.hsl.hcg=function(i){var e=i[1]/100,t=i[2]/100,r=1,n=0;return t<.5?r=2*e*t:r=2*e*(1-t),r<1&&(n=(t-.5*r)/(1-r)),[i[0],r*100,n*100]};re.hsv.hcg=function(i){var e=i[1]/100,t=i[2]/100,r=e*t,n=0;return r<1&&(n=(t-r)/(1-r)),[i[0],r*100,n*100]};re.hcg.rgb=function(i){var e=i[0]/360,t=i[1]/100,r=i[2]/100;if(t===0)return[r*255,r*255,r*255];var n=[0,0,0],o=e%1*6,s=o%1,a=1-s,l=0;switch(Math.floor(o)){case 0:n[0]=1,n[1]=s,n[2]=0;break;case 1:n[0]=a,n[1]=1,n[2]=0;break;case 2:n[0]=0,n[1]=1,n[2]=s;break;case 3:n[0]=0,n[1]=a,n[2]=1;break;case 4:n[0]=s,n[1]=0,n[2]=1;break;default:n[0]=1,n[1]=0,n[2]=a}return l=(1-t)*r,[(t*n[0]+l)*255,(t*n[1]+l)*255,(t*n[2]+l)*255]};re.hcg.hsv=function(i){var e=i[1]/100,t=i[2]/100,r=e+t*(1-e),n=0;return r>0&&(n=e/r),[i[0],n*100,r*100]};re.hcg.hsl=function(i){var e=i[1]/100,t=i[2]/100,r=t*(1-e)+.5*e,n=0;return r>0&&r<.5?n=e/(2*r):r>=.5&&r<1&&(n=e/(2*(1-r))),[i[0],n*100,r*100]};re.hcg.hwb=function(i){var e=i[1]/100,t=i[2]/100,r=e+t*(1-e);return[i[0],(r-e)*100,(1-r)*100]};re.hwb.hcg=function(i){var e=i[1]/100,t=i[2]/100,r=1-t,n=r-e,o=0;return n<1&&(o=(r-n)/(1-n)),[i[0],n*100,o*100]};re.apple.rgb=function(i){return[i[0]/65535*255,i[1]/65535*255,i[2]/65535*255]};re.rgb.apple=function(i){return[i[0]/255*65535,i[1]/255*65535,i[2]/255*65535]};re.gray.rgb=function(i){return[i[0]/100*255,i[0]/100*255,i[0]/100*255]};re.gray.hsl=re.gray.hsv=function(i){return[0,0,i[0]]};re.gray.hwb=function(i){return[0,100,i[0]]};re.gray.cmyk=function(i){return[0,0,0,i[0]]};re.gray.lab=function(i){return[i[0],0,0]};re.gray.hex=function(i){var e=Math.round(i[0]/100*255)&255,t=(e<<16)+(e<<8)+e,r=t.toString(16).toUpperCase();return"000000".substring(r.length)+r};re.rgb.gray=function(i){var e=(i[0]+i[1]+i[2])/3;return[e/255*100]}});var n3=y((LIe,i3)=>{var Vg=QS();function Ghe(){for(var i={},e=Object.keys(Vg),t=e.length,r=0;r{var eC=QS(),Yhe=n3(),qu={},Xhe=Object.keys(eC);function Zhe(i){var e=function(t){return t==null?t:(arguments.length>1&&(t=Array.prototype.slice.call(arguments)),i(t))};return"conversion"in i&&(e.conversion=i.conversion),e}function Qhe(i){var e=function(t){if(t==null)return t;arguments.length>1&&(t=Array.prototype.slice.call(arguments));var r=i(t);if(typeof r=="object")for(var n=r.length,o=0;o{"use strict";var Nu=s3(),Kg=(i,e)=>function(){return`[${i.apply(Nu,arguments)+e}m`},Jg=(i,e)=>function(){let t=i.apply(Nu,arguments);return`[${38+e};5;${t}m`},Yg=(i,e)=>function(){let t=i.apply(Nu,arguments);return`[${38+e};2;${t[0]};${t[1]};${t[2]}m`};function eme(){let i=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],gray:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.grey=e.color.gray;for(let n of Object.keys(e)){let o=e[n];for(let s of Object.keys(o)){let a=o[s];e[s]={open:`[${a[0]}m`,close:`[${a[1]}m`},o[s]=e[s],i.set(a[0],a[1])}Object.defineProperty(e,n,{value:o,enumerable:!1}),Object.defineProperty(e,"codes",{value:i,enumerable:!1})}let t=n=>n,r=(n,o,s)=>[n,o,s];e.color.close="",e.bgColor.close="",e.color.ansi={ansi:Kg(t,0)},e.color.ansi256={ansi256:Jg(t,0)},e.color.ansi16m={rgb:Yg(r,0)},e.bgColor.ansi={ansi:Kg(t,10)},e.bgColor.ansi256={ansi256:Jg(t,10)},e.bgColor.ansi16m={rgb:Yg(r,10)};for(let n of Object.keys(Nu)){if(typeof Nu[n]!="object")continue;let o=Nu[n];n==="ansi16"&&(n="ansi"),"ansi16"in o&&(e.color.ansi[n]=Kg(o.ansi16,0),e.bgColor.ansi[n]=Kg(o.ansi16,10)),"ansi256"in o&&(e.color.ansi256[n]=Jg(o.ansi256,0),e.bgColor.ansi256[n]=Jg(o.ansi256,10)),"rgb"in o&&(e.color.ansi16m[n]=Yg(o.rgb,0),e.bgColor.ansi16m[n]=Yg(o.rgb,10))}return e}Object.defineProperty(a3,"exports",{enumerable:!0,get:eme})});var c3=y((NIe,u3)=>{"use strict";u3.exports=(i,e)=>{e=e||process.argv;let t=i.startsWith("-")?"":i.length===1?"-":"--",r=e.indexOf(t+i),n=e.indexOf("--");return r!==-1&&(n===-1?!0:r{"use strict";var tme=require("os"),Pn=c3(),Rr=process.env,$u;Pn("no-color")||Pn("no-colors")||Pn("color=false")?$u=!1:(Pn("color")||Pn("colors")||Pn("color=true")||Pn("color=always"))&&($u=!0);"FORCE_COLOR"in Rr&&($u=Rr.FORCE_COLOR.length===0||parseInt(Rr.FORCE_COLOR,10)!==0);function rme(i){return i===0?!1:{level:i,hasBasic:!0,has256:i>=2,has16m:i>=3}}function ime(i){if($u===!1)return 0;if(Pn("color=16m")||Pn("color=full")||Pn("color=truecolor"))return 3;if(Pn("color=256"))return 2;if(i&&!i.isTTY&&$u!==!0)return 0;let e=$u?1:0;if(process.platform==="win32"){let t=tme.release().split(".");return Number(process.versions.node.split(".")[0])>=8&&Number(t[0])>=10&&Number(t[2])>=10586?Number(t[2])>=14931?3:2:1}if("CI"in Rr)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(t=>t in Rr)||Rr.CI_NAME==="codeship"?1:e;if("TEAMCITY_VERSION"in Rr)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(Rr.TEAMCITY_VERSION)?1:0;if(Rr.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in Rr){let t=parseInt((Rr.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(Rr.TERM_PROGRAM){case"iTerm.app":return t>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(Rr.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(Rr.TERM)||"COLORTERM"in Rr?1:(Rr.TERM==="dumb",e)}function tC(i){let e=ime(i);return rme(e)}f3.exports={supportsColor:tC,stdout:tC(process.stdout),stderr:tC(process.stderr)}});var v3=y((BIe,g3)=>{"use strict";var nme=/(?:\\(u[a-f\d]{4}|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,d3=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,ome=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,sme=/\\(u[a-f\d]{4}|x[a-f\d]{2}|.)|([^\\])/gi,ame=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a","\x07"]]);function h3(i){return i[0]==="u"&&i.length===5||i[0]==="x"&&i.length===3?String.fromCharCode(parseInt(i.slice(1),16)):ame.get(i)||i}function lme(i,e){let t=[],r=e.trim().split(/\s*,\s*/g),n;for(let o of r)if(!isNaN(o))t.push(Number(o));else if(n=o.match(ome))t.push(n[2].replace(sme,(s,a,l)=>a?h3(a):l));else throw new Error(`Invalid Chalk template style argument: ${o} (in style '${i}')`);return t}function ume(i){d3.lastIndex=0;let e=[],t;for(;(t=d3.exec(i))!==null;){let r=t[1];if(t[2]){let n=lme(r,t[2]);e.push([r].concat(n))}else e.push([r])}return e}function m3(i,e){let t={};for(let n of e)for(let o of n.styles)t[o[0]]=n.inverse?null:o.slice(1);let r=i;for(let n of Object.keys(t))if(Array.isArray(t[n])){if(!(n in r))throw new Error(`Unknown Chalk style: ${n}`);t[n].length>0?r=r[n].apply(r,t[n]):r=r[n]}return r}g3.exports=(i,e)=>{let t=[],r=[],n=[];if(e.replace(nme,(o,s,a,l,u,c)=>{if(s)n.push(h3(s));else if(l){let f=n.join("");n=[],r.push(t.length===0?f:m3(i,t)(f)),t.push({inverse:a,styles:ume(l)})}else if(u){if(t.length===0)throw new Error("Found extraneous } in Chalk template literal");r.push(m3(i,t)(n.join(""))),n=[],t.pop()}else n.push(c)}),r.push(n.join("")),t.length>0){let o=`Chalk template literal is missing ${t.length} closing bracket${t.length===1?"":"s"} (\`}\`)`;throw new Error(o)}return r.join("")}});var x3=y((jIe,Zp)=>{"use strict";var rC=YB(),Gt=l3(),iC=p3().stdout,cme=v3(),y3=process.platform==="win32"&&!(process.env.TERM||"").toLowerCase().startsWith("xterm"),b3=["ansi","ansi","ansi256","ansi16m"],w3=new Set(["gray"]),Bu=Object.create(null);function D3(i,e){e=e||{};let t=iC?iC.level:0;i.level=e.level===void 0?t:e.level,i.enabled="enabled"in e?e.enabled:i.level>0}function Xp(i){if(!this||!(this instanceof Xp)||this.template){let e={};return D3(e,i),e.template=function(){let t=[].slice.call(arguments);return dme.apply(null,[e.template].concat(t))},Object.setPrototypeOf(e,Xp.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=Xp,e.template}D3(this,i)}y3&&(Gt.blue.open="");for(let i of Object.keys(Gt))Gt[i].closeRe=new RegExp(rC(Gt[i].close),"g"),Bu[i]={get(){let e=Gt[i];return Xg.call(this,this._styles?this._styles.concat(e):[e],this._empty,i)}};Bu.visible={get(){return Xg.call(this,this._styles||[],!0,"visible")}};Gt.color.closeRe=new RegExp(rC(Gt.color.close),"g");for(let i of Object.keys(Gt.color.ansi))w3.has(i)||(Bu[i]={get(){let e=this.level;return function(){let r={open:Gt.color[b3[e]][i].apply(null,arguments),close:Gt.color.close,closeRe:Gt.color.closeRe};return Xg.call(this,this._styles?this._styles.concat(r):[r],this._empty,i)}}});Gt.bgColor.closeRe=new RegExp(rC(Gt.bgColor.close),"g");for(let i of Object.keys(Gt.bgColor.ansi)){if(w3.has(i))continue;let e="bg"+i[0].toUpperCase()+i.slice(1);Bu[e]={get(){let t=this.level;return function(){let n={open:Gt.bgColor[b3[t]][i].apply(null,arguments),close:Gt.bgColor.close,closeRe:Gt.bgColor.closeRe};return Xg.call(this,this._styles?this._styles.concat(n):[n],this._empty,i)}}}}var fme=Object.defineProperties(()=>{},Bu);function Xg(i,e,t){let r=function(){return pme.apply(r,arguments)};r._styles=i,r._empty=e;let n=this;return Object.defineProperty(r,"level",{enumerable:!0,get(){return n.level},set(o){n.level=o}}),Object.defineProperty(r,"enabled",{enumerable:!0,get(){return n.enabled},set(o){n.enabled=o}}),r.hasGrey=this.hasGrey||t==="gray"||t==="grey",r.__proto__=fme,r}function pme(){let i=arguments,e=i.length,t=String(arguments[0]);if(e===0)return"";if(e>1)for(let n=1;n{"use strict";S3.exports=({onlyFirst:i=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,i?void 0:"g")}});var Zg=y((WIe,E3)=>{"use strict";var hme=C3();E3.exports=i=>typeof i=="string"?i.replace(hme(),""):i});var T3=y((HIe,nC)=>{"use strict";var _3=i=>Number.isNaN(i)?!1:i>=4352&&(i<=4447||i===9001||i===9002||11904<=i&&i<=12871&&i!==12351||12880<=i&&i<=19903||19968<=i&&i<=42182||43360<=i&&i<=43388||44032<=i&&i<=55203||63744<=i&&i<=64255||65040<=i&&i<=65049||65072<=i&&i<=65131||65281<=i&&i<=65376||65504<=i&&i<=65510||110592<=i&&i<=110593||127488<=i&&i<=127569||131072<=i&&i<=262141);nC.exports=_3;nC.exports.default=_3});var R3=y((zIe,P3)=>{"use strict";P3.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var I3=y((GIe,oC)=>{"use strict";var mme=Zg(),gme=T3(),vme=R3(),k3=i=>{if(i=i.replace(vme()," "),typeof i!="string"||i.length===0)return 0;i=mme(i);let e=0;for(let t=0;t=127&&r<=159||r>=768&&r<=879||(r>65535&&t++,e+=gme(r)?2:1)}return e};oC.exports=k3;oC.exports.default=k3});var O3=y(ju=>{var yme=I3();ju.repeat=function(i,e){return Array(e+1).join(i)};ju.pad=function(i,e,t,r){if(e+1>=i.length)switch(r){case"left":i=Array(e+1-i.length).join(t)+i;break;case"both":var n=Math.ceil((padlen=e-i.length)/2),o=padlen-n;i=Array(o+1).join(t)+i+Array(n+1).join(t);break;default:i=i+Array(e+1-i.length).join(t)}return i};ju.truncate=function(i,e,t){return t=t||"\u2026",i.length>=e?i.substr(0,e-t.length)+t:i};function F3(i,e){for(var t in e)e[t]&&e[t].constructor&&e[t].constructor===Object?(i[t]=i[t]||{},F3(i[t],e[t])):i[t]=e[t];return i}ju.options=F3;ju.strlen=function(i){var e=/\u001b\[(?:\d*;){0,5}\d*m/g,t=(""+(i!=null?i:"")).replace(e,""),r=t.split(` +`);return r.reduce(function(n,o){var s=yme(o);return s>n?s:n},0)}});var A3=y((KIe,bme)=>{bme.exports={name:"cli-table",description:"Pretty unicode tables for the CLI",version:"0.3.4",license:"MIT",author:"Guillermo Rauch ",contributors:["Sonny Michaud (http://github.com/sonnym)","Gabriel Sambarino (http://github.com/chrean)"],repository:{type:"git",url:"https://github.com/Automattic/cli-table.git"},keywords:["cli","colors","table"],dependencies:{chalk:"^2.4.1","string-width":"^4.2.0"},devDependencies:{"@babel/core":"^7.12.9","@babel/preset-env":"^7.12.7","@babel/preset-typescript":"^7.12.7","babel-jest":"^26.6.3",expect:"^26.6.2",expresso:"~0.9",jest:"^26.6.3","jest-mock":"^26.6.2","publish-please":"^5.5.2","ts-node":"^9.1.0",typescript:"^4.1.2"},main:"lib",files:["lib"],scripts:{test:"jest","publish-please":"publish-please --access public"},engines:{node:">= 10.0.0"}}});var L3=y((JIe,aC)=>{var wme=x3(),Ka=O3(),sC=Ka.repeat,Dme=Ka.truncate,xme=Ka.pad;function Qp(i){this.options=Ka.options({chars:{top:"\u2500","top-mid":"\u252C","top-left":"\u250C","top-right":"\u2510",bottom:"\u2500","bottom-mid":"\u2534","bottom-left":"\u2514","bottom-right":"\u2518",left:"\u2502","left-mid":"\u251C",mid:"\u2500","mid-mid":"\u253C",right:"\u2502","right-mid":"\u2524",middle:"\u2502"},truncate:"\u2026",colors:!0,colWidths:[],colAligns:[],style:{"padding-left":1,"padding-right":1,head:["red"],border:["white"],compact:!1},head:[]},i)}Qp.prototype.__proto__=Array.prototype;Qp.prototype.__defineGetter__("width",function(){var i=this.toString().split(` +`);return i.length?i[0].length:0});Qp.prototype.render;Qp.prototype.toString=function(){var i="",e=this.options,t=e.style,r=e.head,n=e.chars,o=e.truncate,s=e.colWidths||new Array(this.head.length),a=0;if(!r.length&&!this.length)return"";if(!s.length){var l=this.slice(0);r.length&&(l=l.concat([r])),l.forEach(function(v){if(Array.isArray(v)&&v.length)u(v);else{var D=Object.keys(v)[0],x=v[D];s[0]=Math.max(s[0]||0,c(D)||0),Array.isArray(x)&&x.length?u(x,1):s[1]=Math.max(s[1]||0,c(x)||0)}})}a=(s.length==1?s[0]:s.reduce(function(v,D){return v+D}))+s.length+1;function u(v,D){var D=D||0;v.forEach(function(x,S){s[S+D]=Math.max(s[S+D]||0,c(x)||0)})}function c(v){return typeof v=="object"&&v&&v.width!=null?v.width:(typeof v=="object"&&v!==null?Ka.strlen(v.text):Ka.strlen(v))+(t["padding-left"]||0)+(t["padding-right"]||0)}function f(v,D,x,S){var P=0,v=D+sC(v,a-2)+x;return s.forEach(function(A,R){R!=s.length-1&&(P+=A+1,v=v.substr(0,P)+S+v.substr(P+1))}),h(e.style.border,v)}function p(){var v=f(n.top,n["top-left"]||n.top,n["top-right"]||n.top,n["top-mid"]);v&&(i+=v+` +`)}function d(v,D){var x=[],S=0;if(!Array.isArray(v)&&typeof v=="object"){var P=Object.keys(v)[0],A=v[P],R=!0;Array.isArray(A)?(v=A,v.unshift(P)):v=[P,A]}v.forEach(function(q,F){var O=(q==null?"":q).toString().split(` +`).reduce(function(X,de){return X.push(m(de,F)),X},[]),U=O.length;U>S&&(S=U),x.push({contents:O,height:U})});var M=new Array(S);x.forEach(function(q,F){q.contents.forEach(function(X,de){M[de]||(M[de]=[]),(D||R&&F===0&&e.style.head)&&(X=h(e.style.head,X)),M[de].push(X)});for(var O=q.height,U=S;O0&&(L+=` +`+h(e.style.border,n.left)),L+=q.join(h(e.style.border,n.middle))+h(e.style.border,n.right)}),h(e.style.border,n.left)+L}function h(v,D){return D?(e.colors&&v.forEach(function(x){D=wme[x](D)}),D):""}function m(v,D){var v=String(typeof v=="object"&&v.text?v.text:v),x=Ka.strlen(v),S=s[D]-(t["padding-left"]||0)-(t["padding-right"]||0),P=e.colAligns[D]||"left";return sC(" ",t["padding-left"]||0)+(x==S?v:x{"use strict";var M3=10,q3=(i=0)=>e=>`[${38+i};5;${e}m`,N3=(i=0)=>(e,t,r)=>`[${38+i};2;${e};${t};${r}m`;function Sme(){let i=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[t,r]of Object.entries(e)){for(let[n,o]of Object.entries(r))e[n]={open:`[${o[0]}m`,close:`[${o[1]}m`},r[n]=e[n],i.set(o[0],o[1]);Object.defineProperty(e,t,{value:r,enumerable:!1})}return Object.defineProperty(e,"codes",{value:i,enumerable:!1}),e.color.close="",e.bgColor.close="",e.color.ansi256=q3(),e.color.ansi16m=N3(),e.bgColor.ansi256=q3(M3),e.bgColor.ansi16m=N3(M3),e.rgbToAnsi256=(t,r,n)=>t===r&&r===n?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5),e.hexToRgb=t=>{let r=/(?[a-f\d]{6}|[a-f\d]{3})/i.exec(t.toString(16));if(!r)return[0,0,0];let{colorString:n}=r.groups;n.length===3&&(n=n.split("").map(s=>s+s).join(""));let o=Number.parseInt(n,16);return[o>>16&255,o>>8&255,o&255]},e.hexToAnsi256=t=>e.rgbToAnsi256(...e.hexToRgb(t)),e}Object.defineProperty($3,"exports",{enumerable:!0,get:Sme})});function j3(i){return`${mr.default.gray.open}${i}${mr.default.gray.close}`}function lC(i){return`${mr.default.magenta.open}${i}${mr.default.magenta.close}`}function U3(i){return`${mr.default.bold.open}${i}${mr.default.bold.close}`}function uC(i){return`${mr.default.underline.open}${i}${mr.default.underline.close}`}function W3(i){return`${mr.default.strikethrough.open}${i}${mr.default.strikethrough.close}`}function H3(i){return`${mr.default.italic.open}${i}${mr.default.italic.close}`}function z3(i){return`${mr.default.yellow.open}${i}${mr.default.yellow.close}`}function cC(i){return`${mr.default.blue.open}${i}${mr.default.blue.close}`}var mr,G3=I(()=>{mr=E(B3())});function X3(i,e){return e?i.replace(Tme,/\n/g):i}function Pme(i,e){return typeof i=="number"?new Array(i+1).join(" "):typeof i=="string"&&Rme(i)?i:new Array(e+1).join(" ")}function Rme(i){return _me.some(function(e){return i.match("^("+e+")+$")})}function kme(i,e){return e.replace(/(^|\n)(.+)/g,"$1"+i+"$2")}function Ime(i,e){return e&&i+e.split(` +`).join(` +`+i)}function Ame(i,e){let t=new RegExp("(\\S(?: | )?)((?:"+e+")+)("+Z3+"(?:.*)+)$","gm");return i.replace(t,`$1 +`+e+"$2$3")}function ej(i){return" ".repeat(i.length)}function Lme(i,e){return Q3(e,i)?e:ej(pC)+e}function Mme(i,e){let t=Lme.bind(null,e);return i.split(` +`).filter(Rn).map(t).join(` +`)}function qme(i,e,t){return Q3(e,i)?{num:t+1,line:e.replace(pC,tj(t+1))}:{num:t,line:ej(tj(t))+e}}function Nme(i,e){let t=qme.bind(null,e),r=0;return i.split(` +`).filter(Rn).map(n=>{let o=t(n,r);return r=o.num,o.line}).join(` +`)}function $me(i,e,t){return i=i.trim(),i=e?Nme(i,t):Mme(i,t),i}function ed(i){return i+` + +`}function Bme(i){return i.replace(Eme,":")}function rj(i,e=null){if(!i)return[];e=e||Rn;let t=e(i).split(` +`),r=[];return t.forEach(function(n){if(!n)return;let o=n.replace(Cme,"").split(K3);r.push(o.splice(0,o.length-1))}),r}function ij(i){return i.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}function jme(i){return i.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,'"').replace(/'/g,"'")}function Rn(i){return i}var V3,QIe,K3,fC,Cme,J3,Eme,_me,Tme,Y3,Fme,Ome,Z3,Q3,pC,tj,dC,nj,hC,oj=I(()=>{V3=E(L3());G3();QIe=W()("markdown-renderer"),K3="^*||*^",fC="*|*|*|*",Cme=new RegExp(ij(fC),"g"),J3="*#COLON|*",Eme=new RegExp(ij(J3),"g"),_me=[" "],Tme="\r",Y3={code:Rn,blockquote:Rn,html:j3,heading:lC,firstHeading:lC,hr:Rn,listitem:Rn,list:$me,table:Rn,paragraph:Rn,strong:U3,em:H3,codespan:z3,del:W3,link:uC,href:uC,text:Rn,unescape:!0,emoji:!1,width:80,showSectionPrefix:!0,tab:2,tableOptions:{}};Fme="\\*",Ome="\\d+\\.",Z3="(?:"+[Fme,Ome].join("|")+")";Q3=function(i,e){return i.match("^(?:"+e+")*"+Z3)};pC="* ";tj=function(i){return i+". "};dC=new Map,nj=class{constructor(e={},t={}){this.options=e;this.highlightOptions=t;this.o=Object.assign({},Y3,e),this.tab=Pme(this.o.tab,Y3.tab),this.tableSettings=this.o.tableOptions,this.unescape=this.o.unescape?jme:Rn,this.highlightOptions=t||{},this.transform=this.compose(Bme,this.unescape)}textLength(e){return e.replace(/\u001b\[(?:\d{1,3})(?:;\d{1,3})*m/g,"").length}text(e){return this.o.text(e)}code(e,t,r){return"``` "+t+` +`+e+"\n```\n"}blockquote(e){return ed(this.o.blockquote(Ime(this.tab,e.trim())))}html(e){return this.o.html(e)}heading(e,t,r){return e=this.transform(e),e=(this.o.showSectionPrefix?new Array(t+1).join("#")+" ":"")+e,ed(t===1?this.o.firstHeading(e):this.o.heading(e))}hr(){return`--- + +`}list(e,t){return e=this.o.list(e,t,this.tab),ed(Ame(kme(this.tab,e),this.tab))}listitem(e){let t=this.compose(this.o.listitem,this.transform);return e.indexOf(` +`)!==-1&&(e=e.trim()),` +`+pC+t(e)}checkbox(e){return"["+(e?"X":" ")+"] "}paragraph(e){return e=this.compose(this.o.paragraph,this.transform)(e),ed(e)}table(e,t){let r=new V3.default(Object.assign({},{head:rj(e)[0]},this.tableSettings));return rj(t,this.transform).forEach(function(n){r.push(n)}),ed(this.o.table(r.toString()))}tablerow(e){return fC+e+fC+` +`}tablecell(e,t){return e+K3}strong(e){return this.o.strong(e)}em(e){return e=X3(e,this.o.reflowText),this.o.em(e)}codespan(e){return e=X3(e,this.o.reflowText),this.o.codespan(e.replace(/:/g,J3))}br(){return` +`}del(e){return this.o.del(e)}link(e,t,r){let n;if(this.options.sanitize){try{n=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(s){return""}if(n.startsWith("javascript:"))return""}if(r&&e&&r!=e&&dC.set(r,e),r&&r!=e)return cC(r);let o=this.o.href(e);return this.o.link(o)}image(e,t,r){if(typeof this.o.image=="function")return this.o.image(e,t,r);let n="!["+r;return t&&(n+=" \u2013 "+t),n+"]("+e+`) +`}compose(...e){return(...t)=>{for(let r=e.length;r-- >0;)t=[e[r].apply(this,t)];return t[0]}}static getLinks(){let e=[];for(let[t,r]of dC.entries())e.push(`${cC(t)}: ${r}`);return dC.clear(),e}},hC=nj});function me(i){return Buffer.byteLength(i)}function Uu(i){return i?i[0].toUpperCase()+i.slice(1):""}function Ci(i,e){let t=i.slice(0,e);return Buffer.byteLength(t)}function td(i,e){return Buffer.from(i,"utf8").slice(0,e).toString("utf8").length}function er(i,e,t){return Buffer.from(i,"utf8").slice(e,t).toString("utf8")}function sj(i){let e=i.charCodeAt(0);return e>128?!1:e==95||e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}var Ct=I(()=>{});function Wu(i,e=!1){let t=rd(i),r=[],n="";for(let o of t){if(!o.text)continue;let{foreground:s,background:a,bold:l,italic:u,underline:c}=o,f=me(n);if(s||a||l||u||c){let p=[f,f+me(o.text)],d="";s&&a?d=`CocList${Uu(s)}${Uu(a)}`:s?e?s=="yellow"?d="CocMarkdownCode":s=="blue"?d="CocMarkdownLink":s=="magenta"?d="CocMarkdownHeader":d=`CocListFg${Uu(s)}`:d=`CocListFg${Uu(s)}`:a?d=`CocListBg${Uu(a)}`:l?d="CocBold":u?d="CocItalic":c&&(d="CocUnderline"),r.push({span:p,hlGroup:d})}n=n+o.text}return{line:n,highlights:r}}function rd(i){let e=null,t=null,r="",n=[],o=[],s={},a;a=()=>{let l,u;r.length?r=r.substr(0,r.length-1):o.length&&(l=o.length-1,u=o[l].text,u.length===1?o.pop():o[l].text=u.substr(0,u.length-1))};for(let l=0;l{aj[u]?s.foreground=aj[u]:lj[u]?s.background=lj[u]:u==39?delete s.foreground:u==49?delete s.background:uj[u]?s[uj[u]]=!0:u==22?s.bold=!1:u==23?s.italic=!1:u==24&&(s.underline=!1)}),n=[]):t+=i[l];continue}i[l]==""?e=i[l]:i[l]=="\b"?a():r+=i[l]}return r&&(s.text=r+(e||""),o.push(s)),o}var aj,lj,uj,Hu=I(()=>{Ct();aj={30:"black",31:"red",32:"green",33:"yellow",34:"blue",35:"magenta",36:"cyan",37:"white",90:"grey"},lj={40:"black",41:"red",42:"green",43:"yellow",44:"blue",45:"magenta",46:"cyan",47:"white"},uj={1:"bold",3:"italic",4:"underline"}});function Qg(i,e={}){let t=[],r=[],n=[],o=0;for(let s of i){let a=t.length,{content:l,filetype:u}=s;if(u=="markdown"){let c=Hme(l,e);n.push(...c.codes.map(f=>(f.startLine=f.startLine+a,f.endLine=f.endLine+a,f))),r.push(...c.highlights.map(f=>(f.lnum=f.lnum+a,f))),t.push(...c.lines)}else{let c=l.trim().split(/\r?\n/);Ume.includes(s.filetype)?n.push({hlGroup:`Coc${u}Float`,startLine:a,endLine:a+c.length}):n.push({filetype:s.filetype,startLine:a,endLine:a+c.length}),t.push(...c)}if(s.active){let c=Wme(l,a,s.active);c.length&&r.push(...c)}o!=i.length-1&&t.push("\u2014"),o=o+1}return{lines:t,highlights:r,codes:n}}function Wme(i,e,t){let r=[],[n,o]=t,s=i.split(/\r?\n/),a=0,l=!1;for(let u=0;uo){let f=me(c.slice(0,o-a));r.push({colStart:0,colEnd:f,lnum:u+e,hlGroup:"CocUnderline"}),l=!1;break}else{let f=me(c);r.push({colStart:0,colEnd:f,lnum:u+e,hlGroup:"CocUnderline"})}else if(a+c.length>n){l=!0;let f=me(c.slice(0,n-a));if(a+c.length>o){let p=me(c.slice(0,o-a));l=!1,r.push({colStart:f,colEnd:p,lnum:u+e,hlGroup:"CocUnderline"});break}else{let p=me(c);r.push({colStart:f,colEnd:p,lnum:u+e,hlGroup:"CocUnderline"})}}a=a+c.length+1}return r}function Hme(i,e){mC.default.setOptions({renderer:new hC,gfm:!0});let t=[],r=[],n=[],o=0,s=!1,a,l=0,u=(0,mC.default)(i),c=hC.getLinks();c.length&&(u=u+` + +`+c.join(` +`)),u=u.replace(/\s*$/,"");let f=u.split(/\n/);for(let p=0;p{mC=E(KB());oj();Hu();Ct();cj=E(Zg()),Ume=["Error","Warning","Info","Hint"],a1e=W()("markdown-index")});var kr,_s=I(()=>{kr=class{constructor(){this.tasks=[];this.count=1}sched(){this.count>0&&this.tasks.length>0&&(this.count--,this.tasks.shift()())}get busy(){return this.count==0}acquire(){return new Promise(e=>{let t=()=>{let r=!1;e(()=>{r||(r=!0,this.count++,this.sched())})};this.tasks.push(t),process.nextTick(this.sched.bind(this))})}use(e){return this.acquire().then(t=>e().then(r=>(t(),r)).catch(r=>{throw t(),r}))}}});var fj,ev,pj,dj,tn,zu=I(()=>{fj=E(zr()),ev=E(G());je();gC();ye();_s();Gr();pj=process.env.VIM_NODE_RPC=="1",dj=W()("model-float"),tn=class{constructor(e){this.nvim=e;this.winid=0;this._bufnr=0;this.mutex=new kr;this.disposables=[];this.alignTop=!1;this.pumAlignTop=!1;this.autoHide=!0;this.mutex=new kr,N.on("BufEnter",t=>{t==this._bufnr||t==this.targetBufnr||this.close()},null,this.disposables),N.on("InsertEnter",t=>{t==this._bufnr||!this.autoHide||this.close()},null,this.disposables),N.on("InsertLeave",()=>{this.close()},null,this.disposables),N.on("MenuPopupChanged",(t,r)=>{(this.pumAlignTop=r>t.row)==this.alignTop&&this.close()},null,this.disposables),this.onCursorMoved=(0,fj.default)(this._onCursorMoved.bind(this),300),N.on("CursorMoved",this.onCursorMoved.bind(this,!1),null,this.disposables),N.on("CursorMovedI",this.onCursorMoved.bind(this,!0),null,this.disposables),this.disposables.push(ev.Disposable.create(()=>{this.onCursorMoved.clear(),this.cancel()}))}_onCursorMoved(e,t,r){if(t!=this._bufnr&&!(t==this.targetBufnr&&rt(r,this.cursor))){if(this.autoHide){this.close();return}if(!e||t!=this.targetBufnr){this.close();return}}}async create(e,t=!1,r=0){if(this.onCursorMoved.clear(),e.length==0||e.every(o=>o.content.length==0)){this.close();return}let n=await this.mutex.acquire();try{await this.createPopup(e,{offsetX:r}),n()}catch(o){n(),dj.error("Error on create popup:",o.message),this.close()}}async show(e,t={}){if(this.onCursorMoved.clear(),e.length==0||e.every(n=>n.content.length==0)){this.close();return}let r=await this.mutex.acquire();try{await this.createPopup(e,t),r()}catch(n){r(),dj.error("Error on create popup:",n.message),this.close()}}async createPopup(e,t){let n=(this.tokenSource=new ev.CancellationTokenSource).token;e=e.filter(m=>m.content.trim().length>0);let{lines:o,codes:s,highlights:a}=Qg(e),l={pumAlignTop:this.pumAlignTop,preferTop:typeof t.preferTop=="boolean"?t.preferTop:!1,offsetX:t.offsetX||0,title:t.title||"",close:t.close?1:0,codes:s,highlights:a,modes:t.modes||["n","i","ic","s"]};t.maxHeight&&(l.maxHeight=t.maxHeight),t.maxWidth&&(l.maxWidth=t.maxWidth),t.border&&!t.border.every(m=>m==0)&&(l.border=t.border),t.title&&!l.border&&(l.border=[1,1,1,1]),t.highlight&&(l.highlight=t.highlight),t.borderhighlight&&(l.borderhighlight=[t.borderhighlight]),t.cursorline&&(l.cursorline=1),this.autoHide=t.autoHide!=!1,this.autoHide&&(l.autohide=1);let u=await this.nvim.call("coc#float#create_cursor_float",[this.winid,this._bufnr,o,l]);if(pj&&this.nvim.command("redraw",!0),this.onCursorMoved.clear(),this.tokenSource=null,!u||u.length==0){this.winid=null;return}let[c,f,p,d,h]=u;if(this.winid=p,n.isCancellationRequested){this.close();return}this.alignTop=h==1,this._bufnr=d,this.targetBufnr=c,this.cursor=f}close(){let{winid:e,nvim:t}=this;this.cancel(),e&&(this.winid=0,t.pauseNotification(),t.call("coc#float#close",[e],!0),pj&&this.nvim.command("redraw",!0),t.resumeNotification(!1,!0))}cancel(){let{tokenSource:e}=this;e&&(e.cancel(),this.tokenSource=null)}checkRetrigger(e){return!!(this.winid&&this.targetBufnr==e)}get bufnr(){return this._bufnr}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):null}get window(){return this.winid?this.nvim.createWindow(this.winid):null}async activated(){return this.winid?await this.nvim.call("coc#float#valid",[this.winid])!=0:!1}dispose(){J(this.disposables)}}});function Jn(i,e){return gr(i.start,e)===0&&gr(i.end,e)===0}function tv(i,e){let{start:t,end:r}=i;return!(Ke(r,e.start)<=0||Ke(t,e.end)>=0)}function Gu(i,e){return!!(gr(i.start,e)==0||gr(i.end,e)==0||Jn(e,i))}function hj(i,e){let{start:t,end:r}=e;return i>=t.line&&i<=r.line}function Ja(i){let{start:e,end:t}=i;return e.line==t.line&&e.character==t.character}function gr(i,e){let{start:t,end:r}=e;return Ke(i,t)<0?-1:Ke(i,r)>0?1:0}function Ke(i,e){return i.line>e.line||e.line==i.line&&i.character>e.character?1:e.line==i.line&&i.character==e.character?0:-1}function zme(i){return i.start.line==i.end.line}function vC(i,e){let{range:t,newText:r}=e;if(Ke(t.end,i)<=0){let n=r.split(` +`),o=n.length-(t.end.line-t.start.line)-1,s=0;if(t.end.line==i.line){let a=zme(t)&&o==0,l=a?t.end.character-t.start.character:t.end.character;s=(a?r.length:n[n.length-1].length)-l}return{line:o,character:s}}return{line:0,character:0}}function mj(i,e){let{range:t,newText:r}=e;if(Ke(t.start,i)>1)return i;let{start:n,end:o}=t,s=r.split(` +`),a=o.line-n.line-s.length+1,l=s[s.length-1],u=i.line-a;if(i.line!=o.line)return{line:u,character:i.character};let c=s.length==1&&n.line!=o.line?n.character:0,f=n.line==o.line&&s.length==1?o.character-n.character:o.character,p=c+i.character+l.length-f;return{line:u,character:p}}function gj(i,e,t){let r=0;for(let n=0;n<=e;n++)n==e?r+=t:r+=i[n].length+1;return r}function vj(i,e,t){if(!Jn(t.range,i))return e;let{start:r,end:n}=t.range,o=e.split(` +`),s=r.line==i.start.line?r.character-i.start.character:r.character,a=gj(o,r.line-i.start.line,s);s=n.line==i.start.line?n.character-i.start.character:n.character;let l=gj(o,n.line-i.start.line,s);return`${e.slice(0,a)}${t.newText}${e.slice(l,e.length)}`}function Vu(i,e){let t={line:0,character:0};for(let r of e){let n=vC(i,r);t={line:t.line+n.line,character:t.character+n.character}}return t.line==0&&t.character==0?null:t}var Kr=I(()=>{});var y1e,rv,yj=I(()=>{ye();y1e=W()("outpubChannel"),rv=class{constructor(e,t,r){this.name=e;this.nvim=t;this.onDispose=r;this.lines=[""];this.disposables=[];this._disposed=!1;this.created=!1}get content(){return this.lines.join(` +`)}_append(e){let{nvim:t}=this,r=this.lines.length-1,n=e.split(/\r?\n/),o=this.lines[r]+n[0];this.lines[r]=o;let s=n.slice(1);this.lines=this.lines.concat(s),!!this.created&&(t.pauseNotification(),t.call("setbufline",[this.bufname,"$",o],!0),s.length&&t.call("appendbufline",[this.bufname,"$",s],!0),t.resumeNotification(!1,!0))}append(e){!this.validate()||this._append(e)}appendLine(e){!this.validate()||this._append(e+` +`)}clear(e){if(!this.validate())return;let{nvim:t}=this;this.lines=e?this.lines.slice(-e):[],!!this.created&&(t.pauseNotification(),t.call("deletebufline",[this.bufname,1,"$"],!0),this.lines.length&&t.call("appendbufline",[this.bufname,"$",this.lines],!0),t.resumeNotification(!1,!0))}hide(){this.created=!1,this.nvim.command(`exe 'silent! bd! '.fnameescape('${this.bufname}')`,!0)}get bufname(){return`output:///${this.name}`}show(e){let{nvim:t}=this;t.pauseNotification(),t.command(`exe 'vsplit '.fnameescape('${this.bufname}')`,!0),e&&t.command("wincmd p",!0),t.command("redraw",!0),t.resumeNotification(!1,!0),this.created=!0}validate(){return!this._disposed}dispose(){this.onDispose&&this.onDispose(),this._disposed=!0,this.hide(),this.lines=[],J(this.disposables)}}});var x1e,bj,Ya,yC=I(()=>{yj();je();x1e=W()("channels"),bj=class{constructor(){this.outputChannels=new Map;this.bufnrs=new Map;this.disposable=N.on("BufUnload",e=>{let t=this.bufnrs.get(e);if(t){let r=this.outputChannels.get(t);r&&(r.created=!1)}})}getProvider(e){return{onDidChange:null,provideTextDocumentContent:async r=>{let n=this.get(r.path.slice(1));if(!n)return"";e.pauseNotification(),e.call("bufnr",["%"],!0),e.command("setlocal nospell nofoldenable nowrap noswapfile",!0),e.command("setlocal buftype=nofile bufhidden=hide",!0),e.command("setfiletype log",!0);let o=await e.resumeNotification();return o[1]||(this.bufnrs.set(o[0][0],n.name),n.created=!0),n.content}}}get names(){return Array.from(this.outputChannels.keys())}get(e){return this.outputChannels.get(e)}create(e,t){if(this.outputChannels.has(e))return this.outputChannels.get(e);if(!/^[\w\s-.]+$/.test(e))throw new Error(`Invalid channel name "${e}", only word characters and white space allowed.`);let r=new rv(e,t,()=>{this.outputChannels.delete(e)});return this.outputChannels.set(e,r),r}show(e,t){let r=this.outputChannels.get(e);!r||r.show(t)}dispose(){this.disposable.dispose();for(let e of this.outputChannels.values())e.dispose();this.outputChannels.clear()}},Ya=new bj});var _1e,iv,wj=I(()=>{je();ye();_1e=W()("model-dialog"),iv=class{constructor(e,t){this.nvim=e;this.config=t;this.disposables=[];N.on("BufWinLeave",r=>{r==this.bufnr&&(this.dispose(),t.callback&&t.callback(-1))},null,this.disposables),N.on("FloatBtnClick",(r,n)=>{if(r==this.bufnr){this.dispose();let o=t==null?void 0:t.buttons.filter(s=>s.disabled!=!0);t.callback&&t.callback(o[n].index)}},null,this.disposables)}get lines(){return[...this.config.content.split(/\r?\n/)]}async show(e){let{nvim:t}=this,{title:r,close:n,buttons:o}=this.config,s=this.config.borderhighlight||e.floatBorderHighlight,a=this.config.highlight||e.floatHighlight,l={maxwidth:e.maxWidth||80};r&&(l.title=r),(n||typeof n=="undefined")&&(l.close=1),e.maxHeight&&(l.maxHeight=e.maxHeight),e.maxWidth&&(l.maxWidth=e.maxWidth),a&&(l.highlight=a),s&&(l.borderhighlight=[s]),o&&(l.buttons=o.filter(c=>!c.disabled).map(c=>c.text));let u=await t.call("coc#float#create_dialog",[this.lines,l]);!u[1]||(this.bufnr=u[1],t.command("redraw",!0))}get winid(){return this.bufnr?this.nvim.call("bufwinid",[this.bufnr]):Promise.resolve(null)}dispose(){this.bufnr=void 0,J(this.disposables),this.disposables=[]}}});var nv,Ku,bC=I(()=>{nv=process.env.VIM_NODE_RPC=="1",Ku=class{constructor(e,t,r){this.nvim=e;this.winid=t;this.bufnr=r}get valid(){return this.nvim.call("coc#float#valid",[this.winid]).then(e=>!!e)}close(){this.nvim.call("coc#float#close",[this.winid],!0)}refreshScrollbar(){nv||this.nvim.call("coc#float#nvim_scrollbar",[this.winid],!0)}execute(e){this.nvim.call("coc#compat#execute",[this.winid,e],!0)}async scrollForward(){let{nvim:e,bufnr:t,winid:r}=this,o=await e.createBuffer(t).length,s;if(nv)s=await e.eval(`get(popup_getpos(${r}), 'lastline', 0)`);else{let a=await e.call("getwininfo",[r]);if(!a||!a.length)return;s=a[0].botline}s>=o||s==0||(e.pauseNotification(),this.setCursor(s-1),this.execute("silent! noa setl scrolloff=0"),this.execute(`normal! ${s}Gzt`),this.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0))}async scrollBackward(){let{nvim:e,winid:t}=this,r;if(nv)r=await e.eval(`get(popup_getpos(${t}), 'firstline', 0)`);else{let n=await e.call("getwininfo",[t]);if(!n||!n.length)return;r=n[0].topline}r!=1&&(e.pauseNotification(),this.setCursor(r-1),this.execute(`normal! ${r}Gzb`),this.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0))}setCursor(e){let{nvim:t,bufnr:r,winid:n}=this;nv?t.call("win_execute",[n,`exe ${e+1}`],!0):(t.createWindow(n).notify("nvim_win_set_cursor",[[e+1,0]]),t.command(`sign unplace 6 buffer=${r}`,!0),t.command(`sign place 6 line=${e+1} name=CocCurrentLine buffer=${r}`,!0))}}});var Dj,Gme,ov,xj=I(()=>{Dj=E(G());je();ye();bC();Gme=W()("model-menu"),ov=class{constructor(e,t,r){this.nvim=e;this.config=t;this.currIndex=0;this.disposables=[];this.keyMappings=new Map;this._onDidClose=new Dj.Emitter;this.onDidClose=this._onDidClose.event;this.total=t.items.length,r&&r.onCancellationRequested(()=>{var n;(n=this.win)==null||n.close()}),this.disposables.push(this._onDidClose),this.addKeymappings()}attachEvents(){N.on("InputChar",this.onInputChar.bind(this),null,this.disposables),N.on("BufWinLeave",e=>{e==this.bufnr&&(this._onDidClose.fire(-1),this.bufnr=void 0,this.win=void 0,this.dispose())},null,this.disposables)}addKeymappings(){let{nvim:e}=this;this.addKeys(["",""],()=>{this._onDidClose.fire(-1),this.dispose()}),this.addKeys(["\r",""],()=>{this._onDidClose.fire(this.currIndex),this.dispose()});let t=o=>{var s;!this.win||(e.pauseNotification(),this.setCursor(o),(s=this.win)==null||s.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0))};this.addKeys("",async()=>{var o;await((o=this.win)==null?void 0:o.scrollForward())}),this.addKeys("",async()=>{var o;await((o=this.win)==null?void 0:o.scrollBackward())}),this.addKeys(["j","","",""],()=>{let o=this.currIndex==this.total-1?0:this.currIndex+1;t(o)}),this.addKeys(["k","","",""],()=>{let o=this.currIndex==0?this.total-1:this.currIndex-1;t(o)}),this.addKeys(["g"],()=>{t(0)}),this.addKeys(["G"],()=>{t(this.total-1)});let r,n;this.addKeys(["0","1","2","3","4","5","6","7","8","9"],o=>{r&&clearTimeout(r);let s=parseInt(o,10);if(!(isNaN(s)||s>this.total)&&!(n==null&&s==0)){if(n){let a=n*10+s;n=void 0,this._onDidClose.fire(a-1),this.dispose();return}if(this.total<10||s*10>this.total){this._onDidClose.fire(s-1),this.dispose();return}r=setTimeout(async()=>{this._onDidClose.fire(s-1),this.dispose()},200),n=s}})}async show(e={}){let{nvim:t}=this,{title:r,items:n}=this.config,o={};r&&(o.title=r),e.maxHeight&&(o.maxHeight=e.maxHeight),e.maxWidth&&(o.maxWidth=e.maxWidth),e.floatHighlight&&(o.highlight=e.floatHighlight),e.floatBorderHighlight&&(o.borderhighlight=[e.floatBorderHighlight]);let s=n.map((l,u)=>u<99?`${u+1}. ${l}`:l);e.confirmKey&&e.confirmKey!=""&&this.addKeys(e.confirmKey,()=>{this._onDidClose.fire(this.currIndex),this.dispose()});let a=await t.call("coc#float#create_menu",[s,o]);return this.win=new Ku(t,a[0],a[1]),this.bufnr=a[1],this.attachEvents(),t.call("coc#prompt#start_prompt",["menu"],!0),a[0]}get buffer(){return this.bufnr?this.nvim.createBuffer(this.bufnr):void 0}dispose(){var e;J(this.disposables),this.disposables=[],this.nvim.call("coc#prompt#stop_prompt",["menu"],!0),(e=this.win)==null||e.close(),this.win=void 0}async onInputChar(e,t){if(e!="menu"||!this.win)return;let r=this.keyMappings.get(t);r?await Promise.resolve(r(t)):Gme.warn(`Ignored key press: ${t}`)}setCursor(e){!this.win||(this.currIndex=e,this.win.setCursor(e))}addKeys(e,t){if(Array.isArray(e))for(let r of e)this.keyMappings.set(r,t);else this.keyMappings.set(e,t)}}});var Sj,N1e,Xa,wC=I(()=>{je();ye();Sj=process.env.VIM_NODE_RPC=="1",N1e=W()("model-notification"),Xa=class{constructor(e,t,r=!0){this.nvim=e;this.config=t;this.disposables=[];this._disposed=!1;r&&(N.on("BufWinLeave",n=>{n==this.bufnr&&(this.dispose(),t.callback&&t.callback(-1))},null,this.disposables),N.on("FloatBtnClick",(n,o)=>{if(n==this.bufnr){this.dispose();let s=t==null?void 0:t.buttons.filter(a=>a.disabled!=!0);t.callback&&t.callback(s[o].index)}},null,this.disposables))}get lines(){return this.config.content.split(/\r?\n/)}async show(e){let{nvim:t}=this,{title:r,close:n,timeout:o,buttons:s,borderhighlight:a}=this.config,l=Object.assign({},e);l.close=n?1:0,r&&(l.title=r),a&&(l.borderhighlight=a),s&&(l.buttons=s.filter(c=>!c.disabled).map(c=>c.text)),o&&(l.timeout=o);let u=await t.call("coc#float#create_notification",[this.lines,l]);return u?(this._disposed?(this.nvim.call("coc#float#close",[u[0]],!0),Sj&&this.nvim.command("redraw",!0)):(this._winid=u[0],this.bufnr=u[1]),this._winid!=null):!1}get winid(){return this._winid}dispose(){if(this._disposed)return;this._disposed=!0;let{winid:e}=this;e&&(this.nvim.call("coc#float#close",[e],!0),Sj&&this.nvim.command("redraw",!0)),this.bufnr=void 0,this._winid=void 0,J(this.disposables),this.disposables=[]}}});var Cj,Vme,Ej,sv,_j=I(()=>{Cj=E(G());je();ye();Ct();bC();Vme=W()("model-dialog"),Ej=process.env.VIM_NODE_RPC=="1",sv=class{constructor(e,t,r){this.nvim=e;this.config=t;this.picked=new Set;this.currIndex=0;this.disposables=[];this.keyMappings=new Map;this._onDidClose=new Cj.Emitter;this.onDidClose=this._onDidClose.event;for(let n=0;n{var n;(n=this.win)==null||n.close()}),this.disposables.push(this._onDidClose),this.addKeymappings()}attachEvents(){N.on("InputChar",this.onInputChar.bind(this),null,this.disposables),N.on("BufWinLeave",e=>{e==this.bufnr&&(this._onDidClose.fire(void 0),this.bufnr=void 0,this.win=void 0,this.dispose())},null,this.disposables),N.on("FloatBtnClick",(e,t)=>{if(e==this.bufnr){if(t==0){let r=Array.from(this.picked);this._onDidClose.fire(r.length?r:void 0)}else this._onDidClose.fire(void 0);this.dispose()}},null,this.disposables)}addKeymappings(){let{nvim:e}=this,t=n=>{this.picked.has(n)?this.picked.delete(n):this.picked.add(n)};this.addKeys("",async()=>{if(Ej||!this.win)return;let[n,o,s]=await e.eval("[v:mouse_winid,v:mouse_lnum,v:mouse_col]");if(global.hasOwnProperty("__TEST__")){let a=await e.getVar("mouse_position");n=a[0],o=a[1],s=a[2]}e.pauseNotification(),n==this.win.winid&&(s<=3?(t(o-1),this.changeLine(o-1)):this.setCursor(o-1)),e.call("win_gotoid",[n],!0),e.call("cursor",[o,s],!0),e.call("coc#float#nvim_float_click",[],!0),e.command("redraw",!0),await e.resumeNotification()}),this.addKeys(["",""],()=>{this._onDidClose.fire(void 0),this.dispose()}),this.addKeys("",()=>{if(this.picked.size==0)this._onDidClose.fire(void 0);else{let n=Array.from(this.picked);this._onDidClose.fire(n)}this.dispose()});let r=n=>{e.pauseNotification(),this.setCursor(n),this.win.refreshScrollbar(),e.command("redraw",!0),e.resumeNotification(!1,!0)};this.addKeys(["j","","",""],()=>{let n=this.currIndex==this.total-1?0:this.currIndex+1;r(n)}),this.addKeys(["k","","",""],()=>{let n=this.currIndex==0?this.total-1:this.currIndex-1;r(n)}),this.addKeys(["g"],()=>{r(0)}),this.addKeys(["G"],()=>{r(this.total-1)}),this.addKeys(" ",async()=>{let n=this.currIndex;t(n),e.pauseNotification(),this.changeLine(n),this.currIndex!=this.total-1&&this.setCursor(this.currIndex+1),e.command("redraw",!0),await e.resumeNotification()}),this.addKeys("",async()=>{var n;await((n=this.win)==null?void 0:n.scrollForward())}),this.addKeys("",async()=>{var n;await((n=this.win)==null?void 0:n.scrollBackward())})}async show(e={}){let{nvim:t}=this,{title:r,items:n}=this.config,o={close:1,cursorline:1};if(e.maxHeight&&(o.maxHeight=e.maxHeight),e.maxWidth&&(o.maxWidth=e.maxWidth),r&&(o.title=r),o.close=1,o.cursorline=1,e.floatHighlight&&(o.highlight=e.floatHighlight),e.floatBorderHighlight&&(o.borderhighlight=[e.floatBorderHighlight]),e.pickerButtons){let c=e.pickerButtonShortcut;o.buttons=["Submit"+(c?" ":""),"Cancel"+(c?" ":"")]}e.confirmKey&&e.confirmKey!=""&&this.addKeys(e.confirmKey,()=>{this._onDidClose.fire(void 0),this.dispose()});let s=[],a=[];for(let c=0;c{wC();Tj=E(G());je();av=class extends Xa{constructor(e,t){super(e,{content:` +`,close:t.cancellable==!0,title:t.title},!1);this.option=t;N.on("BufWinLeave",r=>{r==this.bufnr&&(this.tokenSource&&this.tokenSource.cancel(),this.dispose())},null,this.disposables)}async show(e){let{task:t}=this.option,r=this.tokenSource=new Tj.CancellationTokenSource;this.disposables.push(r);let n=0;return await new Promise((s,a)=>{r.token.onCancellationRequested(()=>{s(void 0)}),super.show(Object.assign({minWidth:e.minProgressWidth||30,progress:1},e)).then(l=>{l||a(new Error("Failed to create float window"))}).catch(a),t({report:l=>{if(!this.bufnr)return;let u="";l.message&&(u+=l.message.replace(/\r?\n/g," ")),l.increment&&(n+=l.increment,u=u+(u.length?` ${n}%`:`${n}%`)),this.nvim.call("setbufline",[this.bufnr,2,u],!0)}},r.token).then(l=>{this._disposed||(setTimeout(()=>{this.dispose()},100),s(l))},l=>{this._disposed||(this.dispose(),l instanceof Error?a(l):s(void 0))})})}dispose(){super.dispose(),this.tokenSource=void 0}}});function id(){return Rj.default.randomBytes(16)}var Rj,DC=I(()=>{Rj=E(require("crypto"))});function Kme(i,e){var t=e||0,r=kj;return[r[i[t++]],r[i[t++]],r[i[t++]],r[i[t++]],"-",r[i[t++]],r[i[t++]],"-",r[i[t++]],r[i[t++]],"-",r[i[t++]],r[i[t++]],"-",r[i[t++]],r[i[t++]],r[i[t++]],r[i[t++]],r[i[t++]],r[i[t++]]].join("")}var kj,uv,xC=I(()=>{kj=[];for(var lv=0;lv<256;++lv)kj[lv]=(lv+256).toString(16).substr(1);uv=Kme});function Jme(i,e,t){var r=e&&t||0,n=e||[];i=i||{};var o=i.node||Ij,s=i.clockseq!==void 0?i.clockseq:SC;if(o==null||s==null){var a=i.random||(i.rng||id)();o==null&&(o=Ij=[a[0]|1,a[1],a[2],a[3],a[4],a[5]]),s==null&&(s=SC=(a[6]<<8|a[7])&16383)}var l=i.msecs!==void 0?i.msecs:new Date().getTime(),u=i.nsecs!==void 0?i.nsecs:EC+1,c=l-CC+(u-EC)/1e4;if(c<0&&i.clockseq===void 0&&(s=s+1&16383),(c<0||l>CC)&&i.nsecs===void 0&&(u=0),u>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");CC=l,EC=u,SC=s,l+=122192928e5;var f=((l&268435455)*1e4+u)%4294967296;n[r++]=f>>>24&255,n[r++]=f>>>16&255,n[r++]=f>>>8&255,n[r++]=f&255;var p=l/4294967296*1e4&268435455;n[r++]=p>>>8&255,n[r++]=p&255,n[r++]=p>>>24&15|16,n[r++]=p>>>16&255,n[r++]=s>>>8|128,n[r++]=s&255;for(var d=0;d<6;++d)n[r+d]=o[d];return e||uv(n)}var Ij,SC,CC,EC,Ao,Fj=I(()=>{DC();xC();CC=0,EC=0;Ao=Jme});function Yme(i,e,t){var r=e&&t||0;typeof i=="string"&&(e=i==="binary"?new Array(16):null,i=null),i=i||{};var n=i.random||(i.rng||id)();if(n[6]=n[6]&15|64,n[8]=n[8]&63|128,e)for(var o=0;o<16;++o)e[r+o]=n[o];return e||uv(n)}var pe,Oj=I(()=>{DC();xC();pe=Yme});var it=I(()=>{Fj();Oj()});var cFe,_C,cv,TC=I(()=>{it();cFe=W()("model-status"),_C=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],cv=class{constructor(e){this.nvim=e;this.items=new Map;this.shownIds=new Set;this._text="";this.interval=setInterval(()=>{this.setStatusText().logError()},100)}dispose(){clearInterval(this.interval)}createStatusBarItem(e=0,t=!1){let r=Ao(),n={text:"",priority:e,isProgress:t,show:()=>{this.shownIds.add(r)},hide:()=>{this.shownIds.delete(r)},dispose:()=>{this.shownIds.delete(r),this.items.delete(r)}};return this.items.set(r,n),n}getText(){if(this.shownIds.size==0)return"";let e=new Date,t=Math.floor(e.getMilliseconds()/100),r="",n=[];for(let[o,s]of this.items)this.shownIds.has(o)&&n.push(s);n.sort((o,s)=>o.priority-s.priority);for(let o of n)o.isProgress?r=`${r} ${_C[t]} ${o.text}`:r=`${r} ${o.text}`;return r}async setStatusText(){let e=this.getText(),{nvim:t}=this;e!=this._text&&(this._text=e,t.pauseNotification(),this.nvim.setVar("coc_status",e,!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0),await t.resumeNotification(!1,!0))}}});var Ei,_i,Ti,Yn,kn,Nt,_e,Pi=I(()=>{(function(r){r[r.Buffer=0]="Buffer",r[r.LanguageServer=1]="LanguageServer",r[r.Global=2]="Global"})(Ei||(Ei={}));(function(n){n[n.Global=0]="Global",n[n.Local=1]="Local",n[n.SingleFile=2]="SingleFile",n[n.Internal=3]="Internal"})(_i||(_i={}));(function(r){r[r.Native=0]="Native",r[r.Remote=1]="Remote",r[r.Service=2]="Service"})(Ti||(Ti={}));(function(r){r[r.More=0]="More",r[r.Warning=1]="Warning",r[r.Error=2]="Error"})(Yn||(Yn={}));(function(n){n[n.Unknown=0]="Unknown",n[n.File=1]="File",n[n.Directory=2]="Directory",n[n.SymbolicLink=64]="SymbolicLink"})(kn||(kn={}));(function(r){r[r.Global=0]="Global",r[r.User=1]="User",r[r.Workspace=2]="Workspace"})(Nt||(Nt={}));(function(s){s[s.Initial=0]="Initial",s[s.Starting=1]="Starting",s[s.StartFailed=2]="StartFailed",s[s.Running=3]="Running",s[s.Stopping=4]="Stopping",s[s.Stopped=5]="Stopped"})(_e||(_e={}))});var Mj=y((dFe,fv)=>{"use strict";fv.exports=ege;fv.exports.format=Aj;fv.exports.parse=Lj;var Xme=/\B(?=(\d{3})+(?!\d))/g,Zme=/(?:\.0*|(\.[^0]+)0+)$/,Ts={b:1,kb:1<<10,mb:1<<20,gb:1<<30,tb:Math.pow(1024,4),pb:Math.pow(1024,5)},Qme=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function ege(i,e){return typeof i=="string"?Lj(i):typeof i=="number"?Aj(i,e):null}function Aj(i,e){if(!Number.isFinite(i))return null;var t=Math.abs(i),r=e&&e.thousandsSeparator||"",n=e&&e.unitSeparator||"",o=e&&e.decimalPlaces!==void 0?e.decimalPlaces:2,s=Boolean(e&&e.fixedDecimals),a=e&&e.unit||"";(!a||!Ts[a.toLowerCase()])&&(t>=Ts.pb?a="PB":t>=Ts.tb?a="TB":t>=Ts.gb?a="GB":t>=Ts.mb?a="MB":t>=Ts.kb?a="KB":a="B");var l=i/Ts[a.toLowerCase()],u=l.toFixed(o);return s||(u=u.replace(Zme,"$1")),r&&(u=u.replace(Xme,r)),u+n+a}function Lj(i){if(typeof i=="number"&&!isNaN(i))return i;if(typeof i!="string")return null;var e=Qme.exec(i),t,r="b";return e?(t=parseFloat(e[1]),r=e[4].toLowerCase()):(t=parseInt(i,10),r="b"),Math.floor(Ts[r]*t)}});var Ju=y((hFe,Wj)=>{var Xn=-1,In=1,ai=0;function nd(i,e,t,r){if(i===e)return i?[[ai,i]]:[];if(t!=null){var n=oge(i,e,t);if(n)return n}var o=PC(i,e),s=i.substring(0,o);i=i.substring(o),e=e.substring(o),o=RC(i,e);var a=i.substring(i.length-o);i=i.substring(0,i.length-o),e=e.substring(0,e.length-o);var l=tge(i,e);return s&&l.unshift([ai,s]),a&&l.push([ai,a]),Nj(l,r),l}function tge(i,e){var t;if(!i)return[[In,e]];if(!e)return[[Xn,i]];var r=i.length>e.length?i:e,n=i.length>e.length?e:i,o=r.indexOf(n);if(o!==-1)return t=[[In,r.substring(0,o)],[ai,n],[In,r.substring(o+n.length)]],i.length>e.length&&(t[0][0]=t[2][0]=Xn),t;if(n.length===1)return[[Xn,i],[In,e]];var s=ige(i,e);if(s){var a=s[0],l=s[1],u=s[2],c=s[3],f=s[4],p=nd(a,u),d=nd(l,c);return p.concat([[ai,f]],d)}return rge(i,e)}function rge(i,e){for(var t=i.length,r=e.length,n=Math.ceil((t+r)/2),o=n,s=2*n,a=new Array(s),l=new Array(s),u=0;ut)d+=2;else if(S>r)p+=2;else if(f){var P=o+c-v;if(P>=0&&P=A)return qj(i,e,x,S)}}}for(var R=-w+h;R<=w-m;R+=2){var P=o+R,A;R===-w||R!==w&&l[P-1]t)m+=2;else if(M>r)h+=2;else if(!f){var D=o+c-R;if(D>=0&&D=A)return qj(i,e,x,S)}}}}return[[Xn,i],[In,e]]}function qj(i,e,t,r){var n=i.substring(0,t),o=e.substring(0,r),s=i.substring(t),a=e.substring(r),l=nd(n,o),u=nd(s,a);return l.concat(u)}function PC(i,e){if(!i||!e||i.charAt(0)!==e.charAt(0))return 0;for(var t=0,r=Math.min(i.length,e.length),n=r,o=0;te.length?i:e,r=i.length>e.length?e:i;if(t.length<4||r.length*2=d.length?[x,S,P,A,D]:null}var o=n(t,r,Math.ceil(t.length/4)),s=n(t,r,Math.ceil(t.length/2)),a;if(!o&&!s)return null;s?o?a=o[4].length>s[4].length?o:s:a=s:a=o;var l,u,c,f;i.length>e.length?(l=a[0],u=a[1],c=a[2],f=a[3]):(c=a[0],f=a[1],l=a[2],u=a[3]);var p=a[4];return[l,u,c,f,p]}function Nj(i,e){i.push([ai,""]);for(var t=0,r=0,n=0,o="",s="",a;t=0&&Uj(i[l][1])){var u=i[l][1].slice(-1);if(i[l][1]=i[l][1].slice(0,-1),o=u+o,s=u+s,!i[l][1]){i.splice(l,1),t--;var c=l-1;i[c]&&i[c][0]===In&&(n++,s=i[c][1]+s,c--),i[c]&&i[c][0]===Xn&&(r++,o=i[c][1]+o,c--),l=c}}if(jj(i[t][1])){var u=i[t][1].charAt(0);i[t][1]=i[t][1].slice(1),o+=u,s+=u}}if(t0||s.length>0){o.length>0&&s.length>0&&(a=PC(s,o),a!==0&&(l>=0?i[l][1]+=s.substring(0,a):(i.splice(0,0,[ai,s.substring(0,a)]),t++),s=s.substring(a),o=o.substring(a)),a=RC(s,o),a!==0&&(i[t][1]=s.substring(s.length-a)+i[t][1],s=s.substring(0,s.length-a),o=o.substring(0,o.length-a)));var f=n+r;o.length===0&&s.length===0?(i.splice(t-f,f),t=t-f):o.length===0?(i.splice(t-f,f,[In,s]),t=t-f+1):s.length===0?(i.splice(t-f,f,[Xn,o]),t=t-f+1):(i.splice(t-f,f,[Xn,o],[In,s]),t=t-f+2)}t!==0&&i[t-1][0]===ai?(i[t-1][1]+=i[t][1],i.splice(t,1)):t++,n=0,r=0,o="",s="";break}}i[i.length-1][1]===""&&i.pop();var p=!1;for(t=1;t=55296&&i<=56319}function Bj(i){return i>=56320&&i<=57343}function jj(i){return Bj(i.charCodeAt(0))}function Uj(i){return $j(i.charCodeAt(i.length-1))}function nge(i){for(var e=[],t=0;t0&&e.push(i[t]);return e}function kC(i,e,t,r){return Uj(i)||jj(r)?null:nge([[ai,i],[Xn,e],[In,t],[ai,r]])}function oge(i,e,t){var r=typeof t=="number"?{index:t,length:0}:t.oldRange,n=typeof t=="number"?null:t.newRange,o=i.length,s=e.length;if(r.length===0&&(n===null||n.length===0)){var a=r.index,l=i.slice(0,a),u=i.slice(a),c=n?n.index:null;e:{var f=a+s-o;if(c!==null&&c!==f||f<0||f>s)break e;var p=e.slice(0,f),d=e.slice(f);if(d!==u)break e;var h=Math.min(a,f),m=l.slice(0,h),w=p.slice(0,h);if(m!==w)break e;var v=l.slice(h),D=p.slice(h);return kC(m,v,D,u)}e:{if(c!==null&&c!==a)break e;var x=a,p=e.slice(0,x),d=e.slice(x);if(p!==l)break e;var S=Math.min(o-x,s-x),P=u.slice(u.length-S),A=d.slice(d.length-S);if(P!==A)break e;var v=u.slice(0,u.length-S),D=d.slice(0,d.length-S);return kC(l,v,D,P)}}if(r.length>0&&n&&n.length===0){e:{var m=i.slice(0,r.index),P=i.slice(r.index+r.length),h=m.length,S=P.length;if(st.line||e.line===t.line&&e.character>t.character?{start:t,end:e}:i}function sge(i){var e=Gj(i.range);return e!==i.range?{newText:i.newText,range:e}:i}var Hj,tr,Za=I(()=>{"use strict";Hj=function(){function i(e,t,r,n){this._uri=e,this._languageId=t,this._version=r,this._content=n,this._lineOffsets=void 0}return Object.defineProperty(i.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(i.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),i.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content},i.prototype.update=function(e,t){for(var r=0,n=e;re?n=o:r=o+1}var s=r-1;return{line:s,character:e-t[s]}},i.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var r=t[e.line],n=e.line+1l&&u.push(s.substring(l,d)),p.newText.length&&u.push(p.newText),l=n.offsetAt(p.range.end)}return u.push(s.substr(l)),u.join("")}i.applyEdits=r})(tr||(tr={}))});function od(i,e){e===void 0&&(e=!1);var t=i.length,r=0,n="",o=0,s=16,a=0,l=0,u=0,c=0,f=0;function p(x,S){for(var P=0,A=0;P=48&&R<=57)A=A*16+R-48;else if(R>=65&&R<=70)A=A*16+R-65+10;else if(R>=97&&R<=102)A=A*16+R-97+10;else break;r++,P++}return P=t){x+=i.substring(S,r),f=2;break}var P=i.charCodeAt(r);if(P===34){x+=i.substring(S,r),r++;break}if(P===92){if(x+=i.substring(S,r),r++,r>=t){f=2;break}var A=i.charCodeAt(r++);switch(A){case 34:x+='"';break;case 92:x+="\\";break;case 47:x+="/";break;case 98:x+="\b";break;case 102:x+="\f";break;case 110:x+=` +`;break;case 114:x+="\r";break;case 116:x+=" ";break;case 117:var R=p(4,!0);R>=0?x+=String.fromCharCode(R):f=4;break;default:f=5}S=r;continue}if(P>=0&&P<=31)if(sd(P)){x+=i.substring(S,r),f=2;break}else f=6;r++}return x}function w(){if(n="",f=0,o=r,l=a,c=u,r>=t)return o=t,s=17;var x=i.charCodeAt(r);if(FC(x)){do r++,n+=String.fromCharCode(x),x=i.charCodeAt(r);while(FC(x));return s=15}if(sd(x))return r++,n+=String.fromCharCode(x),x===13&&i.charCodeAt(r)===10&&(r++,n+=` +`),a++,u=r,s=14;switch(x){case 123:return r++,s=1;case 125:return r++,s=2;case 91:return r++,s=3;case 93:return r++,s=4;case 58:return r++,s=6;case 44:return r++,s=5;case 34:return r++,n=m(),s=10;case 47:var S=r-1;if(i.charCodeAt(r+1)===47){for(r+=2;r=12&&x<=15);return x}return{setPosition:d,getPosition:function(){return r},scan:e?D:w,getToken:function(){return s},getTokenValue:function(){return n},getTokenOffset:function(){return o},getTokenLength:function(){return r-o},getTokenStartLine:function(){return l},getTokenStartCharacter:function(){return o-c},getTokenError:function(){return f}}}function FC(i){return i===32||i===9||i===11||i===12||i===160||i===5760||i>=8192&&i<=8203||i===8239||i===8287||i===12288||i===65279}function sd(i){return i===10||i===13||i===8232||i===8233}function Yu(i){return i>=48&&i<=57}var dv=I(()=>{"use strict"});function OC(i,e,t){var r,n,o,s,a;if(e){for(s=e.offset,a=s+e.length,o=s;o>0&&!ad(i,o-1);)o--;for(var l=a;ls)&&i.substring(U,X)!==O&&v.push({offset:U,length:X-U,content:O})}var x=w();if(x!==17){var S=d.getTokenOffset()+o,P=AC(p,r);D(P,o,S)}for(;x!==17;){for(var A=d.getTokenOffset()+d.getTokenLength()+o,R=w(),M="",L=!1;!c&&(R===12||R===13);){var q=d.getTokenOffset()+o;D(" ",A,q),A=d.getTokenOffset()+d.getTokenLength()+o,L=R===12,M=L?m():"",R=w()}if(R===2)x!==1&&(f--,M=m());else if(R===4)x!==3&&(f--,M=m());else{switch(x){case 3:case 1:f++,M=m();break;case 5:case 12:M=m();break;case 13:c?M=m():L||(M=" ");break;case 6:L||(M=" ");break;case 10:if(R===6){L||(M="");break}case 7:case 8:case 9:case 11:case 2:case 4:R===12||R===13?L||(M=" "):R!==5&&R!==17&&(h=!0);break;case 16:h=!0;break}c&&(R===12||R===13)&&(M=m())}R===17&&(M=t.insertFinalNewline?u:"");var F=d.getTokenOffset()+o;D(M,A,F),x=R}return v}function AC(i,e){for(var t="",r=0;r{dv();"use strict"});function Vj(i,e,t){e===void 0&&(e=[]),t===void 0&&(t=ld.DEFAULT);var r=null,n=[],o=[];function s(l){Array.isArray(n)?n.push(l):r!==null&&(n[r]=l)}var a={onObjectBegin:function(){var l={};s(l),o.push(n),n=l,r=null},onObjectProperty:function(l){r=l},onObjectEnd:function(){n=o.pop()},onArrayBegin:function(){var l=[];s(l),o.push(n),n=l,r=null},onArrayEnd:function(){n=o.pop()},onLiteralValue:s,onError:function(l,u,c){e.push({error:l,offset:u,length:c})}};return qC(i,a,t),n[0]}function MC(i,e,t){e===void 0&&(e=[]),t===void 0&&(t=ld.DEFAULT);var r={type:"array",offset:-1,length:-1,children:[],parent:void 0};function n(l){r.type==="property"&&(r.length=l-r.offset,r=r.parent)}function o(l){return r.children.push(l),l}var s={onObjectBegin:function(l){r=o({type:"object",offset:l,length:-1,parent:r,children:[]})},onObjectProperty:function(l,u,c){r=o({type:"property",offset:u,length:-1,parent:r,children:[]}),r.children.push({type:"string",value:l,offset:u,length:c,parent:r})},onObjectEnd:function(l,u){n(l+u),r.length=l+u-r.offset,r=r.parent,n(l+u)},onArrayBegin:function(l,u){r=o({type:"array",offset:l,length:-1,parent:r,children:[]})},onArrayEnd:function(l,u){r.length=l+u-r.offset,r=r.parent,n(l+u)},onLiteralValue:function(l,u,c){o({type:uge(l),offset:u,length:c,parent:r,value:l}),n(u+c)},onSeparator:function(l,u,c){r.type==="property"&&(l===":"?r.colonOffset=u:l===","&&n(u))},onError:function(l,u,c){e.push({error:l,offset:u,length:c})}};qC(i,s,t);var a=r.children[0];return a&&delete a.parent,a}function hv(i,e){if(!!i){for(var t=i,r=0,n=e;r=t.children.length)return;t=t.children[c]}}return t}}function qC(i,e,t){t===void 0&&(t=ld.DEFAULT);var r=od(i,!1);function n(L){return L?function(){return L(r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter())}:function(){return!0}}function o(L){return L?function(q){return L(q,r.getTokenOffset(),r.getTokenLength(),r.getTokenStartLine(),r.getTokenStartCharacter())}:function(){return!0}}var s=n(e.onObjectBegin),a=o(e.onObjectProperty),l=n(e.onObjectEnd),u=n(e.onArrayBegin),c=n(e.onArrayEnd),f=o(e.onLiteralValue),p=o(e.onSeparator),d=n(e.onComment),h=o(e.onError),m=t&&t.disallowComments,w=t&&t.allowTrailingComma;function v(){for(;;){var L=r.scan();switch(r.getTokenError()){case 4:D(14);break;case 5:D(15);break;case 3:D(13);break;case 1:m||D(11);break;case 2:D(12);break;case 6:D(16);break}switch(L){case 12:case 13:m?D(10):d();break;case 16:D(1);break;case 15:case 14:break;default:return L}}}function D(L,q,F){if(q===void 0&&(q=[]),F===void 0&&(F=[]),h(L),q.length+F.length>0)for(var O=r.getToken();O!==17;){if(q.indexOf(O)!==-1){v();break}else if(F.indexOf(O)!==-1)break;O=v()}}function x(L){var q=r.getTokenValue();return L?f(q):a(q),v(),!0}function S(){switch(r.getToken()){case 11:var L=r.getTokenValue(),q=Number(L);isNaN(q)&&(D(2),q=0),f(q);break;case 7:f(null);break;case 8:f(!0);break;case 9:f(!1);break;default:return!1}return v(),!0}function P(){return r.getToken()!==10?(D(3,[],[2,5]),!1):(x(!1),r.getToken()===6?(p(":"),v(),M()||D(4,[],[2,5])):D(5,[],[2,5]),!0)}function A(){s(),v();for(var L=!1;r.getToken()!==2&&r.getToken()!==17;){if(r.getToken()===5){if(L||D(4,[],[]),p(","),v(),r.getToken()===2&&w)break}else L&&D(6,[],[]);P()||D(4,[],[2,5]),L=!0}return l(),r.getToken()!==2?D(7,[2],[]):v(),!0}function R(){u(),v();for(var L=!1;r.getToken()!==4&&r.getToken()!==17;){if(r.getToken()===5){if(L||D(4,[],[]),p(","),v(),r.getToken()===4&&w)break}else L&&D(6,[],[]);M()||D(4,[],[4,5]),L=!0}return c(),r.getToken()!==4?D(8,[4],[]):v(),!0}function M(){switch(r.getToken()){case 3:return R();case 1:return A();case 10:return x(!0);default:return S()}}return v(),r.getToken()===17?t.allowEmptyContent?!0:(D(4,[],[]),!1):M()?(r.getToken()!==17&&D(9,[],[]),!0):(D(4,[],[]),!1)}function uge(i){switch(typeof i){case"boolean":return"boolean";case"number":return"number";case"string":return"string";case"object":{if(i){if(Array.isArray(i))return"array"}else return"null";return"object"}default:return"null"}}var ld,NC=I(()=>{dv();"use strict";(function(i){i.DEFAULT={allowTrailingComma:!1}})(ld||(ld={}))});function Kj(i,e,t,r){for(var n,o=e.slice(),s=[],a=MC(i,s),l=void 0,u=void 0;o.length>0&&(u=o.pop(),l=hv(a,o),l===void 0&&t!==void 0);)typeof u=="string"?t=(n={},n[u]=t,n):t=[t];if(l)if(l.type==="object"&&typeof u=="string"&&Array.isArray(l.children)){var c=hv(l,[u]);if(c!==void 0)if(t===void 0){if(!c.parent)throw new Error("Malformed AST");var f=l.children.indexOf(c.parent),p=void 0,d=c.parent.offset+c.parent.length;if(f>0){var h=l.children[f-1];p=h.offset+h.length}else if(p=l.offset+1,l.children.length>1){var m=l.children[1];d=m.offset}return Qa(i,{offset:p,length:d-p,content:""},r)}else return Qa(i,{offset:c.offset,length:c.length,content:JSON.stringify(t)},r);else{if(t===void 0)return[];var w=JSON.stringify(u)+": "+JSON.stringify(t),v=r.getInsertionIndex?r.getInsertionIndex(l.children.map(function(L){return L.children[0].value})):l.children.length,D=void 0;if(v>0){var h=l.children[v-1];D={offset:h.offset+h.length,length:0,content:","+w}}else l.children.length===0?D={offset:l.offset+1,length:0,content:w}:D={offset:l.offset+1,length:0,content:w+","};return Qa(i,D,r)}}else if(l.type==="array"&&typeof u=="number"&&Array.isArray(l.children)){var x=u;if(x===-1){var w=""+JSON.stringify(t),D=void 0;if(l.children.length===0)D={offset:l.offset+1,length:0,content:w};else{var h=l.children[l.children.length-1];D={offset:h.offset+h.length,length:0,content:","+w}}return Qa(i,D,r)}else if(t===void 0&&l.children.length>=0){var S=u,P=l.children[S],D=void 0;if(l.children.length===1)D={offset:l.offset+1,length:l.length-2,content:""};else if(l.children.length-1===S){var h=l.children[S-1],A=h.offset+h.length,R=l.offset+l.length;D={offset:A,length:R-2-A,content:""}}else D={offset:P.offset,length:l.children[S+1].offset-P.offset,content:""};return Qa(i,D,r)}else if(t!==void 0){var D=void 0,w=""+JSON.stringify(t);if(!r.isArrayInsertion&&l.children.length>u){var M=l.children[u];D={offset:M.offset,length:M.length,content:w}}else if(l.children.length===0||u===0)D={offset:l.offset+1,length:0,content:l.children.length===0?w:w+","};else{var v=u>l.children.length?l.children.length:u,h=l.children[v-1];D={offset:h.offset+h.length,length:0,content:","+w}}return Qa(i,D,r)}else throw new Error("Can not "+(t===void 0?"remove":r.isArrayInsertion?"insert":"modify")+" Array index "+x+" as length is not sufficient")}else throw new Error("Can not add "+(typeof u!="number"?"index":"property")+" to parent of type "+l.type);else{if(t===void 0)throw new Error("Can not delete in empty document");return Qa(i,{offset:a?a.offset:0,length:a?a.length:0,content:JSON.stringify(t)},r)}}function Qa(i,e,t){if(!t.formattingOptions)return[e];var r=mv(i,e),n=e.offset,o=e.offset+e.content.length;if(e.length===0||e.content.length===0){for(;n>0&&!ad(r,n-1);)n--;for(;o=0;a--){var l=s[a];r=mv(r,l),n=Math.min(n,l.offset),o=Math.max(o,l.offset+l.length),o+=l.content.length-l.length}var u=i.length-(r.length-o)-n;return[{offset:n,length:u,content:r.substring(n,o)}]}function mv(i,e){return i.substring(0,e.offset)+e.content+i.substring(e.offset+e.length)}var Jj=I(()=>{LC();NC();"use strict"});function Yj(i,e,t,r){return Kj(i,e,t,r)}function Xj(i,e){for(var t=e.length-1;t>=0;t--)i=mv(i,e[t]);return i}var Xu,ud=I(()=>{LC();Jj();dv();NC();"use strict";Xu=Vj});function Qj(i,e){if(!i||!cd.default.existsSync(i))return{contents:{}};let t,r=j.file(i).toString();try{t=cd.default.readFileSync(i,"utf8")}catch(s){t=""}let[n,o]=pge(t);return n&&n.length&&e(dge(r,t,n)),{contents:o}}function pge(i){if(i.length==0)return[[],{}];let e=[],t=Xu(i,e,{allowTrailingComma:!0});function r(o,s,a,l){if(a.length==0)o[s]=n(l);else{o[s]||(o[s]={});let u=o[s],c=a.shift();r(u,c,a,l)}}function n(o,s=!1){if(!zt(o))return o;if(kg(o))return{};let a={};for(let l of Object.keys(o))if(s&&l.includes(".")){let u=l.split("."),c=u.shift();r(a,c,u,o[l])}else a[l]=n(o[l]);return a}return[e,n(t,!0)]}function dge(i,e,t){let r=[],n=tr.create(i,"json",0,e);for(let o of t){let s="parse error";switch(o.error){case 2:s="invalid number";break;case 8:s="close brace expected";break;case 5:s="colon expected";break;case 6:s="comma expected";break;case 9:s="end of file expected";break;case 16:s="invaliad character";break;case 10:s="invalid commment token";break;case 15:s="invalid escape character";break;case 1:s="invalid symbol";break;case 14:s="invalid unicode";break;case 3:s="property name expected";break;case 13:s="unexpected end of number";break;case 12:s="unexpected end of string";break;case 11:s="unexpected end of comment";break;case 4:s="value expected";break;default:s="Unknwn error";break}let a={start:n.positionAt(o.offset),end:n.positionAt(o.offset+o.length)},l=Zj.Location.create(i,a);r.push({location:l,message:s})}return r}function fd(i,e,t,r){let n=e.split("."),o=n.pop(),s=i;for(let a=0;a{let o=t[n].default;o!==void 0&&fd(r,n,o,s=>{cge.error(s)})}),{contents:r}}function $C(i,e){let t=[];for(let r of Object.keys(i)){let n=i[r],o=e?`${e}.${r}`:r;t.push(o),zt(n)&&t.push(...$C(n,o))}return t}function iU(i,e){let t=[],r=$C(i),n=$C(e),o=n.filter(a=>!r.includes(a)),s=r.filter(a=>!n.includes(a));t.push(...o),t.push(...s);for(let a of r){if(!n.includes(a))continue;let l=vv(i,a),u=vv(e,a);rt(l,u)||t.push(a)}return t}var Zj,cd,gv,cge,fge,BC=I(()=>{Zj=E(G());Za();ud();Yi();Gr();cd=E(require("fs"));Ze();gv=E(require("path")),cge=W()("configuration-util"),fge=(0,gv.dirname)(__dirname)});var li,jC=I(()=>{Yi();Gr();BC();li=class{constructor(e={}){this._contents=e}get contents(){return this._contents}clone(){return new li(Oo(this._contents))}getValue(e){return e?vv(this.contents,e):this.contents}merge(...e){let t=Oo(this.contents);for(let r of e)this.mergeContents(t,r.contents);return new li(t)}freeze(){return Object.isFrozen(this._contents)||Object.freeze(this._contents),this}mergeContents(e,t){for(let r of Object.keys(t)){if(r in e&&zt(e[r])&&zt(t[r])){this.mergeContents(e[r],t[r]);continue}e[r]=Oo(t[r])}}setValue(e,t){fd(this.contents,e,t,r=>{console.error(r)})}removeValue(e){eU(this.contents,e)}}});var yv,nU=I(()=>{jC();yv=class{constructor(e,t,r,n=new li){this._defaultConfiguration=e;this._userConfiguration=t;this._workspaceConfiguration=r;this._memoryConfiguration=n}getConsolidateConfiguration(){return this._consolidateConfiguration||(this._consolidateConfiguration=this._defaultConfiguration.merge(this._userConfiguration,this._workspaceConfiguration,this._memoryConfiguration),this._consolidateConfiguration=this._consolidateConfiguration.freeze()),this._consolidateConfiguration}getValue(e){return this.getConsolidateConfiguration().getValue(e)}inspect(e){let t=this.getConsolidateConfiguration(),{_workspaceConfiguration:r,_memoryConfiguration:n}=this;return{default:this._defaultConfiguration.freeze().getValue(e),user:this._userConfiguration.freeze().getValue(e),workspace:r.freeze().getValue(e),memory:n.freeze().getValue(e),value:t.getValue(e)}}get defaults(){return this._defaultConfiguration}get user(){return this._userConfiguration}get workspace(){return this._workspaceConfiguration}toData(){return{defaults:{contents:this._defaultConfiguration.contents},user:{contents:this._userConfiguration.contents},workspace:{contents:this._workspaceConfiguration.contents}}}}});var sU=y((JFe,oU)=>{oU.exports=function(i,e){for(var t=[],r=0;r{"use strict";cU.exports=aU;function aU(i,e,t){i instanceof RegExp&&(i=lU(i,t)),e instanceof RegExp&&(e=lU(e,t));var r=uU(i,e,t);return r&&{start:r[0],end:r[1],pre:t.slice(0,r[0]),body:t.slice(r[0]+i.length,r[1]),post:t.slice(r[1]+e.length)}}function lU(i,e){var t=e.match(i);return t?t[0]:null}aU.range=uU;function uU(i,e,t){var r,n,o,s,a,l=t.indexOf(i),u=t.indexOf(e,l+1),c=l;if(l>=0&&u>0){for(r=[],o=t.length;c>=0&&!a;)c==l?(r.push(c),l=t.indexOf(i,c+1)):r.length==1?a=[r.pop(),u]:(n=r.pop(),n=0?l:u;r.length&&(a=[o,s])}return a}});var bU=y((XFe,yU)=>{var mge=sU(),pU=fU();yU.exports=yge;var dU="\0SLASH"+Math.random()+"\0",hU="\0OPEN"+Math.random()+"\0",UC="\0CLOSE"+Math.random()+"\0",mU="\0COMMA"+Math.random()+"\0",gU="\0PERIOD"+Math.random()+"\0";function WC(i){return parseInt(i,10)==i?parseInt(i,10):i.charCodeAt(0)}function gge(i){return i.split("\\\\").join(dU).split("\\{").join(hU).split("\\}").join(UC).split("\\,").join(mU).split("\\.").join(gU)}function vge(i){return i.split(dU).join("\\").split(hU).join("{").split(UC).join("}").split(mU).join(",").split(gU).join(".")}function vU(i){if(!i)return[""];var e=[],t=pU("{","}",i);if(!t)return i.split(",");var r=t.pre,n=t.body,o=t.post,s=r.split(",");s[s.length-1]+="{"+n+"}";var a=vU(o);return o.length&&(s[s.length-1]+=a.shift(),s.push.apply(s,a)),e.push.apply(e,s),e}function yge(i){return i?(i.substr(0,2)==="{}"&&(i="\\{\\}"+i.substr(2)),Zu(gge(i),!0).map(vge)):[]}function bge(i){return"{"+i+"}"}function wge(i){return/^-?0\d/.test(i)}function Dge(i,e){return i<=e}function xge(i,e){return i>=e}function Zu(i,e){var t=[],r=pU("{","}",i);if(!r||/\$$/.test(r.pre))return[i];var n=/^-?\d+\.\.-?\d+(?:\.\.-?\d+)?$/.test(r.body),o=/^[a-zA-Z]\.\.[a-zA-Z](?:\.\.-?\d+)?$/.test(r.body),s=n||o,a=r.body.indexOf(",")>=0;if(!s&&!a)return r.post.match(/,.*\}/)?(i=r.pre+"{"+r.body+UC+r.post,Zu(i)):[i];var l;if(s)l=r.body.split(/\.\./);else if(l=vU(r.body),l.length===1&&(l=Zu(l[0],!1).map(bge),l.length===1)){var c=r.post.length?Zu(r.post,!1):[""];return c.map(function(F){return r.pre+l[0]+F})}var u=r.pre,c=r.post.length?Zu(r.post,!1):[""],f;if(s){var p=WC(l[0]),d=WC(l[1]),h=Math.max(l[0].length,l[1].length),m=l.length==3?Math.abs(WC(l[2])):1,w=Dge,v=d0){var A=new Array(P+1).join("0");x<0?S="-"+A+S.slice(1):S=A+S}}f.push(S)}}else f=mge(l,function(q){return Zu(q,!1)});for(var R=0;R{EU.exports=rn;rn.Minimatch=ar;var pd={sep:"/"};try{pd=require("path")}catch(i){}var HC=rn.GLOBSTAR=ar.GLOBSTAR={},Sge=bU(),wU={"!":{open:"(?:(?!(?:",close:"))[^/]*?)"},"?":{open:"(?:",close:")?"},"+":{open:"(?:",close:")+"},"*":{open:"(?:",close:")*"},"@":{open:"(?:",close:")"}},zC="[^/]",GC=zC+"*?",Cge="(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?",Ege="(?:(?!(?:\\/|^)\\.).)*?",DU=_ge("().*{}+?[]^$\\!");function _ge(i){return i.split("").reduce(function(e,t){return e[t]=!0,e},{})}var xU=/\/+/;rn.filter=Tge;function Tge(i,e){return e=e||{},function(t,r,n){return rn(t,i,e)}}function SU(i,e){i=i||{},e=e||{};var t={};return Object.keys(e).forEach(function(r){t[r]=e[r]}),Object.keys(i).forEach(function(r){t[r]=i[r]}),t}rn.defaults=function(i){if(!i||!Object.keys(i).length)return rn;var e=rn,t=function(n,o,s){return e.minimatch(n,o,SU(i,s))};return t.Minimatch=function(n,o){return new e.Minimatch(n,SU(i,o))},t};ar.defaults=function(i){return!i||!Object.keys(i).length?ar:rn.defaults(i).Minimatch};function rn(i,e,t){if(typeof e!="string")throw new TypeError("glob pattern string required");return t||(t={}),!t.nocomment&&e.charAt(0)==="#"?!1:e.trim()===""?i==="":new ar(e,t).match(i)}function ar(i,e){if(!(this instanceof ar))return new ar(i,e);if(typeof i!="string")throw new TypeError("glob pattern string required");e||(e={}),i=i.trim(),pd.sep!=="/"&&(i=i.split(pd.sep).join("/")),this.options=e,this.set=[],this.pattern=i,this.regexp=null,this.negate=!1,this.comment=!1,this.empty=!1,this.make()}ar.prototype.debug=function(){};ar.prototype.make=Pge;function Pge(){if(!this._made){var i=this.pattern,e=this.options;if(!e.nocomment&&i.charAt(0)==="#"){this.comment=!0;return}if(!i){this.empty=!0;return}this.parseNegate();var t=this.globSet=this.braceExpand();e.debug&&(this.debug=console.error),this.debug(this.pattern,t),t=this.globParts=t.map(function(r){return r.split(xU)}),this.debug(this.pattern,t),t=t.map(function(r,n,o){return r.map(this.parse,this)},this),this.debug(this.pattern,t),t=t.filter(function(r){return r.indexOf(!1)===-1}),this.debug(this.pattern,t),this.set=t}}ar.prototype.parseNegate=Rge;function Rge(){var i=this.pattern,e=!1,t=this.options,r=0;if(!t.nonegate){for(var n=0,o=i.length;n1024*64)throw new TypeError("pattern is too long");var t=this.options;if(!t.noglobstar&&i==="**")return HC;if(i==="")return"";var r="",n=!!t.nocase,o=!1,s=[],a=[],l,u=!1,c=-1,f=-1,p=i.charAt(0)==="."?"":t.dot?"(?!(?:^|\\/)\\.{1,2}(?:$|\\/))":"(?!\\.)",d=this;function h(){if(l){switch(l){case"*":r+=GC,n=!0;break;case"?":r+=zC,n=!0;break;default:r+="\\"+l;break}d.debug("clearStateChar %j %j",l,r),l=!1}}for(var m=0,w=i.length,v;m-1;M--){var L=a[M],q=r.slice(0,L.reStart),F=r.slice(L.reStart,L.reEnd-8),O=r.slice(L.reEnd-8,L.reEnd),U=r.slice(L.reEnd);O+=U;var X=q.split("(").length-1,de=U;for(m=0;m=0&&(n=i[o],!n);o--);for(o=0;o>> no match, partial?`,i,c,e,f),c===s))}var d;if(typeof l=="string"?(r.nocase?d=u.toLowerCase()===l.toLowerCase():d=u===l,this.debug("string match",l,u,d)):(d=u.match(l),this.debug("pattern match",l,u,d)),!d)return!1}if(n===s&&o===a)return!0;if(n===s)return t;if(o===a){var h=n===s-1&&i[n]==="";return h}throw new Error("wtf?")};function Oge(i){return i.replace(/\\(.)/g,"$1")}function Age(i){return i.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}});async function $t(i){let e=null;try{e=await nn.default.stat(i)}catch(t){}return e}function TU(i,e){return new Promise((t,r)=>{nn.default.rename(i,e,n=>{if(n)return r(n);t()})})}function dd(i,e,t,r=!1,n=!0){let o=VC.default.homedir(),s=hd(i);if(pt(s,o,!0))return null;if(n&&t&&pt(t,s,!0)&&Rs(t,e))return t;let a=s.split(Ri.default.sep);if(r){for(;a.length>0;){let l=a.join(Ri.default.sep);if(l==o)break;if(l!=o&&Rs(l,e))return l;a.pop()}return null}else{let l=[a.shift()];for(let u of a){l.push(u);let c=l.join(Ri.default.sep);if(c!=o&&Rs(c,e))return c}return null}}function Rs(i,e){try{let t=nn.default.readdirSync(i);for(let r of e)if(r.includes("*")?_U.default.match(t,r,{nobrace:!0,noext:!0,nocomment:!0,nonegate:!0,dot:!0}).length!==0:t.includes(r))return!0}catch(t){}return!1}function Qu(i,e){let t=Ri.default.parse(e).root,r=Array.isArray(i)?i:[i];for(;e&&e!==t;){if(Rs(e,r))for(let o of r){let s=Ri.default.join(e,o);if(nn.default.existsSync(s))return s}e=Ri.default.dirname(e)}return null}function ec(i,e){return new Promise((t,r)=>{nn.default.readFile(i,e,(n,o)=>{n&&r(n),t(o)})})}function PU(i){let e,t=0;return new Promise((r,n)=>{nn.default.createReadStream(i).on("error",o=>n(o)).on("data",o=>{for(e=0;er(t))})}function RU(i,e,t){if(!nn.default.existsSync(i))return Promise.reject(new Error(`file does not exist: ${i}`));let r=[],n=KC.default.createInterface({input:nn.default.createReadStream(i,{encoding:"utf8"}),crlfDelay:Infinity,terminal:!1}),o=0;return new Promise((s,a)=>{n.on("line",l=>{o==0&&l.startsWith("\uFEFF")&&(l=l.slice(1)),o>=e&&o<=t&&r.push(l),o==t&&n.close(),o=o+1}),n.on("close",()=>{s(r)}),n.on("error",a)})}function kU(i,e){if(!nn.default.existsSync(i))return Promise.reject(new Error(`file does not exist: ${i}`));let t=KC.default.createInterface({input:nn.default.createReadStream(i,{encoding:"utf8"}),crlfDelay:Infinity,terminal:!1}),r=0;return new Promise((n,o)=>{t.on("line",s=>{if(r==e){r==0&&s.startsWith("\uFEFF")&&(s=s.slice(1)),t.close(),n(s);return}r=r+1}),t.on("error",o)})}async function IU(i,e){await nn.default.writeFile(i,e,{encoding:"utf8"})}function wv(i){return i.startsWith("file:")}function pt(i,e,t=!1){let r=hd(Ri.default.resolve(Ri.default.normalize(i))),n=hd(Ri.default.resolve(Ri.default.normalize(e)));return r=="//"&&(r="/"),r==n?!!t:r.endsWith(Ri.default.sep)?n.startsWith(r):n.startsWith(r)&&n[r.length]==Ri.default.sep}function hd(i){return VC.default.platform()!="win32"||i[1]!=":"?i:i[0].toUpperCase()+i.slice(1)}var Lge,nn,Mge,VC,Ri,KC,qge,_U,QFe,Vt=I(()=>{Lge=E(require("child_process")),nn=E(bn()),Mge=E(require("net")),VC=E(require("os")),Ri=E(require("path")),KC=E(require("readline")),qge=E(require("util")),_U=E(Ps()),QFe=W()("util-fs")});function XC(i,e){if(e){if(i&&i.hasOwnProperty(e))return i[e];let t=e.split("."),r=i;for(let n=0;r&&n{JC=E(require("os")),ks=E(require("fs")),Fn=E(require("path")),YC=E(G());Ze();Pi();Gr();ye();nU();jC();BC();Yi();Vt();Nge=W()("configurations");Is=class{constructor(e,t){this.userConfigFile=e;this._proxy=t;this._errorItems=[];this._folderConfigurations=new Map;this._onError=new YC.Emitter;this._onChange=new YC.Emitter;this.disposables=[];this.onError=this._onError.event;this.onDidChange=this._onChange.event;let r=this.parseContentFromFile(e),n={defaults:rU(),user:r,workspace:{contents:{}}};this._configuration=Is.parse(n),this.watchFile(e,Nt.User);let o=Fn.default.join(process.cwd(),`.vim/${Tn}`);o!=e&&ks.default.existsSync(o)&&this.addFolderFile(o)}parseContentFromFile(e){if(!e)return{contents:{}};let t=j.file(e).toString();this._errorItems=this._errorItems.filter(n=>n.location.uri!=t);let r=Qj(e,n=>{this._errorItems.push(...n)});return this._onError.fire(this._errorItems),r}get errorItems(){return this._errorItems}get foldConfigurations(){return this._folderConfigurations}extendsDefaults(e){let{defaults:t}=this._configuration,{contents:r}=t;r=Oo(r),Object.keys(e).forEach(o=>{fd(r,o,e[o],s=>{Nge.error(s)})});let n={defaults:{contents:r},user:this._configuration.user,workspace:this._configuration.workspace};this._configuration=Is.parse(n)}updateUserConfig(e){if(!e||Object.keys(e).length==0)return;let{user:t}=this._configuration,r=t.clone();Object.keys(e).forEach(n=>{let o=e[n];if(o===void 0)r.removeValue(n);else if(zt(o))for(let s of Object.keys(o))r.setValue(`${n}.${s}`,o[s]);else r.setValue(n,o)}),this.changeConfiguration(Nt.User,r)}get defaults(){return this._configuration.defaults}get user(){return this._configuration.user}get workspace(){return this._configuration.workspace}addFolderFile(e){let{_folderConfigurations:t}=this;if(t.has(e)||Fn.default.resolve(e,"../..")==JC.default.homedir())return;let r=this.parseContentFromFile(e);this.watchFile(e,Nt.Workspace),this.changeConfiguration(Nt.Workspace,r,e)}watchFile(e,t){if(!ks.default.existsSync(e)||global.hasOwnProperty("__TEST__"))return;let r=Au(e,()=>{let n=this.parseContentFromFile(e);this.changeConfiguration(t,n,e)});this.disposables.push(r)}changeConfiguration(e,t,r){let{defaults:n,user:o,workspace:s}=this._configuration,{workspaceConfigFile:a}=this,l={defaults:e==Nt.Global?t:n,user:e==Nt.User?t:o,workspace:e==Nt.Workspace?t:s},u=Is.parse(l),c=iU(this._configuration.getValue(),u.getValue());e==Nt.Workspace&&r&&(this._folderConfigurations.set(r,new li(t.contents)),this.workspaceConfigFile=r),c.length!=0&&(this._configuration=u,this._onChange.fire({affectsConfiguration:(f,p)=>{if(!p||e!=Nt.Workspace)return c.includes(f);let d=j.parse(p);if(d.scheme!=="file")return c.includes(f);let h=d.fsPath,m=a?Fn.default.resolve(a,"../.."):"";return r&&!pt(m,h,!0)&&!pt(Fn.default.resolve(r,"../.."),h)?!1:c.includes(f)}}))}setFolderConfiguration(e){let t=j.parse(e);if(t.scheme!="file")return;let r=t.fsPath;for(let[n,o]of this.foldConfigurations){let s=Fn.default.resolve(n,"../..");if(pt(s,r,!0)&&this.workspaceConfigFile!=n){this.changeConfiguration(Nt.Workspace,o,n);break}}}hasFolderConfiguration(e){let{folders:t}=this;return t.findIndex(r=>pt(r,e,!0))!==-1}getConfigFile(e){return e==Nt.Global?null:e==Nt.User?this.userConfigFile:this.workspaceConfigFile}get folders(){let e=[],{_folderConfigurations:t}=this;for(let r of t.keys())e.push(Fn.default.resolve(r,"../.."));return e}get configuration(){return this._configuration}getConfiguration(e,t){let r;if(t){let{defaults:s,user:a}=this._configuration;r=new yv(s,a,this.getFolderConfiguration(t))}else r=this._configuration;let n=Object.freeze(XC(r.getValue(null),e)),o={has(s){return typeof XC(n,s)!="undefined"},get:(s,a)=>{let l=XC(n,s);return l==null?a:l},update:(s,a,l=!1)=>{let u=e?`${e}.${s}`:s,c=l?Nt.User:Nt.Workspace,f=c==Nt.User?this.user.clone():this.workspace.clone();if(a==null?f.removeValue(u):f.setValue(u,a),c==Nt.Workspace&&!this.workspaceConfigFile&&this._proxy){let p=this.workspaceConfigFile=this._proxy.workspaceConfigFile;if(!ks.default.existsSync(p)){let d=Fn.default.dirname(p);ks.default.existsSync(d)||ks.default.mkdirSync(d),ks.default.writeFileSync(p,"{}",{encoding:"utf8"})}}this.changeConfiguration(c,f,c==Nt.Workspace?this.workspaceConfigFile:this.userConfigFile),this._proxy&&!global.hasOwnProperty("__TEST__")&&(a==null?this._proxy.$removeConfigurationOption(c,u):this._proxy.$updateConfigurationOption(c,u,a))},inspect:s=>{s=e?`${e}.${s}`:s;let a=this._configuration.inspect(s);if(a)return{key:s,defaultValue:a.default,globalValue:a.user,workspaceValue:a.workspace}}};return Object.defineProperty(o,"has",{enumerable:!1}),Object.defineProperty(o,"get",{enumerable:!1}),Object.defineProperty(o,"update",{enumerable:!1}),Object.defineProperty(o,"inspect",{enumerable:!1}),typeof n=="object"&&AS(o,n,!1),N2(o)}getFolderConfiguration(e){let t=j.parse(e);if(t.scheme!="file")return new li;let r=t.fsPath;for(let[n,o]of this.foldConfigurations){let s=Fn.default.resolve(n,"../..");if(pt(s,r,!0))return o}return new li}checkFolderConfiguration(e){let t=j.parse(e);if(t.scheme!="file")return;let r=Fn.default.dirname(t.fsPath);if(this.hasFolderConfiguration(r))this.setFolderConfiguration(e);else{let n=Qu(".vim",r);if(n&&n!=JC.default.homedir()){let o=Fn.default.join(n,Tn);ks.default.existsSync(o)&&this.addFolderFile(o)}}}static parse(e){let t=new li(e.defaults.contents),r=new li(e.user.contents),n=new li(e.workspace.contents);return new yv(t,r,n,new li)}dispose(){J(this.disposables)}}});var ZC,QC,SOe,Dv,OU=I(()=>{ZC=E(require("fs"));ud();QC=E(require("path"));Ze();ye();SOe=W()("configuration-shape"),Dv=class{constructor(e){this.workspace=e}get nvim(){return this.workspace.nvim}async modifyConfiguration(e,t,r){let{nvim:n,workspace:o}=this,s=o.getConfigFile(e);if(!s)return;let a={tabSize:2,insertSpaces:!0},l=ZC.default.readFileSync(s,"utf8");r=r==null?void 0:r;let u=Yj(l,[t],r,{formattingOptions:a});l=Xj(l,u),ZC.default.writeFileSync(s,l,"utf8"),o.getDocument(j.file(s).toString())&&n.command("checktime",!0)}get workspaceConfigFile(){let e=QC.default.join(this.workspace.root,".vim");return QC.default.join(e,Tn)}$updateConfigurationOption(e,t,r){this.modifyConfiguration(e,t,r).logError()}$removeConfigurationOption(e,t){this.modifyConfiguration(e,t).logError()}}});var ki,eE,tc,tE=I(()=>{ki=E(bn()),eE=E(require("path")),tc=class{constructor(e){this.filepath=e}fetch(e){let t=this.load();if(!e)return t;let r=e.split(".");for(let n of r){if(typeof t[n]=="undefined")return;t=t[n]}return t}exists(e){let t=this.load(),r=e.split(".");for(let n of r){if(typeof t[n]=="undefined")return!1;t=t[n]}return!0}delete(e){let t=this.load(),r=t,n=e.split("."),o=n.length;for(let s=0;s0){let p=l;for(let d=0;d{xv=E(Ju());Ct();TOe=W()("util-diff")});var ROe,on,md,qU=I(()=>{ROe=W()("model-chars"),on=class{constructor(e,t){this.start=e,this.end=t||e}static fromKeywordOption(e){let t=e.split(","),r=[];for(let n of t)if(n=="@")r.push(new on(65,90)),r.push(new on(97,122));else if(n=="@-@")r.push(new on(64));else if(/^([A-Za-z])-([A-Za-z])$/.test(n)){let o=n.match(/^([A-Za-z])-([A-Za-z])$/);r.push(new on(o[1].charCodeAt(0),o[2].charCodeAt(0)))}else if(/^\d+-\d+$/.test(n)){let o=n.match(/^(\d+)-(\d+)$/);r.push(new on(Number(o[1]),Number(o[2])))}else if(/^\d+$/.test(n))r.push(new on(Number(n)));else{let o=n.charCodeAt(0);r.some(s=>s.contains(o))||r.push(new on(o))}return r}contains(e){return e>=this.start&&e<=this.end}},md=class{constructor(e){this.ranges=[];e&&(this.ranges=on.fromKeywordOption(e))}addKeyword(e){let t=e.charCodeAt(0),{ranges:r}=this;r.some(n=>n.contains(t))||r.push(new on(t))}clone(){let e=new md;return e.ranges=this.ranges.slice(),e}setKeywordOption(e){this.ranges=on.fromKeywordOption(e)}matchKeywords(e,t=3){let r=e.length;if(r==0)return[];let n=new Set,o="",s=0;for(let a=0;a=t&&s<48&&n.add(o),o="",s=0}return s!=0&&n.add(o),Array.from(n)}isKeywordCode(e){return e>255?!0:e<33?!1:this.ranges.some(t=>t.contains(e))}isKeywordChar(e){let{ranges:t}=this,r=e.charCodeAt(0);return r>255?!0:r<33?!1:t.some(n=>n.contains(r))}isKeyword(e){let{ranges:t}=this;for(let r=0,n=e.length;r255)return!1;if(!t.some(s=>s.contains(o)))return!1}return!0}}});function $ge(i,e,t=0){let r=e?[t]:[];for(let n=0;n{iE=class{constructor(e,t,r,n,o){this.uri=e;this.languageId=t;this.version=r;this.lines=n;this.eol=o}get _content(){return this.lines.join(` +`)+(this.eol?` +`:"")}get lineCount(){return this.lines.length+(this.eol?1:0)}getText(e){if(e){let t=this.offsetAt(e.start),r=this.offsetAt(e.end);return this._content.substring(t,r)}return this._content}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),r=0,n=t.length;if(n===0)return{line:0,character:e};for(;re?n=s:r=s+1}let o=r-1;return{line:o,character:e-t[o]}}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let r=t[e.line],n=e.line+1{nE=E(zr()),On=E(G());Za();Ze();je();rE();ye();_s();Gr();Ap();Ct();qU();NU();$U=W()("model-document"),rc=class{constructor(e,t,r){this.buffer=e;this.env=t;this.maxFileSize=r;this.isIgnored=!1;this.mutex=new kr;this._version=1;this.size=0;this.eol=!0;this.lines=[];this.syncLines=[];this._attached=!1;this._previewwindow=!1;this._winid=-1;this._words=[];this._onDocumentChange=new On.Emitter;this._onDocumentDetach=new On.Emitter;this.disposables=[];this.onDocumentChange=this._onDocumentChange.event;this.onDocumentDetach=this._onDocumentDetach.event;this.fireContentChanges=(0,nE.default)(()=>{this._fireContentChanges()},100),this.fetchContent=(0,nE.default)(()=>{this._fetchContent().logError()},100)}get content(){return this.syncLines.join(` +`)+(this.eol?` +`:"")}get version(){return this._version}get bufnr(){return this.buffer.id}get filetype(){return this._filetype}get uri(){return this._uri}get shouldAttach(){let{buftype:e,maxFileSize:t}=this;return this.getVar("enabled",!0)?this.uri.endsWith("%5BCommand%20Line%5D")?!0:this.size==-2||t&&this.size>t?!1:e==""||e=="acwrite":!1}get isCommandLine(){return this.uri&&this.uri.endsWith("%5BCommand%20Line%5D")}get enabled(){return this.getVar("enabled",!0)}get words(){return this._words}convertFiletype(e){let t=this.env.filetypeMap;return e=="javascript.jsx"?"javascriptreact":e=="typescript.jsx"||e=="typescript.tsx"?"typescriptreact":t[e]||e}get changedtick(){return this._changedtick}get schema(){return j.parse(this.uri).scheme}get lineCount(){return this.lines.length}get winid(){return this._winid}get previewwindow(){return this._previewwindow}async init(e,t){this.nvim=e;let r=await e.call("coc#util#get_bufoptions",[this.bufnr,this.maxFileSize]);if(r==null)return!1;let n=this.buftype=r.buftype;if(this._previewwindow=r.previewwindow,this._winid=r.winid,this.size=typeof r.size=="number"?r.size:0,this.variables=r.variables||{},this._changedtick=r.changedtick,this.eol=r.eol==1,this._uri=Tg(r.fullpath,this.bufnr,n,this.env.isCygwin),t.isCancellationRequested)return!1;if(this.shouldAttach){if(this.lines=r.lines,this.syncLines=this.lines,!await this.attach())return!1;this._attached=!0}return this._filetype=this.convertFiletype(r.filetype),this.setIskeyword(r.iskeyword),t.isCancellationRequested?(this.detach(),!1):!0}async attach(){return await this.buffer.attach(!0)?(this.buffer.listen("lines",this.onChange.bind(this),this.disposables),this.buffer.listen("detach",async t=>{this._onDocumentDetach.fire(t.id)},this.disposables),!0):!1}async onChange(e,t,r,n,o){e.id!==this.bufnr||!this._attached||t==null||this.mutex.busy||t>this._changedtick&&(this._changedtick=t,this.lines=[...this.lines.slice(0,r),...o,...this.lines.slice(n)],this.fireContentChanges())}async checkDocument(){let{buffer:e}=this,t=await this.mutex.acquire();this.fireContentChanges.clear(),this._changedtick=await e.changedtick,this.lines=await e.lines,this._fireContentChanges()&&await nt(30),t()}get dirty(){return this.lines===this.syncLines?!1:!rt(this.lines,this.syncLines)}_fireContentChanges(){let{cursor:e}=N,{textDocument:t}=this;try{let r=null;e&&e.bufnr==this.bufnr&&(r=this.getEndOffset(e.lnum,e.col,e.insert));let n=this.getDocumentContent(),o=LU(t.getText(),n,r);if(o==null)return;let s=t.positionAt(o.start),a=t.positionAt(o.end),l=t.getText(On.Range.create(s,a));this._version=this._version+1,this.syncLines=this.lines;let u=[{range:{start:s,end:a},rangeLength:o.end-o.start,text:o.newText}];return this._onDocumentChange.fire({bufnr:this.bufnr,original:l,textDocument:{version:this.version,uri:this.uri},contentChanges:u}),this._words=this.chars.matchKeywords(n),!0}catch(r){$U.error(r.message)}return!1}async applyEdits(e){if(!Array.isArray(arguments[0])&&Array.isArray(arguments[1])&&(e=arguments[1]),e.length==0)return;let t=this.getDocumentContent(),r=tr.create(this.uri,this.filetype,1,t),n=tr.applyEdits(r,e);if(Io&&(n=n.replace(/\r\n/g,` +`)),t!==n){let o=(this.eol&&n.endsWith(` +`)?n.slice(0,-1):n).split(` +`),s=AU(this.lines,o),a=await this.mutex.acquire();try{let l=await this.nvim.call("coc#util#set_lines",[this.bufnr,s.replacement,s.start,s.end]);this._changedtick=l.changedtick,this.lines=o,this.fireContentChanges.clear(),this._fireContentChanges(),rt(o,l.lines)||process.nextTick(()=>{this.lines=l.lines,this.fireContentChanges.clear(),this._fireContentChanges()}),a()}catch(l){$U.error("Error on applyEdits: ",l),a()}}}async changeLines(e){let t=[],r=this.lines.slice();for(let[o,s]of e)r[o]!=s&&(t.push([o,s]),r[o]=s);if(!t.length)return;let n=await this.mutex.acquire();try{let o=await this.nvim.call("coc#util#change_lines",[this.bufnr,t]);o!=null&&(this.lines=r,this._changedtick=o.changedtick,this.fireContentChanges.clear(),this._fireContentChanges(),rt(r,o.lines)||process.nextTick(()=>{this.lines=o.lines,this.fireContentChanges.clear(),this._fireContentChanges()})),n()}catch(o){n()}}forceSync(){this.mutex.busy||(this.fireContentChanges.clear(),this._fireContentChanges())}getOffset(e,t){return this.textDocument.offsetAt({line:e-1,character:t})}isWord(e){return this.chars.isKeyword(e)}getMoreWords(){let e=[],{words:t,chars:r}=this;if(!r.isKeywordChar("-"))return e;for(let n of t)if(n=n.replace(/^-+/,""),n.includes("-")){let o=n.split("-");for(let s of o)s.length>2&&!e.includes(s)&&!t.includes(s)&&e.push(s)}return e}getWordRangeAtPosition(e,t,r=!0){let n=this.chars.clone();if(t&&t.length)for(let l of t)n.addKeyword(l);let o=this.getline(e.line,r);if(o.length==0||e.character>=o.length||!n.isKeywordChar(o[e.character]))return null;let s=e.character,a=e.character+1;if(!n.isKeywordChar(o[s]))return On.Range.create(e,{line:e.line,character:e.character+1});for(;s>=0;){let l=o[s-1];if(!l||!n.isKeyword(l))break;s=s-1}for(;a<=o.length;){let l=o[a];if(!l||!n.isKeywordChar(l))break;a=a+1}return On.Range.create(e.line,s,e.line,a)}get textDocument(){let{version:e,filetype:t,uri:r}=this;return new iE(r,t,e,this.syncLines,this.eol)}async _fetchContent(){if(!this.env.isVim||!this._attached)return;let{nvim:e,bufnr:t,changedtick:r}=this,n=await this.mutex.acquire(),o=await e.call("coc#util#get_buf_lines",[t,r]);o&&o.changedtick>=this._changedtick&&(this._changedtick=o.changedtick,this.lines=o.lines,this.fireContentChanges.clear(),this._fireContentChanges()),n()}async patchChange(e){if(!!this._attached)if(this.env.isVim)if(e){let t=await this.nvim.call("coc#util#get_changeinfo",[]);if(t.changedtick0&&!u&&o==e&&t.push(On.Range.create(r.positionAt(s-o.length),r.positionAt(s))),u||(o="")}return t}fixStartcol(e,t){let r=this.getline(e.line);if(!r)return null;let{character:n}=e,o=r.slice(0,n),s=me(o),{chars:a}=this;for(let l=o.length-1;l>=0;l--){let u=o[l];if(u==" "||!a.isKeywordChar(u)&&!t.includes(u))break;s=s-me(u)}return s}getline(e,t=!0){return t?this.lines[e]||"":this.syncLines[e]||""}getLines(e,t){return this.lines.slice(e,t)}getDocumentContent(){let e=this.lines.join(` +`);return this.eol?e+` +`:e}getVar(e,t){let r=this.variables[`coc_${e}`];return r===void 0?t:r}getPosition(e,t){let r=this.getline(e-1);if(!r||t==0)return{line:e-1,character:0};let n=er(r,0,t-1);return{line:e-1,character:n.length}}getEndOffset(e,t,r){let n=0,o=this.lines.length;for(let s=e-1;s3e4?this.lines.slice(0,3e4):this.lines;this._words=this.chars.matchKeywords(n.join(` +`))}get attached(){return this._attached}detach(){this._attached=!1,J(this.disposables),this.disposables=[],this.fetchContent.clear(),this.fireContentChanges.clear(),this._onDocumentChange.dispose(),this._onDocumentDetach.dispose()}getLocalifyBonus(e,t){let r=new Map,{chars:n}=this,o=Math.max(0,e.line-100),s=Math.min(this.lineCount,e.line+100),a=this.lines.slice(o,s).join(` +`);e=On.Position.create(e.line-o,e.character),t=On.Position.create(t.line-o,t.character);let l=tr.create(this.uri,this.filetype,1,a),u=l.offsetAt(e),c=a.length,f=c-l.offsetAt(t),p=0,d=!1;for(let h=0;h1){let w=a.slice(p,h);r.set(w,h/u)}d=m}p=c-f,d=!1;for(let h=p;h1){let w=h==c-1?h+1:h,v=a.slice(p,w),D=r.get(v)||0;r.set(v,Math.max(D,(c-h+(w-p))/f))}d=m}return r}}});function Sv(i,e){let t=[[],[]];for(let r of i)e(r)?t[0].push(r):t[1].push(r);return t}function BU(i,e){let t=i.length,r=[];for(let n=0;ni.indexOf(r)===n);let t=Object.create(null);return i.filter(r=>{let n=e(r);return t[n]?!1:(t[n]=!0,!0)})}var gd=I(()=>{});var vd,jU,ic,UU,nc,sE=I(()=>{vd=E(G());Ze();jU=E(Ps()),ic=E(require("path"));ye();gd();UU=W()("filesystem-watcher"),nc=class{constructor(e,t,r,n,o){this.globPattern=t;this.ignoreCreateEvents=r;this.ignoreChangeEvents=n;this.ignoreDeleteEvents=o;this._onDidCreate=new vd.Emitter;this._onDidChange=new vd.Emitter;this._onDidDelete=new vd.Emitter;this._onDidRename=new vd.Emitter;this.onDidCreate=this._onDidCreate.event;this.onDidChange=this._onDidChange.event;this.onDidDelete=this._onDidDelete.event;this.onDidRename=this._onDidRename.event;this.disposables=[];!e||e.then(s=>{if(s)return this.listen(s)}).catch(s=>{UU.error("watchman initialize failed"),UU.error(s.stack)})}async listen(e){let{globPattern:t,ignoreCreateEvents:r,ignoreChangeEvents:n,ignoreDeleteEvents:o}=this,s=await e.subscribe(t,a=>{let{root:l,files:u}=a;u=u.filter(c=>c.type=="f"&&(0,jU.default)(c.name,t,{dot:!0}));for(let c of u){let f=j.file(ic.default.join(l,c.name));c.exists?c.new===!0?r||this._onDidCreate.fire(f):n||this._onDidChange.fire(f):o||this._onDidDelete.fire(f)}if(u.length==2&&!u[0].exists&&u[1].exists){let c=u[0],f=u[1];c.size==f.size&&this._onDidRename.fire({oldUri:j.file(ic.default.join(l,c.name)),newUri:j.file(ic.default.join(l,f.name))})}if(u.length>=2){let[c,f]=Sv(u,p=>p.exists===!1);if(c.length==f.length)for(let p of c){let d=f.find(h=>h.size==p.size&&h.mtime_ms==p.mtime_ms);d&&this._onDidRename.fire({oldUri:j.file(ic.default.join(l,p.name)),newUri:j.file(ic.default.join(l,d.name))})}}});return this.disposables.push(s),s}dispose(){J(this.disposables)}}});var aE,Fs,Os,Ev=I(()=>{aE=E(require("path")),Fs=E(bn()),Os=class{constructor(e,t){this.name=e;this.file=aE.default.join(t||process.env.COC_DATA_HOME,e)}async load(){let e=aE.default.dirname(this.file);try{Fs.default.mkdirpSync(e),Fs.default.existsSync(this.file)||Fs.default.writeFileSync(this.file,"","utf8");let t=await Fs.default.readFile(this.file,"utf8");return t=t.trim(),t.length?t.trim().split(` +`):[]}catch(t){return[]}}async add(e){let t=await this.load(),r=t.indexOf(e);r!==-1&&t.splice(r,1),t.unshift(e),Fs.default.writeFileSync(this.file,t.join(` +`),"utf8")}async remove(e){let t=await this.load(),r=t.indexOf(e);r!==-1&&(t.splice(r,1),Fs.default.writeFileSync(this.file,t.join(` +`),"utf8"))}async clean(){try{await Fs.default.unlink(this.file)}catch(e){}}}});function lE(i,e,t){let r=t.value;if(typeof r!="function")return;let n="$"+e;t.value=function(...o){return this.hasOwnProperty(n)?Promise.resolve(this[n]):new Promise((s,a)=>{Promise.resolve(r.apply(this,o)).then(l=>{this[n]=l,s(l)},l=>{a(l)})})}}var rAe,WU=I(()=>{rAe=W()("util-decorator")});var oc,HU,uE,aAe,sc,zU=I(()=>{oc=E(require("path")),HU=E(require("fs"));ye();Vt();WU();uE=E(Zg()),aAe=W()("model-resolver"),sc=class{get nodeFolder(){return Lp("npm")?Kn("npm --loglevel silent root -g",{},3e3).then(e=>(0,uE.default)(e).trim()):Promise.resolve("")}get yarnFolder(){return Lp("yarnpkg")?Kn("yarnpkg global dir",{},3e3).then(e=>{let t=oc.default.join((0,uE.default)(e).trim(),"node_modules");return HU.default.existsSync(t)?t:""}):Promise.resolve("")}async resolveModule(e){let t=await this.nodeFolder,r=await this.yarnFolder;if(r){let n=await $t(oc.default.join(r,e,"package.json"));if(n&&n.isFile())return oc.default.join(r,e)}if(t){let n=await $t(oc.default.join(t,e,"package.json"));if(n&&n.isFile())return oc.default.join(t,e)}return null}};wD([lE],sc.prototype,"nodeFolder",1),wD([lE],sc.prototype,"yarnFolder",1)});var _v,Tv,GU=I(()=>{je();_v=E(G());ye();Tv=class{constructor(e,t){this.nvim=e;this.id=t;this.disposables=[];this._onExit=new _v.Emitter;this._onStderr=new _v.Emitter;this._onStdout=new _v.Emitter;this.onExit=this._onExit.event;this.onStdout=this._onStdout.event;this.onStderr=this._onStderr.event;N.on("TaskExit",(o,s)=>{o==this.id&&this._onExit.fire(s)},null,this.disposables),N.on("TaskStderr",(o,s)=>{o==this.id&&this._onStderr.fire(s)},null,this.disposables);let r=[],n;N.on("TaskStdout",(o,s)=>{o==this.id&&(n&&clearTimeout(n),r.push(...s),n=setTimeout(()=>{this._onStdout.fire(r),r=[]},100))},null,this.disposables)}async start(e){let{nvim:t}=this;return await t.call("coc#task#start",[this.id,e])}async stop(){let{nvim:e}=this;await e.call("coc#task#stop",[this.id])}get running(){let{nvim:e}=this;return e.call("coc#task#running",[this.id])}dispose(){let{nvim:e}=this;e.call("coc#task#stop",[this.id],!0),this._onStdout.dispose(),this._onStderr.dispose(),this._onExit.dispose(),J(this.disposables)}}});var hAe,Pv,VU=I(()=>{hAe=W()("model-terminal"),Pv=class{constructor(e,t,r,n){this.cmd=e;this.args=t;this.nvim=r;this._name=n;this.pid=0}async start(e,t){let{nvim:r}=this,n=[this.cmd,...this.args],[o,s]=await r.call("coc#terminal#start",[n,e,t||{}]);this.bufnr=o,this.pid=s}get name(){return this._name||this.cmd}get processId(){return Promise.resolve(this.pid)}sendText(e,t=!0){!this.bufnr||this.nvim.call("coc#terminal#send",[this.bufnr,e,t],!0)}async show(e){let{bufnr:t,nvim:r}=this;if(!t)return;let[n,o,s]=await r.eval(`[bufloaded(${t}),bufwinid(${t}),win_getid()]`);return n?(s==o||(r.pauseNotification(),o==-1?(r.command(`below ${t}sb`,!0),r.command("resize 8",!0),r.call("coc#util#do_autocmd",["CocTerminalOpen"],!0)):r.call("win_gotoid",[o],!0),r.command("normal! G",!0),e&&r.command("wincmd p",!0),await r.resumeNotification()),!0):!1}async hide(){let{bufnr:e,nvim:t}=this;if(!e)return;let r=await t.call("bufwinnr",e);r!=-1&&await t.command(`${r}close!`)}dispose(){let{bufnr:e,nvim:t}=this;!e||t.call("coc#terminal#close",[e],!0)}}});var Rv,KU=I(()=>{ye();Rv=class{constructor(e,t){this._create=e;this.workspace=t;this.disposables=[];this.itemsMap=new Map;let{disposables:r}=this;for(let n of t.documents)this.create(n);t.onDidOpenTextDocument(n=>{let o=t.getDocument(n.bufnr);o&&this.create(o)},null,r),t.onDidChangeTextDocument(n=>{this.onChange(n)},null,r),t.onDidCloseTextDocument(n=>{this.delete(n.bufnr)},null,r)}get items(){return Array.from(this.itemsMap.values()).map(e=>e.item)}getItem(e){var r;if(typeof e=="number")return(r=this.itemsMap.get(e))==null?void 0:r.item;let t=Array.from(this.itemsMap.values()).find(n=>n.uri==e);return t?t.item:void 0}create(e){if(!e||e.isCommandLine||!e.attached)return;let t=this.itemsMap.get(e.bufnr);t&&t.item.dispose();let r=this._create(e);r&&this.itemsMap.set(e.bufnr,{uri:e.uri,item:r})}onChange(e){let t=this.itemsMap.get(e.bufnr);t&&typeof t.item.onChange=="function"&&t.item.onChange(e)}delete(e){let t=this.itemsMap.get(e);t&&(this.itemsMap.delete(e),t.item.dispose())}reset(){for(let e of this.itemsMap.values())e.item.dispose();this.itemsMap.clear()}dispose(){J(this.disposables);for(let e of this.itemsMap.values())e.item.dispose();this.itemsMap.clear()}}});function ac(i,e,t){if(Array.isArray(i)){let r=0;for(let n of i){let o=ac(n,e,t);if(o===10)return o;o>r&&(r=o)}return r}else{if(typeof i=="string")return i==="*"?5:i===t?10:0;if(i){let r=j.parse(e),{language:n,pattern:o,scheme:s}=i,a=0;if(s)if(s===r.scheme)a=5;else if(s==="*")a=3;else return 0;if(n)if(n===t)a=10;else if(n==="*")a=Math.max(a,5);else return 0;if(o){let l=Io||kS,u=l?o.toLowerCase():o,c=l?r.fsPath.toLowerCase():r.fsPath;if(u===c||(0,JU.default)(c,u,{dot:!0}))a=5;else return 0}return a}else return 0}}var JU,cE=I(()=>{JU=E(Ps());Ze();Ap()});var ZU=y((DAe,XU)=>{var fE=4294967296,YU=[];for(var yd=0;yd<256;yd++)YU[yd]=(yd>15?"":"0")+yd.toString(16);var bd=XU.exports=function(i,e){i instanceof Buffer?(this.buffer=i,this.offset=e||0):Object.prototype.toString.call(i)=="[object Uint8Array]"?(this.buffer=new Buffer(i),this.offset=e||0):(this.buffer=this.buffer||new Buffer(8),this.offset=0,this.setValue.apply(this,arguments))};bd.MAX_INT=Math.pow(2,53);bd.MIN_INT=-Math.pow(2,53);bd.prototype={constructor:bd,_2scomp:function(){for(var i=this.buffer,e=this.offset,t=1,r=e+7;r>=e;r--){var n=(i[r]^255)+t;i[r]=n&255,t=n>>8}},setValue:function(i,e){var t=!1;if(arguments.length==1)if(typeof i=="number"){if(t=i<0,i=Math.abs(i),e=i%fE,i=i/fE,i>fE)throw new RangeError(i+" is outside Int64 range");i=i|0}else if(typeof i=="string")i=(i+"").replace(/^0x/,""),e=i.substr(-8),i=i.length>8?i.substr(0,i.length-8):"",i=parseInt(i,16),e=parseInt(e,16);else throw new Error(i+" must be a Number or String");for(var r=this.buffer,n=this.offset,o=7;o>=0;o--)r[n+o]=e&255,e=o==4?i:e>>>8;t&&this._2scomp()},toNumber:function(i){for(var e=this.buffer,t=this.offset,r=e[t]&128,n=0,o=1,s=7,a=1;s>=0;s--,a*=256){var l=e[t+s];r&&(l=(l^255)+o,o=l>>8,l=l&255),n+=l*a}return!i&&n>=bd.MAX_INT?r?-Infinity:Infinity:r?-n:n},valueOf:function(){return this.toNumber(!1)},toString:function(i){return this.valueOf().toString(i||10)},toOctetString:function(i){for(var e=new Array(8),t=this.buffer,r=this.offset,n=0;n<8;n++)e[n]=YU[t[r+n]];return e.join(i||"")},toBuffer:function(i){if(i&&this.offset===0)return this.buffer;var e=new Buffer(8);return this.buffer.copy(e,0,this.offset,this.offset+8),e},copy:function(i,e){this.buffer.copy(i,e||0,this.offset,this.offset+8)},compare:function(i){if((this.buffer[this.offset]&128)!=(i.buffer[i.offset]&128))return i.buffer[i.offset]-this.buffer[this.offset];for(var e=0;e<8;e++)if(this.buffer[this.offset+e]!==i.buffer[i.offset+e])return this.buffer[this.offset+e]-i.buffer[i.offset+e];return 0},equals:function(i){return this.compare(i)===0},inspect:function(){return"[Int64 value:"+this+" octets:"+this.toOctetString(" ")+"]"}}});var uW=y(Dd=>{var QU=require("events").EventEmitter,Bge=require("util"),jge=require("os"),xAe=require("assert"),wd=ZU(),As=jge.endianness()=="BE";function eW(i){return Math.pow(2,Math.ceil(Math.log(i)/Math.LN2))}function lr(i){this.buf=Buffer.alloc(eW(i||8192)),this.readOffset=0,this.writeOffset=0}Dd.Accumulator=lr;lr.prototype.writeAvail=function(){return this.buf.length-this.writeOffset};lr.prototype.readAvail=function(){return this.writeOffset-this.readOffset};lr.prototype.reserve=function(i){if(!(i0&&(this.buf.copy(this.buf,0,this.readOffset,this.writeOffset),this.writeOffset-=this.readOffset,this.readOffset=0),!(i0)this.assertReadableSize(i);else if(i<0&&this.readOffset+i<0)throw new Error("advance with negative offset "+i+" would seek off the start of the buffer");this.readOffset+=i};lr.prototype.writeByte=function(i){this.reserve(1),this.buf.writeInt8(i,this.writeOffset),++this.writeOffset};lr.prototype.writeInt=function(i,e){switch(this.reserve(e),e){case 1:this.buf.writeInt8(i,this.writeOffset);break;case 2:As?this.buf.writeInt16BE(i,this.writeOffset):this.buf.writeInt16LE(i,this.writeOffset);break;case 4:As?this.buf.writeInt32BE(i,this.writeOffset):this.buf.writeInt32LE(i,this.writeOffset);break;default:throw new Error("unsupported integer size "+e)}this.writeOffset+=e};lr.prototype.writeDouble=function(i){this.reserve(8),As?this.buf.writeDoubleBE(i,this.writeOffset):this.buf.writeDoubleLE(i,this.writeOffset),this.writeOffset+=8};var pE=0,dE=1,hE=2,mE=3,gE=4,kv=5,Iv=6,tW=7,rW=8,iW=9,nW=10,oW=11,Uge=12,vE=0,sW=1,Wge=127,Hge=32767,zge=2147483647;function ui(){QU.call(this),this.buf=new lr,this.state=vE}Bge.inherits(ui,QU);Dd.BunserBuf=ui;ui.prototype.append=function(i,e){if(e)return this.buf.append(i),this.process(e);try{this.buf.append(i)}catch(t){this.emit("error",t);return}this.processLater()};ui.prototype.processLater=function(){var i=this;process.nextTick(function(){try{i.process(!1)}catch(e){i.emit("error",e)}})};ui.prototype.process=function(i){if(this.state==vE){if(this.buf.readAvail()<2)return;if(this.expectCode(0),this.expectCode(1),this.pduLen=this.decodeInt(!0),this.pduLen===!1){this.buf.readAdvance(-2);return}this.buf.reserve(this.pduLen),this.state=sW}if(this.state==sW){if(this.buf.readAvail()0&&this.processLater()};ui.prototype.raise=function(i){throw new Error(i+", in Buffer of length "+this.buf.buf.length+" ("+this.buf.readAvail()+" readable) at offset "+this.buf.readOffset+" buffer: "+JSON.stringify(this.buf.buf.slice(this.buf.readOffset,this.buf.readOffset+32).toJSON()))};ui.prototype.expectCode=function(i){var e=this.buf.readInt(1);e!=i&&this.raise("expected bser opcode "+i+" but got "+e)};ui.prototype.decodeAny=function(){var i=this.buf.peekInt(1);switch(i){case mE:case gE:case kv:case Iv:return this.decodeInt();case tW:return this.buf.readAdvance(1),this.buf.readDouble();case rW:return this.buf.readAdvance(1),!0;case iW:return this.buf.readAdvance(1),!1;case nW:return this.buf.readAdvance(1),null;case hE:return this.decodeString();case pE:return this.decodeArray();case dE:return this.decodeObject();case oW:return this.decodeTemplate();default:this.raise("unhandled bser opcode "+i)}};ui.prototype.decodeArray=function(){this.expectCode(pE);for(var i=this.decodeInt(),e=[],t=0;t{"use strict";var Kge=require("net"),cW=require("events").EventEmitter,Jge=require("util"),Yge=require("child_process"),fW=uW(),pW=["subscription","log"];function Lo(i){var e=this;cW.call(this),this.watchmanBinaryPath="watchman",i&&i.watchmanBinaryPath&&(this.watchmanBinaryPath=i.watchmanBinaryPath.trim()),this.commands=[]}Jge.inherits(Lo,cW);mW.exports.Client=Lo;Lo.prototype.sendNextCommand=function(){this.currentCommand||(this.currentCommand=this.commands.shift(),!!this.currentCommand&&this.socket.write(fW.dumpToBuffer(this.currentCommand.cmd)))};Lo.prototype.cancelCommands=function(i){var e=new Error(i),t=this.commands;this.commands=[],this.currentCommand&&(t.unshift(this.currentCommand),this.currentCommand=null),t.forEach(function(r){r.cb(e)})};Lo.prototype.connect=function(){var i=this;function e(l){i.bunser=new fW.BunserBuf,i.bunser.on("value",function(u){for(var c=!1,f=0;f=0:!1}Lo.prototype._synthesizeCapabilityCheck=function(i,e,t){i.capabilities={};var r=i.version;return e.forEach(function(n){i.capabilities[n]=hW(r,n)}),t.forEach(function(n){var o=hW(r,n);i.capabilities[n]=o,o||(i.error="client required capability `"+n+"` is not supported by this server")}),i};Lo.prototype.capabilityCheck=function(i,e){var t=i.optional||[],r=i.required||[],n=this;this.command(["version",{optional:t,required:r}],function(o,s){if(o){e(o);return}if(!("capabilities"in s)&&(s=n._synthesizeCapabilityCheck(s,t,r),s.error)){o=new Error(s.error),o.watchmanResponse=s,e(o);return}e(null,s)})};Lo.prototype.end=function(){this.cancelCommands("The client was ended"),this.socket&&(this.socket.end(),this.socket=null),this.bunser=null}});function Qge(i){return!(i=="/"||i=="/tmp"||i=="/private/tmp"||i.toLowerCase()===yE.default.homedir().toLowerCase()||Av.default.parse(i).base==i||i.startsWith("/tmp/")||i.startsWith("/private/tmp/")||pt(yE.default.tmpdir(),i,!0))}var vW,yE,Av,yW,bW,Lv,Zge,bE,An,Mv=I(()=>{vW=E(gW()),yE=E(require("os")),Av=E(require("path"));it();yW=E(G()),bW=E(Ps());Vt();Lv=W()("watchman"),Zge=["relative_root","cmd-watch-project","wildmatch","field-new"],bE=new Map,An=class{constructor(e,t){this.channel=t;this._disposed=!1;this.client=new vW.default.Client({watchmanBinaryPath:e}),this.client.setMaxListeners(300)}checkCapability(){let{client:e}=this;return new Promise((t,r)=>{e.capabilityCheck({optional:[],required:Zge},(n,o)=>{if(n)return r(n);let{capabilities:s}=o;for(let a of Object.keys(s))if(!s[a])return t(!1);t(!0)})})}async watchProject(e){try{let t=await this.command(["watch-project",e]),{watch:r,warning:n,relative_path:o}=t;n&&Lv.warn(n),this.watch=r,this.relative_path=o,Lv.info(`watchman watching project: ${e}`),this.appendOutput(`watchman watching project: ${e}`)}catch(t){return Lv.error(t),!1}return!0}command(e){return new Promise((t,r)=>{this.client.command(e,(n,o)=>{if(n)return r(n);t(o)})})}async subscribe(e,t){let{watch:r,relative_path:n}=this;if(!r)return this.appendOutput(`watchman not watching: ${r}`,"Error"),null;let{clock:o}=await this.command(["clock",r]),s=Ao(),a={expression:["allof",["match","**/*","wholename"]],fields:["name","size","new","exists","type","mtime_ms","ctime_ms"],since:o},l=r;n&&(a.relative_root=n,l=Av.default.join(r,n));let{subscribe:u}=await this.command(["subscribe",r,s,a]);return global.hasOwnProperty("__TEST__")&&(global.subscribe=u),this.appendOutput(`subscribing "${e}" in ${l}`),this.client.on("subscription",c=>{if(!c||c.subscription!=s)return;let{files:f}=c;if(!f||(f=f.filter(d=>d.type=="f"&&(0,bW.default)(d.name,e,{dot:!0})),!f.length))return;let p=Object.assign({},c);this.relative_path&&(p.root=Av.default.resolve(c.root,this.relative_path)),this.appendOutput(`file change detected: ${JSON.stringify(p,null,2)}`),t(p)}),yW.Disposable.create(()=>this.unsubscribe(u))}unsubscribe(e){if(this._disposed)return Promise.resolve();let{watch:t}=this;if(!!t)return this.appendOutput(`unsubscribe "${e}" in: ${t}`),this.command(["unsubscribe",t,e]).catch(r=>{Lv.error(r)})}dispose(){this._disposed||(this._disposed=!0,this.client.removeAllListeners(),this.client.end())}appendOutput(e,t="Info"){this.channel&&this.channel.appendLine(`[${t} - ${new Date().toLocaleTimeString()}] ${e}`)}static dispose(){for(let e of bE.values())e.then(t=>{t.dispose()},t=>{})}static createClient(e,t,r){if(!Qge(t))return null;let n=bE.get(t);if(n)return n;let o=new Promise(async(s,a)=>{try{let l=new An(e,r);if(!await l.checkCapability()||!await l.watchProject(t))return s(null);s(l)}catch(l){a(l)}});return bE.set(t,o),o}}});var qv,wE=I(()=>{qv="0.0.80"});var wW,DW,Kt,Ln,Ne,oe,xW,SW,xd,Nv,tve,CW,b,ie=I(()=>{wW=E(Mj()),DW=E(Ju()),Kt=E(bn()),Ln=E(require("os")),Ne=E(require("path"));it();oe=E(G());Ze();xW=E(Op());yC();FU();OU();je();tE();oE();sE();Ev();zU();GU();VU();KU();Pi();gd();Vt();ye();cE();Kr();Ct();Mv();Te();wE();SW=8,xd=W()("workspace"),Nv=2e3,tve=["showMessage","runTerminalCommand","openTerminal","showQuickpick","menuPick","openLocalConfig","showPrompt","createStatusBarItem","createOutputChannel","showOutputChannel","requestInput","echoLines","getCursorPosition","moveTo","getOffset"],CW=class{constructor(){this.keymaps=new Map;this.resolver=new sc;this.rootPatterns=new Map;this._workspaceFolders=[];this._insertMode=!1;this._cwd=process.cwd();this._initialized=!1;this._attached=!1;this.buffers=new Map;this.autocmdMaxId=0;this.autocmds=new Map;this.terminals=new Map;this.creatingSources=new Map;this.schemeProviderMap=new Map;this.namespaceMap=new Map;this.disposables=[];this.watchedOptions=new Set;this._dynAutocmd=!1;this._disposed=!1;this._onDidOpenDocument=new oe.Emitter;this._onDidCloseDocument=new oe.Emitter;this._onDidChangeDocument=new oe.Emitter;this._onWillSaveDocument=new oe.Emitter;this._onDidSaveDocument=new oe.Emitter;this._onDidChangeWorkspaceFolders=new oe.Emitter;this._onDidChangeConfiguration=new oe.Emitter;this._onDidWorkspaceInitialized=new oe.Emitter;this._onDidOpenTerminal=new oe.Emitter;this._onDidCloseTerminal=new oe.Emitter;this._onDidRuntimePathChange=new oe.Emitter;this.onDidCloseTerminal=this._onDidCloseTerminal.event;this.onDidOpenTerminal=this._onDidOpenTerminal.event;this.onDidChangeWorkspaceFolders=this._onDidChangeWorkspaceFolders.event;this.onDidOpenTextDocument=this._onDidOpenDocument.event;this.onDidCloseTextDocument=this._onDidCloseDocument.event;this.onDidChangeTextDocument=this._onDidChangeDocument.event;this.onWillSaveTextDocument=this._onWillSaveDocument.event;this.onDidSaveTextDocument=this._onDidSaveDocument.event;this.onDidChangeConfiguration=this._onDidChangeConfiguration.event;this.onDidWorkspaceInitialized=this._onDidWorkspaceInitialized.event;this.onDidRuntimePathChange=this._onDidRuntimePathChange.event;this._onDidCreateFiles=new oe.Emitter;this._onDidRenameFiles=new oe.Emitter;this._onDidDeleteFiles=new oe.Emitter;this._onWillCreateFiles=new oe.Emitter;this._onWillRenameFiles=new oe.Emitter;this._onWillDeleteFiles=new oe.Emitter;this.onDidCreateFiles=this._onDidCreateFiles.event;this.onDidRenameFiles=this._onDidRenameFiles.event;this.onDidDeleteFiles=this._onDidDeleteFiles.event;this.onWillCreateFiles=this._onWillCreateFiles.event;this.onWillRenameFiles=this._onWillRenameFiles.event;this.onWillDeleteFiles=this._onWillDeleteFiles.event;this.version=qv,this.configurations=this.createConfigurations();let e=process.cwd();e!=Ln.default.homedir()&&Rs(e,[".vim"])&&this._workspaceFolders.push({uri:j.file(e).toString(),name:Ne.default.basename(e)})}async init(){let{nvim:e}=this;for(let o of tve)Object.defineProperty(this,o,{get:()=>(...s)=>T[o].apply(T,s)});this._env=await e.call("coc#util#vim_info"),this._env.apiversion!=SW&&(console.error(`API version ${this._env.apiversion} is not ${SW}, please build coc.nvim by 'yarn install' after pull source code.`),process.exit()),this._insertMode=this._env.mode.startsWith("insert");let r=this.getConfiguration("coc.preferences").get("maxFileSize","10MB");this.maxFileSize=wW.default.parse(r),this._env.workspaceFolders&&Array.isArray(this._env.workspaceFolders)&&(this._workspaceFolders=this._env.workspaceFolders.map(o=>({uri:j.file(o).toString(),name:Ne.default.dirname(o)}))),this.configurations.updateUserConfig(this._env.config),N.on(["InsertEnter","CursorMovedI"],()=>{this._insertMode=!0},null,this.disposables),N.on(["InsertLeave","CursorMoved"],()=>{this._insertMode=!1},null,this.disposables);let n=async o=>{let s=this.getDocument(o);s&&s.forceSync()};N.on("InsertLeave",n,null,this.disposables),N.on("CursorHold",n,null,this.disposables),N.on("BufEnter",this.onBufEnter,this,this.disposables),N.on("CursorMoved",this.checkCurrentBuffer,this,this.disposables),N.on("CursorMovedI",this.checkCurrentBuffer,this,this.disposables),N.on("DirChanged",this.onDirChanged,this,this.disposables),N.on("BufCreate",this.onBufCreate,this,this.disposables),N.on("BufUnload",this.onBufUnload,this,this.disposables),N.on("TermOpen",this.onBufCreate,this,this.disposables),N.on("TermClose",this.onBufUnload,this,this.disposables),N.on("BufWritePost",this.onBufWritePost,this,this.disposables),N.on("BufWritePre",this.onBufWritePre,this,this.disposables),N.on("FileType",this.onFileTypeChange,this,this.disposables),N.on("CursorHold",this.checkCurrentBuffer,this,this.disposables),N.on("TextChanged",this.checkBuffer,this,this.disposables),N.on("BufReadCmd",this.onBufReadCmd,this,this.disposables),N.on("VimResized",(o,s)=>{Object.assign(this._env,{columns:o,lines:s})},null,this.disposables),await this.attach(),this.attachChangedEvents(),this.configurations.onDidChange(o=>{this._onDidChangeConfiguration.fire(o)},null,this.disposables),this.watchOption("runtimepath",(o,s)=>{let a=(0,DW.default)(o,s);for(let[l,u]of a)if(l==1){let c=u.replace(/,$/,"").split(",");this._onDidRuntimePathChange.fire(c)}this._env.runtimepath=s},this.disposables),this.watchGlobal("coc_sources_disable_map",async(o,s)=>{this.env.disabledSources=s}),this.disposables.push(this.registerTextDocumentContentProvider("output",Ya.getProvider(e)))}getConfigFile(e){return this.configurations.getConfigFile(e)}registerAutocmd(e){this.autocmdMaxId+=1;let t=this.autocmdMaxId;return this.autocmds.set(t,e),this.setupDynamicAutocmd(),oe.Disposable.create(()=>{this.autocmds.delete(t),this.setupDynamicAutocmd()})}watchOption(e,t,r){let n=this.watchedOptions.has(e);n||(this.watchedOptions.add(e),this.setupDynamicAutocmd());let o=N.on("OptionSet",async(s,a,l)=>{s==e&&t&&await Promise.resolve(t(a,l))});r&&r.push(oe.Disposable.create(()=>{o.dispose(),!n&&(this.watchedOptions.delete(e),this.setupDynamicAutocmd())}))}watchGlobal(e,t,r){let{nvim:n}=this;n.call("coc#_watch",e,!0);let o=N.on("GlobalChange",async(s,a,l)=>{s==e&&t&&await Promise.resolve(t(a,l))});r&&r.push(oe.Disposable.create(()=>{o.dispose(),n.call("coc#_unwatch",e,!0)}))}get cwd(){return this._cwd}get env(){return this._env}get root(){return this._root||this.cwd}get rootPath(){return this.root}get workspaceFolders(){return this._workspaceFolders}get uri(){let{bufnr:e}=this;if(e){let t=this.getDocument(e);if(t&&t.schema=="file")return t.uri}return null}get workspaceFolder(){let{rootPath:e}=this;return e==Ln.default.homedir()?null:{uri:j.file(e).toString(),name:Ne.default.basename(e)}}get textDocuments(){let e=[];for(let t of this.buffers.values())e.push(t.textDocument);return e}get documents(){return Array.from(this.buffers.values())}createNameSpace(e=""){return this.namespaceMap.has(e)?this.namespaceMap.get(e):(Nv=Nv+1,this.namespaceMap.set(e,Nv),Nv)}get channelNames(){return Ya.names}get pluginRoot(){return Ne.default.dirname(__dirname)}get isVim(){return this._env.isVim}get isNvim(){return!this._env.isVim}get completeOpt(){return this._env.completeOpt}get initialized(){return this._initialized}get ready(){return this._initialized?Promise.resolve():new Promise(e=>{let t=this.onDidWorkspaceInitialized(()=>{t.dispose(),e()})})}get filetypes(){let e=new Set;for(let t of this.documents)e.add(t.filetype);return e}match(e,t){return ac(e,t.uri,t.languageId)}async findUp(e){let{cwd:t}=this,r=await this.nvim.call("expand","%:p");r=Ne.default.normalize(r);let n=r&&Ne.default.isAbsolute(r);if(n&&!pt(t,r,!0))return Qu(e,Ne.default.dirname(r));let o=Qu(e,t);return o&&o!=Ln.default.homedir()?o:n?Qu(e,Ne.default.dirname(r)):null}async resolveRootFolder(e,t){let{cwd:r}=this;if(e.scheme!="file")return r;let n=Ne.default.normalize(e.fsPath),o=Ne.default.dirname(n);return dd(o,t)||o}createFileSystemWatcher(e,t,r,n){let o=global.hasOwnProperty("__TEST__")?null:this.getWatchmanPath(),s=o?T.createOutputChannel("watchman"):null,a=o?An.createClient(o,this.root,s):Promise.resolve(null);return new nc(a,e,!!t,!!r,!!n)}getWatchmanPath(){let t=this.getConfiguration("coc.preferences").get("watchmanPath","watchman");try{return xW.default.sync(t)}catch(r){return null}}getConfiguration(e,t){return this.configurations.getConfiguration(e,t)}getDocument(e){if(typeof e=="number")return this.buffers.get(e);let t=Ou.isWindows||Ou.isMacintosh;e=j.parse(e).toString();for(let r of this.buffers.values())if(!!r&&(r.uri===e||Ne.default.resolve(r.uri)===Ne.default.resolve(e)||t&&r.uri.toLowerCase()===e.toLowerCase()))return r;return null}async applyEdit(e){let{nvim:t}=this,{documentChanges:r,changes:n}=e,[o,s]=await t.eval('[bufnr("%"),coc#util#cursor()]'),a=this.getDocument(o),l=a?a.uri:null,u=null,c=[],f=0,p=this.getConfiguration("coc.preferences"),d=!global.hasOwnProperty("__TEST__")&&p.get("promptWorkspaceEdit",!0),h=p.get("listOfWorkspaceEdit","quickfix");try{if(r&&r.length){let m=this.getChangedUris(r);if(f=m.length,d){let v=m.reduce((D,x)=>D+(this.getDocument(x)==null?1:0),0);if(v&&!await T.showPrompt(`${v} documents on disk would be loaded for change, confirm?`))return}let w=new Map;for(let v of r)if(oe.TextDocumentEdit.is(v)){let{textDocument:D,edits:x}=v,S=await this.loadFile(D.uri);D.uri==l&&(u=x),await S.applyEdits(x);for(let P of x)c.push({uri:S.uri,range:P.range})}else if(oe.CreateFile.is(v)){let D=j.parse(v.uri).fsPath;await this.createFile(D,v.options)}else oe.RenameFile.is(v)?(w.set(v.oldUri,v.newUri),await this.renameFile(j.parse(v.oldUri).fsPath,j.parse(v.newUri).fsPath,v.options)):oe.DeleteFile.is(v)&&await this.deleteFile(j.parse(v.uri).fsPath,v.options);w.size&&c.forEach(v=>{let D=w.get(v.uri);D&&(v.uri=D)})}else if(n){let m=Object.keys(n),w=m.filter(v=>this.getDocument(v)==null);if(w.length){if(d&&!await T.showPrompt(`${w.length} documents on disk would be loaded for change, confirm?`))return;await this.loadFiles(w)}for(let v of Object.keys(n)){let D=this.getDocument(v);j.parse(v).toString()==v&&(u=n[v]);let x=n[v];for(let S of x)c.push({uri:D.uri,range:S.range});await D.applyEdits(x)}f=m.length}if(u){let m=Vu({line:s[0],character:s[1]},u);m&&await T.moveTo({line:s[0]+m.line,character:s[1]+m.character})}if(c.length){let m=await Promise.all(c.map(v=>this.getQuickfixItem(v))),w=c.every(v=>v.uri==l);h=="quickfix"?(await this.nvim.call("setqflist",[m]),w||T.showMessage(`changed ${f} buffers, use :wa to save changes to disk and :copen to open quickfix list`,"more")):h=="location"&&(await t.setVar("coc_jump_locations",m),w||T.showMessage(`changed ${f} buffers, use :wa to save changes to disk and :CocList location to manage changed locations`,"more"))}}catch(m){return xd.error(m),T.showMessage(`Error on applyEdits: ${m.message}`,"error"),!1}return await nt(50),!0}async getQuickfixItem(e,t,r="",n){oe.LocationLink.is(e)&&(e=oe.Location.create(e.targetUri,e.targetRange));let o=this.getDocument(e.uri),{uri:s,range:a}=e,{line:l,character:u}=a.start,c=j.parse(s),f=o?o.bufnr:-1;!t&&c.scheme=="file"&&(t=await this.getLine(s,l),u=Ci(t,u));let p={uri:s,filename:c.scheme=="file"?c.fsPath:s,lnum:l+1,col:u+1,text:t||"",range:a};return n&&(p.module=n),r&&(p.type=r),f!=-1&&(p.bufnr=f),p}createMru(e){return new Os(e)}async getSelectedRange(e,t){let{nvim:r}=this;if(e==="line"){let c=await r.call("line",["."]);return t.getline(c-1).length?oe.Range.create(c-1,0,c,0):null}if(e==="cursor"){let[c,f]=await r.eval("coc#util#cursor()");return oe.Range.create(c,f,c,f)}if(!["v","V","char","line",""].includes(e))throw new Error(`Mode '${e}' not supported`);let n=["v","V",""].includes(e),[,o,s]=await r.call("getpos",n?"'<":"'["),[,a,l]=await r.call("getpos",n?"'>":"']"),u=oe.Range.create(t.getPosition(o,s),t.getPosition(a,l));return(e=="v"||e=="")&&(u.end.character=u.end.character+1),u}async selectRange(e){let{nvim:t}=this,{start:r,end:n}=e,[o,s,a]=await t.eval("[bufnr('%'), &virtualedit, &selection]"),l=this.getDocument(o);if(!l||!l.attached)return;let u=l.getline(r.line),c=u?me(u.slice(0,r.character)):0,f=l.getline(n.line),p=f?me(f.slice(0,n.character)):0,d="",h=!1;d+="v",p=await t.eval(`virtcol([${n.line+1}, ${p}])`),a=="inclusive"?n.character==0?d+=`${n.line}G`:d+=`${n.line+1}G${p}|`:a=="old"?d+=`${n.line+1}G${p}|`:d+=`${n.line+1}G${p+1}|`,c=await t.eval(`virtcol([${r.line+1}, ${c}])`),d+=`o${r.line+1}G${c+1}|o`,t.pauseNotification(),s!="onemore"&&(h=!0,t.setOption("virtualedit","onemore",!0)),t.command(`noa call cursor(${r.line+1},${c+(d=="a"?0:1)})`,!0),t.command(`normal! ${d}`,!0),h&&t.setOption("virtualedit",s,!0),this.isVim&&t.command("redraw",!0),await t.resumeNotification()}async showLocations(e){let t=await Promise.all(e.map(o=>this.getQuickfixItem(o))),{nvim:r}=this;if(this.getConfiguration("coc.preferences").get("useQuickfixForLocations",!1)){let o=await r.getVar("coc_quickfix_open_command");typeof o!="string"&&(o=t.length<10?`copen ${t.length}`:"copen"),r.pauseNotification(),r.call("setqflist",[t],!0),r.command(o,!0),r.resumeNotification(!1,!0)}else await r.setVar("coc_jump_locations",t),this.env.locationlist?r.command("CocList --normal --auto-preview location",!0):r.call("coc#util#do_autocmd",["CocLocationsChange"],!0)}async getLine(e,t){let r=this.getDocument(e);if(r)return r.getline(t)||"";if(!e.startsWith("file:"))return"";let n=j.parse(e).fsPath;return Kt.default.existsSync(n)?await kU(n,t):""}getWorkspaceFolder(e){this.workspaceFolders.sort((r,n)=>n.uri.length-r.uri.length);let t=j.parse(e).fsPath;return this.workspaceFolders.find(r=>pt(j.parse(r.uri).fsPath,t,!0))}async readFile(e){let t=this.getDocument(e);if(t)return await t.patchChange(),t.content;let r=j.parse(e);return r.scheme!="file"?"":(await this.nvim.call("readfile",[r.fsPath])).join(` +`)+` +`}get document(){return new Promise((e,t)=>{this.nvim.buffer.then(r=>{let n=r.id;if(this.bufnr=n,this.buffers.has(n)){e(this.buffers.get(n));return}this.onBufCreate(n).catch(t);let o=this.onDidOpenTextDocument(s=>{o.dispose(),e(this.getDocument(s.uri))})},t)})}async getCurrentState(){let e=await this.document,t=await T.getCursorPosition();return{document:e.textDocument,position:t}}async getFormatOptions(e){let t;e&&(t=this.getDocument(e));let r=t?t.bufnr:0,[n,o]=await this.nvim.call("coc#util#get_format_opts",[r]);return{tabSize:n,insertSpaces:o==1}}async jumpTo(e,t,r){let n=this.getConfiguration("coc.preferences"),o=r||n.get("jumpCommand","edit"),{nvim:s}=this,a=this.getDocument(e),l=a?a.bufnr:-1;if(l!=-1&&o=="edit"){if(s.pauseNotification(),s.command("silent! normal! m'",!0),s.command(`buffer ${l}`,!0),t){let u=a.getline(t.line),c=me(u.slice(0,t.character))+1;s.call("cursor",[t.line+1,c],!0)}this.isVim&&s.command("redraw",!0),await s.resumeNotification()}else{let{fsPath:u,scheme:c}=j.parse(e),f=t==null?null:[t.line,t.character];if(c=="file"){let p=hd(Ne.default.normalize(u));await this.nvim.call("coc#util#jump",[o,p,f])}else Ln.default.platform()=="win32"&&(e=e.replace(/\/?/,"?")),await this.nvim.call("coc#util#jump",[o,e,f])}}async createFile(e,t={}){let r=await $t(e);if(r&&!t.overwrite&&!t.ignoreIfExists){T.showMessage(`${e} already exists!`,"error");return}if(!r||t.overwrite)if(e.endsWith("/"))try{e=this.expand(e),await Kt.default.mkdirp(e)}catch(n){T.showMessage(`Can't create ${e}: ${n.message}`,"error")}else{let n=j.file(e).toString();if(this.getDocument(n))return;Kt.default.existsSync(Ne.default.dirname(e))||Kt.default.mkdirpSync(Ne.default.dirname(e)),Kt.default.writeFileSync(e,"","utf8"),await this.loadFile(n)}}async loadFile(e){let t=this.getDocument(e);if(t)return t;let{nvim:r}=this,n=e.startsWith("file")?j.parse(e).fsPath:e;return r.call("coc#util#open_files",[[n]],!0),await new Promise((o,s)=>{let a=this.onDidOpenTextDocument(u=>{let c=j.parse(u.uri).fsPath;(u.uri==e||c==n)&&(clearTimeout(l),a.dispose(),o(this.getDocument(e)))}),l=setTimeout(()=>{a.dispose(),s(new Error(`Create document ${e} timeout after 1s.`))},1e3)})}async loadFiles(e){if(e=e.filter(n=>this.getDocument(n)==null),!(!e.length||!(await this.nvim.call("coc#util#open_files",[e.map(n=>j.parse(n).fsPath)])).filter(n=>this.getDocument(n)==null).length))return new Promise((n,o)=>{let s=setTimeout(()=>{a.dispose(),o(new Error("Create document timeout after 2s."))},2e3),a=this.onDidOpenTextDocument(()=>{e.every(l=>this.getDocument(l)!=null)&&(clearTimeout(s),a.dispose(),n())})})}async renameFile(e,t,r={}){let{overwrite:n,ignoreIfExists:o}=r,{nvim:s}=this;try{let a=await $t(t);if(a&&!n&&!o)throw new Error(`${t} already exists`);if(!a||n){let l=j.file(e).toString(),u=j.file(t).toString(),c=this.getDocument(l);if(c!=null){let f=c.bufnr==this.bufnr,p=this.getDocument(u);p&&await this.nvim.command(`silent ${p.bufnr}bwipeout!`);let d=c.getDocumentContent();if(await Kt.default.writeFile(t,d,"utf8"),!f)await s.call("coc#util#open_files",[[t]]),await s.command(`silent ${c.bufnr}bwipeout!`);else{let h=await s.call("winsaveview");s.pauseNotification(),s.call("coc#util#open_file",["keepalt edit",t],!0),s.command(`silent ${c.bufnr}bwipeout!`,!0),s.call("winrestview",[h],!0),await s.resumeNotification()}await Kt.default.unlink(e)}else await TU(e,t)}}catch(a){T.showMessage(`Rename error: ${a.message}`,"error")}}async deleteFile(e,t={}){let{ignoreIfNotExists:r,recursive:n}=t,o=await $t(e.replace(/\/$/,"")),s=o&&o.isDirectory();if(e.endsWith("/")&&!s){T.showMessage(`${e} is not directory`,"error");return}if(!o&&!r){T.showMessage(`${e} not exists`,"error");return}if(o!=null){if(s&&!n){T.showMessage("Can't remove directory, recursive not set","error");return}try{if(s&&n?await Kt.default.remove(e):s?await Kt.default.rmdir(e):await Kt.default.unlink(e),!s){let a=j.file(e).toString(),l=this.getDocument(a);l&&await this.nvim.command(`silent! bwipeout! ${l.bufnr}`)}}catch(a){T.showMessage(`Error on delete ${e}: ${a.message}`,"error")}}}async openResource(e){let{nvim:t}=this;if(e.startsWith("http")){await t.call("coc#util#open_url",e);return}let r=await t.getOption("wildignore");await t.setOption("wildignore",""),await this.jumpTo(e),await t.setOption("wildignore",r)}async resolveModule(e){return await this.resolver.resolveModule(e)}async runCommand(e,t,r){return t=t||this.cwd,Kn(e,{cwd:t},r)}expand(e){if(!e)return e;if(e.startsWith("~")&&(e=Ln.default.homedir()+e.slice(1)),e.includes("$")){let t=this.getDocument(this.bufnr),r=t?j.parse(t.uri).fsPath:"";e=e.replace(/\$\{(.*?)\}/g,(n,o)=>{if(o.startsWith("env:")){let s=o.split(":")[1];return s?process.env[s]:""}switch(o){case"workspace":case"workspaceRoot":case"workspaceFolder":return this.root;case"workspaceFolderBasename":return Ne.default.dirname(this.root);case"cwd":return this.cwd;case"file":return r;case"fileDirname":return r?Ne.default.dirname(r):"";case"fileExtname":return r?Ne.default.extname(r):"";case"fileBasename":return r?Ne.default.basename(r):"";case"fileBasenameNoExtension":{let s=r?Ne.default.basename(r):"";return s?s.slice(0,s.length-Ne.default.extname(s).length):""}default:return n}}),e=e.replace(/\$[\w]+/g,n=>n=="$HOME"?Ln.default.homedir():process.env[n.slice(1)]||n)}return e}async createTerminal(e){let t=e.shellPath,r=e.shellArgs;t||(t=await this.nvim.getOption("shell"));let n=new Pv(t,r||[],this.nvim,e.name);return await n.start(e.cwd||this.cwd,e.env),this.terminals.set(n.bufnr,n),this._onDidOpenTerminal.fire(n),n}async callAsync(e,t){return this.isNvim?await this.nvim.call(e,t):await this.nvim.callAsync("coc#util#with_callback",[e,t])}registerTextDocumentContentProvider(e,t){this.schemeProviderMap.set(e,t),this.setupDynamicAutocmd();let r=[];return t.onDidChange&&t.onDidChange(async n=>{let o=this.getDocument(n.toString());if(o){let{buffer:s}=o,a=new oe.CancellationTokenSource,l=await Promise.resolve(t.provideTextDocumentContent(n,a.token));await s.setLines(l.split(/\r?\n/),{start:0,end:-1,strictIndexing:!1})}},null,r),oe.Disposable.create(()=>{this.schemeProviderMap.delete(e),J(r),this.setupDynamicAutocmd()})}registerKeymap(e,t,r,n={}){if(!t)throw new Error(`Invalid key ${t} of registerKeymap`);if(this.keymaps.has(t))throw new Error(`${t} already exists.`);n=Object.assign({sync:!0,cancel:!0,silent:!0,repeat:!1},n);let{nvim:o}=this;this.keymaps.set(t,[r,!!n.repeat]);let s=n.sync?"request":"notify",a=n.silent?"":"";for(let l of e)if(l=="i")o.command(`inoremap ${a} (coc-${t}) coc#_insert_key('${s}', '${t}', ${n.cancel?1:0})`,!0);else{let u=OS(l);o.command(`${l}noremap ${a} (coc-${t}) :${u}call coc#rpc#${s}('doKeymap', ['${t}'])`,!0)}return oe.Disposable.create(()=>{this.keymaps.delete(t);for(let l of e)o.command(`${l}unmap (coc-${t})`,!0)})}registerExprKeymap(e,t,r,n=!1){if(!t)return;let o=`${e}${global.Buffer.from(t).toString("base64")}${n?"1":"0"}`,{nvim:s}=this;return this.keymaps.set(o,[r,!1]),e=="i"?s.command(`inoremap ${n?"":""} ${t} coc#_insert_key('request', '${o}')`,!0):s.command(`${e}noremap ${n?"":""} ${t} coc#rpc#request('doKeymap', ['${o}'])`,!0),oe.Disposable.create(()=>{this.keymaps.delete(o),s.command(`${e}unmap ${n?"":""} ${t}`,!0)})}registerLocalKeymap(e,t,r,n=!1){let o=Ao(),{nvim:s}=this;this.keymaps.set(o,[r,!1]);let a=this.nvim.createBuffer(this.bufnr),l=n?"notify":"request",u=OS(e),c=t.startsWith("<")&&t.endsWith(">")?`{${t.slice(1,-1)}}`:t;if(this.isNvim&&!global.hasOwnProperty("__TEST__"))a.notify("nvim_buf_set_keymap",[e,t,`:${u}call coc#rpc#${l}('doKeymap', ['${o}', '', '${c}'])`,{silent:!0,nowait:!0}]);else{let f=`${e}noremap ${t} :${u}call coc#rpc#${l}('doKeymap', ['${o}', '', '${c}'])`;s.command(f,!0)}return oe.Disposable.create(()=>{this.keymaps.delete(o),s.call("coc#compat#buf_del_keymap",[a.id,e,t],!0)})}createDatabase(e){let t;global.hasOwnProperty("__TEST__")?(t=Ne.default.join(Ln.default.tmpdir(),`coc-${process.pid}`),Kt.default.mkdirpSync(t)):t=Ne.default.dirname(this.env.extensionRoot);let r=Ne.default.join(t,e+".json");return new tc(r)}createTask(e){return new Tv(this.nvim,e)}registerBufferSync(e){return new Rv(e,this)}setupDynamicAutocmd(e=!1){if(!e&&!this._dynAutocmd)return;this._dynAutocmd=!0;let t=this.schemeProviderMap.keys(),r=[];for(let o of t)r.push(`autocmd BufReadCmd,FileReadCmd,SourceCmd ${o}:/* call coc#rpc#request('CocAutocmd', ['BufReadCmd','${o}', expand('')])`);for(let[o,s]of this.autocmds.entries()){let a=s.arglist&&s.arglist.length?", "+s.arglist.join(", "):"",l=Array.isArray(s.event)?s.event.join(","):s.event,u=s.pattern!=null?s.pattern:"*";/\buser\b/i.test(l)&&(u=""),r.push(`autocmd ${l} ${u} call coc#rpc#${s.request?"request":"notify"}('doAutocmd', [${o}${a}])`)}for(let o of this.watchedOptions)r.push(`autocmd OptionSet ${o} call coc#rpc#notify('OptionSet',[expand(''), v:option_old, v:option_new])`);let n=` +augroup coc_dynamic_autocmd + autocmd! + ${r.join(` + `)} +augroup end`;try{let o=Ne.default.join(process.env.TMPDIR,`coc.nvim-${process.pid}`);Kt.default.existsSync(o)||Kt.default.mkdirpSync(o);let s=Ne.default.join(o,`coc-${process.pid}.vim`);Kt.default.writeFileSync(s,n,"utf8");let a=`source ${s}`;this.env.isCygwin&&Ou.isWindows&&(a=`execute "source" . substitute(system('cygpath ${s.replace(/\\/g,"/")}'), '\\n', '', 'g')`),this.nvim.command(a).logError()}catch(o){T.showMessage(`Can't create tmp file: ${o.message}`,"error")}}async onBufReadCmd(e,t){let r=this.schemeProviderMap.get(e);if(!r){T.showMessage(`Provider for ${e} not found`,"error");return}let n=new oe.CancellationTokenSource,o=await Promise.resolve(r.provideTextDocumentContent(j.parse(t),n.token)),s=await this.nvim.buffer;await s.setLines(o.split(/\r?\n/),{start:0,end:-1,strictIndexing:!1}),setTimeout(async()=>{await N.fire("BufCreate",[s.id])},30)}async attach(){if(this._attached)return;this._attached=!0;let[e,t,r]=await this.nvim.eval(`[map(getbufinfo({'bufloaded': 1}),'v:val["bufnr"]'),bufnr('%'),win_getid()]`);this.bufnr=t,await Promise.all(e.map(n=>this.onBufCreate(n))),this._initialized||(this._onDidWorkspaceInitialized.fire(void 0),this._initialized=!0),await N.fire("BufEnter",[t]),await N.fire("BufWinEnter",[t,r])}getChangedUris(e){let t=new Set,r=new Set;for(let n of e)if(oe.TextDocumentEdit.is(n)){let{textDocument:o}=n,{uri:s,version:a}=o;if(t.add(s),a!=null&&a>0){let l=this.getDocument(s);if(!l)throw new Error(`${s} not loaded`);if(l.version!=a)throw new Error(`${s} changed before apply edit`)}}else if(oe.CreateFile.is(n)||oe.DeleteFile.is(n)){if(!wv(n.uri))throw new Error(`change of scheme ${n.uri} not supported`);r.add(n.uri),t.add(n.uri)}else if(oe.RenameFile.is(n)){if(!wv(n.oldUri)||!wv(n.newUri))throw new Error(`change of scheme ${n.oldUri} not supported`);let o=j.parse(n.newUri).fsPath;if(Kt.default.existsSync(o))throw new Error(`file "${o}" already exists for rename`);t.add(n.oldUri)}else throw new Error(`Invalid document change: ${JSON.stringify(n,null,2)}`);return Array.from(t)}createConfigurations(){let e=Ne.default.normalize(process.env.COC_VIMCONFIG)||Ne.default.join(Ln.default.homedir(),".vim"),t=Ne.default.join(e,Tn);return new Is(t,new Dv(this))}attachChangedEvents(){if(this.isVim){let e=t=>{let r=this.getDocument(t);r&&r.attached&&r.fetchContent()};N.on("TextChangedI",e,null,this.disposables),N.on("TextChanged",e,null,this.disposables)}}async onBufCreate(e){let t=typeof e=="number"?this.nvim.createBuffer(e):e,r=t.id;if(this.creatingSources.has(r))return;let n=this.getDocument(r),o=new oe.CancellationTokenSource;try{n&&this.onBufUnload(r,!0),n=new rc(t,this._env,this.maxFileSize);let s=o.token;this.creatingSources.set(r,o),await n.init(this.nvim,s)||(n=null)}catch(s){xd.error("Error on create buffer:",s),n=null}if(this.creatingSources.get(r)==o&&(o.dispose(),this.creatingSources.delete(r)),!(!n||!n.textDocument)){if(this.buffers.set(r,n),n.attached&&n.onDocumentDetach(s=>{let a=this.getDocument(s);a&&this.onBufUnload(a.bufnr)}),n.buftype==""&&n.schema=="file"&&(this.configurations.checkFolderConfiguration(n.uri),!this.getConfiguration("workspace").get("ignoredFiletypes",[]).includes(n.filetype))){let l=this.resolveRoot(n);l&&(this.addWorkspaceFolder(l),this.bufnr==t.id&&(this._root=l))}if(n.enabled){let s=Object.assign(n.textDocument,{bufnr:r});this._onDidOpenDocument.fire(s),n.onDocumentChange(a=>this._onDidChangeDocument.fire(a))}xd.debug("buffer created",t.id)}}onBufEnter(e){this.bufnr=e;let t=this.getDocument(e);if(t){this.configurations.setFolderConfiguration(t.uri);let r=this.getWorkspaceFolder(t.uri);r&&(this._root=j.parse(r.uri).fsPath)}}async checkCurrentBuffer(e){this.bufnr=e,await this.checkBuffer(e)}onBufWritePost(e){let t=this.buffers.get(e);!t||this._onDidSaveDocument.fire(t.textDocument)}onBufUnload(e,t=!1){if(xd.debug("buffer unload",e),!t){let n=this.creatingSources.get(e);n&&(n.cancel(),this.creatingSources.delete(e))}if(this.terminals.has(e)){let n=this.terminals.get(e);this._onDidCloseTerminal.fire(n),this.terminals.delete(e)}let r=this.buffers.get(e);if(r){let n=Object.assign(r.textDocument,{bufnr:e});this._onDidCloseDocument.fire(n),this.buffers.delete(e),r.detach()}}async onBufWritePre(e){let t=this.buffers.get(e);if(!t||!t.attached)return;await t.checkDocument();let r=!0,n=[],o={document:t.textDocument,reason:oe.TextDocumentSaveReason.Manual,waitUntil:a=>{r?n.push(a):(xd.error("Can't call waitUntil in async manner:",Error().stack),T.showMessage("waitUntil can't be used in async manner, check log for details","error"))}};this._onWillSaveDocument.fire(o),r=!1;let s=n.length;if(s){let l=await new Promise(u=>{let f=this.getConfiguration("coc.preferences").get("willSaveHandlerTimeout",500),p=setTimeout(()=>{T.showMessage(`Will save handler timeout after ${f}ms`,"warning"),u(void 0)},f),d=0,h=!1;for(let m of n){let w=v=>{h||(h=!0,clearTimeout(p),u(v))};m.then(v=>{if(Array.isArray(v)&&v.length&&oe.TextEdit.is(v[0]))return w(v);d=d+1,d==s&&w(void 0)},()=>{d=d+1,d==s&&w(void 0)})}});l&&await t.applyEdits(l)}}onDirChanged(e){e!=this._cwd&&(this._cwd=e)}onFileTypeChange(e,t){let r=this.getDocument(t);if(!r||r.convertFiletype(e)==r.filetype)return;let o=Object.assign(r.textDocument,{bufnr:t});this._onDidCloseDocument.fire(o),r.setFiletype(e),this._onDidOpenDocument.fire(Object.assign(r.textDocument,{bufnr:t}))}async checkBuffer(e){if(this._disposed||!e)return;!this.getDocument(e)&&!this.creatingSources.has(e)&&await this.onBufCreate(e)}resolveRoot(e){let t=[Ei.Buffer,Ei.LanguageServer,Ei.Global],r=j.parse(e.uri),n=Ne.default.dirname(r.fsPath),{cwd:o}=this,s=this.getConfiguration("workspace"),a=s.get("bottomUpFiletypes",[]),l=s.get("workspaceFolderCheckCwd",!0);for(let u of t){let c=this.getRootPatterns(e,u);if(c&&c.length){let f=a.includes(e.filetype),p=dd(n,c,o,f,l);if(p)return p}}return this.cwd!=Ln.default.homedir()&&pt(this.cwd,n,!0)?this.cwd:null}getRootPatterns(e,t){let{uri:r}=e;return t==Ei.Buffer?e.getVar("root_patterns",[])||[]:t==Ei.LanguageServer?this.getServerRootPatterns(e.filetype):this.getConfiguration("coc.preferences",r).get("rootPatterns",[".git",".hg",".projections.json"]).slice()}async renameCurrent(){let{nvim:e}=this,t=await e.call("bufnr","%"),r=await e.call("getcwd"),n=this.getDocument(t);if(!n||n.buftype!=""||n.schema!="file"){e.errWriteLine("current buffer is not file.");return}let o=j.parse(n.uri).fsPath,s=await e.callAsync("coc#util#with_callback",["input",["New path: ",o,"file"]]);if(s=s?s.trim():null,s==o||!s)return;let a=await n.buffer.lines,l=Kt.default.existsSync(o);if(l){if(await e.eval("&modified")&&await e.command("noa w"),o.toLowerCase()!=s.toLowerCase()&&Kt.default.existsSync(s)){if(!await T.showPrompt(`${s} exists, overwrite?`))return;Kt.default.unlinkSync(s)}Kt.default.renameSync(o,s)}this._onWillRenameFiles.fire({files:[{newUri:j.parse(s),oldUri:j.parse(o)}],waitUntil:async f=>{let p=await Promise.resolve(f);p&&oe.WorkspaceEdit.is(p)&&await this.applyEdit(p)}}),this._onDidRenameFiles.fire({files:[{newUri:j.parse(s),oldUri:j.parse(o)}]});let u=pt(r,s)?Ne.default.relative(r,s):s,c=await e.call("winsaveview");e.pauseNotification(),o.toLowerCase()==s.toLowerCase()?(e.command(`keepalt ${t}bwipeout!`,!0),e.call("coc#util#open_file",["keepalt edit",u],!0)):(e.call("coc#util#open_file",["keepalt edit",u],!0),e.command(`${t}bwipeout!`,!0)),!l&&a.join(` +`)!=` +`&&(e.call("append",[0,a],!0),e.command("normal! Gdd",!0)),e.call("winrestview",[c],!0),await e.resumeNotification()}get folderPaths(){return this.workspaceFolders.map(e=>j.parse(e.uri).fsPath)}get floatSupported(){let{env:e}=this;return e.floating||e.textprop}removeWorkspaceFolder(e){let t=this._workspaceFolders.findIndex(r=>j.parse(r.uri).fsPath==e);if(t!=-1){let r=this._workspaceFolders[t];this._workspaceFolders.splice(t,1),this._onDidChangeWorkspaceFolders.fire({removed:[r],added:[]})}}renameWorkspaceFolder(e,t){let r=this._workspaceFolders.findIndex(s=>j.parse(s.uri).fsPath==e);if(r==-1)return;let n=this._workspaceFolders[r],o={uri:j.file(t).toString(),name:Ne.default.dirname(t)};this._workspaceFolders.splice(r,1),this._workspaceFolders.push(o),this._onDidChangeWorkspaceFolders.fire({removed:[n],added:[o]})}addRootPattern(e,t){let r=this.rootPatterns.get(e)||[];for(let n of t)r.includes(n)||r.push(n);this.rootPatterns.set(e,r)}get insertMode(){return this._insertMode}async detach(){if(!!this._attached){this._attached=!1,Ya.dispose();for(let e of this.buffers.keys())await N.fire("BufUnload",[e])}}dispose(){this._disposed=!0;for(let e of this.documents)e.detach();J(this.disposables),An.dispose(),this.configurations.dispose(),this.buffers.clear()}addWorkspaceFolder(e){if(e==Ln.default.homedir())return;let{_workspaceFolders:t}=this,r=j.file(e).toString(),n={uri:r,name:Ne.default.basename(e)};return t.findIndex(o=>o.uri==r)==-1&&(t.push(n),this._initialized&&this._onDidChangeWorkspaceFolders.fire({added:[n],removed:[]})),n}getServerRootPatterns(e){let t=this.getConfiguration().get("languageserver",{}),r=[];for(let n of Object.keys(t)){let o=t[n],{filetypes:s,rootPatterns:a}=o;s&&a&&s.includes(e)&&r.push(...a)}return r=r.concat(this.rootPatterns.get(e)||[]),r.length?Cv(r):null}},b=new CW});var DE,EW,xE,_W,lc,TW,T,Te=I(()=>{DE=E(require("fs")),EW=E(require("os")),xE=E(require("path")),_W=E(G());Ze();yC();je();wj();xj();wC();_j();Pj();TC();Pi();ye();_s();Ap();ie();lc=W()("window"),TW=class{constructor(){this.mutex=new kr}get nvim(){return b.nvim}dispose(){var e;(e=this.statusLine)==null||e.dispose()}showMessage(e,t="more"){if(this.mutex.busy||!this.nvim)return;let{messageLevel:r}=this,n=process.env.VIM_NODE_RPC=="1"?"callTimer":"call";global.hasOwnProperty("__TEST__")&&lc.info(e);let o="Error",s=Yn.Error;switch(t){case"more":s=Yn.More,o="MoreMsg";break;case"warning":s=Yn.Warning,o="WarningMsg";break}s>=r&&this.nvim[n]("coc#util#echo_messages",[o,("[coc.nvim] "+e).split(` +`)],!0)}async runTerminalCommand(e,t,r=!1){return t=t||b.cwd,await this.nvim.callAsync("coc#util#run_terminal",{cmd:e,cwd:t,keepfocus:r?1:0})}async openTerminal(e,t={}){return await this.nvim.call("coc#util#open_terminal",mt({cmd:e},t))}async showQuickpick(e,t="Choose by number"){let r=await this.mutex.acquire();try{let n=t+":";e=e.map((a,l)=>`${l+1}. ${a}`);let o=await this.nvim.callAsync("coc#util#quickpick",[n,e.map(a=>a.trim())]);r();let s=parseInt(o,10);return isNaN(s)||s<=0||s>e.length?-1:s-1}catch(n){return r(),-1}}async showMenuPicker(e,t,r){if(b.env.dialog){let n=await this.mutex.acquire();if(r&&r.isCancellationRequested){n();return}try{let o=new ov(this.nvim,{items:e.map(l=>l.trim()),title:t},r),s=new Promise(l=>{o.onDidClose(u=>{l(u)})});await o.show(this.dialogPreference);let a=await s;return n(),a}catch(o){lc.error("Error on showMenuPicker:",o),n()}}return await this.showQuickpick(e)}async openLocalConfig(){let{root:e}=b;if(e==EW.default.homedir()){this.showMessage("Can't create local config in home directory","warning");return}let t=xE.default.join(e,".vim");if(!DE.default.existsSync(t)){if(!await this.showPrompt(`Would you like to create folder'${e}/.vim'?`))return;DE.default.mkdirSync(t)}await b.jumpTo(j.file(xE.default.join(t,Tn)).toString())}async showPrompt(e){let t=await this.mutex.acquire();try{let r=await this.nvim.callAsync("coc#float#prompt_confirm",[e]);return t(),r==1}catch(r){return t(),!1}}async showDialog(e){if(!this.checkDialog())return null;let t=new iv(this.nvim,e);return await t.show(this.dialogPreference),t}async requestInput(e,t){let{nvim:r}=this,n=b.getConfiguration("coc.preferences");if(b.env.dialog&&n.get("promptInput",!0)&&!Io){let o=await this.mutex.acquire(),s=this.dialogPreference;try{let a={};s.floatHighlight&&(a.highlight=s.floatHighlight),s.floatBorderHighlight&&(a.borderhighlight=s.floatBorderHighlight);let l=await r.call("coc#float#create_prompt_win",[e,t||"",a]),[u,c]=l,f=await new Promise(p=>{let d=[];N.on("BufWinLeave",h=>{h==u&&(J(d),p(null))},null,d),N.on("PromptInsert",async h=>{J(d),await r.call("coc#float#close",[c]),h?p(h):(this.showMessage("Empty word, canceled","warning"),p(null))},null,d)});return o(),f}catch(a){lc.error("Error on requestInput:",a),o()}}else{let o=await b.callAsync("input",[e+": ",t||""]);return r.command("normal! :",!0),o||(this.showMessage("Empty word, canceled","warning"),null)}}createStatusBarItem(e=0,t={}){if(!b.env){let r=()=>{};return{text:"",show:r,dispose:r,hide:r,priority:0,isProgress:!1}}return this.statusLine||(this.statusLine=new cv(this.nvim)),this.statusLine.createStatusBarItem(e,t.progress||!1)}createOutputChannel(e){return Ya.create(e,this.nvim)}showOutputChannel(e,t){Ya.show(e,t)}async echoLines(e,t=!1){let{nvim:r}=this,n=b.env.cmdheight;e.length>n&&t&&(e=e.slice(0,n));let o=b.env.columns-12;if(e=e.map(s=>(s=s.replace(/\n/g," "),t&&(s=s.slice(0,o)),s)),t&&e.length==n){let s=e[e.length-1];e[n-1]=`${s.length==o?s.slice(0,-4):s} ...`}await r.call("coc#util#echo_lines",[e])}async getCursorPosition(){let[e,t]=await this.nvim.eval("[line('.')-1, strpart(getline('.'), 0, col('.') - 1)]");return _W.Position.create(e,t.length)}async moveTo(e){await this.nvim.call("coc#util#jumpTo",[e.line,e.character]),b.env.isVim&&this.nvim.command("redraw",!0)}async getOffset(){return await this.nvim.call("coc#util#get_offset")}async getCursorScreenPosition(){let[e,t]=await this.nvim.call("coc#util#cursor_pos");return{row:e,col:t}}async showPickerDialog(e,t,r){if(!this.checkDialog())return;let n=await this.mutex.acquire();if(r&&r.isCancellationRequested){n();return}try{let o=typeof e[0]=="string",s=new sv(this.nvim,{title:t,items:o?e.map(c=>({label:c})):e},r),a=new Promise(c=>{s.onDidClose(f=>{c(f)})});await s.show(this.dialogPreference);let l=await a,u=l==null?void 0:e.filter((c,f)=>l.includes(f));return n(),u}catch(o){lc.error("Error on showPickerDialog:",o),n()}}async showInformationMessage(e,...t){if(!this.enableMessageDialog)return await this.showConfirm(e,t,"Info");let r=typeof t[0]=="string"?t:t.map(o=>o.title),n=await this.createNotification("CocInfoFloat",e,r);return n==-1?void 0:t[n]}async showWarningMessage(e,...t){if(!this.enableMessageDialog)return await this.showConfirm(e,t,"Warning");let r=typeof t[0]=="string"?t:t.map(o=>o.title),n=await this.createNotification("CocWarningFloat",e,r);return n==-1?void 0:t[n]}async showErrorMessage(e,...t){if(!this.enableMessageDialog)return await this.showConfirm(e,t,"Error");let r=typeof t[0]=="string"?t:t.map(o=>o.title),n=await this.createNotification("CocErrorFloat",e,r);return n==-1?void 0:t[n]}async showNotification(e){return this.checkDialog()?await new Xa(this.nvim,e).show(this.notificationPreference):!1}async showConfirm(e,t,r){if(!t||t.length==0){let a=r=="Info"?"more":r=="Error"?"error":"warning";this.showMessage(e,a);return}let o=(typeof t[0]=="string"?t.slice():t.map(a=>a.title)).map((a,l)=>`${l+1}${a}`),s=await this.nvim.callAsync("coc#util#with_callback",["confirm",[e,o.join(` +`),0,r]]);return t[s-1]}async withProgress(e,t){return this.checkDialog()?await new av(this.nvim,{task:t,title:e.title,cancellable:e.cancellable}).show(this.notificationPreference):void 0}createNotification(e,t,r){return new Promise(n=>{let o={content:t,borderhighlight:e,close:!0,buttons:r.map((a,l)=>({text:a,index:l})),callback:a=>{n(a)}};new Xa(this.nvim,o).show(this.notificationPreference).then(a=>{a||(lc.error("Unable to open notification window"),n(-1)),r.length||n(-1)},a=>{lc.error("Unable to open notification window",a),n(-1)})})}get dialogPreference(){let e=b.getConfiguration("dialog");return{maxWidth:e.get("maxWidth"),maxHeight:e.get("maxHeight"),floatHighlight:e.get("floatHighlight"),floatBorderHighlight:e.get("floatBorderHighlight"),pickerButtons:e.get("pickerButtons"),pickerButtonShortcut:e.get("pickerButtonShortcut"),confirmKey:e.get("confirmKey")}}get notificationPreference(){let e=b.getConfiguration("notification");return{top:e.get("marginTop"),right:e.get("marginRight"),maxWidth:e.get("maxWidth"),maxHeight:e.get("maxHeight"),highlight:e.get("highlightGroup"),minProgressWidth:e.get("minProgressWidth")}}checkDialog(){return b.env.dialog?!0:(this.showMessage("Dialog requires vim >= 8.2.0750 or neovim >= 0.4.0, please upgrade your vim","warning"),!1)}get enableMessageDialog(){return b.env.dialog?b.getConfiguration("coc.preferences").get("enableMessageDialog",!1):!1}get messageLevel(){switch(b.getConfiguration("coc.preferences").get("messageLevel","more")){case"error":return Yn.Error;case"warning":return Yn.Warning;default:return Yn.More}}},T=new TW});function Sd(i){switch(i){case ur.DiagnosticSeverity.Error:return"Error";case ur.DiagnosticSeverity.Warning:return"Warning";case ur.DiagnosticSeverity.Information:return"Information";case ur.DiagnosticSeverity.Hint:return"Hint";default:return"Error"}}function PW(i){switch(i){case ur.DiagnosticSeverity.Error:return"E";case ur.DiagnosticSeverity.Warning:return"W";case ur.DiagnosticSeverity.Information:return"I";case ur.DiagnosticSeverity.Hint:return"I";default:return"Error"}}function SE(i){switch(i){case"hint":return ur.DiagnosticSeverity.Hint;case"information":return ur.DiagnosticSeverity.Information;case"warning":return ur.DiagnosticSeverity.Warning;case"error":return ur.DiagnosticSeverity.Error;default:return ur.DiagnosticSeverity.Hint}}function CE(i){switch(i){case ur.DiagnosticSeverity.Error:return"CocError";case ur.DiagnosticSeverity.Warning:return"CocWarning";case ur.DiagnosticSeverity.Information:return"CocInfo";case ur.DiagnosticSeverity.Hint:return"CocHint";default:return"CocError"}}function $v(i,e){let{start:t}=e.range,r=e.source||"coc.nvim",n=e.message.split(` +`)[0],o=Sd(e.severity).slice(0,1).toUpperCase();return{bufnr:i,lnum:t.line+1,col:t.character+1,text:`[${r}${e.code?" "+e.code:""}] ${n} [${o}]`,type:o}}var ur,EE=I(()=>{ur=E(G())});function lve(i){let e=i.tags||[];if(e.includes(Ir.DiagnosticTag.Deprecated))return Mo.Deprecated;if(e.includes(Ir.DiagnosticTag.Unnecessary))return Mo.Unused;switch(i.severity){case Ir.DiagnosticSeverity.Error:return Mo.Error;case Ir.DiagnosticSeverity.Warning:return Mo.Warning;case Ir.DiagnosticSeverity.Information:return Mo.Information;case Ir.DiagnosticSeverity.Hint:return Mo.Hint;default:return Mo.Error}}function IW(i){let e=new Set;return i.forEach(t=>{e.add(t.collection)}),e}function uve(i){return i==Ir.DiagnosticSeverity.Error?nve:i==Ir.DiagnosticSeverity.Warning?ove:i==Ir.DiagnosticSeverity.Information?sve:ave}var RW,Ir,rve,ive,kW,Ls,Mo,nve,ove,sve,ave,_E,FW=I(()=>{RW=E(zr()),Ir=E(G());Gr();Kr();EE();rve=process.env.VIM_NODE_RPC=="1",ive=W()("diagnostic-buffer"),kW="CocDiagnostic";(function(t){t[t.Enabled=0]="Enabled",t[t.Disabled=1]="Disabled"})(Ls||(Ls={}));(function(s){s.Error="CocErrorHighlight",s.Warning="CocWarningHighlight",s.Information="CocInfoHighlight",s.Hint="CocHintFloat",s.Deprecated="CocStrikeThrough",s.Unused="CocFadeOut"})(Mo||(Mo={}));nve=Symbol("CocError"),ove=Symbol("CocWarning"),sve=Symbol("CocInformation"),ave=Symbol("CocHint"),_E=class{constructor(e,t,r,n,o){this.nvim=e;this.bufnr=t;this.uri=r;this.config=n;this.onRefresh=o;this.diagnostics=[];this._disposed=!1;this._state=0;this.refresh=(0,RW.default)(s=>{this._refresh(s).logError()},300)}get displayByAle(){return this.config.displayByAle}onChange(){this.refresh.clear()}changeState(e){this._state=e}get enabled(){return this._state==0}forceRefresh(e){this.refresh.clear(),this._refresh(e).logError()}refreshAle(e){let t=IW(this.diagnostics);this.diagnostics=e;let r=new Map;e.forEach(n=>{let o=r.get(n.collection)||[];o.push(n),r.set(n.collection,o)});for(let n of t)r.has(n)||r.set(n,[]);this.nvim.pauseNotification();for(let[n,o]of r.entries()){let s=o.map(l=>{let u=l.range||Ir.Range.create(0,0,1,0);return{text:l.message,code:l.code,lnum:u.start.line+1,col:u.start.character+1,end_lnum:u.end.line+1,end_col:u.end.character,type:PW(l.severity)}}),a=global.hasOwnProperty("__TEST__")?"MockAleResults":"ale#other_source#ShowResults";this.nvim.call(a,[this.bufnr,n,s],!0)}this.nvim.resumeNotification().then(n=>{Array.isArray(n)&&n[1]!=null&&ive.error("Error on displayByAle:",n[1][2])}).logError()}async _refresh(e){if(rt(this.diagnostics,e))return;let{refreshOnInsertMode:t}=this.config,{nvim:r}=this;if(this._state==1)return;let n=await r.eval(`[coc#util#check_refresh(${this.bufnr}),mode(),line("."),getloclist(bufwinid(${this.bufnr}),{'title':1})]`);if(n[0]==0||this._disposed)return;let o=n[1];if(!(!t&&o.startsWith("i")&&e.length)){if(this.displayByAle)this.refreshAle(e);else{this.diagnostics=e;let s=n[2];r.pauseNotification(),this.setDiagnosticInfo(e),this.addSigns(e),this.addHighlight(e),this.updateLocationList(n[3],e),this.showVirtualText(e,s),rve&&this.nvim.command("redraw",!0);let a=await this.nvim.resumeNotification();if(Array.isArray(a)&&a[1])throw new Error(a[1])}this.onRefresh(e)}}updateLocationList(e,t){if(!this.config.locationlistUpdate||!e||e.title!=="Diagnostics of coc")return;let r=[];for(let n of t){let o=$v(this.bufnr,n);r.push(o)}this.nvim.call("setloclist",[0,[],"r",{title:"Diagnostics of coc",items:r}],!0)}addSigns(e){if(!this.config.enableSign)return;this.clearSigns();let{nvim:t,bufnr:r}=this,n=new Map;for(let o of e){let{range:s,severity:a}=o,l=s.start.line,u=CE(a),c=n.get(l)||[],f=uve(a);c.includes(f)||(c.push(f),n.set(l,c),t.call("sign_place",[0,kW,u,r,{lnum:l+1,priority:14-(a||0)}],!0))}}clearSigns(){let{nvim:e,bufnr:t}=this;e.call("sign_unplace",[kW,{buffer:t}],!0)}setDiagnosticInfo(e){let t=[0,0,0,0],r={error:0,warning:0,information:0,hint:0,lnums:t};for(let n of e)switch(n.severity){case Ir.DiagnosticSeverity.Warning:r.warning=r.warning+1,t[1]=t[1]||n.range.start.line+1;break;case Ir.DiagnosticSeverity.Information:r.information=r.information+1,t[2]=t[2]||n.range.start.line+1;break;case Ir.DiagnosticSeverity.Hint:r.hint=r.hint+1,t[3]=t[3]||n.range.start.line+1;break;default:t[0]=t[0]||n.range.start.line+1,r.error=r.error+1}this.nvim.call("coc#util#set_buf_var",[this.bufnr,"coc_diagnostic_info",r],!0),this.nvim.call("coc#util#do_autocmd",["CocDiagnosticChange"],!0)}showVirtualText(e,t){let{buffer:r,config:n}=this;if(!n.virtualText)return;let o=this.config.virtualTextSrcId,s=this.config.virtualTextPrefix;this.config.virtualTextCurrentLineOnly&&(e=e.filter(a=>{let{start:l,end:u}=a.range;return l.line<=t-1&&u.line>=t-1})),r.clearNamespace(o);for(let a of[...e].reverse()){let{line:l}=a.range.start,u=CE(a.severity)+"VirtualText",c=a.message.split(/\n/).map(f=>f.trim()).filter(f=>f.length>0).slice(0,this.config.virtualTextLines).join(this.config.virtualTextLineSeparator);r.setVirtualText(o,l,[[s+c,u]],{}).logError()}}addHighlight(e){if(this.clearHighlight(),e.length==0)return;let t=new Map;for(let r of e){let{range:n}=r,o=lve(r),s=t.get(o)||[];s.push(n),t.set(o,s)}for(let r of t.keys()){let n=t.get(r)||[];n.length&&this.buffer.highlightRanges("diagnostic",r,n)}}clearHighlight(){this.buffer.clearNamespace("diagnostic")}get buffer(){return this.nvim.createBuffer(this.bufnr)}clear(){this.refresh.clear();let{nvim:e}=this;if(this.diagnostics=[],this.displayByAle){let t=IW(this.diagnostics);if(t.size>0)for(let r of t){let n=global.hasOwnProperty("__TEST__")?"MockAleResults":"ale#other_source#ShowResults";this.nvim.call(n,[this.bufnr,r,[]],!0)}}else e.pauseNotification(),this.clearHighlight(),this.config.enableSign&&this.clearSigns(),this.config.virtualText&&this.buffer.clearNamespace(this.config.virtualTextSrcId),e.call("coc#compat#buf_del_var",[this.bufnr,"coc_diagnostic_info"],!0),e.resumeNotification(!1,!0)}getDiagnosticsAt(e,t){let r=this.diagnostics.slice();return t?r=r.filter(n=>hj(e.line,n.range)):r=r.filter(n=>gr(e,n.range)==0),r.sort((n,o)=>n.severity-o.severity),r}dispose(){this._disposed=!0,this.clear()}}});var uc,CMe,Bv,OW=I(()=>{uc=E(G());Ze();ie();CMe=W()("diagnostic-collection"),Bv=class{constructor(e){this.diagnosticsMap=new Map;this._onDispose=new uc.Emitter;this._onDidDiagnosticsChange=new uc.Emitter;this._onDidDiagnosticsClear=new uc.Emitter;this.onDispose=this._onDispose.event;this.onDidDiagnosticsChange=this._onDidDiagnosticsChange.event;this.onDidDiagnosticsClear=this._onDidDiagnosticsClear.event;this.name=e}set(e,t){let r=new Map;if(Array.isArray(e))for(let n of e){let[o,s]=n,a=b.getDocument(o);o=a?a.uri:o,s==null?s=[]:s=(r.get(o)||[]).concat(s),r.set(o,s)}else{let n=b.getDocument(e),o=n?n.uri:e;r.set(o,t||[])}for(let n of r){let[o,s]=n;o=j.parse(o).toString(),s.forEach(a=>{a.range=a.range||uc.Range.create(0,0,0,0),a.message=a.message||"unknown error message",a.source=a.source||this.name}),this.diagnosticsMap.set(o,s),this._onDidDiagnosticsChange.fire(o)}}delete(e){this.diagnosticsMap.delete(e)}clear(){let e=Array.from(this.diagnosticsMap.keys());this.diagnosticsMap.clear(),this._onDidDiagnosticsClear.fire(e)}forEach(e,t){for(let r of this.diagnosticsMap.keys()){let n=this.diagnosticsMap.get(r);e.call(t,r,n,this)}}get(e){let t=this.diagnosticsMap.get(e);return t==null?[]:t}has(e){return this.diagnosticsMap.has(e)}dispose(){this.clear(),this._onDispose.fire(void 0),this._onDispose.dispose(),this._onDidDiagnosticsClear.dispose(),this._onDidDiagnosticsChange.dispose()}}});var AW,LW,Et,NMe,MW,At,el=I(()=>{AW=E(zr()),LW=E(Gp()),Et=E(G());Ze();je();zu();ye();Kr();Te();ie();FW();OW();EE();NMe=W()("diagnostic-manager"),MW=class{constructor(){this.enabled=!0;this._onDidRefresh=new Et.Emitter;this.onDidRefresh=this._onDidRefresh.event;this.lastMessage="";this.collections=[];this.disposables=[]}init(){this.setConfiguration(),b.onDidChangeConfiguration(t=>{this.setConfiguration(t)},null,this.disposables),this.floatFactory=new tn(this.nvim),this.buffers=b.registerBufferSync(t=>{if(t.buftype!=="")return;let r=new _E(this.nvim,t.bufnr,t.uri,this.config,o=>{this._onDidRefresh.fire({diagnostics:o,uri:r.uri,bufnr:r.bufnr}),!["never","jump"].includes(this.config.enableMessage)&&this.echoMessage(!0).logError()}),n=this.getDiagnostics(t.uri);return this.enabled&&r.forceRefresh(n),r}),N.on("CursorMoved",t=>{this.config.enableMessage=="always"&&(this.timer&&clearTimeout(this.timer),t!=this.floatFactory.bufnr&&(this.timer=setTimeout(async()=>{await this.echoMessage(!0)},this.config.messageDelay)))},null,this.disposables);let e=(0,AW.default)((t,r)=>{if(!this.config.virtualText||!this.config.virtualTextCurrentLineOnly)return;let n=this.buffers.getItem(t);if(n){let o=this.getDiagnostics(n.uri);n.showVirtualText(o,r[0])}},100);N.on("CursorMoved",e,null,this.disposables),this.disposables.push(Et.Disposable.create(()=>{e.clear()})),N.on("InsertLeave",async t=>{this.config.refreshOnInsertMode||this.refreshBuffer(t)},null,this.disposables),N.on("BufEnter",async()=>{this.timer&&clearTimeout(this.timer)},null,this.disposables),this.setConfigurationErrors(!0),b.configurations.onError(()=>{this.setConfigurationErrors()},null,this.disposables)}defineSigns(){let{nvim:e}=this,{enableHighlightLineNumber:t,enableSign:r}=this.config;if(!!r){e.pauseNotification();for(let n of["Error","Warning","Info","Hint"]){let o=this.config[n.toLowerCase()+"Sign"],s=`sign define Coc${n} linehl=Coc${n}Line`;o&&(s+=` texthl=Coc${n}Sign text=${o}`),t&&(s+=` numhl=Coc${n}Sign`),e.command(s,!0)}e.resumeNotification(!1,!0)}}async setLocationlist(e){let t=this.buffers.getItem(e),r=t?this.getDiagnostics(t.uri):[],n=[];for(let a of r){let l=$v(e,a);n.push(l)}let o=await this.nvim.call("getloclist",[0,{title:1}]),s=o.title&&o.title.indexOf("Diagnostics of coc")!=-1?"r":" ";await this.nvim.call("setloclist",[0,[],s,{title:"Diagnostics of coc",items:n}])}setConfigurationErrors(e){let r=this.collections.find(o=>o.name=="config");r?r.clear():r=this.create("config");let{errorItems:n}=b.configurations;if(n&&n.length){e&&T.showMessage("settings file parse error, run ':CocList diagnostics'","error");let o=new Map;for(let s of n){let{uri:a}=s.location,l=o.get(a)||[];l.push(Et.Diagnostic.create(s.location.range,s.message,Et.DiagnosticSeverity.Error)),o.set(a,l)}r.set(Array.from(o))}}create(e){let t=this.getCollectionByName(e);return t||(t=new Bv(e),this.collections.push(t),t.onDidDiagnosticsChange(r=>{this.refreshBuffer(r)}),t.onDidDiagnosticsClear(r=>{for(let n of r)this.refreshBuffer(n,!0)}),t.onDispose(()=>{let r=this.collections.findIndex(n=>n==t);r!==-1&&this.collections.splice(r,1)}),t)}getSortedRanges(e,t){let r=this.getCollections(e),n=[],o=t?SE(t):0;for(let s of r){let a=s.get(e);o&&(a=a.filter(u=>u.severity==o));let l=a.map(u=>u.range);n.push(...l)}return n.sort((s,a)=>s.start.line!=a.start.line?s.start.line-a.start.line:s.start.character-a.start.character),n}getDiagnostics(e){let t=this.getCollections(e),{level:r,showUnused:n,showDeprecated:o}=this.config,s=[];for(let a of t){let l=a.get(e);!l||(l=l.filter(u=>{var c,f;return!(r&&rr||!n&&((c=u.tags)==null?void 0:c.includes(Et.DiagnosticTag.Unnecessary))||!o&&((f=u.tags)==null?void 0:f.includes(Et.DiagnosticTag.Deprecated)))}),l.forEach(u=>{s.push(Object.assign({collection:a.name},u))}))}return s.sort((a,l)=>{if(a.severity==l.severity){let u=Ke(a.range.start,l.range.start);return u!=0?u:a.source==l.source?a.message>l.message?1:-1:a.source>l.source?1:-1}return a.severity-l.severity}),s}getDiagnosticsInRange(e,t){let r=this.getCollections(e.uri),n=[];for(let o of r){let s=o.get(e.uri);if(!!s)for(let a of s)Gu(a.range,t)&&n.push(a)}return n}async preview(){let e=await this.getCurrentDiagnostics();if(e.length==0){this.nvim.command("pclose",!0),T.showMessage("Empty diagnostics","warning");return}let t=[];for(let r of e){let{source:n,code:o,severity:s,message:a}=r,l=Sd(s)[0];t.push(`[${n}${o?" "+o:""}] [${l}]`),t.push(...a.split(/\r?\n/)),t.push("")}this.nvim.call("coc#util#preview_info",[t,"txt"],!0)}async jumpPrevious(e){let t=await this.nvim.buffer,r=b.getDocument(t.id);if(!r)return;let n=await T.getCursorPosition(),o=this.getSortedRanges(r.uri,e);if(o.length==0){T.showMessage("Empty diagnostics","warning");return}let s;for(let a=o.length-1;a>=0;a--){let l=o[a].end;if(Ke(l,n)<0){s=o[a].start;break}else a==0&&await this.nvim.getOption("wrapscan")&&(s=o[o.length-1].start)}if(s){if(await T.moveTo(s),this.config.enableMessage=="never")return;await this.echoMessage(!1)}}async jumpNext(e){let t=await this.nvim.buffer,r=b.getDocument(t.id),n=await T.getCursorPosition(),o=this.getSortedRanges(r.uri,e);if(o.length==0){T.showMessage("Empty diagnostics","warning");return}let s;for(let a=0;a<=o.length-1;a++){let l=o[a].start;if(Ke(l,n)>0){s=o[a].start;break}else a==o.length-1&&await this.nvim.getOption("wrapscan")&&(s=o[0].start)}if(s){if(await T.moveTo(s),this.config.enableMessage=="never")return;await this.echoMessage(!1)}}getDiagnosticList(){let e=[],{level:t,showUnused:r,showDeprecated:n}=this.config;for(let o of this.collections)o.forEach((s,a)=>{var u,c;let l=j.parse(s).fsPath;for(let f of a){if(f.severity&&f.severity>t||!r&&((u=f.tags)==null?void 0:u.includes(Et.DiagnosticTag.Unnecessary))||!n&&((c=f.tags)==null?void 0:c.includes(Et.DiagnosticTag.Deprecated)))continue;let{start:p}=f.range,d={file:l,lnum:p.line+1,col:p.character+1,code:f.code,source:f.source||o.name,message:f.message,severity:Sd(f.severity),level:f.severity||0,location:Et.Location.create(s,f.range)};e.push(d)}});return e.sort((o,s)=>o.level!==s.level?o.level-s.level:o.file!==s.file?o.file>s.file?1:-1:o.lnum!=s.lnum?o.lnum-s.lnum:o.col-s.col),e}getDiagnosticsAt(e,t,r=!1,n=!1){let o=this.buffers.getItem(e);if(!o)return[];let s=Et.Position.create(t[0],t[1]),a=o.getDiagnosticsAt(s,this.config.checkCurrentLine);return this.config.checkCurrentLine||a.length||r&&(s=Et.Position.create(t[0],t[1]+1),a=o.getDiagnosticsAt(s,!1),a.length)||n&&t[1]==0&&(s=Et.Position.create(t[0]+1,0),a=o.getDiagnosticsAt(s,!1)),a}async getCurrentDiagnostics(){let[e,t,r,n]=await this.nvim.eval(`[bufnr("%"),coc#util#cursor(),col('.')==col('$')-1,line('.')==line('$')]`);return this.getDiagnosticsAt(e,t,r==1,n==1)}async echoMessage(e=!1){let t=this.config;if(!this.enabled||t.displayByAle)return;this.timer&&clearTimeout(this.timer);let r=t.messageTarget=="float",[n,o]=await this.nvim.eval("[&filetype,mode()]");if(o!="n")return;let s=await this.getCurrentDiagnostics();if(s.length==0){if(r)this.floatFactory.close();else{let u=await this.nvim.call("coc#util#echo_line");this.lastMessage&&u.startsWith(this.lastMessage)&&this.nvim.command('echo ""',!0)}return}if(e&&b.insertMode)return;let a=[],l="";if(Object.keys(t.filetypeMap).length>0){let u=t.filetypeMap.default||"";l=t.filetypeMap[n]||(u=="bufferType"?n:u)}if(s.forEach(u=>{let{source:c,code:f,severity:p,message:d}=u,h=Sd(p)[0],m=f?" "+f:"",w=t.format.replace("%source",c).replace("%code",m).replace("%severity",h).replace("%message",d),v="Error";if(l==="")switch(p){case Et.DiagnosticSeverity.Hint:v="Hint";break;case Et.DiagnosticSeverity.Warning:v="Warning";break;case Et.DiagnosticSeverity.Information:v="Info";break}else v=l;a.push({filetype:v,content:w})}),r){let{maxWindowHeight:u,maxWindowWidth:c}=this.config;await this.floatFactory.show(a,{maxWidth:c,maxHeight:u,modes:["n"]})}else{let u=a.map(c=>c.content).join(` +`).split(/\r?\n/);u.length&&(await this.nvim.command('echo ""'),this.lastMessage=u[0].slice(0,30),await T.echoLines(u,e))}}async jumpRelated(){let e=await this.getCurrentDiagnostics();if(!e)return;let t=e.find(n=>n.relatedInformation!=null);if(!t)return;let r=t.relatedInformation.map(n=>n.location);r.length==1?await b.jumpTo(r[0].uri,r[0].range.start):r.length>1&&await b.showLocations(r)}reset(){this.timer&&clearTimeout(this.timer),this.buffers.reset();for(let e of this.collections)e.dispose();this.collections=[]}dispose(){var e;this.buffers.dispose(),this.timer&&clearTimeout(this.timer);for(let t of this.collections)t.dispose();(e=this.floatFactory)==null||e.close(),this.collections=[],J(this.disposables)}get nvim(){return b.nvim}setConfiguration(e){if(e&&!e.affectsConfiguration("diagnostic"))return;let t=b.getConfiguration("diagnostic"),r=t.get("messageTarget","float");r=="float"&&!b.env.floating&&!b.env.textprop&&(r="echo");let n=t.get("enableHighlightLineNumber",!0);(!b.isNvim||LW.default.lt(b.env.version,"v0.3.2"))&&(n=!1),this.config={messageTarget:r,enableHighlightLineNumber:n,autoRefresh:t.get("autoRefresh",!1),virtualTextSrcId:b.createNameSpace("diagnostic-virtualText"),checkCurrentLine:t.get("checkCurrentLine",!1),enableSign:b.env.sign&&t.get("enableSign",!0),locationlistUpdate:t.get("locationlistUpdate",!0),maxWindowHeight:t.get("maxWindowHeight",10),maxWindowWidth:t.get("maxWindowWidth",80),enableMessage:t.get("enableMessage","always"),messageDelay:t.get("messageDelay",200),virtualText:t.get("virtualText",!1)&&this.nvim.hasFunction("nvim_buf_set_virtual_text"),virtualTextCurrentLineOnly:t.get("virtualTextCurrentLineOnly",!0),virtualTextPrefix:t.get("virtualTextPrefix"," "),virtualTextLineSeparator:t.get("virtualTextLineSeparator"," \\ "),virtualTextLines:t.get("virtualTextLines",3),displayByAle:t.get("displayByAle",!1),level:SE(t.get("level","hint")),signPriority:t.get("signPriority",10),errorSign:t.get("errorSign",">>"),warningSign:t.get("warningSign",">>"),infoSign:t.get("infoSign",">>"),hintSign:t.get("hintSign",">>"),refreshOnInsertMode:t.get("refreshOnInsertMode",!1),filetypeMap:t.get("filetypeMap",{}),showUnused:t.get("showUnused",!0),showDeprecated:t.get("showDeprecated",!0),format:t.get("format","[%source%code] [%severity] %message")},this.enabled=t.get("enable",!0),this.defineSigns()}getCollectionByName(e){return this.collections.find(t=>t.name==e)}getCollections(e){return this.collections.filter(t=>t.has(e))}toggleDiagnostic(){let{enabled:e}=this;this.enabled=!e;for(let t of this.buffers.items)if(this.enabled){let r=this.getDiagnostics(t.uri);t.forceRefresh(r)}else t.clear()}toggleDiagnosticBuffer(e){if(!this.enabled)return;let t=this.buffers.getItem(e);if(t)if(t.enabled)t.changeState(Ls.Disabled),t.clear();else{t.changeState(Ls.Enabled);let r=this.getDiagnostics(t.uri);t.forceRefresh(r)}}refreshBuffer(e,t=!1){if(!this.enabled||!this.config.autoRefresh)return!1;let r=this.buffers.getItem(e);if(!r)return!1;let n=this.getDiagnostics(r.uri);return t?r.forceRefresh(n):r.refresh(n),!0}refresh(e){if(e){let t=this.buffers.getItem(e);if(t){let r=this.getDiagnostics(t.uri);t.forceRefresh(r)}}else for(let t of this.buffers.items){let r=this.getDiagnostics(t.uri);t.forceRefresh(r)}}},At=new MW});var Bt,qW=I(()=>{(function(g){g[g.Null=0]="Null",g[g.Backspace=8]="Backspace",g[g.Tab=9]="Tab",g[g.LineFeed=10]="LineFeed",g[g.CarriageReturn=13]="CarriageReturn",g[g.Space=32]="Space",g[g.ExclamationMark=33]="ExclamationMark",g[g.DoubleQuote=34]="DoubleQuote",g[g.Hash=35]="Hash",g[g.DollarSign=36]="DollarSign",g[g.PercentSign=37]="PercentSign",g[g.Ampersand=38]="Ampersand",g[g.SingleQuote=39]="SingleQuote",g[g.OpenParen=40]="OpenParen",g[g.CloseParen=41]="CloseParen",g[g.Asterisk=42]="Asterisk",g[g.Plus=43]="Plus",g[g.Comma=44]="Comma",g[g.Dash=45]="Dash",g[g.Period=46]="Period",g[g.Slash=47]="Slash",g[g.Digit0=48]="Digit0",g[g.Digit1=49]="Digit1",g[g.Digit2=50]="Digit2",g[g.Digit3=51]="Digit3",g[g.Digit4=52]="Digit4",g[g.Digit5=53]="Digit5",g[g.Digit6=54]="Digit6",g[g.Digit7=55]="Digit7",g[g.Digit8=56]="Digit8",g[g.Digit9=57]="Digit9",g[g.Colon=58]="Colon",g[g.Semicolon=59]="Semicolon",g[g.LessThan=60]="LessThan",g[g.Equals=61]="Equals",g[g.GreaterThan=62]="GreaterThan",g[g.QuestionMark=63]="QuestionMark",g[g.AtSign=64]="AtSign",g[g.A=65]="A",g[g.B=66]="B",g[g.C=67]="C",g[g.D=68]="D",g[g.E=69]="E",g[g.F=70]="F",g[g.G=71]="G",g[g.H=72]="H",g[g.I=73]="I",g[g.J=74]="J",g[g.K=75]="K",g[g.L=76]="L",g[g.M=77]="M",g[g.N=78]="N",g[g.O=79]="O",g[g.P=80]="P",g[g.Q=81]="Q",g[g.R=82]="R",g[g.S=83]="S",g[g.T=84]="T",g[g.U=85]="U",g[g.V=86]="V",g[g.W=87]="W",g[g.X=88]="X",g[g.Y=89]="Y",g[g.Z=90]="Z",g[g.OpenSquareBracket=91]="OpenSquareBracket",g[g.Backslash=92]="Backslash",g[g.CloseSquareBracket=93]="CloseSquareBracket",g[g.Caret=94]="Caret",g[g.Underline=95]="Underline",g[g.BackTick=96]="BackTick",g[g.a=97]="a",g[g.b=98]="b",g[g.c=99]="c",g[g.d=100]="d",g[g.e=101]="e",g[g.f=102]="f",g[g.g=103]="g",g[g.h=104]="h",g[g.i=105]="i",g[g.j=106]="j",g[g.k=107]="k",g[g.l=108]="l",g[g.m=109]="m",g[g.n=110]="n",g[g.o=111]="o",g[g.p=112]="p",g[g.q=113]="q",g[g.r=114]="r",g[g.s=115]="s",g[g.t=116]="t",g[g.u=117]="u",g[g.v=118]="v",g[g.w=119]="w",g[g.x=120]="x",g[g.y=121]="y",g[g.z=122]="z",g[g.OpenCurlyBrace=123]="OpenCurlyBrace",g[g.Pipe=124]="Pipe",g[g.CloseCurlyBrace=125]="CloseCurlyBrace",g[g.Tilde=126]="Tilde",g[g.U_Combining_Grave_Accent=768]="U_Combining_Grave_Accent",g[g.U_Combining_Acute_Accent=769]="U_Combining_Acute_Accent",g[g.U_Combining_Circumflex_Accent=770]="U_Combining_Circumflex_Accent",g[g.U_Combining_Tilde=771]="U_Combining_Tilde",g[g.U_Combining_Macron=772]="U_Combining_Macron",g[g.U_Combining_Overline=773]="U_Combining_Overline",g[g.U_Combining_Breve=774]="U_Combining_Breve",g[g.U_Combining_Dot_Above=775]="U_Combining_Dot_Above",g[g.U_Combining_Diaeresis=776]="U_Combining_Diaeresis",g[g.U_Combining_Hook_Above=777]="U_Combining_Hook_Above",g[g.U_Combining_Ring_Above=778]="U_Combining_Ring_Above",g[g.U_Combining_Double_Acute_Accent=779]="U_Combining_Double_Acute_Accent",g[g.U_Combining_Caron=780]="U_Combining_Caron",g[g.U_Combining_Vertical_Line_Above=781]="U_Combining_Vertical_Line_Above",g[g.U_Combining_Double_Vertical_Line_Above=782]="U_Combining_Double_Vertical_Line_Above",g[g.U_Combining_Double_Grave_Accent=783]="U_Combining_Double_Grave_Accent",g[g.U_Combining_Candrabindu=784]="U_Combining_Candrabindu",g[g.U_Combining_Inverted_Breve=785]="U_Combining_Inverted_Breve",g[g.U_Combining_Turned_Comma_Above=786]="U_Combining_Turned_Comma_Above",g[g.U_Combining_Comma_Above=787]="U_Combining_Comma_Above",g[g.U_Combining_Reversed_Comma_Above=788]="U_Combining_Reversed_Comma_Above",g[g.U_Combining_Comma_Above_Right=789]="U_Combining_Comma_Above_Right",g[g.U_Combining_Grave_Accent_Below=790]="U_Combining_Grave_Accent_Below",g[g.U_Combining_Acute_Accent_Below=791]="U_Combining_Acute_Accent_Below",g[g.U_Combining_Left_Tack_Below=792]="U_Combining_Left_Tack_Below",g[g.U_Combining_Right_Tack_Below=793]="U_Combining_Right_Tack_Below",g[g.U_Combining_Left_Angle_Above=794]="U_Combining_Left_Angle_Above",g[g.U_Combining_Horn=795]="U_Combining_Horn",g[g.U_Combining_Left_Half_Ring_Below=796]="U_Combining_Left_Half_Ring_Below",g[g.U_Combining_Up_Tack_Below=797]="U_Combining_Up_Tack_Below",g[g.U_Combining_Down_Tack_Below=798]="U_Combining_Down_Tack_Below",g[g.U_Combining_Plus_Sign_Below=799]="U_Combining_Plus_Sign_Below",g[g.U_Combining_Minus_Sign_Below=800]="U_Combining_Minus_Sign_Below",g[g.U_Combining_Palatalized_Hook_Below=801]="U_Combining_Palatalized_Hook_Below",g[g.U_Combining_Retroflex_Hook_Below=802]="U_Combining_Retroflex_Hook_Below",g[g.U_Combining_Dot_Below=803]="U_Combining_Dot_Below",g[g.U_Combining_Diaeresis_Below=804]="U_Combining_Diaeresis_Below",g[g.U_Combining_Ring_Below=805]="U_Combining_Ring_Below",g[g.U_Combining_Comma_Below=806]="U_Combining_Comma_Below",g[g.U_Combining_Cedilla=807]="U_Combining_Cedilla",g[g.U_Combining_Ogonek=808]="U_Combining_Ogonek",g[g.U_Combining_Vertical_Line_Below=809]="U_Combining_Vertical_Line_Below",g[g.U_Combining_Bridge_Below=810]="U_Combining_Bridge_Below",g[g.U_Combining_Inverted_Double_Arch_Below=811]="U_Combining_Inverted_Double_Arch_Below",g[g.U_Combining_Caron_Below=812]="U_Combining_Caron_Below",g[g.U_Combining_Circumflex_Accent_Below=813]="U_Combining_Circumflex_Accent_Below",g[g.U_Combining_Breve_Below=814]="U_Combining_Breve_Below",g[g.U_Combining_Inverted_Breve_Below=815]="U_Combining_Inverted_Breve_Below",g[g.U_Combining_Tilde_Below=816]="U_Combining_Tilde_Below",g[g.U_Combining_Macron_Below=817]="U_Combining_Macron_Below",g[g.U_Combining_Low_Line=818]="U_Combining_Low_Line",g[g.U_Combining_Double_Low_Line=819]="U_Combining_Double_Low_Line",g[g.U_Combining_Tilde_Overlay=820]="U_Combining_Tilde_Overlay",g[g.U_Combining_Short_Stroke_Overlay=821]="U_Combining_Short_Stroke_Overlay",g[g.U_Combining_Long_Stroke_Overlay=822]="U_Combining_Long_Stroke_Overlay",g[g.U_Combining_Short_Solidus_Overlay=823]="U_Combining_Short_Solidus_Overlay",g[g.U_Combining_Long_Solidus_Overlay=824]="U_Combining_Long_Solidus_Overlay",g[g.U_Combining_Right_Half_Ring_Below=825]="U_Combining_Right_Half_Ring_Below",g[g.U_Combining_Inverted_Bridge_Below=826]="U_Combining_Inverted_Bridge_Below",g[g.U_Combining_Square_Below=827]="U_Combining_Square_Below",g[g.U_Combining_Seagull_Below=828]="U_Combining_Seagull_Below",g[g.U_Combining_X_Above=829]="U_Combining_X_Above",g[g.U_Combining_Vertical_Tilde=830]="U_Combining_Vertical_Tilde",g[g.U_Combining_Double_Overline=831]="U_Combining_Double_Overline",g[g.U_Combining_Grave_Tone_Mark=832]="U_Combining_Grave_Tone_Mark",g[g.U_Combining_Acute_Tone_Mark=833]="U_Combining_Acute_Tone_Mark",g[g.U_Combining_Greek_Perispomeni=834]="U_Combining_Greek_Perispomeni",g[g.U_Combining_Greek_Koronis=835]="U_Combining_Greek_Koronis",g[g.U_Combining_Greek_Dialytika_Tonos=836]="U_Combining_Greek_Dialytika_Tonos",g[g.U_Combining_Greek_Ypogegrammeni=837]="U_Combining_Greek_Ypogegrammeni",g[g.U_Combining_Bridge_Above=838]="U_Combining_Bridge_Above",g[g.U_Combining_Equals_Sign_Below=839]="U_Combining_Equals_Sign_Below",g[g.U_Combining_Double_Vertical_Line_Below=840]="U_Combining_Double_Vertical_Line_Below",g[g.U_Combining_Left_Angle_Below=841]="U_Combining_Left_Angle_Below",g[g.U_Combining_Not_Tilde_Above=842]="U_Combining_Not_Tilde_Above",g[g.U_Combining_Homothetic_Above=843]="U_Combining_Homothetic_Above",g[g.U_Combining_Almost_Equal_To_Above=844]="U_Combining_Almost_Equal_To_Above",g[g.U_Combining_Left_Right_Arrow_Below=845]="U_Combining_Left_Right_Arrow_Below",g[g.U_Combining_Upwards_Arrow_Below=846]="U_Combining_Upwards_Arrow_Below",g[g.U_Combining_Grapheme_Joiner=847]="U_Combining_Grapheme_Joiner",g[g.U_Combining_Right_Arrowhead_Above=848]="U_Combining_Right_Arrowhead_Above",g[g.U_Combining_Left_Half_Ring_Above=849]="U_Combining_Left_Half_Ring_Above",g[g.U_Combining_Fermata=850]="U_Combining_Fermata",g[g.U_Combining_X_Below=851]="U_Combining_X_Below",g[g.U_Combining_Left_Arrowhead_Below=852]="U_Combining_Left_Arrowhead_Below",g[g.U_Combining_Right_Arrowhead_Below=853]="U_Combining_Right_Arrowhead_Below",g[g.U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below=854]="U_Combining_Right_Arrowhead_And_Up_Arrowhead_Below",g[g.U_Combining_Right_Half_Ring_Above=855]="U_Combining_Right_Half_Ring_Above",g[g.U_Combining_Dot_Above_Right=856]="U_Combining_Dot_Above_Right",g[g.U_Combining_Asterisk_Below=857]="U_Combining_Asterisk_Below",g[g.U_Combining_Double_Ring_Below=858]="U_Combining_Double_Ring_Below",g[g.U_Combining_Zigzag_Above=859]="U_Combining_Zigzag_Above",g[g.U_Combining_Double_Breve_Below=860]="U_Combining_Double_Breve_Below",g[g.U_Combining_Double_Breve=861]="U_Combining_Double_Breve",g[g.U_Combining_Double_Macron=862]="U_Combining_Double_Macron",g[g.U_Combining_Double_Macron_Below=863]="U_Combining_Double_Macron_Below",g[g.U_Combining_Double_Tilde=864]="U_Combining_Double_Tilde",g[g.U_Combining_Double_Inverted_Breve=865]="U_Combining_Double_Inverted_Breve",g[g.U_Combining_Double_Rightwards_Arrow_Below=866]="U_Combining_Double_Rightwards_Arrow_Below",g[g.U_Combining_Latin_Small_Letter_A=867]="U_Combining_Latin_Small_Letter_A",g[g.U_Combining_Latin_Small_Letter_E=868]="U_Combining_Latin_Small_Letter_E",g[g.U_Combining_Latin_Small_Letter_I=869]="U_Combining_Latin_Small_Letter_I",g[g.U_Combining_Latin_Small_Letter_O=870]="U_Combining_Latin_Small_Letter_O",g[g.U_Combining_Latin_Small_Letter_U=871]="U_Combining_Latin_Small_Letter_U",g[g.U_Combining_Latin_Small_Letter_C=872]="U_Combining_Latin_Small_Letter_C",g[g.U_Combining_Latin_Small_Letter_D=873]="U_Combining_Latin_Small_Letter_D",g[g.U_Combining_Latin_Small_Letter_H=874]="U_Combining_Latin_Small_Letter_H",g[g.U_Combining_Latin_Small_Letter_M=875]="U_Combining_Latin_Small_Letter_M",g[g.U_Combining_Latin_Small_Letter_R=876]="U_Combining_Latin_Small_Letter_R",g[g.U_Combining_Latin_Small_Letter_T=877]="U_Combining_Latin_Small_Letter_T",g[g.U_Combining_Latin_Small_Letter_V=878]="U_Combining_Latin_Small_Letter_V",g[g.U_Combining_Latin_Small_Letter_X=879]="U_Combining_Latin_Small_Letter_X",g[g.LINE_SEPARATOR_2028=8232]="LINE_SEPARATOR_2028",g[g.U_CIRCUMFLEX=94]="U_CIRCUMFLEX",g[g.U_GRAVE_ACCENT=96]="U_GRAVE_ACCENT",g[g.U_DIAERESIS=168]="U_DIAERESIS",g[g.U_MACRON=175]="U_MACRON",g[g.U_ACUTE_ACCENT=180]="U_ACUTE_ACCENT",g[g.U_CEDILLA=184]="U_CEDILLA",g[g.U_MODIFIER_LETTER_LEFT_ARROWHEAD=706]="U_MODIFIER_LETTER_LEFT_ARROWHEAD",g[g.U_MODIFIER_LETTER_RIGHT_ARROWHEAD=707]="U_MODIFIER_LETTER_RIGHT_ARROWHEAD",g[g.U_MODIFIER_LETTER_UP_ARROWHEAD=708]="U_MODIFIER_LETTER_UP_ARROWHEAD",g[g.U_MODIFIER_LETTER_DOWN_ARROWHEAD=709]="U_MODIFIER_LETTER_DOWN_ARROWHEAD",g[g.U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING=722]="U_MODIFIER_LETTER_CENTRED_RIGHT_HALF_RING",g[g.U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING=723]="U_MODIFIER_LETTER_CENTRED_LEFT_HALF_RING",g[g.U_MODIFIER_LETTER_UP_TACK=724]="U_MODIFIER_LETTER_UP_TACK",g[g.U_MODIFIER_LETTER_DOWN_TACK=725]="U_MODIFIER_LETTER_DOWN_TACK",g[g.U_MODIFIER_LETTER_PLUS_SIGN=726]="U_MODIFIER_LETTER_PLUS_SIGN",g[g.U_MODIFIER_LETTER_MINUS_SIGN=727]="U_MODIFIER_LETTER_MINUS_SIGN",g[g.U_BREVE=728]="U_BREVE",g[g.U_DOT_ABOVE=729]="U_DOT_ABOVE",g[g.U_RING_ABOVE=730]="U_RING_ABOVE",g[g.U_OGONEK=731]="U_OGONEK",g[g.U_SMALL_TILDE=732]="U_SMALL_TILDE",g[g.U_DOUBLE_ACUTE_ACCENT=733]="U_DOUBLE_ACUTE_ACCENT",g[g.U_MODIFIER_LETTER_RHOTIC_HOOK=734]="U_MODIFIER_LETTER_RHOTIC_HOOK",g[g.U_MODIFIER_LETTER_CROSS_ACCENT=735]="U_MODIFIER_LETTER_CROSS_ACCENT",g[g.U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR=741]="U_MODIFIER_LETTER_EXTRA_HIGH_TONE_BAR",g[g.U_MODIFIER_LETTER_HIGH_TONE_BAR=742]="U_MODIFIER_LETTER_HIGH_TONE_BAR",g[g.U_MODIFIER_LETTER_MID_TONE_BAR=743]="U_MODIFIER_LETTER_MID_TONE_BAR",g[g.U_MODIFIER_LETTER_LOW_TONE_BAR=744]="U_MODIFIER_LETTER_LOW_TONE_BAR",g[g.U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR=745]="U_MODIFIER_LETTER_EXTRA_LOW_TONE_BAR",g[g.U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK=746]="U_MODIFIER_LETTER_YIN_DEPARTING_TONE_MARK",g[g.U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK=747]="U_MODIFIER_LETTER_YANG_DEPARTING_TONE_MARK",g[g.U_MODIFIER_LETTER_UNASPIRATED=749]="U_MODIFIER_LETTER_UNASPIRATED",g[g.U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD=751]="U_MODIFIER_LETTER_LOW_DOWN_ARROWHEAD",g[g.U_MODIFIER_LETTER_LOW_UP_ARROWHEAD=752]="U_MODIFIER_LETTER_LOW_UP_ARROWHEAD",g[g.U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD=753]="U_MODIFIER_LETTER_LOW_LEFT_ARROWHEAD",g[g.U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD=754]="U_MODIFIER_LETTER_LOW_RIGHT_ARROWHEAD",g[g.U_MODIFIER_LETTER_LOW_RING=755]="U_MODIFIER_LETTER_LOW_RING",g[g.U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT=756]="U_MODIFIER_LETTER_MIDDLE_GRAVE_ACCENT",g[g.U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT=757]="U_MODIFIER_LETTER_MIDDLE_DOUBLE_GRAVE_ACCENT",g[g.U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT=758]="U_MODIFIER_LETTER_MIDDLE_DOUBLE_ACUTE_ACCENT",g[g.U_MODIFIER_LETTER_LOW_TILDE=759]="U_MODIFIER_LETTER_LOW_TILDE",g[g.U_MODIFIER_LETTER_RAISED_COLON=760]="U_MODIFIER_LETTER_RAISED_COLON",g[g.U_MODIFIER_LETTER_BEGIN_HIGH_TONE=761]="U_MODIFIER_LETTER_BEGIN_HIGH_TONE",g[g.U_MODIFIER_LETTER_END_HIGH_TONE=762]="U_MODIFIER_LETTER_END_HIGH_TONE",g[g.U_MODIFIER_LETTER_BEGIN_LOW_TONE=763]="U_MODIFIER_LETTER_BEGIN_LOW_TONE",g[g.U_MODIFIER_LETTER_END_LOW_TONE=764]="U_MODIFIER_LETTER_END_LOW_TONE",g[g.U_MODIFIER_LETTER_SHELF=765]="U_MODIFIER_LETTER_SHELF",g[g.U_MODIFIER_LETTER_OPEN_SHELF=766]="U_MODIFIER_LETTER_OPEN_SHELF",g[g.U_MODIFIER_LETTER_LOW_LEFT_ARROW=767]="U_MODIFIER_LETTER_LOW_LEFT_ARROW",g[g.U_GREEK_LOWER_NUMERAL_SIGN=885]="U_GREEK_LOWER_NUMERAL_SIGN",g[g.U_GREEK_TONOS=900]="U_GREEK_TONOS",g[g.U_GREEK_DIALYTIKA_TONOS=901]="U_GREEK_DIALYTIKA_TONOS",g[g.U_GREEK_KORONIS=8125]="U_GREEK_KORONIS",g[g.U_GREEK_PSILI=8127]="U_GREEK_PSILI",g[g.U_GREEK_PERISPOMENI=8128]="U_GREEK_PERISPOMENI",g[g.U_GREEK_DIALYTIKA_AND_PERISPOMENI=8129]="U_GREEK_DIALYTIKA_AND_PERISPOMENI",g[g.U_GREEK_PSILI_AND_VARIA=8141]="U_GREEK_PSILI_AND_VARIA",g[g.U_GREEK_PSILI_AND_OXIA=8142]="U_GREEK_PSILI_AND_OXIA",g[g.U_GREEK_PSILI_AND_PERISPOMENI=8143]="U_GREEK_PSILI_AND_PERISPOMENI",g[g.U_GREEK_DASIA_AND_VARIA=8157]="U_GREEK_DASIA_AND_VARIA",g[g.U_GREEK_DASIA_AND_OXIA=8158]="U_GREEK_DASIA_AND_OXIA",g[g.U_GREEK_DASIA_AND_PERISPOMENI=8159]="U_GREEK_DASIA_AND_PERISPOMENI",g[g.U_GREEK_DIALYTIKA_AND_VARIA=8173]="U_GREEK_DIALYTIKA_AND_VARIA",g[g.U_GREEK_DIALYTIKA_AND_OXIA=8174]="U_GREEK_DIALYTIKA_AND_OXIA",g[g.U_GREEK_VARIA=8175]="U_GREEK_VARIA",g[g.U_GREEK_OXIA=8189]="U_GREEK_OXIA",g[g.U_GREEK_DASIA=8190]="U_GREEK_DASIA",g[g.U_OVERLINE=8254]="U_OVERLINE",g[g.UTF8_BOM=65279]="UTF8_BOM"})(Bt||(Bt={}))});function NW(i,e){let t=[...i];for(;t.length>0;){let r=t.shift();if(!e(r))break;t.unshift(...r.children)}}var WMe,Y,Mn,TE,tl,Lt,PE,Ii,Cd,jv,sn,Zn,Ed,Ms,Uv=I(()=>{qW();Za();WMe=W()("snippets-parser");(function(m){m[m.Dollar=0]="Dollar",m[m.Colon=1]="Colon",m[m.Comma=2]="Comma",m[m.CurlyOpen=3]="CurlyOpen",m[m.CurlyClose=4]="CurlyClose",m[m.Backslash=5]="Backslash",m[m.Forwardslash=6]="Forwardslash",m[m.Pipe=7]="Pipe",m[m.Int=8]="Int",m[m.VariableName=9]="VariableName",m[m.Format=10]="Format",m[m.Plus=11]="Plus",m[m.Dash=12]="Dash",m[m.QuestionMark=13]="QuestionMark",m[m.EOF=14]="EOF"})(Y||(Y={}));Mn=class{static isDigitCharacter(e){return e>=Bt.Digit0&&e<=Bt.Digit9}static isVariableCharacter(e){return e===Bt.Underline||e>=Bt.a&&e<=Bt.z||e>=Bt.A&&e<=Bt.Z}constructor(){this.text("")}text(e){this.value=e,this.pos=0}tokenText(e){return this.value.substr(e.pos,e.len)}next(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};let e=this.pos,t=0,r=this.value.charCodeAt(e),n;if(n=Mn._table[r],typeof n=="number")return this.pos+=1,{type:n,pos:e,len:1};if(Mn.isDigitCharacter(r)){n=8;do t+=1,r=this.value.charCodeAt(e+t);while(Mn.isDigitCharacter(r));return this.pos+=t,{type:n,pos:e,len:t}}if(Mn.isVariableCharacter(r)){n=9;do r=this.value.charCodeAt(e+ ++t);while(Mn.isVariableCharacter(r)||Mn.isDigitCharacter(r));return this.pos+=t,{type:n,pos:e,len:t}}n=10;do t+=1,r=this.value.charCodeAt(e+t);while(!isNaN(r)&&typeof Mn._table[r]=="undefined"&&!Mn.isDigitCharacter(r)&&!Mn.isVariableCharacter(r));return this.pos+=t,{type:n,pos:e,len:t}}},TE=Mn;TE._table={[Bt.DollarSign]:0,[Bt.Colon]:1,[Bt.Comma]:2,[Bt.OpenCurlyBrace]:3,[Bt.CloseCurlyBrace]:4,[Bt.Backslash]:5,[Bt.Slash]:6,[Bt.Pipe]:7,[Bt.Plus]:11,[Bt.Dash]:12,[Bt.QuestionMark]:13};tl=class{constructor(){this._children=[]}appendChild(e){return e instanceof Lt&&this._children[this._children.length-1]instanceof Lt?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this}setOnlyChild(e){e.parent=this,this._children=[e]}replace(e,t){let{parent:r}=e,n=r.children.indexOf(e),o=r.children.slice(0);o.splice(n,1,...t),r._children=o,function s(a,l){for(let u of a)u.parent=l,s(u.children,u)}(t,r)}get children(){return this._children}get snippet(){let e=this;for(;;){if(!e)return;if(e instanceof Ed)return e;e=e.parent}}toString(){return this.children.reduce((e,t)=>e+t.toString(),"")}len(){return 0}get next(){let{parent:e}=this,{children:t}=e,r=t.indexOf(this);return t[r+1]}},Lt=class extends tl{constructor(e){super();this.value=e}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}toString(){return this.value}toTextmateString(){return Lt.escape(this.value)}len(){return this.value.length}clone(){return new Lt(this.value)}},PE=class extends tl{},Ii=class extends PE{constructor(e){super();this.index=e}static compareByIndex(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop||e.indext.index?1:0}get isFinalTabstop(){return this.index===0}get choice(){return this._children.length===1&&this._children[0]instanceof Cd?this._children[0]:void 0}toTextmateString(){let e="";return this.transform&&(e=this.transform.toTextmateString()),this.children.length===0&&!this.transform?`$${this.index}`:this.children.length===0?`\${${this.index}${e}}`:this.choice?`\${${this.index}|${this.choice.toTextmateString()}|${e}}`:`\${${this.index}:${this.children.map(t=>t.toTextmateString()).join("")}${e}}`}clone(){let e=new Ii(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}},Cd=class extends tl{constructor(){super(...arguments);this.options=[]}appendChild(e){return e instanceof Lt&&(e.parent=this,this.options.push(e)),this}toString(){return this.options[0].value}toTextmateString(){return this.options.map(e=>e.value.replace(/\||,/g,"\\$&")).join(",")}len(){return this.options[0].len()}clone(){let e=new Cd;for(let t of this.options)e.appendChild(t);return e}},jv=class extends tl{resolve(e){let t=!1,r=e.replace(this.regexp,(...n)=>(t=!0,this._replace(n.slice(0,-2))));return!t&&this._children.some(n=>n instanceof sn&&Boolean(n.elseValue))&&(r=this._replace([])),r}_replace(e){let t="";for(let r of this._children)if(r instanceof sn){let n=e[r.index]||"";n=r.resolve(n),t+=n}else t+=r.toString();return t}toString(){return""}toTextmateString(){return`/${this.regexp.source}/${this.children.map(e=>e.toTextmateString())}/${(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")}`}clone(){let e=new jv;return e.regexp=new RegExp(this.regexp.source,""+(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(t=>t.clone()),e}},sn=class extends tl{constructor(e,t,r,n){super();this.index=e;this.shorthandName=t;this.ifValue=r;this.elseValue=n}resolve(e){return this.shorthandName==="upcase"?e?e.toLocaleUpperCase():"":this.shorthandName==="downcase"?e?e.toLocaleLowerCase():"":this.shorthandName==="capitalize"?e?e[0].toLocaleUpperCase()+e.substr(1):"":this.shorthandName==="pascalcase"?e?this._toPascalCase(e):"":Boolean(e)&&typeof this.ifValue=="string"?this.ifValue:!e&&typeof this.elseValue=="string"?this.elseValue:e||""}_toPascalCase(e){let t=e.match(/[a-z]+/gi);return t?t.map(r=>r.charAt(0).toUpperCase()+r.substr(1).toLowerCase()).join(""):e}toTextmateString(){let e="${";return e+=this.index,this.shorthandName?e+=`:/${this.shorthandName}`:this.ifValue&&this.elseValue?e+=`:?${this.ifValue}:${this.elseValue}`:this.ifValue?e+=`:+${this.ifValue}`:this.elseValue&&(e+=`:-${this.elseValue}`),e+="}",e}clone(){return new sn(this.index,this.shorthandName,this.ifValue,this.elseValue)}},Zn=class extends PE{constructor(e){super();this.name=e}async resolve(e){let t=await e.resolve(this);if(t&&t.includes(` +`)){let r="";this.snippet.walk(l=>{if(l==this)return!1;if(l instanceof Lt){let u=l.toString().split(/\r?\n/);r=u[u.length-1].match(/^\s*/)[0]}return!0});let n=t.split(` +`),o=n.filter(l=>l.length>0).map(l=>l.match(/^\s*/)[0]),s=o.length==0?"":o.reduce((l,u)=>l.lengthu==0||l.length==0||!l.startsWith(s)?l:r+l.slice(s.length)).join(` +`)}return this.transform&&(t=this.transform.resolve(t||"")),t!==void 0?(this._children=[new Lt(t)],!0):!1}toTextmateString(){let e="";return this.transform&&(e=this.transform.toTextmateString()),this.children.length===0?`\${${this.name}${e}}`:`\${${this.name}:${this.children.map(t=>t.toTextmateString()).join("")}${e}}`}clone(){let e=new Zn(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(t=>t.clone()),e}};Ed=class extends tl{get placeholderInfo(){if(!this._placeholders){this._variables=[];let e=[],t;this.walk(r=>{if(r instanceof Ii)e.push(r),t=!t||t.index90)&&this._variables.push(r)}return!0}),this._placeholders={all:e,last:t}}return this._placeholders}get variables(){return this._variables}get placeholders(){let{all:e}=this.placeholderInfo;return e}get maxIndexNumber(){let{placeholders:e}=this;return e.reduce((t,r)=>Math.max(t,r.index),0)}get minIndexNumber(){let{placeholders:e}=this,t=e.map(r=>r.index);return t.sort((r,n)=>r-n),t.length>1&&t[0]==0?t[1]:t[0]||0}insertSnippet(e,t,r){let n=this.placeholders[t];if(!n)return;let{index:o}=n,s=tr.create("untitled:/1","snippet",0,n.toString());e=tr.applyEdits(s,[{range:r,newText:e}]);let a=new Ms().parse(e,!0),l=a.maxIndexNumber+1,u=[];for(let c of a.placeholders)c.isFinalTabstop?c.index=l+o:c.index=c.index+o,u.push(c.index);return this.walk(c=>(c instanceof Ii&&c.index>o&&(c.index=c.index+l),!0)),this.replace(n,a.children),Math.min.apply(null,u)}updatePlaceholder(e,t){let r=this.placeholders[e];for(let n of this.placeholders)if(n.index==r.index){let o=n.children[0],s=n.transform?n.transform.resolve(t):t;o?n.setOnlyChild(new Lt(s)):n.appendChild(new Lt(s))}this._placeholders=void 0}updateVariable(e,t){let r=this.variables[e-this.maxIndexNumber-1];if(r){let n=this.variables.filter(o=>o.name==r.name);for(let o of n){let s=o.transform?o.transform.resolve(t):t;o.setOnlyChild(new Lt(s))}}}getPlaceholderText(e,t){let r=this.placeholders[e];return r&&r.transform?r.transform.resolve(t):t}offset(e){let t=0,r=!1;return this.walk(n=>n===e?(r=!0,!1):(t+=n.len(),!0)),r?t:-1}fullLen(e){let t=0;return NW([e],r=>(t+=r.len(),!0)),t}enclosingPlaceholders(e){let t=[],{parent:r}=e;for(;r;)r instanceof Ii&&t.push(r),r=r.parent;return t}async resolveVariables(e){let t=[];this.walk(r=>(r instanceof Zn&&t.push(r),!0)),await Promise.all(t.map(r=>r.resolve(e)))}appendChild(e){return this._placeholders=void 0,super.appendChild(e)}replace(e,t){return this._placeholders=void 0,super.replace(e,t)}toTextmateString(){return this.children.reduce((e,t)=>e+t.toTextmateString(),"")}clone(){let e=new Ed;return this._children=this.children.map(t=>t.clone()),e}walk(e){NW(this.children,e)}},Ms=class{constructor(){this._scanner=new TE}static escape(e){return e.replace(/\$|}|\\/g,"\\$&")}text(e){return this.parse(e).toString()}parse(e,t){this._scanner.text(e),this._token=this._scanner.next();let r=new Ed;for(;this._parse(r););let n=new Map,o=[];r.walk(s=>(s instanceof Ii&&(s.isFinalTabstop?n.set(0,void 0):!n.has(s.index)&&s.children.length>0?n.set(s.index,s.children):o.push(s)),!0));for(let s of o)if(n.has(s.index)){let a=new Ii(s.index);a.transform=s.transform;for(let l of n.get(s.index)){let u=l.clone();if(a.transform){if(u instanceof Lt)u=new Lt(a.transform.resolve(u.value));else for(let c of u.children)if(c instanceof Lt){u.replace(c,[new Lt(a.transform.resolve(c.value))]);break}}a.appendChild(u)}r.replace(s,[a])}return!n.has(0)&&t&&r.appendChild(new Ii(0)),r}_accept(e,t){if(e===void 0||this._token.type===e){let r=t?this._scanner.tokenText(this._token):!0;return this._token=this._scanner.next(),r}return!1}_backTo(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1}_until(e){if(this._token.type===14)return!1;let t=this._token;for(;this._token.type!==e;)if(this._token=this._scanner.next(),this._token.type===14)return!1;let r=this._scanner.value.substring(t.pos,this._token.pos);return this._token=this._scanner.next(),r}_parse(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)}_parseEscaped(e){let t;return(t=this._accept(5,!0))?(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new Lt(t)),!0):!1}_parseTabstopOrVariableName(e){let t,r=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new Ii(Number(t)):new Zn(t)),!0):this._backTo(r)}_parseComplexPlaceholder(e){let t,r=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(r);let o=new Ii(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Lt("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else if(o.index>0&&this._accept(7)){let s=new Cd;for(;;){if(this._parseChoiceElement(s)){if(this._accept(2))continue;if(this._accept(7)&&(o.appendChild(s),this._accept(4)))return e.appendChild(o),!0}return this._backTo(r),!1}}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(r),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(r)}_parseChoiceElement(e){let t=this._token,r=[];for(;!(this._token.type===2||this._token.type===7);){let n;if((n=this._accept(5,!0))?n=this._accept(2,!0)||this._accept(7,!0)||this._accept(5,!0)||n:n=this._accept(void 0,!0),!n)return this._backTo(t),!1;r.push(n)}return r.length===0?(this._backTo(t),!1):(e.appendChild(new Lt(r.join(""))),!0)}_parseComplexVariable(e){let t,r=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(r);let o=new Zn(t);if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(o),!0;if(!this._parse(o))return e.appendChild(new Lt("${"+t+":")),o.children.forEach(e.appendChild,e),!0}else return this._accept(6)?this._parseTransform(o)?(e.appendChild(o),!0):(this._backTo(r),!1):this._accept(4)?(e.appendChild(o),!0):this._backTo(r)}_parseTransform(e){let t=new jv,r="",n="";for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(6,!0)||o,r+=o;continue}if(this._token.type!==14){r+=this._accept(void 0,!0);continue}return!1}for(;!this._accept(6);){let o;if(o=this._accept(5,!0)){o=this._accept(6,!0)||o,t.appendChild(new Lt(o));continue}if(this._parseFormatString(t)||this._parseAnything(t)){let s=t.children[0];s&&s.value&&s.value.includes("\\n")&&(s.value=s.value.replace(/\\n/g,` +`));continue}return!1}for(;!this._accept(4);){if(this._token.type!==14){n+=this._accept(void 0,!0);continue}return!1}try{t.regexp=new RegExp(r,n)}catch(o){return!1}return e.transform=t,!0}_parseFormatString(e){let t=this._token;if(!this._accept(0))return!1;let r=!1;this._accept(3)&&(r=!0);let n=this._accept(8,!0);if(n)if(r){if(this._accept(4))return e.appendChild(new sn(Number(n))),!0;if(!this._accept(1))return this._backTo(t),!1}else return e.appendChild(new sn(Number(n))),!0;else return this._backTo(t),!1;if(this._accept(6)){let o=this._accept(9,!0);return!o||!this._accept(4)?(this._backTo(t),!1):(e.appendChild(new sn(Number(n),o)),!0)}else if(this._accept(11)){let o=this._until(4);if(o)return e.appendChild(new sn(Number(n),void 0,o,void 0)),!0}else if(this._accept(12)){let o=this._until(4);if(o)return e.appendChild(new sn(Number(n),void 0,void 0,o)),!0}else if(this._accept(13)){let o=this._until(1);if(o){let s=this._until(4);if(s)return e.appendChild(new sn(Number(n),void 0,o,s)),!0}}else{let o=this._until(4);if(o)return e.appendChild(new sn(Number(n),void 0,void 0,o)),!0}return this._backTo(t),!1}_parseAnything(e){if(this._token.type!==14){let t=this._scanner.tokenText(this._token);return e.appendChild(new Lt(t)),this._accept(void 0),!0}return!1}}});var $W,GMe,qn,_d,BW=I(()=>{$W=E(require("events"));TC();GMe=W()("model-installBuffer");(function(n){n[n.Waiting=0]="Waiting",n[n.Faild=1]="Faild",n[n.Progressing=2]="Progressing",n[n.Success=3]="Success"})(qn||(qn={}));_d=class extends $W.EventEmitter{constructor(e=!1,t=!1,r=void 0){super();this.isUpdate=e;this.isSync=t;this.channel=r;this.statMap=new Map;this.messagesMap=new Map;this.names=[]}setExtensions(e){this.statMap.clear(),this.names=e;for(let t of e)this.statMap.set(t,0)}addMessage(e,t,r=!1){if(r&&this.channel)return;let n=this.messagesMap.get(e)||[];this.messagesMap.set(e,n.concat(t.trim().split(/\r?\n/))),this.channel&&this.channel.appendLine(`[${e}] ${t}`)}startProgress(e){for(let t of e)this.statMap.set(t,2)}finishProgress(e,t=!0){this.channel&&(t?this.channel.appendLine(`[${e}] install succeed!`):this.channel.appendLine(`[${e}] install failed!`)),this.statMap.set(e,t?3:1)}get remains(){let e=0;for(let t of this.names){let r=this.statMap.get(t);[3,1].includes(r)||(e=e+1)}return e}getLines(){let e=[];for(let t of this.names){let r=this.statMap.get(t),n="*";switch(r){case 2:{let s=new Date,a=Math.floor(s.getMilliseconds()/100);n=_C[a];break}case 1:n="\u2717";break;case 3:n="\u2713";break}let o=this.messagesMap.get(t)||[];e.push(`- ${n} ${t} ${o.length?o[o.length-1]:""}`)}return e}getMessages(e){if(e<=1)return[];let t=this.names[e-2];return t?this.messagesMap.get(t):[]}draw(e,t){let{remains:r}=this,o=[r==0?`${this.isUpdate?"Update":"Install"} finished`:`Installing, ${r} remains...`,"",...this.getLines()];t.setLines(o,{start:0,end:-1,strictIndexing:!1},!0),r==0&&this.interval&&(clearInterval(this.interval),this.interval=null),process.env.VIM_NODE_RPC&&e.command("redraw",!0)}highlight(e){e.call("matchadd",["CocListFgCyan","^\\-\\s\\zs\\*"],!0),e.call("matchadd",["CocListFgGreen","^\\-\\s\\zs\u2713"],!0),e.call("matchadd",["CocListFgRed","^\\-\\s\\zs\u2717"],!0),e.call("matchadd",["CocListFgYellow","^-.\\{3\\}\\zs\\S\\+"],!0)}async show(e){let{isSync:t}=this;if(this.channel)return;e.pauseNotification(),e.command(t?"enew":"vs +enew",!0),e.call("bufnr",["%"],!0),e.command("setl buftype=nofile bufhidden=wipe noswapfile nobuflisted wrap undolevels=-1",!0),t||e.command("nnoremap q :q",!0),this.highlight(e);let r=await e.resumeNotification(),n=r&&r[1]==null?r[0][1]:null;if(!n)return;this.bufnr=n;let o=e.createBuffer(n);this.interval=setInterval(()=>{this.draw(e,o)},100)}dispose(){this.interval&&clearInterval(this.interval)}}});var HW=y(rl=>{rl.parse=rl.decode=cve;rl.stringify=rl.encode=jW;rl.safe=cc;rl.unsafe=Wv;var RE=typeof process!="undefined"&&process.platform==="win32"?`\r +`:` +`;function jW(i,e){var t=[],r="";typeof e=="string"?e={section:e,whitespace:!1}:(e=e||{},e.whitespace=e.whitespace===!0);var n=e.whitespace?" = ":"=";return Object.keys(i).forEach(function(o,s,a){var l=i[o];l&&Array.isArray(l)?l.forEach(function(u){r+=cc(o+"[]")+n+cc(u)+` +`}):l&&typeof l=="object"?t.push(o):r+=cc(o)+n+cc(l)+RE}),e.section&&r.length&&(r="["+cc(e.section)+"]"+RE+r),t.forEach(function(o,s,a){var l=UW(o).join("\\."),u=(e.section?e.section+".":"")+l,c=jW(i[o],{section:u,whitespace:e.whitespace});r.length&&c.length&&(r+=RE),r+=c}),r}function UW(i){return i.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(e){return e.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function cve(i){var e={},t=e,r=null,n=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i,o=i.split(/[\r\n]+/g);return o.forEach(function(s,a,l){if(!(!s||s.match(/^\s*[;#]/))){var u=s.match(n);if(!!u){if(u[1]!==void 0){r=Wv(u[1]),t=e[r]=e[r]||{};return}var c=Wv(u[2]),f=u[3]?Wv(u[4]):!0;switch(f){case"true":case"false":case"null":f=JSON.parse(f)}c.length>2&&c.slice(-2)==="[]"&&(c=c.substring(0,c.length-2),t[c]?Array.isArray(t[c])||(t[c]=[t[c]]):t[c]=[]),Array.isArray(t[c])?t[c].push(f):t[c]=f}}}),Object.keys(e).filter(function(s,a,l){if(!e[s]||typeof e[s]!="object"||Array.isArray(e[s]))return!1;var u=UW(s),c=e,f=u.pop(),p=f.replace(/\\\./g,".");return u.forEach(function(d,h,m){(!c[d]||typeof c[d]!="object")&&(c[d]={}),c=c[d]}),c===e&&p===f?!1:(c[p]=e[s],!0)}).forEach(function(s,a,l){delete e[s]}),e}function WW(i){return i.charAt(0)==='"'&&i.slice(-1)==='"'||i.charAt(0)==="'"&&i.slice(-1)==="'"}function cc(i){return typeof i!="string"||i.match(/[=\r\n]/)||i.match(/^\[/)||i.length>1&&WW(i)||i!==i.trim()?JSON.stringify(i):i.replace(/;/g,"\\;").replace(/#/g,"\\#")}function Wv(i,e){if(i=(i||"").trim(),WW(i)){i.charAt(0)==="'"&&(i=i.substr(1,i.length-2));try{i=JSON.parse(i)}catch(a){}}else{for(var t=!1,r="",n=0,o=i.length;n{"use strict";var kE=1,zW=2;function fve(){return""}function pve(i,e,t){return i.slice(e,t).replace(/\S/g," ")}GW.exports=function(i,e){e=e||{};for(var t,r,n=!1,o=!1,s=0,a="",l=e.whitespace===!1?fve:pve,u=0;u{"use strict";var KW=require("fs"),dve=HW(),Td=require("path"),hve=VW(),mve=fc.parse=function(i){return/^\s*{/.test(i)?JSON.parse(hve(i)):dve.parse(i)},gve=fc.file=function(){var i=[].slice.call(arguments).filter(function(n){return n!=null});for(var e in i)if(typeof i[e]!="string")return;var t=Td.join.apply(null,i),r;try{return KW.readFileSync(t,"utf-8")}catch(n){return}},YMe=fc.json=function(){var i=gve.apply(null,arguments);return i?mve(i):null},XMe=fc.env=function(i,e){e=e||process.env;var t={},r=i.length;for(var n in e)if(n.toLowerCase().indexOf(i.toLowerCase())===0){for(var o=n.substring(r).split("__"),s;(s=o.indexOf(""))>-1;)o.splice(s,1);var a=t;o.forEach(function(u,c){!u||typeof a!="object"||(c===o.length-1&&(a[u]=e[n]),a[u]===void 0&&(a[u]={}),a=a[u])})}return t},ZMe=fc.find=function(){var i=Td.join.apply(null,[].slice.call(arguments));function e(t,r){var n=Td.join(t,r);try{return KW.statSync(n),n}catch(o){if(Td.dirname(t)!==t)return e(Td.dirname(t),r)}}return e(process.cwd(),i)}});var t6=y((eqe,e6)=>{"use strict";function YW(i){return i instanceof Buffer||i instanceof Date||i instanceof RegExp}function XW(i){if(i instanceof Buffer){var e=Buffer.alloc?Buffer.alloc(i.length):new Buffer(i.length);return i.copy(e),e}else{if(i instanceof Date)return new Date(i.getTime());if(i instanceof RegExp)return new RegExp(i);throw new Error("Unexpected situation")}}function ZW(i){var e=[];return i.forEach(function(t,r){typeof t=="object"&&t!==null?Array.isArray(t)?e[r]=ZW(t):YW(t)?e[r]=XW(t):e[r]=IE({},t):e[r]=t}),e}function QW(i,e){return e==="__proto__"?void 0:i[e]}var IE=e6.exports=function(){if(arguments.length<1||typeof arguments[0]!="object")return!1;if(arguments.length<2)return arguments[0];var i=arguments[0],e=Array.prototype.slice.call(arguments,1),t,r,n;return e.forEach(function(o){typeof o!="object"||o===null||Array.isArray(o)||Object.keys(o).forEach(function(s){if(r=QW(i,s),t=QW(o,s),t!==i)if(typeof t!="object"||t===null){i[s]=t;return}else if(Array.isArray(t)){i[s]=ZW(t);return}else if(YW(t)){i[s]=XW(t);return}else if(typeof r!="object"||r===null||Array.isArray(r)){i[s]=IE({},t);return}else{i[s]=IE(r,t);return}})}),i}});var n6=y((tqe,i6)=>{i6.exports=function(i,e){e||(e={});var t={bools:{},strings:{},unknownFn:null};typeof e.unknown=="function"&&(t.unknownFn=e.unknown),typeof e.boolean=="boolean"&&e.boolean?t.allBools=!0:[].concat(e.boolean).filter(Boolean).forEach(function(S){t.bools[S]=!0});var r={};Object.keys(e.alias||{}).forEach(function(S){r[S]=[].concat(e.alias[S]),r[S].forEach(function(P){r[P]=[S].concat(r[S].filter(function(A){return P!==A}))})}),[].concat(e.string).filter(Boolean).forEach(function(S){t.strings[S]=!0,r[S]&&(t.strings[r[S]]=!0)});var n=e.default||{},o={_:[]};Object.keys(t.bools).forEach(function(S){l(S,n[S]===void 0?!1:n[S])});var s=[];i.indexOf("--")!==-1&&(s=i.slice(i.indexOf("--")+1),i=i.slice(0,i.indexOf("--")));function a(S,P){return t.allBools&&/^--[^=]+$/.test(P)||t.strings[S]||t.bools[S]||r[S]}function l(S,P,A){if(!(A&&t.unknownFn&&!a(S,A)&&t.unknownFn(A)===!1)){var R=!t.strings[S]&&r6(P)?Number(P):P;u(o,S.split("."),R),(r[S]||[]).forEach(function(M){u(o,M.split("."),R)})}}function u(S,P,A){for(var R=S,M=0;M{var Pd=JW(),pc=require("path").join,yve=t6(),o6="/etc",s6=process.platform==="win32",Rd=s6?process.env.USERPROFILE:process.env.HOME;a6.exports=function(i,e,t,r){if(typeof i!="string")throw new Error("rc(name): name *must* be string");t||(t=n6()(process.argv.slice(2))),e=(typeof e=="string"?Pd.json(e):e)||{},r=r||Pd.parse;var n=Pd.env(i+"_"),o=[e],s=[];function a(l){if(!(s.indexOf(l)>=0)){var u=Pd.file(l);u&&(o.push(r(u)),s.push(l))}}return s6||[pc(o6,i,"config"),pc(o6,i+"rc")].forEach(a),Rd&&[pc(Rd,".config",i,"config"),pc(Rd,".config",i),pc(Rd,"."+i,"config"),pc(Rd,"."+i+"rc")].forEach(a),a(Pd.find("."+i+"rc")),n.config&&a(n.config),t.config&&a(t.config),yve.apply(null,o.concat([n,t,s.length?{configs:s,config:s[s.length-1]}:void 0]))}});var f6=y((FE,c6)=>{var Hv=require("buffer"),qo=Hv.Buffer;function u6(i,e){for(var t in i)e[t]=i[t]}qo.from&&qo.alloc&&qo.allocUnsafe&&qo.allocUnsafeSlow?c6.exports=Hv:(u6(Hv,FE),FE.Buffer=dc);function dc(i,e,t){return qo(i,e,t)}u6(qo,dc);dc.from=function(i,e,t){if(typeof i=="number")throw new TypeError("Argument must not be a number");return qo(i,e,t)};dc.alloc=function(i,e,t){if(typeof i!="number")throw new TypeError("Argument must be a number");var r=qo(i);return e!==void 0?typeof t=="string"?r.fill(e,t):r.fill(e):r.fill(0),r};dc.allocUnsafe=function(i){if(typeof i!="number")throw new TypeError("Argument must be a number");return qo(i)};dc.allocUnsafeSlow=function(i){if(typeof i!="number")throw new TypeError("Argument must be a number");return Hv.SlowBuffer(i)}});var v6=y((iqe,OE)=>{"use strict";OE.exports=Rve;OE.exports.parse=Ove;var p6=require("path").basename,bve=f6().Buffer,wve=/[\x00-\x20"'()*,/:;<=>?@[\\\]{}\x7f]/g,Dve=/%[0-9A-Fa-f]{2}/,xve=/%([0-9A-Fa-f]{2})/g,d6=/[^\x20-\x7e\xa0-\xff]/g,Sve=/\\([\u0000-\u007f])/g,Cve=/([\\"])/g,h6=/;[\x09\x20]*([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*=[\x09\x20]*("(?:[\x20!\x23-\x5b\x5d-\x7e\x80-\xff]|\\[\x20-\x7e])*"|[!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*/g,Eve=/^[\x20-\x7e\x80-\xff]+$/,_ve=/^[!#$%&'*+.0-9A-Z^_`a-z|~-]+$/,Tve=/^([A-Za-z0-9!#$%&+\-^_`{}~]+)'(?:[A-Za-z]{2,3}(?:-[A-Za-z]{3}){0,3}|[A-Za-z]{4,8}|)'((?:%[0-9A-Fa-f]{2}|[A-Za-z0-9!#$&+.^_`|~-])+)$/,Pve=/^([!#$%&'*+.0-9A-Z^_`a-z|~-]+)[\x09\x20]*(?:$|;)/;function Rve(i,e){var t=e||{},r=t.type||"attachment",n=kve(i,t.fallback);return Ive(new g6(r,n))}function kve(i,e){if(i!==void 0){var t={};if(typeof i!="string")throw new TypeError("filename must be a string");if(e===void 0&&(e=!0),typeof e!="string"&&typeof e!="boolean")throw new TypeError("fallback must be a string or boolean");if(typeof e=="string"&&d6.test(e))throw new TypeError("fallback must be ISO-8859-1 string");var r=p6(i),n=Eve.test(r),o=typeof e!="string"?e&&m6(r):p6(e),s=typeof o=="string"&&o!==r;return(s||!n||Dve.test(r))&&(t["filename*"]=r),(n||s)&&(t.filename=s?o:r),t}}function Ive(i){var e=i.parameters,t=i.type;if(!t||typeof t!="string"||!_ve.test(t))throw new TypeError("invalid type");var r=String(t).toLowerCase();if(e&&typeof e=="object")for(var n,o=Object.keys(e).sort(),s=0;s{var AE;try{AE=jt()("follow-redirects")}catch(i){AE=function(){}}y6.exports=AE});var $E=y((oqe,NE)=>{var hc=require("url"),LE=hc.URL,Nve=require("http"),$ve=require("https"),w6=require("stream").Writable,Bve=require("assert"),D6=b6(),ME=Object.create(null);["abort","aborted","connect","error","socket","timeout"].forEach(function(i){ME[i]=function(e,t,r){this._redirectable.emit(i,e,t,r)}});var jve=zv("ERR_FR_REDIRECTION_FAILURE",""),Uve=zv("ERR_FR_TOO_MANY_REDIRECTS","Maximum number of redirects exceeded"),Wve=zv("ERR_FR_MAX_BODY_LENGTH_EXCEEDED","Request body larger than maxBodyLength limit"),Hve=zv("ERR_STREAM_WRITE_AFTER_END","write after end");function an(i,e){w6.call(this),this._sanitizeOptions(i),this._options=i,this._ended=!1,this._ending=!1,this._redirectCount=0,this._redirects=[],this._requestBodyLength=0,this._requestBodyBuffers=[],e&&this.on("response",e);var t=this;this._onNativeResponse=function(r){t._processResponse(r)},this._performRequest()}an.prototype=Object.create(w6.prototype);an.prototype.write=function(i,e,t){if(this._ending)throw new Hve;if(!(typeof i=="string"||typeof i=="object"&&"length"in i))throw new TypeError("data should be a string, Buffer or Uint8Array");if(typeof e=="function"&&(t=e,e=null),i.length===0){t&&t();return}this._requestBodyLength+i.length<=this._options.maxBodyLength?(this._requestBodyLength+=i.length,this._requestBodyBuffers.push({data:i,encoding:e}),this._currentRequest.write(i,e,t)):(this.emit("error",new Wve),this.abort())};an.prototype.end=function(i,e,t){if(typeof i=="function"?(t=i,i=e=null):typeof e=="function"&&(t=e,e=null),!i)this._ended=this._ending=!0,this._currentRequest.end(null,null,t);else{var r=this,n=this._currentRequest;this.write(i,e,function(){r._ended=!0,n.end(null,null,t)}),this._ending=!0}};an.prototype.setHeader=function(i,e){this._options.headers[i]=e,this._currentRequest.setHeader(i,e)};an.prototype.removeHeader=function(i){delete this._options.headers[i],this._currentRequest.removeHeader(i)};an.prototype.setTimeout=function(i,e){if(e&&this.once("timeout",e),this.socket)x6(this,i);else{var t=this;this._currentRequest.once("socket",function(){x6(t,i)})}return this.once("response",S6),this.once("error",S6),this};function x6(i,e){clearTimeout(i._timeout),i._timeout=setTimeout(function(){i.emit("timeout")},e)}function S6(){clearTimeout(this._timeout)}["abort","flushHeaders","getHeader","setNoDelay","setSocketKeepAlive"].forEach(function(i){an.prototype[i]=function(e,t){return this._currentRequest[i](e,t)}});["aborted","connection","socket"].forEach(function(i){Object.defineProperty(an.prototype,i,{get:function(){return this._currentRequest[i]}})});an.prototype._sanitizeOptions=function(i){if(i.headers||(i.headers={}),i.host&&(i.hostname||(i.hostname=i.host),delete i.host),!i.pathname&&i.path){var e=i.path.indexOf("?");e<0?i.pathname=i.path:(i.pathname=i.path.substring(0,e),i.search=i.path.substring(e))}};an.prototype._performRequest=function(){var i=this._options.protocol,e=this._options.nativeProtocols[i];if(!e){this.emit("error",new TypeError("Unsupported protocol "+i));return}if(this._options.agents){var t=i.substr(0,i.length-1);this._options.agent=this._options.agents[t]}var r=this._currentRequest=e.request(this._options,this._onNativeResponse);this._currentUrl=hc.format(this._options),r._redirectable=this;for(var n in ME)n&&r.on(n,ME[n]);if(this._isRedirect){var o=0,s=this,a=this._requestBodyBuffers;(function l(u){if(r===s._currentRequest)if(u)s.emit("error",u);else if(o=300&&e<400){if(this._currentRequest.removeAllListeners(),this._currentRequest.on("error",zve),this._currentRequest.abort(),i.destroy(),++this._redirectCount>this._options.maxRedirects){this.emit("error",new Uve);return}((e===301||e===302)&&this._options.method==="POST"||e===303&&!/^(?:GET|HEAD)$/.test(this._options.method))&&(this._options.method="GET",this._requestBodyBuffers=[],qE(/^content-/i,this._options.headers));var r=qE(/^host$/i,this._options.headers)||hc.parse(this._currentUrl).hostname,n=hc.resolve(this._currentUrl,t);D6("redirecting to",n),this._isRedirect=!0;var o=hc.parse(n);if(Object.assign(this._options,o),o.hostname!==r&&qE(/^authorization$/i,this._options.headers),typeof this._options.beforeRedirect=="function"){var s={headers:i.headers};try{this._options.beforeRedirect.call(null,this._options,s)}catch(l){this.emit("error",l);return}this._sanitizeOptions(this._options)}try{this._performRequest()}catch(l){var a=new jve("Redirected request failed: "+l.message);a.cause=l,this.emit("error",a)}}else i.responseUrl=this._currentUrl,i.redirects=this._redirects,this.emit("response",i),this._requestBodyBuffers=[]};function C6(i){var e={maxRedirects:21,maxBodyLength:10*1024*1024},t={};return Object.keys(i).forEach(function(r){var n=r+":",o=t[n]=i[r],s=e[r]=Object.create(o);s.request=function(a,l,u){if(typeof a=="string"){var c=a;try{a=E6(new LE(c))}catch(f){a=hc.parse(c)}}else LE&&a instanceof LE?a=E6(a):(u=l,l=a,a={protocol:n});return typeof l=="function"&&(u=l,l=null),l=Object.assign({maxRedirects:e.maxRedirects,maxBodyLength:e.maxBodyLength},a,l),l.nativeProtocols=t,Bve.equal(l.protocol,n,"protocol mismatch"),D6("options",l),new an(l,u)},s.get=function(a,l,u){var c=s.request(a,l,u);return c.end(),c}}),e}function zve(){}function E6(i){var e={protocol:i.protocol,hostname:i.hostname.startsWith("[")?i.hostname.slice(1,-1):i.hostname,hash:i.hash,search:i.search,pathname:i.pathname,path:i.pathname+i.search,href:i.href};return i.port!==""&&(e.port=Number(i.port)),e}function qE(i,e){var t;for(var r in e)i.test(r)&&(t=e[r],delete e[r]);return t}function zv(i,e){function t(r){Error.captureStackTrace(this,this.constructor),this.message=r||e}return t.prototype=new Error,t.prototype.constructor=t,t.prototype.name="Error ["+i+"]",t.prototype.code=i,t}NE.exports=C6({http:Nve,https:$ve});NE.exports.wrap=C6});var mc=y((aqe,T6)=>{"use strict";var _6=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]),sqe=T6.exports=i=>i?Object.keys(i).map(e=>[_6.has(e)?_6.get(e):e,i[e]]).reduce((e,t)=>(e[t[0]]=t[1],e),Object.create(null)):{}});var R6=y((lqe,P6)=>{"use strict";P6.exports=function(i){i.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var Gv=y((uqe,k6)=>{"use strict";k6.exports=Ue;Ue.Node=il;Ue.create=Ue;function Ue(i){var e=this;if(e instanceof Ue||(e=new Ue),e.tail=null,e.head=null,e.length=0,i&&typeof i.forEach=="function")i.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,r=arguments.length;t1)t=e;else if(this.head)r=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;r!==null;n++)t=i(t,r.value,n),r=r.next;return t};Ue.prototype.reduceReverse=function(i,e){var t,r=this.tail;if(arguments.length>1)t=e;else if(this.tail)r=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;r!==null;n--)t=i(t,r.value,n),r=r.prev;return t};Ue.prototype.toArray=function(){for(var i=new Array(this.length),e=0,t=this.head;t!==null;e++)i[e]=t.value,t=t.next;return i};Ue.prototype.toArrayReverse=function(){for(var i=new Array(this.length),e=0,t=this.tail;t!==null;e++)i[e]=t.value,t=t.prev;return i};Ue.prototype.slice=function(i,e){e=e||this.length,e<0&&(e+=this.length),i=i||0,i<0&&(i+=this.length);var t=new Ue;if(ethis.length&&(e=this.length);for(var r=0,n=this.head;n!==null&&rthis.length&&(e=this.length);for(var r=this.length,n=this.tail;n!==null&&r>e;r--)n=n.prev;for(;n!==null&&r>i;r--,n=n.prev)t.push(n.value);return t};Ue.prototype.splice=function(i,e,...t){i>this.length&&(i=this.length-1),i<0&&(i=this.length+i);for(var r=0,n=this.head;n!==null&&r{"use strict";var Jve=require("events"),I6=require("stream"),kd=Gv(),F6=require("string_decoder").StringDecoder,No=Symbol("EOF"),Id=Symbol("maybeEmitEnd"),qs=Symbol("emittedEnd"),Vv=Symbol("emittingEnd"),Kv=Symbol("closed"),O6=Symbol("read"),A6=Symbol("flush"),L6=Symbol("flushChunk"),ci=Symbol("encoding"),$o=Symbol("decoder"),Jv=Symbol("flowing"),Fd=Symbol("paused"),Od=Symbol("resume"),fi=Symbol("bufferLength"),M6=Symbol("bufferPush"),BE=Symbol("bufferShift"),Fr=Symbol("objectMode"),Or=Symbol("destroyed"),q6=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Yve=q6&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),Xve=q6&&Symbol.iterator||Symbol("iterator not implemented"),N6=i=>i==="end"||i==="finish"||i==="prefinish",Zve=i=>i instanceof ArrayBuffer||typeof i=="object"&&i.constructor&&i.constructor.name==="ArrayBuffer"&&i.byteLength>=0,Qve=i=>!Buffer.isBuffer(i)&&ArrayBuffer.isView(i);B6.exports=class $6 extends I6{constructor(e){super();this[Jv]=!1,this[Fd]=!1,this.pipes=new kd,this.buffer=new kd,this[Fr]=e&&e.objectMode||!1,this[Fr]?this[ci]=null:this[ci]=e&&e.encoding||null,this[ci]==="buffer"&&(this[ci]=null),this[$o]=this[ci]?new F6(this[ci]):null,this[No]=!1,this[qs]=!1,this[Vv]=!1,this[Kv]=!1,this.writable=!0,this.readable=!0,this[fi]=0,this[Or]=!1}get bufferLength(){return this[fi]}get encoding(){return this[ci]}set encoding(e){if(this[Fr])throw new Error("cannot set encoding in objectMode");if(this[ci]&&e!==this[ci]&&(this[$o]&&this[$o].lastNeed||this[fi]))throw new Error("cannot change encoding");this[ci]!==e&&(this[$o]=e?new F6(e):null,this.buffer.length&&(this.buffer=this.buffer.map(t=>this[$o].write(t)))),this[ci]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Fr]}set objectMode(e){this[Fr]=this[Fr]||!!e}write(e,t,r){if(this[No])throw new Error("write after end");if(this[Or])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;if(typeof t=="function"&&(r=t,t="utf8"),t||(t="utf8"),!this[Fr]&&!Buffer.isBuffer(e)&&(Qve(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Zve(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),!this.objectMode&&!e.length){let n=this.flowing;return this[fi]!==0&&this.emit("readable"),r&&r(),n}typeof e=="string"&&!this[Fr]&&!(t===this[ci]&&!this[$o].lastNeed)&&(e=Buffer.from(e,t)),Buffer.isBuffer(e)&&this[ci]&&(e=this[$o].write(e));try{return this.flowing?(this.emit("data",e),this.flowing):(this[M6](e),!1)}finally{this[fi]!==0&&this.emit("readable"),r&&r()}}read(e){if(this[Or])return null;try{return this[fi]===0||e===0||e>this[fi]?null:(this[Fr]&&(e=null),this.buffer.length>1&&!this[Fr]&&(this.encoding?this.buffer=new kd([Array.from(this.buffer).join("")]):this.buffer=new kd([Buffer.concat(Array.from(this.buffer),this[fi])])),this[O6](e||null,this.buffer.head.value))}finally{this[Id]()}}[O6](e,t){return e===t.length||e===null?this[BE]():(this.buffer.head.value=t.slice(e),t=t.slice(0,e),this[fi]-=e),this.emit("data",t),!this.buffer.length&&!this[No]&&this.emit("drain"),t}end(e,t,r){return typeof e=="function"&&(r=e,e=null),typeof t=="function"&&(r=t,t="utf8"),e&&this.write(e,t),r&&this.once("end",r),this[No]=!0,this.writable=!1,(this.flowing||!this[Fd])&&this[Id](),this}[Od](){this[Or]||(this[Fd]=!1,this[Jv]=!0,this.emit("resume"),this.buffer.length?this[A6]():this[No]?this[Id]():this.emit("drain"))}resume(){return this[Od]()}pause(){this[Jv]=!1,this[Fd]=!0}get destroyed(){return this[Or]}get flowing(){return this[Jv]}get paused(){return this[Fd]}[M6](e){return this[Fr]?this[fi]+=1:this[fi]+=e.length,this.buffer.push(e)}[BE](){return this.buffer.length&&(this[Fr]?this[fi]-=1:this[fi]-=this.buffer.head.value.length),this.buffer.shift()}[A6](){do;while(this[L6](this[BE]()));!this.buffer.length&&!this[No]&&this.emit("drain")}[L6](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,t){if(this[Or])return;let r=this[qs];t=t||{},e===process.stdout||e===process.stderr?t.end=!1:t.end=t.end!==!1;let n={dest:e,opts:t,ondrain:o=>this[Od]()};return this.pipes.push(n),e.on("drain",n.ondrain),this[Od](),r&&n.opts.end&&n.dest.end(),e}addListener(e,t){return this.on(e,t)}on(e,t){try{return super.on(e,t)}finally{e==="data"&&!this.pipes.length&&!this.flowing?this[Od]():N6(e)&&this[qs]&&(super.emit(e),this.removeAllListeners(e))}}get emittedEnd(){return this[qs]}[Id](){!this[Vv]&&!this[qs]&&!this[Or]&&this.buffer.length===0&&this[No]&&(this[Vv]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Kv]&&this.emit("close"),this[Vv]=!1)}emit(e,t){if(e!=="error"&&e!=="close"&&e!==Or&&this[Or])return;if(e==="data"){if(!t)return;this.pipes.length&&this.pipes.forEach(n=>n.dest.write(t)===!1&&this.pause())}else if(e==="end"){if(this[qs]===!0)return;this[qs]=!0,this.readable=!1,this[$o]&&(t=this[$o].end(),t&&(this.pipes.forEach(n=>n.dest.write(t)),super.emit("data",t))),this.pipes.forEach(n=>{n.dest.removeListener("drain",n.ondrain),n.opts.end&&n.dest.end()})}else if(e==="close"&&(this[Kv]=!0,!this[qs]&&!this[Or]))return;let r=new Array(arguments.length);if(r[0]=e,r[1]=t,arguments.length>2)for(let n=2;n{e.push(r),this[Fr]||(e.dataLength+=r.length)}),t.then(()=>e)}concat(){return this[Fr]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Fr]?Promise.reject(new Error("cannot concat in objectMode")):this[ci]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,t)=>{this.on(Or,()=>t(new Error("stream destroyed"))),this.on("end",()=>e()),this.on("error",r=>t(r))})}[Yve](){return{next:()=>{let t=this.read();if(t!==null)return Promise.resolve({done:!1,value:t});if(this[No])return Promise.resolve({done:!0});let r=null,n=null,o=u=>{this.removeListener("data",s),this.removeListener("end",a),n(u)},s=u=>{this.removeListener("error",o),this.removeListener("end",a),this.pause(),r({value:u,done:!!this[No]})},a=()=>{this.removeListener("error",o),this.removeListener("data",s),r({done:!0})},l=()=>o(new Error("stream destroyed"));return new Promise((u,c)=>{n=c,r=u,this.once(Or,l),this.once("error",o),this.once("end",a),this.once("data",s)})}}}[Xve](){return{next:()=>{let t=this.read();return{value:t,done:t===null}}}}destroy(e){return this[Or]?(e?this.emit("error",e):this.emit(Or),this):(this[Or]=!0,this.buffer=new kd,this[fi]=0,typeof this.close=="function"&&!this[Kv]&&this.close(),e?this.emit("error",e):this.emit(Or),this)}static isStream(e){return!!e&&(e instanceof $6||e instanceof I6||e instanceof Jve&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var U6=y((fqe,j6)=>{var eye=require("zlib").constants||{ZLIB_VERNUM:4736};j6.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:Infinity,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},eye))});var JE=y(Fi=>{"use strict";var jE=require("assert"),Ns=require("buffer").Buffer,W6=require("zlib"),nl=Fi.constants=U6(),tye=gc(),H6=Ns.concat,ol=Symbol("_superWrite"),Ad=class extends Error{constructor(e){super("zlib: "+e.message);this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},rye=Symbol("opts"),Ld=Symbol("flushFlag"),z6=Symbol("finishFlushFlag"),UE=Symbol("fullFlushFlag"),dt=Symbol("handle"),Yv=Symbol("onError"),vc=Symbol("sawError"),WE=Symbol("level"),HE=Symbol("strategy"),zE=Symbol("ended"),pqe=Symbol("_defaultFullFlush"),GE=class extends tye{constructor(e,t){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e);this[vc]=!1,this[zE]=!1,this[rye]=e,this[Ld]=e.flush,this[z6]=e.finishFlush;try{this[dt]=new W6[t](e)}catch(r){throw new Ad(r)}this[Yv]=r=>{this[vc]||(this[vc]=!0,this.close(),this.emit("error",r))},this[dt].on("error",r=>this[Yv](new Ad(r))),this.once("end",()=>this.close)}close(){this[dt]&&(this[dt].close(),this[dt]=null,this.emit("close"))}reset(){if(!this[vc])return jE(this[dt],"zlib binding closed"),this[dt].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[UE]),this.write(Object.assign(Ns.alloc(0),{[Ld]:e})))}end(e,t,r){return e&&this.write(e,t),this.flush(this[z6]),this[zE]=!0,super.end(null,null,r)}get ended(){return this[zE]}write(e,t,r){if(typeof t=="function"&&(r=t,t="utf8"),typeof e=="string"&&(e=Ns.from(e,t)),this[vc])return;jE(this[dt],"zlib binding closed");let n=this[dt]._handle,o=n.close;n.close=()=>{};let s=this[dt].close;this[dt].close=()=>{},Ns.concat=u=>u;let a;try{let u=typeof e[Ld]=="number"?e[Ld]:this[Ld];a=this[dt]._processChunk(e,u),Ns.concat=H6}catch(u){Ns.concat=H6,this[Yv](new Ad(u))}finally{this[dt]&&(this[dt]._handle=n,n.close=o,this[dt].close=s,this[dt].removeAllListeners("error"))}this[dt]&&this[dt].on("error",u=>this[Yv](new Ad(u)));let l;if(a)if(Array.isArray(a)&&a.length>0){l=this[ol](Ns.from(a[0]));for(let u=1;u{this.flush(n),o()};try{this[dt].params(e,t)}finally{this[dt].flush=r}this[dt]&&(this[WE]=e,this[HE]=t)}}}},G6=class extends $s{constructor(e){super(e,"Deflate")}},V6=class extends $s{constructor(e){super(e,"Inflate")}},VE=Symbol("_portable"),K6=class extends $s{constructor(e){super(e,"Gzip");this[VE]=e&&!!e.portable}[ol](e){return this[VE]?(this[VE]=!1,e[9]=255,super[ol](e)):super[ol](e)}},J6=class extends $s{constructor(e){super(e,"Gunzip")}},Y6=class extends $s{constructor(e){super(e,"DeflateRaw")}},X6=class extends $s{constructor(e){super(e,"InflateRaw")}},Z6=class extends $s{constructor(e){super(e,"Unzip")}},KE=class extends GE{constructor(e,t){e=e||{},e.flush=e.flush||nl.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||nl.BROTLI_OPERATION_FINISH,super(e,t),this[UE]=nl.BROTLI_OPERATION_FLUSH}},Q6=class extends KE{constructor(e){super(e,"BrotliCompress")}},e8=class extends KE{constructor(e){super(e,"BrotliDecompress")}};Fi.Deflate=G6;Fi.Inflate=V6;Fi.Gzip=K6;Fi.Gunzip=J6;Fi.DeflateRaw=Y6;Fi.InflateRaw=X6;Fi.Unzip=Z6;typeof W6.BrotliCompress=="function"?(Fi.BrotliCompress=Q6,Fi.BrotliDecompress=e8):Fi.BrotliCompress=Fi.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Md=y(Xv=>{"use strict";Xv.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Xv.code=new Map(Array.from(Xv.name).map(i=>[i[1],i[0]]))});var qd=y((vqe,t8)=>{"use strict";var mqe=Md(),iye=gc(),YE=Symbol("slurp");t8.exports=class extends iye{constructor(e,t,r){super();switch(this.pause(),this.extended=t,this.globalExtended=r,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=e.path,this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath,this.uname=e.uname,this.gname=e.gname,t&&this[YE](t),r&&this[YE](r,!0)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");let r=this.remain,n=this.blockRemain;return this.remain=Math.max(0,r-t),this.blockRemain=Math.max(0,n-t),this.ignore?!0:r>=t?super.write(e):super.write(e.slice(0,r))}[YE](e,t){for(let r in e)e[r]!==null&&e[r]!==void 0&&!(t&&r==="path")&&(this[r]=e[r])}}});var n8=y(XE=>{"use strict";var yqe=XE.encode=(i,e)=>{if(Number.isSafeInteger(i))i<0?oye(i,e):nye(i,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},nye=(i,e)=>{e[0]=128;for(var t=e.length;t>1;t--)e[t-1]=i&255,i=Math.floor(i/256)},oye=(i,e)=>{e[0]=255;var t=!1;i=i*-1;for(var r=e.length;r>1;r--){var n=i&255;i=Math.floor(i/256),t?e[r-1]=r8(n):n===0?e[r-1]=0:(t=!0,e[r-1]=i8(n))}},bqe=XE.parse=i=>{var e=i[i.length-1],t=i[0],r;if(t===128)r=aye(i.slice(1,i.length));else if(t===255)r=sye(i);else throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},sye=i=>{for(var e=i.length,t=0,r=!1,n=e-1;n>-1;n--){var o=i[n],s;r?s=r8(o):o===0?s=o:(r=!0,s=i8(o)),s!==0&&(t-=s*Math.pow(256,e-n-1))}return t},aye=i=>{for(var e=i.length,t=0,r=e-1;r>-1;r--){var n=i[r];n!==0&&(t+=n*Math.pow(256,e-r-1))}return t},r8=i=>(255^i)&255,i8=i=>(255^i)+1&255});var bc=y((Dqe,a8)=>{"use strict";var ZE=Md(),yc=require("path").posix,o8=n8(),QE=Symbol("slurp"),Oi=Symbol("type"),s8=class{constructor(e,t,r,n){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[Oi]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,t||0,r,n):e&&this.set(e)}decode(e,t,r,n){if(t||(t=0),!e||!(e.length>=t+512))throw new Error("need 512 bytes for header");if(this.path=sl(e,t,100),this.mode=Bs(e,t+100,8),this.uid=Bs(e,t+108,8),this.gid=Bs(e,t+116,8),this.size=Bs(e,t+124,12),this.mtime=e_(e,t+136,12),this.cksum=Bs(e,t+148,12),this[QE](r),this[QE](n,!0),this[Oi]=sl(e,t+156,1),this[Oi]===""&&(this[Oi]="0"),this[Oi]==="0"&&this.path.substr(-1)==="/"&&(this[Oi]="5"),this[Oi]==="5"&&(this.size=0),this.linkpath=sl(e,t+157,100),e.slice(t+257,t+265).toString()==="ustar\x0000")if(this.uname=sl(e,t+265,32),this.gname=sl(e,t+297,32),this.devmaj=Bs(e,t+329,8),this.devmin=Bs(e,t+337,8),e[t+475]!==0){let s=sl(e,t+345,155);this.path=s+"/"+this.path}else{let s=sl(e,t+345,130);s&&(this.path=s+"/"+this.path),this.atime=e_(e,t+476,12),this.ctime=e_(e,t+488,12)}let o=8*32;for(let s=t;s=t+512))throw new Error("need 512 bytes for header");let r=this.ctime||this.atime?130:155,n=lye(this.path||"",r),o=n[0],s=n[1];this.needPax=n[2],this.needPax=al(e,t,100,o)||this.needPax,this.needPax=js(e,t+100,8,this.mode)||this.needPax,this.needPax=js(e,t+108,8,this.uid)||this.needPax,this.needPax=js(e,t+116,8,this.gid)||this.needPax,this.needPax=js(e,t+124,12,this.size)||this.needPax,this.needPax=t_(e,t+136,12,this.mtime)||this.needPax,e[t+156]=this[Oi].charCodeAt(0),this.needPax=al(e,t+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",t+257,8),this.needPax=al(e,t+265,32,this.uname)||this.needPax,this.needPax=al(e,t+297,32,this.gname)||this.needPax,this.needPax=js(e,t+329,8,this.devmaj)||this.needPax,this.needPax=js(e,t+337,8,this.devmin)||this.needPax,this.needPax=al(e,t+345,r,s)||this.needPax,e[t+475]!==0?this.needPax=al(e,t+345,155,s)||this.needPax:(this.needPax=al(e,t+345,130,s)||this.needPax,this.needPax=t_(e,t+476,12,this.atime)||this.needPax,this.needPax=t_(e,t+488,12,this.ctime)||this.needPax);let a=8*32;for(let l=t;l{let t=100,r=i,n="",o,s=yc.parse(i).root||".";if(Buffer.byteLength(r)t&&Buffer.byteLength(n)<=e?o=[r.substr(0,t-1),n,!0]:(r=yc.join(yc.basename(n),r),n=yc.dirname(n));while(n!==s&&!o);o||(o=[i.substr(0,t-1),"",!0])}return o},sl=(i,e,t)=>i.slice(e,e+t).toString("utf8").replace(/\0.*/,""),e_=(i,e,t)=>uye(Bs(i,e,t)),uye=i=>i===null?null:new Date(i*1e3),Bs=(i,e,t)=>i[e]&128?o8.parse(i.slice(e,e+t)):fye(i,e,t),cye=i=>isNaN(i)?null:i,fye=(i,e,t)=>cye(parseInt(i.slice(e,e+t).toString("utf8").replace(/\0.*$/,"").trim(),8)),pye={12:8589934591,8:2097151},js=(i,e,t,r)=>r===null?!1:r>pye[t]||r<0?(o8.encode(r,i.slice(e,e+t)),!0):(dye(i,e,t,r),!1),dye=(i,e,t,r)=>i.write(hye(r,t),e,t,"ascii"),hye=(i,e)=>mye(Math.floor(i).toString(8),e),mye=(i,e)=>(i.length===e-1?i:new Array(e-i.length-1).join("0")+i+" ")+"\0",t_=(i,e,t,r)=>r===null?!1:js(i,e,t,r.getTime()/1e3),gye=new Array(156).join("\0"),al=(i,e,t,r)=>r===null?!1:(i.write(r+gye,e,t,"utf8"),r.length!==Buffer.byteLength(r)||r.length>t);a8.exports=s8});var Qv=y((xqe,l8)=>{"use strict";var vye=bc(),yye=require("path"),Zv=class{constructor(e,t){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=t||!1}encode(){let e=this.encodeBody();if(e==="")return null;let t=Buffer.byteLength(e),r=512*Math.ceil(1+t/512),n=Buffer.allocUnsafe(r);for(let o=0;o<512;o++)n[o]=0;new vye({path:("PaxHeader/"+yye.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:t,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(n),n.write(e,512,t,"utf8");for(let o=t+512;o=Math.pow(10,o)&&(o+=1),o+n+r}};Zv.parse=(i,e,t)=>new Zv(bye(wye(i),e),t);var bye=(i,e)=>e?Object.keys(i).reduce((t,r)=>(t[r]=i[r],t),e):i,wye=i=>i.replace(/\n$/,"").split(` +`).reduce(Dye,Object.create(null)),Dye=(i,e)=>{let t=parseInt(e,10);if(t!==Buffer.byteLength(e)+1)return i;e=e.substr((t+" ").length);let r=e.split("="),n=r.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!n)return i;let o=r.join("=");return i[n]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(n)?new Date(o*1e3):/^[0-9]+$/.test(o)?+o:o,i};l8.exports=Zv});var ey=y((Sqe,u8)=>{"use strict";u8.exports=i=>class extends i{warn(e,t,r={}){this.file&&(r.file=this.file),this.cwd&&(r.cwd=this.cwd),r.code=t instanceof Error&&t.code||e,r.tarCode=e,!this.strict&&r.recoverable!==!1?(t instanceof Error&&(r=Object.assign(t,r),t=t.message),this.emit("warn",r.tarCode,t,r)):t instanceof Error?this.emit("error",Object.assign(t,r)):this.emit("error",Object.assign(new Error(`${e}: ${t}`),r))}}});var i_=y((Cqe,c8)=>{"use strict";var ty=["|","<",">","?",":"],r_=ty.map(i=>String.fromCharCode(61440+i.charCodeAt(0))),xye=new Map(ty.map((i,e)=>[i,r_[e]])),Sye=new Map(r_.map((i,e)=>[i,ty[e]]));c8.exports={encode:i=>ty.reduce((e,t)=>e.split(t).join(xye.get(t)),i),decode:i=>r_.reduce((e,t)=>e.split(t).join(Sye.get(t)),i)}});var p8=y((Eqe,f8)=>{"use strict";f8.exports=(i,e,t)=>(i&=4095,t&&(i=(i|384)&~18),e&&(i&256&&(i|=64),i&32&&(i|=8),i&4&&(i|=1)),i)});var c_=y((kqe,S8)=>{"use strict";var d8=gc(),h8=Qv(),m8=bc(),_qe=qd(),Qn=require("fs"),wc=require("path"),Tqe=Md(),Cye=16*1024*1024,g8=Symbol("process"),v8=Symbol("file"),y8=Symbol("directory"),n_=Symbol("symlink"),b8=Symbol("hardlink"),Nd=Symbol("header"),ry=Symbol("read"),o_=Symbol("lstat"),iy=Symbol("onlstat"),s_=Symbol("onread"),a_=Symbol("onreadlink"),l_=Symbol("openfile"),u_=Symbol("onopenfile"),ll=Symbol("close"),ny=Symbol("mode"),w8=ey(),Eye=i_(),D8=p8(),oy=w8(class extends d8{constructor(e,t){if(t=t||{},super(t),typeof e!="string")throw new TypeError("path is required");this.path=e,this.portable=!!t.portable,this.myuid=process.getuid&&process.getuid(),this.myuser=process.env.USER||"",this.maxReadSize=t.maxReadSize||Cye,this.linkCache=t.linkCache||new Map,this.statCache=t.statCache||new Map,this.preservePaths=!!t.preservePaths,this.cwd=t.cwd||process.cwd(),this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.mtime=t.mtime||null,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let r=!1;if(!this.preservePaths&&wc.win32.isAbsolute(e)){let n=wc.win32.parse(e);this.path=e.substr(n.root.length),r=n.root}this.win32=!!t.win32||process.platform==="win32",this.win32&&(this.path=Eye.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=t.absolute||wc.resolve(this.cwd,e),this.path===""&&(this.path="./"),r&&this.warn("TAR_ENTRY_INFO",`stripping ${r} from absolute path`,{entry:this,path:r+this.path}),this.statCache.has(this.absolute)?this[iy](this.statCache.get(this.absolute)):this[o_]()}[o_](){Qn.lstat(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[iy](t)})}[iy](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Tye(e),this.emit("stat",e),this[g8]()}[g8](){switch(this.type){case"File":return this[v8]();case"Directory":return this[y8]();case"SymbolicLink":return this[n_]();default:return this.end()}}[ny](e){return D8(e,this.type==="Directory",this.portable)}[Nd](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new m8({path:this.path,linkpath:this.linkpath,mode:this[ny](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&this.write(new h8({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this.path,linkpath:this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),this.write(this.header.block)}[y8](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[Nd](),this.end()}[n_](){Qn.readlink(this.absolute,(e,t)=>{if(e)return this.emit("error",e);this[a_](t)})}[a_](e){this.linkpath=e.replace(/\\/g,"/"),this[Nd](),this.end()}[b8](e){this.type="Link",this.linkpath=wc.relative(this.cwd,e).replace(/\\/g,"/"),this.stat.size=0,this[Nd](),this.end()}[v8](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let t=this.linkCache.get(e);if(t.indexOf(this.cwd)===0)return this[b8](t)}this.linkCache.set(e,this.absolute)}if(this[Nd](),this.stat.size===0)return this.end();this[l_]()}[l_](){Qn.open(this.absolute,"r",(e,t)=>{if(e)return this.emit("error",e);this[u_](t)})}[u_](e){let t=512*Math.ceil(this.stat.size/512),r=Math.min(t,this.maxReadSize),n=Buffer.allocUnsafe(r);this[ry](e,n,0,n.length,0,this.stat.size,t)}[ry](e,t,r,n,o,s,a){Qn.read(e,t,r,n,o,(l,u)=>{if(l)return this[ll](e,()=>this.emit("error",l));this[s_](e,t,r,n,o,s,a,u)})}[ll](e,t){Qn.close(e,t)}[s_](e,t,r,n,o,s,a,l){if(l<=0&&s>0){let c=new Error("encountered unexpected EOF");return c.path=this.absolute,c.syscall="read",c.code="EOF",this[ll](e,()=>this.emit("error",c))}if(l>s){let c=new Error("did not encounter expected EOF");return c.path=this.absolute,c.syscall="read",c.code="EOF",this[ll](e,()=>this.emit("error",c))}if(l===s)for(let c=l;cc?this.emit("error",c):this.end());r>=n&&(t=Buffer.allocUnsafe(n),r=0),n=t.length-r,this[ry](e,t,r,n,o,s,a)}}),x8=class extends oy{constructor(e,t){super(e,t)}[o_](){this[iy](Qn.lstatSync(this.absolute))}[n_](){this[a_](Qn.readlinkSync(this.absolute))}[l_](){this[u_](Qn.openSync(this.absolute,"r"))}[ry](e,t,r,n,o,s,a){let l=!0;try{let u=Qn.readSync(e,t,r,n,o);this[s_](e,t,r,n,o,s,a,u),l=!1}finally{if(l)try{this[ll](e,()=>{})}catch(u){}}}[ll](e,t){Qn.closeSync(e),t()}},_ye=w8(class extends d8{constructor(e,t){t=t||{},super(t),this.preservePaths=!!t.preservePaths,this.portable=!!t.portable,this.strict=!!t.strict,this.noPax=!!t.noPax,this.noMtime=!!t.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.path=e.path,this.mode=this[ny](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:t.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=e.linkpath,typeof t.onwarn=="function"&&this.on("warn",t.onwarn);let r=!1;if(wc.isAbsolute(this.path)&&!this.preservePaths){let n=wc.parse(this.path);r=n.root,this.path=this.path.substr(n.root.length)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new m8({path:this.path,linkpath:this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),r&&this.warn("TAR_ENTRY_INFO",`stripping ${r} from absolute path`,{entry:this,path:r+this.path}),this.header.encode()&&!this.noPax&&super.write(new h8({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this.path,linkpath:this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[ny](e){return D8(e,this.type==="Directory",this.portable)}write(e){let t=e.length;if(t>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=t,super.write(e)}end(){return this.blockRemain&&this.write(Buffer.alloc(this.blockRemain)),super.end()}});oy.Sync=x8;oy.Tar=_ye;var Tye=i=>i.isFile()?"File":i.isDirectory()?"Directory":i.isSymbolicLink()?"SymbolicLink":"Unsupported";S8.exports=oy});var dy=y((Fqe,I8)=>{"use strict";var f_=class{constructor(e,t){this.path=e||"./",this.absolute=t,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},Pye=gc(),Rye=JE(),kye=qd(),p_=c_(),Iye=p_.Sync,Fye=p_.Tar,Oye=Gv(),C8=Buffer.alloc(1024),sy=Symbol("onStat"),ay=Symbol("ended"),eo=Symbol("queue"),Dc=Symbol("current"),ul=Symbol("process"),ly=Symbol("processing"),E8=Symbol("processJob"),to=Symbol("jobs"),d_=Symbol("jobDone"),uy=Symbol("addFSEntry"),_8=Symbol("addTarEntry"),h_=Symbol("stat"),m_=Symbol("readdir"),cy=Symbol("onreaddir"),fy=Symbol("pipe"),T8=Symbol("entry"),g_=Symbol("entryOpt"),v_=Symbol("writeEntryClass"),P8=Symbol("write"),y_=Symbol("ondrain"),py=require("fs"),R8=require("path"),Aye=ey(),b_=Aye(class extends Pye{constructor(e){super(e);e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=(e.prefix||"").replace(/(\\|\/)+$/,""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[v_]=p_,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new Rye.Gzip(e.gzip),this.zip.on("data",t=>super.write(t)),this.zip.on("end",t=>super.end()),this.zip.on("drain",t=>this[y_]()),this.on("resume",t=>this.zip.resume())):this.on("drain",this[y_]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:t=>!0,this[eo]=new Oye,this[to]=0,this.jobs=+e.jobs||4,this[ly]=!1,this[ay]=!1}[P8](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[ay]=!0,this[ul](),this}write(e){if(this[ay])throw new Error("write after end");return e instanceof kye?this[_8](e):this[uy](e),this.flowing}[_8](e){let t=R8.resolve(this.cwd,e.path);if(this.prefix&&(e.path=this.prefix+"/"+e.path.replace(/^\.(\/+|$)/,"")),!this.filter(e.path,e))e.resume();else{let r=new f_(e.path,t,!1);r.entry=new Fye(e,this[g_](r)),r.entry.on("end",n=>this[d_](r)),this[to]+=1,this[eo].push(r)}this[ul]()}[uy](e){let t=R8.resolve(this.cwd,e);this.prefix&&(e=this.prefix+"/"+e.replace(/^\.(\/+|$)/,"")),this[eo].push(new f_(e,t)),this[ul]()}[h_](e){e.pending=!0,this[to]+=1;let t=this.follow?"stat":"lstat";py[t](e.absolute,(r,n)=>{e.pending=!1,this[to]-=1,r?this.emit("error",r):this[sy](e,n)})}[sy](e,t){this.statCache.set(e.absolute,t),e.stat=t,this.filter(e.path,t)||(e.ignore=!0),this[ul]()}[m_](e){e.pending=!0,this[to]+=1,py.readdir(e.absolute,(t,r)=>{if(e.pending=!1,this[to]-=1,t)return this.emit("error",t);this[cy](e,r)})}[cy](e,t){this.readdirCache.set(e.absolute,t),e.readdir=t,this[ul]()}[ul](){if(!this[ly]){this[ly]=!0;for(let e=this[eo].head;e!==null&&this[to]this.warn(t,r,n),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime}}[T8](e){this[to]+=1;try{return new this[v_](e.path,this[g_](e)).on("end",()=>this[d_](e)).on("error",t=>this.emit("error",t))}catch(t){this.emit("error",t)}}[y_](){this[Dc]&&this[Dc].entry&&this[Dc].entry.resume()}[fy](e){e.piped=!0,e.readdir&&e.readdir.forEach(n=>{let o=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,s=o==="./"?"":o.replace(/\/*$/,"/");this[uy](s+n)});let t=e.entry,r=this.zip;r?t.on("data",n=>{r.write(n)||t.pause()}):t.on("data",n=>{super.write(n)||t.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),k8=class extends b_{constructor(e){super(e);this[v_]=Iye}pause(){}resume(){}[h_](e){let t=this.follow?"statSync":"lstatSync";this[sy](e,py[t](e.absolute))}[m_](e,t){this[cy](e,py.readdirSync(e.absolute))}[fy](e){let t=e.entry,r=this.zip;e.readdir&&e.readdir.forEach(n=>{let o=this.prefix?e.path.slice(this.prefix.length+1)||"./":e.path,s=o==="./"?"":o.replace(/\/*$/,"/");this[uy](s+n)}),r?t.on("data",n=>{r.write(n)}):t.on("data",n=>{super[P8](n)})}};b_.Sync=k8;I8.exports=b_});var Rc=y(Bd=>{"use strict";var Lye=gc(),Mye=require("events").EventEmitter,pi=require("fs"),w_=pi.writev;if(!w_){let i=process.binding("fs"),e=i.FSReqWrap||i.FSReqCallback;w_=(t,r,n,o)=>{let s=(l,u)=>o(l,u,r),a=new e;a.oncomplete=s,i.writeBuffers(t,r,n,a)}}var xc=Symbol("_autoClose"),Nn=Symbol("_close"),$d=Symbol("_ended"),ot=Symbol("_fd"),F8=Symbol("_finished"),Us=Symbol("_flags"),D_=Symbol("_flush"),x_=Symbol("_handleChunk"),S_=Symbol("_makeBuf"),hy=Symbol("_mode"),my=Symbol("_needDrain"),Sc=Symbol("_onerror"),Cc=Symbol("_onopen"),C_=Symbol("_onread"),Ec=Symbol("_onwrite"),Ws=Symbol("_open"),Bo=Symbol("_path"),cl=Symbol("_pos"),ro=Symbol("_queue"),_c=Symbol("_read"),O8=Symbol("_readSize"),Hs=Symbol("_reading"),gy=Symbol("_remain"),A8=Symbol("_size"),vy=Symbol("_write"),Tc=Symbol("_writing"),yy=Symbol("_defaultFlag"),Pc=Symbol("_errored"),E_=class extends Lye{constructor(e,t){if(t=t||{},super(t),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Pc]=!1,this[ot]=typeof t.fd=="number"?t.fd:null,this[Bo]=e,this[O8]=t.readSize||16*1024*1024,this[Hs]=!1,this[A8]=typeof t.size=="number"?t.size:Infinity,this[gy]=this[A8],this[xc]=typeof t.autoClose=="boolean"?t.autoClose:!0,typeof this[ot]=="number"?this[_c]():this[Ws]()}get fd(){return this[ot]}get path(){return this[Bo]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[Ws](){pi.open(this[Bo],"r",(e,t)=>this[Cc](e,t))}[Cc](e,t){e?this[Sc](e):(this[ot]=t,this.emit("open",t),this[_c]())}[S_](){return Buffer.allocUnsafe(Math.min(this[O8],this[gy]))}[_c](){if(!this[Hs]){this[Hs]=!0;let e=this[S_]();if(e.length===0)return process.nextTick(()=>this[C_](null,0,e));pi.read(this[ot],e,0,e.length,null,(t,r,n)=>this[C_](t,r,n))}}[C_](e,t,r){this[Hs]=!1,e?this[Sc](e):this[x_](t,r)&&this[_c]()}[Nn](){if(this[xc]&&typeof this[ot]=="number"){let e=this[ot];this[ot]=null,pi.close(e,t=>t?this.emit("error",t):this.emit("close"))}}[Sc](e){this[Hs]=!0,this[Nn](),this.emit("error",e)}[x_](e,t){let r=!1;return this[gy]-=e,e>0&&(r=super.write(ethis[Cc](e,t))}[Cc](e,t){this[yy]&&this[Us]==="r+"&&e&&e.code==="ENOENT"?(this[Us]="w",this[Ws]()):e?this[Sc](e):(this[ot]=t,this.emit("open",t),this[D_]())}end(e,t){return e&&this.write(e,t),this[$d]=!0,!this[Tc]&&!this[ro].length&&typeof this[ot]=="number"&&this[Ec](null,0),this}write(e,t){return typeof e=="string"&&(e=Buffer.from(e,t)),this[$d]?(this.emit("error",new Error("write() after end()")),!1):this[ot]===null||this[Tc]||this[ro].length?(this[ro].push(e),this[my]=!0,!1):(this[Tc]=!0,this[vy](e),!0)}[vy](e){pi.write(this[ot],e,0,e.length,this[cl],(t,r)=>this[Ec](t,r))}[Ec](e,t){e?this[Sc](e):(this[cl]!==null&&(this[cl]+=t),this[ro].length?this[D_]():(this[Tc]=!1,this[$d]&&!this[F8]?(this[F8]=!0,this[Nn](),this.emit("finish")):this[my]&&(this[my]=!1,this.emit("drain"))))}[D_](){if(this[ro].length===0)this[$d]&&this[Ec](null,0);else if(this[ro].length===1)this[vy](this[ro].pop());else{let e=this[ro];this[ro]=[],w_(this[ot],e,this[cl],(t,r)=>this[Ec](t,r))}}[Nn](){if(this[xc]&&typeof this[ot]=="number"){let e=this[ot];this[ot]=null,pi.close(e,t=>t?this.emit("error",t):this.emit("close"))}}},M8=class extends __{[Ws](){let e;if(this[yy]&&this[Us]==="r+")try{e=pi.openSync(this[Bo],this[Us],this[hy])}catch(t){if(t.code==="ENOENT")return this[Us]="w",this[Ws]();throw t}else e=pi.openSync(this[Bo],this[Us],this[hy]);this[Cc](null,e)}[Nn](){if(this[xc]&&typeof this[ot]=="number"){let e=this[ot];this[ot]=null,pi.closeSync(e),this.emit("close")}}[vy](e){let t=!0;try{this[Ec](null,pi.writeSync(this[ot],e,0,e.length,this[cl])),t=!1}finally{if(t)try{this[Nn]()}catch(r){}}}};Bd.ReadStream=E_;Bd.ReadStreamSync=L8;Bd.WriteStream=__;Bd.WriteStreamSync=M8});var Wd=y((Mqe,W8)=>{"use strict";var qye=ey(),Aqe=require("path"),Nye=bc(),$ye=require("events"),Bye=Gv(),jye=1024*1024,Uye=qd(),q8=Qv(),Wye=JE(),T_=Buffer.from([31,139]),ln=Symbol("state"),fl=Symbol("writeEntry"),jo=Symbol("readEntry"),P_=Symbol("nextEntry"),N8=Symbol("processEntry"),un=Symbol("extendedHeader"),jd=Symbol("globalExtendedHeader"),zs=Symbol("meta"),$8=Symbol("emitMeta"),vt=Symbol("buffer"),Uo=Symbol("queue"),pl=Symbol("ended"),B8=Symbol("emittedEnd"),dl=Symbol("emit"),di=Symbol("unzip"),by=Symbol("consumeChunk"),wy=Symbol("consumeChunkSub"),R_=Symbol("consumeBody"),j8=Symbol("consumeMeta"),U8=Symbol("consumeHeader"),Dy=Symbol("consuming"),k_=Symbol("bufferConcat"),I_=Symbol("maybeEnd"),Ud=Symbol("writing"),Gs=Symbol("aborted"),xy=Symbol("onDone"),hl=Symbol("sawValidEntry"),Sy=Symbol("sawNullBlock"),Cy=Symbol("sawEOF"),Hye=i=>!0;W8.exports=qye(class extends $ye{constructor(e){e=e||{},super(e),this.file=e.file||"",this[hl]=null,this.on(xy,t=>{(this[ln]==="begin"||this[hl]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(xy,e.ondone):this.on(xy,t=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||jye,this.filter=typeof e.filter=="function"?e.filter:Hye,this.writable=!0,this.readable=!1,this[Uo]=new Bye,this[vt]=null,this[jo]=null,this[fl]=null,this[ln]="begin",this[zs]="",this[un]=null,this[jd]=null,this[pl]=!1,this[di]=null,this[Gs]=!1,this[Sy]=!1,this[Cy]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[U8](e,t){this[hl]===null&&(this[hl]=!1);let r;try{r=new Nye(e,t,this[un],this[jd])}catch(n){return this.warn("TAR_ENTRY_INVALID",n)}if(r.nullBlock)this[Sy]?(this[Cy]=!0,this[ln]==="begin"&&(this[ln]="header"),this[dl]("eof")):(this[Sy]=!0,this[dl]("nullBlock"));else if(this[Sy]=!1,!r.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:r});else if(!r.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:r});else{let n=r.type;if(/^(Symbolic)?Link$/.test(n)&&!r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:r});else if(!/^(Symbolic)?Link$/.test(n)&&r.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:r});else{let o=this[fl]=new Uye(r,this[un],this[jd]);if(!this[hl])if(o.remain){let s=()=>{o.invalid||(this[hl]=!0)};o.on("end",s)}else this[hl]=!0;o.meta?o.size>this.maxMetaEntrySize?(o.ignore=!0,this[dl]("ignoredEntry",o),this[ln]="ignore",o.resume()):o.size>0&&(this[zs]="",o.on("data",s=>this[zs]+=s),this[ln]="meta"):(this[un]=null,o.ignore=o.ignore||!this.filter(o.path,o),o.ignore?(this[dl]("ignoredEntry",o),this[ln]=o.remain?"ignore":"header",o.resume()):(o.remain?this[ln]="body":(this[ln]="header",o.end()),this[jo]?this[Uo].push(o):(this[Uo].push(o),this[P_]())))}}}[N8](e){let t=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[jo]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",r=>this[P_]()),t=!1)):(this[jo]=null,t=!1),t}[P_](){do;while(this[N8](this[Uo].shift()));if(!this[Uo].length){let e=this[jo];!e||e.flowing||e.size===e.remain?this[Ud]||this.emit("drain"):e.once("drain",r=>this.emit("drain"))}}[R_](e,t){let r=this[fl],n=r.blockRemain,o=n>=e.length&&t===0?e:e.slice(t,t+n);return r.write(o),r.blockRemain||(this[ln]="header",this[fl]=null,r.end()),o.length}[j8](e,t){let r=this[fl],n=this[R_](e,t);return this[fl]||this[$8](r),n}[dl](e,t,r){!this[Uo].length&&!this[jo]?this.emit(e,t,r):this[Uo].push([e,t,r])}[$8](e){switch(this[dl]("meta",this[zs]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[un]=q8.parse(this[zs],this[un],!1);break;case"GlobalExtendedHeader":this[jd]=q8.parse(this[zs],this[jd],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[un]=this[un]||Object.create(null),this[un].path=this[zs].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[un]=this[un]||Object.create(null),this[un].linkpath=this[zs].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Gs]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Gs])return;if(this[di]===null&&e){if(this[vt]&&(e=Buffer.concat([this[vt],e]),this[vt]=null),e.lengththis[by](o)),this[di].on("error",o=>this.abort(o)),this[di].on("end",o=>{this[pl]=!0,this[by]()}),this[Ud]=!0;let n=this[di][r?"end":"write"](e);return this[Ud]=!1,n}}this[Ud]=!0,this[di]?this[di].write(e):this[by](e),this[Ud]=!1;let t=this[Uo].length?!1:this[jo]?this[jo].flowing:!0;return!t&&!this[Uo].length&&this[jo].once("drain",r=>this.emit("drain")),t}[k_](e){e&&!this[Gs]&&(this[vt]=this[vt]?Buffer.concat([this[vt],e]):e)}[I_](){if(this[pl]&&!this[B8]&&!this[Gs]&&!this[Dy]){this[B8]=!0;let e=this[fl];if(e&&e.blockRemain){let t=this[vt]?this[vt].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${t} available)`,{entry:e}),this[vt]&&e.write(this[vt]),e.end()}this[dl](xy)}}[by](e){if(this[Dy])this[k_](e);else if(!e&&!this[vt])this[I_]();else{if(this[Dy]=!0,this[vt]){this[k_](e);let t=this[vt];this[vt]=null,this[wy](t)}else this[wy](e);for(;this[vt]&&this[vt].length>=512&&!this[Gs]&&!this[Cy];){let t=this[vt];this[vt]=null,this[wy](t)}this[Dy]=!1}(!this[vt]||this[pl])&&this[I_]()}[wy](e){let t=0,r=e.length;for(;t+512<=r&&!this[Gs]&&!this[Cy];)switch(this[ln]){case"begin":case"header":this[U8](e,t),t+=512;break;case"ignore":case"body":t+=this[R_](e,t);break;case"meta":t+=this[j8](e,t);break;default:throw new Error("invalid state: "+this[ln])}t{"use strict";var zye=mc(),H8=Wd(),kc=require("fs"),Gye=Rc(),z8=require("path"),qqe=V8.exports=(i,e,t)=>{typeof i=="function"?(t=i,e=null,i={}):Array.isArray(i)&&(e=i,i={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let r=zye(i);if(r.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!r.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&Kye(r,e),r.noResume||Vye(r),r.file&&r.sync?Jye(r):r.file?Yye(r,t):G8(r)},Vye=i=>{let e=i.onentry;i.onentry=e?t=>{e(t),t.resume()}:t=>t.resume()},Kye=(i,e)=>{let t=new Map(e.map(o=>[o.replace(/\/+$/,""),!0])),r=i.filter,n=(o,s)=>{let a=s||z8.parse(o).root||".",l=o===a?!1:t.has(o)?t.get(o):n(z8.dirname(o),a);return t.set(o,l),l};i.filter=r?(o,s)=>r(o,s)&&n(o.replace(/\/+$/,"")):o=>n(o.replace(/\/+$/,""))},Jye=i=>{let e=G8(i),t=i.file,r=!0,n;try{let o=kc.statSync(t),s=i.maxReadSize||16*1024*1024;if(o.size{let t=new H8(i),r=i.maxReadSize||16*1024*1024,n=i.file,o=new Promise((s,a)=>{t.on("error",a),t.on("end",s),kc.stat(n,(l,u)=>{if(l)a(l);else{let c=new Gye.ReadStream(n,{readSize:r,size:u.size});c.on("error",a),c.pipe(t)}})});return e?o.then(e,e):o},G8=i=>new H8(i)});var Q8=y((jqe,Z8)=>{"use strict";var Xye=mc(),_y=dy(),$qe=require("fs"),K8=Rc(),J8=Ey(),Y8=require("path"),Bqe=Z8.exports=(i,e,t)=>{if(typeof e=="function"&&(t=e),Array.isArray(i)&&(e=i,i={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let r=Xye(i);if(r.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!r.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return r.file&&r.sync?Zye(r,e):r.file?Qye(r,e,t):r.sync?ebe(r,e):tbe(r,e)},Zye=(i,e)=>{let t=new _y.Sync(i),r=new K8.WriteStreamSync(i.file,{mode:i.mode||438});t.pipe(r),X8(t,e)},Qye=(i,e,t)=>{let r=new _y(i),n=new K8.WriteStream(i.file,{mode:i.mode||438});r.pipe(n);let o=new Promise((s,a)=>{n.on("error",a),n.on("close",s),r.on("error",a)});return F_(r,e),t?o.then(t,t):o},X8=(i,e)=>{e.forEach(t=>{t.charAt(0)==="@"?J8({file:Y8.resolve(i.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:r=>i.add(r)}):i.add(t)}),i.end()},F_=(i,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return J8({file:Y8.resolve(i.cwd,t.substr(1)),noResume:!0,onentry:r=>i.add(r)}).then(r=>F_(i,e));i.add(t)}i.end()},ebe=(i,e)=>{let t=new _y.Sync(i);return X8(t,e),t},tbe=(i,e)=>{let t=new _y(i);return F_(t,e),t}});var O_=y((Hqe,sH)=>{"use strict";var rbe=mc(),eH=dy(),Uqe=Wd(),cn=require("fs"),tH=Rc(),rH=Ey(),iH=require("path"),nH=bc(),Wqe=sH.exports=(i,e,t)=>{let r=rbe(i);if(!r.file)throw new TypeError("file is required");if(r.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),r.sync?ibe(r,e):obe(r,e,t)},ibe=(i,e)=>{let t=new eH.Sync(i),r=!0,n,o;try{try{n=cn.openSync(i.file,"r+")}catch(l){if(l.code==="ENOENT")n=cn.openSync(i.file,"w+");else throw l}let s=cn.fstatSync(n),a=Buffer.alloc(512);e:for(o=0;os.size)break;o+=u,i.mtimeCache&&i.mtimeCache.set(l.path,l.mtime)}r=!1,nbe(i,t,o,n,e)}finally{if(r)try{cn.closeSync(n)}catch(s){}}},nbe=(i,e,t,r,n)=>{let o=new tH.WriteStreamSync(i.file,{fd:r,start:t});e.pipe(o),sbe(e,n)},obe=(i,e,t)=>{e=Array.from(e);let r=new eH(i),n=(s,a,l)=>{let u=(h,m)=>{h?cn.close(s,w=>l(h)):l(null,m)},c=0;if(a===0)return u(null,0);let f=0,p=Buffer.alloc(512),d=(h,m)=>{if(h)return u(h);if(f+=m,f<512&&m)return cn.read(s,p,f,p.length-f,c+f,d);if(c===0&&p[0]===31&&p[1]===139)return u(new Error("cannot append to compressed archives"));if(f<512)return u(null,c);let w=new nH(p);if(!w.cksumValid)return u(null,c);let v=512*Math.ceil(w.size/512);if(c+v+512>a||(c+=v+512,c>=a))return u(null,c);i.mtimeCache&&i.mtimeCache.set(w.path,w.mtime),f=0,cn.read(s,p,0,512,c,d)};cn.read(s,p,0,512,c,d)},o=new Promise((s,a)=>{r.on("error",a);let l="r+",u=(c,f)=>{if(c&&c.code==="ENOENT"&&l==="r+")return l="w+",cn.open(i.file,l,u);if(c)return a(c);cn.fstat(f,(p,d)=>{if(p)return a(p);n(f,d.size,(h,m)=>{if(h)return a(h);let w=new tH.WriteStream(i.file,{fd:f,start:m});r.pipe(w),w.on("error",a),w.on("close",s),oH(r,e)})})};cn.open(i.file,l,u)});return t?o.then(t,t):o},sbe=(i,e)=>{e.forEach(t=>{t.charAt(0)==="@"?rH({file:iH.resolve(i.cwd,t.substr(1)),sync:!0,noResume:!0,onentry:r=>i.add(r)}):i.add(t)}),i.end()},oH=(i,e)=>{for(;e.length;){let t=e.shift();if(t.charAt(0)==="@")return rH({file:iH.resolve(i.cwd,t.substr(1)),noResume:!0,onentry:r=>i.add(r)}).then(r=>oH(i,e));i.add(t)}i.end()}});var lH=y((Gqe,aH)=>{"use strict";var abe=mc(),lbe=O_(),zqe=aH.exports=(i,e,t)=>{let r=abe(i);if(!r.file)throw new TypeError("file is required");if(r.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),ube(r),lbe(r,e,t)},ube=i=>{let e=i.filter;i.mtimeCache||(i.mtimeCache=new Map),i.filter=e?(t,r)=>e(t,r)&&!(i.mtimeCache.get(t)>r.mtime):(t,r)=>!(i.mtimeCache.get(t)>r.mtime)}});var fH=y((Vqe,cH)=>{var{promisify:uH}=require("util"),Vs=require("fs"),cbe=i=>{if(!i)i={mode:511,fs:Vs};else if(typeof i=="object")i=mt({mode:511,fs:Vs},i);else if(typeof i=="number")i={mode:i,fs:Vs};else if(typeof i=="string")i={mode:parseInt(i,8),fs:Vs};else throw new TypeError("invalid options argument");return i.mkdir=i.mkdir||i.fs.mkdir||Vs.mkdir,i.mkdirAsync=uH(i.mkdir),i.stat=i.stat||i.fs.stat||Vs.stat,i.statAsync=uH(i.stat),i.statSync=i.statSync||i.fs.statSync||Vs.statSync,i.mkdirSync=i.mkdirSync||i.fs.mkdirSync||Vs.mkdirSync,i};cH.exports=cbe});var dH=y((Kqe,pH)=>{var fbe=process.env.__TESTING_MKDIRP_PLATFORM__||process.platform,{resolve:pbe,parse:dbe}=require("path"),hbe=i=>{if(/\0/.test(i))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:i,code:"ERR_INVALID_ARG_VALUE"});if(i=pbe(i),fbe==="win32"){let e=/[*|"<>?:]/,{root:t}=dbe(i);if(e.test(i.substr(t.length)))throw Object.assign(new Error("Illegal characters in path."),{path:i,code:"EINVAL"})}return i};pH.exports=hbe});var yH=y((Jqe,vH)=>{var{dirname:hH}=require("path"),mH=(i,e,t=void 0)=>t===e?Promise.resolve():i.statAsync(e).then(r=>r.isDirectory()?t:void 0,r=>r.code==="ENOENT"?mH(i,hH(e),e):void 0),gH=(i,e,t=void 0)=>{if(t!==e)try{return i.statSync(e).isDirectory()?t:void 0}catch(r){return r.code==="ENOENT"?gH(i,hH(e),e):void 0}};vH.exports={findMade:mH,findMadeSync:gH}});var M_=y((Yqe,wH)=>{var{dirname:bH}=require("path"),A_=(i,e,t)=>{e.recursive=!1;let r=bH(i);return r===i?e.mkdirAsync(i,e).catch(n=>{if(n.code!=="EISDIR")throw n}):e.mkdirAsync(i,e).then(()=>t||i,n=>{if(n.code==="ENOENT")return A_(r,e).then(o=>A_(i,e,o));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;return e.statAsync(i).then(o=>{if(o.isDirectory())return t;throw n},()=>{throw n})})},L_=(i,e,t)=>{let r=bH(i);if(e.recursive=!1,r===i)try{return e.mkdirSync(i,e)}catch(n){if(n.code!=="EISDIR")throw n;return}try{return e.mkdirSync(i,e),t||i}catch(n){if(n.code==="ENOENT")return L_(i,e,L_(r,e,t));if(n.code!=="EEXIST"&&n.code!=="EROFS")throw n;try{if(!e.statSync(i).isDirectory())throw n}catch(o){throw n}}};wH.exports={mkdirpManual:A_,mkdirpManualSync:L_}});var SH=y((Xqe,xH)=>{var{dirname:DH}=require("path"),{findMade:mbe,findMadeSync:gbe}=yH(),{mkdirpManual:vbe,mkdirpManualSync:ybe}=M_(),bbe=(i,e)=>(e.recursive=!0,DH(i)===i?e.mkdirAsync(i,e):mbe(e,i).then(r=>e.mkdirAsync(i,e).then(()=>r).catch(n=>{if(n.code==="ENOENT")return vbe(i,e);throw n}))),wbe=(i,e)=>{if(e.recursive=!0,DH(i)===i)return e.mkdirSync(i,e);let r=gbe(e,i);try{return e.mkdirSync(i,e),r}catch(n){if(n.code==="ENOENT")return ybe(i,e);throw n}};xH.exports={mkdirpNative:bbe,mkdirpNativeSync:wbe}});var TH=y((Zqe,_H)=>{var CH=require("fs"),Dbe=process.env.__TESTING_MKDIRP_NODE_VERSION__||process.version,q_=Dbe.replace(/^v/,"").split("."),EH=+q_[0]>10||+q_[0]==10&&+q_[1]>=12,xbe=EH?i=>i.mkdir===CH.mkdir:()=>!1,Sbe=EH?i=>i.mkdirSync===CH.mkdirSync:()=>!1;_H.exports={useNative:xbe,useNativeSync:Sbe}});var OH=y((Qqe,FH)=>{var Ic=fH(),Fc=dH(),{mkdirpNative:PH,mkdirpNativeSync:RH}=SH(),{mkdirpManual:kH,mkdirpManualSync:IH}=M_(),{useNative:Cbe,useNativeSync:Ebe}=TH(),Oc=(i,e)=>(i=Fc(i),e=Ic(e),Cbe(e)?PH(i,e):kH(i,e)),_be=(i,e)=>(i=Fc(i),e=Ic(e),Ebe(e)?RH(i,e):IH(i,e));Oc.sync=_be;Oc.native=(i,e)=>PH(Fc(i),Ic(e));Oc.manual=(i,e)=>kH(Fc(i),Ic(e));Oc.nativeSync=(i,e)=>RH(Fc(i),Ic(e));Oc.manualSync=(i,e)=>IH(Fc(i),Ic(e));FH.exports=Oc});var BH=y((eNe,$H)=>{"use strict";var fn=require("fs"),ml=require("path"),Tbe=fn.lchown?"lchown":"chown",Pbe=fn.lchownSync?"lchownSync":"chownSync",AH=fn.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),LH=(i,e,t)=>{try{return fn[Pbe](i,e,t)}catch(r){if(r.code!=="ENOENT")throw r}},Rbe=(i,e,t)=>{try{return fn.chownSync(i,e,t)}catch(r){if(r.code!=="ENOENT")throw r}},kbe=AH?(i,e,t,r)=>n=>{!n||n.code!=="EISDIR"?r(n):fn.chown(i,e,t,r)}:(i,e,t,r)=>r,N_=AH?(i,e,t)=>{try{return LH(i,e,t)}catch(r){if(r.code!=="EISDIR")throw r;Rbe(i,e,t)}}:(i,e,t)=>LH(i,e,t),Ibe=process.version,MH=(i,e,t)=>fn.readdir(i,e,t),Fbe=(i,e)=>fn.readdirSync(i,e);/^v4\./.test(Ibe)&&(MH=(i,e,t)=>fn.readdir(i,t));var Ty=(i,e,t,r)=>{fn[Tbe](i,e,t,kbe(i,e,t,n=>{r(n&&n.code!=="ENOENT"?n:null)}))},qH=(i,e,t,r,n)=>{if(typeof e=="string")return fn.lstat(ml.resolve(i,e),(o,s)=>{if(o)return n(o.code!=="ENOENT"?o:null);s.name=e,qH(i,s,t,r,n)});if(e.isDirectory())$_(ml.resolve(i,e.name),t,r,o=>{if(o)return n(o);let s=ml.resolve(i,e.name);Ty(s,t,r,n)});else{let o=ml.resolve(i,e.name);Ty(o,t,r,n)}},$_=(i,e,t,r)=>{MH(i,{withFileTypes:!0},(n,o)=>{if(n){if(n.code==="ENOENT")return r();if(n.code!=="ENOTDIR"&&n.code!=="ENOTSUP")return r(n)}if(n||!o.length)return Ty(i,e,t,r);let s=o.length,a=null,l=u=>{if(!a){if(u)return r(a=u);if(--s==0)return Ty(i,e,t,r)}};o.forEach(u=>qH(i,u,e,t,l))})},Obe=(i,e,t,r)=>{if(typeof e=="string")try{let n=fn.lstatSync(ml.resolve(i,e));n.name=e,e=n}catch(n){if(n.code==="ENOENT")return;throw n}e.isDirectory()&&NH(ml.resolve(i,e.name),t,r),N_(ml.resolve(i,e.name),t,r)},NH=(i,e,t)=>{let r;try{r=Fbe(i,{withFileTypes:!0})}catch(n){if(n.code==="ENOENT")return;if(n.code==="ENOTDIR"||n.code==="ENOTSUP")return N_(i,e,t);throw n}return r&&r.length&&r.forEach(n=>Obe(i,n,e,t)),N_(i,e,t)};$H.exports=$_;$_.sync=NH});var HH=y((iNe,j_)=>{"use strict";var jH=OH(),pn=require("fs"),Py=require("path"),UH=BH(),B_=class extends Error{constructor(e,t){super("Cannot extract through symbolic link");this.path=t,this.symlink=e}get name(){return"SylinkError"}},Hd=class extends Error{constructor(e,t){super(t+": Cannot cd into '"+e+"'");this.path=e,this.code=t}get name(){return"CwdError"}},tNe=j_.exports=(i,e,t)=>{let r=e.umask,n=e.mode|448,o=(n&r)!=0,s=e.uid,a=e.gid,l=typeof s=="number"&&typeof a=="number"&&(s!==e.processUid||a!==e.processGid),u=e.preserve,c=e.unlink,f=e.cache,p=e.cwd,d=(w,v)=>{w?t(w):(f.set(i,!0),v&&l?UH(v,s,a,D=>d(D)):o?pn.chmod(i,n,t):t())};if(f&&f.get(i)===!0)return d();if(i===p)return pn.stat(i,(w,v)=>{(w||!v.isDirectory())&&(w=new Hd(i,w&&w.code||"ENOTDIR")),d(w)});if(u)return jH(i,{mode:n}).then(w=>d(null,w),d);let m=Py.relative(p,i).split(/\/|\\/);Ry(p,m,n,f,c,p,null,d)},Ry=(i,e,t,r,n,o,s,a)=>{if(!e.length)return a(null,s);let l=e.shift(),u=i+"/"+l;if(r.get(u))return Ry(u,e,t,r,n,o,s,a);pn.mkdir(u,t,WH(u,e,t,r,n,o,s,a))},WH=(i,e,t,r,n,o,s,a)=>l=>{if(l){if(l.path&&Py.dirname(l.path)===o&&(l.code==="ENOTDIR"||l.code==="ENOENT"))return a(new Hd(o,l.code));pn.lstat(i,(u,c)=>{if(u)a(u);else if(c.isDirectory())Ry(i,e,t,r,n,o,s,a);else if(n)pn.unlink(i,f=>{if(f)return a(f);pn.mkdir(i,t,WH(i,e,t,r,n,o,s,a))});else{if(c.isSymbolicLink())return a(new B_(i,i+"/"+e.join("/")));a(l)}})}else s=s||i,Ry(i,e,t,r,n,o,s,a)},rNe=j_.exports.sync=(i,e)=>{let t=e.umask,r=e.mode|448,n=(r&t)!=0,o=e.uid,s=e.gid,a=typeof o=="number"&&typeof s=="number"&&(o!==e.processUid||s!==e.processGid),l=e.preserve,u=e.unlink,c=e.cache,f=e.cwd,p=w=>{c.set(i,!0),w&&a&&UH.sync(w,o,s),n&&pn.chmodSync(i,r)};if(c&&c.get(i)===!0)return p();if(i===f){let w=!1,v="ENOTDIR";try{w=pn.statSync(i).isDirectory()}catch(D){v=D.code}finally{if(!w)throw new Hd(i,v)}p();return}if(l)return p(jH.sync(i,r));let h=Py.relative(f,i).split(/\/|\\/),m=null;for(let w=h.shift(),v=f;w&&(v+="/"+w);w=h.shift())if(!c.get(v))try{pn.mkdirSync(v,r),m=m||v,c.set(v,!0)}catch(D){if(D.path&&Py.dirname(D.path)===f&&(D.code==="ENOTDIR"||D.code==="ENOENT"))return new Hd(f,D.code);let x=pn.lstatSync(v);if(x.isDirectory()){c.set(v,!0);continue}else if(u){pn.unlinkSync(v),pn.mkdirSync(v,r),m=m||v,c.set(v,!0);continue}else if(x.isSymbolicLink())return new B_(v,v+"/"+h.join("/"))}return p(m)}});var VH=y((nNe,GH)=>{var zH=require("assert");GH.exports=()=>{let i=new Map,e=new Map,{join:t}=require("path"),r=c=>t(c).split(/[\\\/]/).slice(0,-1).reduce((f,p)=>f.length?f.concat(t(f[f.length-1],p)):[p],[]),n=new Set,o=c=>{let f=e.get(c);if(!f)throw new Error("function does not have any path reservations");return{paths:f.paths.map(p=>i.get(p)),dirs:[...f.dirs].map(p=>i.get(p))}},s=c=>{let{paths:f,dirs:p}=o(c);return f.every(d=>d[0]===c)&&p.every(d=>d[0]instanceof Set&&d[0].has(c))},a=c=>n.has(c)||!s(c)?!1:(n.add(c),c(()=>l(c)),!0),l=c=>{if(!n.has(c))return!1;let{paths:f,dirs:p}=e.get(c),d=new Set;return f.forEach(h=>{let m=i.get(h);zH.equal(m[0],c),m.length===1?i.delete(h):(m.shift(),typeof m[0]=="function"?d.add(m[0]):m[0].forEach(w=>d.add(w)))}),p.forEach(h=>{let m=i.get(h);zH(m[0]instanceof Set),m[0].size===1&&m.length===1?i.delete(h):m[0].size===1?(m.shift(),d.add(m[0])):m[0].delete(c)}),n.delete(c),d.forEach(h=>a(h)),!0};return{check:s,reserve:(c,f)=>{let p=new Set(c.map(d=>r(d)).reduce((d,h)=>d.concat(h)));return e.set(f,{dirs:p,paths:c}),c.forEach(d=>{let h=i.get(d);h?h.push(f):i.set(d,[f])}),p.forEach(d=>{let h=i.get(d);h?h[h.length-1]instanceof Set?h[h.length-1].add(f):h.push(new Set([f])):i.set(d,[new Set([f])])}),a(f)}}}});var YH=y((oNe,JH)=>{var Abe=process.env.__FAKE_PLATFORM__||process.platform,Lbe=Abe==="win32",Mbe=global.__FAKE_TESTING_FS__||require("fs"),{O_CREAT:qbe,O_TRUNC:Nbe,O_WRONLY:$be,UV_FS_O_FILEMAP:KH=0}=Mbe.constants,Bbe=Lbe&&!!KH,jbe=512*1024,Ube=KH|Nbe|qbe|$be;JH.exports=Bbe?i=>i"w"});var Y_=y((uNe,u5)=>{"use strict";var Wbe=require("assert"),sNe=require("events").EventEmitter,Hbe=Wd(),Qe=require("fs"),zbe=Rc(),Wo=require("path"),U_=HH(),aNe=U_.sync,XH=i_(),Gbe=VH(),ZH=Symbol("onEntry"),W_=Symbol("checkFs"),QH=Symbol("checkFs2"),H_=Symbol("isReusable"),Ho=Symbol("makeFs"),z_=Symbol("file"),G_=Symbol("directory"),ky=Symbol("link"),e5=Symbol("symlink"),t5=Symbol("hardlink"),r5=Symbol("unsupported"),lNe=Symbol("unknown"),i5=Symbol("checkPath"),Ac=Symbol("mkdir"),Jr=Symbol("onError"),Iy=Symbol("pending"),n5=Symbol("pend"),Lc=Symbol("unpend"),V_=Symbol("ended"),K_=Symbol("maybeClose"),J_=Symbol("skip"),zd=Symbol("doChown"),Gd=Symbol("uid"),Vd=Symbol("gid"),o5=require("crypto"),s5=YH(),Fy=()=>{throw new Error("sync function called cb somehow?!?")},Vbe=(i,e)=>{if(process.platform!=="win32")return Qe.unlink(i,e);let t=i+".DELETE."+o5.randomBytes(16).toString("hex");Qe.rename(i,t,r=>{if(r)return e(r);Qe.unlink(t,e)})},Kbe=i=>{if(process.platform!=="win32")return Qe.unlinkSync(i);let e=i+".DELETE."+o5.randomBytes(16).toString("hex");Qe.renameSync(i,e),Qe.unlinkSync(e)},a5=(i,e,t)=>i===i>>>0?i:e===e>>>0?e:t,Oy=class extends Hbe{constructor(e){if(e||(e={}),e.ondone=t=>{this[V_]=!0,this[K_]()},super(e),this.reservations=Gbe(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Iy]=0,this[V_]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||process.platform==="win32",this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=Wo.resolve(e.cwd||process.cwd()),this.strip=+e.strip||0,this.processUmask=process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",t=>this[ZH](t))}warn(e,t,r={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(r.recoverable=!1),super.warn(e,t,r)}[K_](){this[V_]&&this[Iy]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[i5](e){if(this.strip){let t=e.path.split(/\/|\\/);if(t.length=this.strip&&(e.linkpath=r.slice(this.strip).join("/"))}}if(!this.preservePaths){let t=e.path;if(t.match(/(^|\/|\\)\.\.(\\|\/|$)/))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:t}),!1;if(Wo.win32.isAbsolute(t)){let r=Wo.win32.parse(t);e.path=t.substr(r.root.length);let n=r.root;this.warn("TAR_ENTRY_INFO",`stripping ${n} from absolute path`,{entry:e,path:t})}}if(this.win32){let t=Wo.win32.parse(e.path);e.path=t.root===""?XH.encode(e.path):t.root+XH.encode(e.path.substr(t.root.length))}return Wo.isAbsolute(e.path)?e.absolute=e.path:e.absolute=Wo.resolve(this.cwd,e.path),!0}[ZH](e){if(!this[i5](e))return e.resume();switch(Wbe.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[W_](e);case"CharacterDevice":case"BlockDevice":case"FIFO":return this[r5](e)}}[Jr](e,t){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:t}),this[Lc](),t.resume())}[Ac](e,t,r){U_(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t},r)}[zd](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[Gd](e){return a5(this.uid,e.uid,this.processUid)}[Vd](e){return a5(this.gid,e.gid,this.processGid)}[z_](e,t){let r=e.mode&4095||this.fmode,n=new zbe.WriteStream(e.absolute,{flags:s5(e.size),mode:r,autoClose:!1});n.on("error",l=>this[Jr](l,e));let o=1,s=l=>{if(l)return this[Jr](l,e);--o==0&&Qe.close(n.fd,u=>{t(),u?this[Jr](u,e):this[Lc]()})};n.on("finish",l=>{let u=e.absolute,c=n.fd;if(e.mtime&&!this.noMtime){o++;let f=e.atime||new Date,p=e.mtime;Qe.futimes(c,f,p,d=>d?Qe.utimes(u,f,p,h=>s(h&&d)):s())}if(this[zd](e)){o++;let f=this[Gd](e),p=this[Vd](e);Qe.fchown(c,f,p,d=>d?Qe.chown(u,f,p,h=>s(h&&d)):s())}s()});let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[Jr](l,e)),e.pipe(a)),a.pipe(n)}[G_](e,t){let r=e.mode&4095||this.dmode;this[Ac](e.absolute,r,n=>{if(n)return t(),this[Jr](n,e);let o=1,s=a=>{--o==0&&(t(),this[Lc](),e.resume())};e.mtime&&!this.noMtime&&(o++,Qe.utimes(e.absolute,e.atime||new Date,e.mtime,s)),this[zd](e)&&(o++,Qe.chown(e.absolute,this[Gd](e),this[Vd](e),s)),s()})}[r5](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[e5](e,t){this[ky](e,e.linkpath,"symlink",t)}[t5](e,t){this[ky](e,Wo.resolve(this.cwd,e.linkpath),"link",t)}[n5](){this[Iy]++}[Lc](){this[Iy]--,this[K_]()}[J_](e){this[Lc](),e.resume()}[H_](e,t){return e.type==="File"&&!this.unlink&&t.isFile()&&t.nlink<=1&&process.platform!=="win32"}[W_](e){this[n5]();let t=[e.path];e.linkpath&&t.push(e.linkpath),this.reservations.reserve(t,r=>this[QH](e,r))}[QH](e,t){this[Ac](Wo.dirname(e.absolute),this.dmode,r=>{if(r)return t(),this[Jr](r,e);Qe.lstat(e.absolute,(n,o)=>{o&&(this.keep||this.newer&&o.mtime>e.mtime)?(this[J_](e),t()):n||this[H_](e,o)?this[Ho](null,e,t):o.isDirectory()?e.type==="Directory"?!e.mode||(o.mode&4095)===e.mode?this[Ho](null,e,t):Qe.chmod(e.absolute,e.mode,s=>this[Ho](s,e,t)):Qe.rmdir(e.absolute,s=>this[Ho](s,e,t)):Vbe(e.absolute,s=>this[Ho](s,e,t))})})}[Ho](e,t,r){if(e)return this[Jr](e,t);switch(t.type){case"File":case"OldFile":case"ContiguousFile":return this[z_](t,r);case"Link":return this[t5](t,r);case"SymbolicLink":return this[e5](t,r);case"Directory":case"GNUDumpDir":return this[G_](t,r)}}[ky](e,t,r,n){Qe[r](t,e.absolute,o=>{if(o)return this[Jr](o,e);n(),this[Lc](),e.resume()})}},l5=class extends Oy{constructor(e){super(e)}[W_](e){let t=this[Ac](Wo.dirname(e.absolute),this.dmode,Fy);if(t)return this[Jr](t,e);try{let r=Qe.lstatSync(e.absolute);if(this.keep||this.newer&&r.mtime>e.mtime)return this[J_](e);if(this[H_](e,r))return this[Ho](null,e,Fy);try{return r.isDirectory()?e.type==="Directory"?e.mode&&(r.mode&4095)!==e.mode&&Qe.chmodSync(e.absolute,e.mode):Qe.rmdirSync(e.absolute):Kbe(e.absolute),this[Ho](null,e,Fy)}catch(n){return this[Jr](n,e)}}catch(r){return this[Ho](null,e,Fy)}}[z_](e,t){let r=e.mode&4095||this.fmode,n=l=>{let u;try{Qe.closeSync(s)}catch(c){u=c}(l||u)&&this[Jr](l||u,e)},o,s;try{s=Qe.openSync(e.absolute,s5(e.size),r)}catch(l){return n(l)}let a=this.transform&&this.transform(e)||e;a!==e&&(a.on("error",l=>this[Jr](l,e)),e.pipe(a)),a.on("data",l=>{try{Qe.writeSync(s,l,0,l.length)}catch(u){n(u)}}),a.on("end",l=>{let u=null;if(e.mtime&&!this.noMtime){let c=e.atime||new Date,f=e.mtime;try{Qe.futimesSync(s,c,f)}catch(p){try{Qe.utimesSync(e.absolute,c,f)}catch(d){u=p}}}if(this[zd](e)){let c=this[Gd](e),f=this[Vd](e);try{Qe.fchownSync(s,c,f)}catch(p){try{Qe.chownSync(e.absolute,c,f)}catch(d){u=u||p}}}n(u)})}[G_](e,t){let r=e.mode&4095||this.dmode,n=this[Ac](e.absolute,r);if(n)return this[Jr](n,e);if(e.mtime&&!this.noMtime)try{Qe.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch(o){}if(this[zd](e))try{Qe.chownSync(e.absolute,this[Gd](e),this[Vd](e))}catch(o){}e.resume()}[Ac](e,t){try{return U_.sync(e,{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:t})}catch(r){return r}}[ky](e,t,r,n){try{Qe[r+"Sync"](t,e.absolute),e.resume()}catch(o){return this[Jr](o,e)}}};Oy.Sync=l5;u5.exports=Oy});var h5=y((fNe,d5)=>{"use strict";var Jbe=mc(),Ay=Y_(),c5=require("fs"),f5=Rc(),p5=require("path"),cNe=d5.exports=(i,e,t)=>{typeof i=="function"?(t=i,e=null,i={}):Array.isArray(i)&&(e=i,i={}),typeof e=="function"&&(t=e,e=null),e?e=Array.from(e):e=[];let r=Jbe(i);if(r.sync&&typeof t=="function")throw new TypeError("callback not supported for sync tar functions");if(!r.file&&typeof t=="function")throw new TypeError("callback only supported with file option");return e.length&&Ybe(r,e),r.file&&r.sync?Xbe(r):r.file?Zbe(r,t):r.sync?Qbe(r):ewe(r)},Ybe=(i,e)=>{let t=new Map(e.map(o=>[o.replace(/\/+$/,""),!0])),r=i.filter,n=(o,s)=>{let a=s||p5.parse(o).root||".",l=o===a?!1:t.has(o)?t.get(o):n(p5.dirname(o),a);return t.set(o,l),l};i.filter=r?(o,s)=>r(o,s)&&n(o.replace(/\/+$/,"")):o=>n(o.replace(/\/+$/,""))},Xbe=i=>{let e=new Ay.Sync(i),t=i.file,r=!0,n,o=c5.statSync(t),s=i.maxReadSize||16*1024*1024;new f5.ReadStreamSync(t,{readSize:s,size:o.size}).pipe(e)},Zbe=(i,e)=>{let t=new Ay(i),r=i.maxReadSize||16*1024*1024,n=i.file,o=new Promise((s,a)=>{t.on("error",a),t.on("close",s),c5.stat(n,(l,u)=>{if(l)a(l);else{let c=new f5.ReadStream(n,{readSize:r,size:u.size});c.on("error",a),c.pipe(t)}})});return e?o.then(e,e):o},Qbe=i=>new Ay.Sync(i),ewe=i=>new Ay(i)});var m5=y(rr=>{"use strict";rr.c=rr.create=Q8();rr.r=rr.replace=O_();rr.t=rr.list=Ey();rr.u=rr.update=lH();rr.x=rr.extract=h5();rr.Pack=dy();rr.Unpack=Y_();rr.Parse=Wd();rr.ReadEntry=qd();rr.WriteEntry=c_();rr.Header=bc();rr.Pax=Qv();rr.types=Md()});var b5=y((dNe,y5)=>{y5.exports=Ar;function Ar(i){if(!(this instanceof Ar))return new Ar(i);this.value=i}Ar.prototype.get=function(i){for(var e=this.value,t=0;t{var twe=b5(),rwe=require("events").EventEmitter;w5.exports=Mc;function Mc(i){var e=Mc.saw(i,{}),t=i.call(e.handlers,e);return t!==void 0&&(e.handlers=t),e.record(),e.chain()}Mc.light=function(e){var t=Mc.saw(e,{}),r=e.call(t.handlers,t);return r!==void 0&&(t.handlers=r),t.chain()};Mc.saw=function(i,e){var t=new rwe;return t.handlers=e,t.actions=[],t.chain=function(){var r=twe(t.handlers).map(function(n){if(this.isRoot)return n;var o=this.path;typeof n=="function"&&this.update(function(){return t.actions.push({path:o,args:[].slice.call(arguments)}),r})});return process.nextTick(function(){t.emit("begin"),t.next()}),r},t.pop=function(){return t.actions.shift()},t.next=function(){var r=t.pop();if(!r)t.emit("end");else if(!r.trap){var n=t.handlers;r.path.forEach(function(o){n=n[o]}),n.apply(t.handlers,r.args)}},t.nest=function(r){var n=[].slice.call(arguments,1),o=!0;if(typeof r=="boolean"){var o=r;r=n.shift()}var s=Mc.saw(i,{}),a=i.call(s.handlers,s);a!==void 0&&(s.handlers=a),typeof t.step!="undefined"&&s.record(),r.apply(s.chain(),n),o!==!1&&s.on("end",t.next)},t.record=function(){iwe(t)},["trap","down","jump"].forEach(function(r){t[r]=function(){throw new Error("To use the trap, down and jump features, please call record() first to start recording actions.")}}),t};function iwe(i){i.step=0,i.pop=function(){return i.actions[i.step++]},i.trap=function(e,t){var r=Array.isArray(e)?e:[e];i.actions.push({path:r,step:i.step,cb:t,trap:!0})},i.down=function(e){var t=(Array.isArray(e)?e:[e]).join("/"),r=i.actions.slice(i.step).map(function(o){return o.trap&&o.step<=i.step?!1:o.path.join("/")==t}).indexOf(!0);r>=0?i.step+=r:i.step=i.actions.length;var n=i.actions[i.step-1];n&&n.trap?(i.step=n.step,n.cb()):i.next()},i.jump=function(e){i.step=e,i.next()}}});var S5=y((mNe,x5)=>{x5.exports=Yr;function Yr(i){if(!(this instanceof Yr))return new Yr(i);this.buffers=i||[],this.length=this.buffers.reduce(function(e,t){return e+t.length},0)}Yr.prototype.push=function(){for(var i=0;i=0?i:this.length-i,n=[].slice.call(arguments,2);e===void 0?e=this.length-r:e>this.length-r&&(e=this.length-r);for(var i=0;i0){var u=r-a;if(u+e0){var d=n.slice();d.unshift(f),d.push(p),t.splice.apply(t,[l,1].concat(d)),l+=d.length,n=[]}else t.splice(l,1,f,p),l+=2}else o.push(t[l].slice(u)),t[l]=t[l].slice(0,u),l++}for(n.length>0&&(t.splice.apply(t,[l,0].concat(n)),l+=n.length);o.lengththis.length&&(e=this.length);for(var r=0,n=0;n=e-i?Math.min(u+(e-i)-s,l):l;t[a].copy(o,s,u,c),s+=c-u}return o};Yr.prototype.pos=function(i){if(i<0||i>=this.length)throw new Error("oob");for(var e=i,t=0,r=null;;){if(r=this.buffers[t],e=this.buffers[t].length;)if(r=0,t++,t>=this.buffers.length)return-1;var l=this.buffers[t][r];if(l==i[n]){if(n==0&&(o={i:t,j:r,pos:s}),n++,n==i.length)return o.pos}else n!=0&&(t=o.i,r=o.j,s=o.pos,n=0);r++,s++}};Yr.prototype.toBuffer=function(){return this.slice()};Yr.prototype.toString=function(i,e,t){return this.slice(e,t).toString(i)}});var E5=y((gNe,C5)=>{C5.exports=function(i){function e(r,n){var o=t.store,s=r.split(".");s.slice(0,-1).forEach(function(l){o[l]===void 0&&(o[l]={}),o=o[l]});var a=s[s.length-1];return arguments.length==1?o[a]:o[a]=n}var t={get:function(r){return e(r)},set:function(r,n){return e(r,n)},store:i||{}};return t}});var I5=y((gl,k5)=>{var nwe=D5(),_5=require("events").EventEmitter,owe=S5(),Ly=E5(),swe=require("stream").Stream;gl=k5.exports=function(i,e){if(Buffer.isBuffer(i))return gl.parse(i);var t=gl.stream();return i&&i.pipe?i.pipe(t):i&&(i.on(e||"data",function(r){t.write(r)}),i.on("end",function(){t.end()})),t};gl.stream=function(i){if(i)return gl.apply(null,arguments);var e=null;function t(f,p,d){e={bytes:f,skip:d,cb:function(h){e=null,p(h)}},n()}var r=null;function n(){if(!e){c&&(u=!0);return}if(typeof e=="function")e();else{var f=r+e.bytes;if(a.length>=f){var p;r==null?(p=a.splice(0,f),e.skip||(p=p.slice())):(e.skip||(p=a.slice(r,f)),r=f),e.skip?e.cb():e.cb(p)}}}function o(f){function p(){u||f.next()}var d=R5(function(h,m){return function(w){t(h,function(v){l.set(w,m(v)),p()})}});return d.tap=function(h){f.nest(h,l.store)},d.into=function(h,m){l.get(h)||l.set(h,{});var w=l;l=Ly(w.get(h)),f.nest(function(){m.apply(this,arguments),this.tap(function(){l=w})},l.store)},d.flush=function(){l.store={},p()},d.loop=function(h){var m=!1;f.nest(!1,function w(){this.vars=l.store,h.call(this,function(){m=!0,p()},l.store),this.tap(function(){m?f.next():w.call(this)}.bind(this))},l.store)},d.buffer=function(h,m){typeof m=="string"&&(m=l.get(m)),t(m,function(w){l.set(h,w),p()})},d.skip=function(h){typeof h=="string"&&(h=l.get(h)),t(h,function(){p()})},d.scan=function(m,w){if(typeof w=="string")w=new Buffer(w);else if(!Buffer.isBuffer(w))throw new Error("search must be a Buffer or a string");var v=0;e=function(){var D=a.indexOf(w,r+v),x=D-r-v;D!==-1?(e=null,r!=null?(l.set(m,a.slice(r,r+v+x)),r+=v+x+w.length):(l.set(m,a.slice(0,v+x)),a.splice(0,v+x+w.length)),p(),n()):x=Math.max(a.length-w.length-r-v,0),v+=x},n()},d.peek=function(h){r=0,f.nest(function(){h.call(this,l.store),this.tap(function(){r=null})})},d}var s=nwe.light(o);s.writable=!0;var a=owe();s.write=function(f){a.push(f),n()};var l=Ly(),u=!1,c=!1;return s.end=function(){c=!0},s.pipe=swe.prototype.pipe,Object.getOwnPropertyNames(_5.prototype).forEach(function(f){s[f]=_5.prototype[f]}),s};gl.parse=function(e){var t=R5(function(o,s){return function(a){if(r+o<=e.length){var l=e.slice(r,r+o);r+=o,n.set(a,s(l))}else n.set(a,null);return t}}),r=0,n=Ly();return t.vars=n.store,t.tap=function(o){return o.call(t,n.store),t},t.into=function(o,s){n.get(o)||n.set(o,{});var a=n;return n=Ly(a.get(o)),s.call(t,n.store),n=a,t},t.loop=function(o){for(var s=!1,a=function(){s=!0};s===!1;)o.call(t,a,n.store);return t},t.buffer=function(o,s){typeof s=="string"&&(s=n.get(s));var a=e.slice(r,Math.min(e.length,r+s));return r+=s,n.set(o,a),t},t.skip=function(o){return typeof o=="string"&&(o=n.get(o)),r+=o,t},t.scan=function(o,s){if(typeof s=="string")s=new Buffer(s);else if(!Buffer.isBuffer(s))throw new Error("search must be a Buffer or a string");n.set(o,null);for(var a=0;a+r<=e.length-s.length+1;a++){for(var l=0;l=e.length},t};function T5(i){for(var e=0,t=0;t{var F5=require("stream").Transform,uwe=require("util");function vl(i,e){if(!(this instanceof vl))return new vl;F5.call(this);var t=typeof i=="object"?i.pattern:i;this.pattern=Buffer.isBuffer(t)?t:Buffer.from(t),this.requiredLength=this.pattern.length,i.requiredExtraSize&&(this.requiredLength+=i.requiredExtraSize),this.data=new Buffer(""),this.bytesSoFar=0,this.matchFn=e}uwe.inherits(vl,F5);vl.prototype.checkDataChunk=function(i){var e=this.data.length>=this.requiredLength;if(!!e){var t=this.data.indexOf(this.pattern,i?1:0);if(t>=0&&t+this.requiredLength>this.data.length){if(t>0){var r=this.data.slice(0,t);this.push(r),this.bytesSoFar+=t,this.data=this.data.slice(t)}return}if(t===-1){var n=this.data.length-this.requiredLength+1,r=this.data.slice(0,n);this.push(r),this.bytesSoFar+=n,this.data=this.data.slice(n);return}if(t>0){var r=this.data.slice(0,t);this.data=this.data.slice(t),this.push(r),this.bytesSoFar+=t}var o=this.matchFn?this.matchFn(this.data,this.bytesSoFar):!0;if(o){this.data=new Buffer("");return}return!0}};vl.prototype._transform=function(i,e,t){this.data=Buffer.concat([this.data,i]);for(var r=!0;this.checkDataChunk(!r);)r=!1;t()};vl.prototype._flush=function(i){if(this.data.length>0)for(var e=!0;this.checkDataChunk(!e);)e=!1;this.data.length>0&&(this.push(this.data),this.data=null),i()};O5.exports=vl});var M5=y((yNe,L5)=>{"use strict";var X_=require("stream"),cwe=require("util").inherits;function Kd(){if(!(this instanceof Kd))return new Kd;X_.PassThrough.call(this),this.path=null,this.type=null,this.isDirectory=!1}cwe(Kd,X_.PassThrough);Kd.prototype.autodrain=function(){return this.pipe(new X_.Transform({transform:function(i,e,t){t()}}))};L5.exports=Kd});var Q_=y((bNe,N5)=>{"use strict";var Ks=I5(),Z_=require("stream"),fwe=require("util"),pwe=require("zlib"),dwe=A5(),q5=M5(),ce={STREAM_START:0,START:1,LOCAL_FILE_HEADER:2,LOCAL_FILE_HEADER_SUFFIX:3,FILE_DATA:4,FILE_DATA_END:5,DATA_DESCRIPTOR:6,CENTRAL_DIRECTORY_FILE_HEADER:7,CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:8,CDIR64_END:9,CDIR64_END_DATA_SECTOR:10,CDIR64_LOCATOR:11,CENTRAL_DIRECTORY_END:12,CENTRAL_DIRECTORY_END_COMMENT:13,TRAILING_JUNK:14,ERROR:99},Jd=4294967296,hwe=67324752,mwe=134695760,gwe=33639248,vwe=101075792,ywe=117853008,bwe=101010256;function vr(i){if(!(this instanceof vr))return new vr(i);Z_.Transform.call(this),this.options=i||{},this.data=new Buffer(""),this.state=ce.STREAM_START,this.skippedBytes=0,this.parsedEntity=null,this.outStreamInfo={}}fwe.inherits(vr,Z_.Transform);vr.prototype.processDataChunk=function(i){var e;switch(this.state){case ce.STREAM_START:case ce.START:e=4;break;case ce.LOCAL_FILE_HEADER:e=26;break;case ce.LOCAL_FILE_HEADER_SUFFIX:e=this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength;break;case ce.DATA_DESCRIPTOR:e=12;break;case ce.CENTRAL_DIRECTORY_FILE_HEADER:e=42;break;case ce.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:e=this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength+this.parsedEntity.fileCommentLength;break;case ce.CDIR64_END:e=52;break;case ce.CDIR64_END_DATA_SECTOR:e=this.parsedEntity.centralDirectoryRecordSize-44;break;case ce.CDIR64_LOCATOR:e=16;break;case ce.CENTRAL_DIRECTORY_END:e=18;break;case ce.CENTRAL_DIRECTORY_END_COMMENT:e=this.parsedEntity.commentLength;break;case ce.FILE_DATA:return 0;case ce.FILE_DATA_END:return 0;case ce.TRAILING_JUNK:return this.options.debug&&console.log("found",i.length,"bytes of TRAILING_JUNK"),i.length;default:return i.length}var t=i.length;if(t>>8,(o&255)==80){s=a;break}return this.skippedBytes+=s,this.options.debug&&console.log("Skipped",this.skippedBytes,"bytes"),s}this.state=ce.ERROR;var l=n?"Not a valid zip file":"Invalid signature in zip file";if(this.options.debug){var u=i.readUInt32LE(0),c;try{c=i.slice(0,4).toString()}catch(S){}console.log("Unexpected signature in zip file: 0x"+u.toString(16),'"'+c+'", skipped',this.skippedBytes,"bytes")}return this.emit("error",new Error(l)),i.length}return this.skippedBytes=0,e;case ce.LOCAL_FILE_HEADER:return this.parsedEntity=this._readFile(i),this.state=ce.LOCAL_FILE_HEADER_SUFFIX,e;case ce.LOCAL_FILE_HEADER_SUFFIX:var f=new q5,p=(this.parsedEntity.flags&2048)!=0;f.path=this._decodeString(i.slice(0,this.parsedEntity.fileNameLength),p);var d=i.slice(this.parsedEntity.fileNameLength,this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength),h=this._readExtraFields(d);if(h&&h.parsed&&(h.parsed.path&&!p&&(f.path=h.parsed.path),Number.isFinite(h.parsed.uncompressedSize)&&this.parsedEntity.uncompressedSize===Jd-1&&(this.parsedEntity.uncompressedSize=h.parsed.uncompressedSize),Number.isFinite(h.parsed.compressedSize)&&this.parsedEntity.compressedSize===Jd-1&&(this.parsedEntity.compressedSize=h.parsed.compressedSize)),this.parsedEntity.extra=h.parsed||{},this.options.debug){let S=Object.assign({},this.parsedEntity,{path:f.path,flags:"0x"+this.parsedEntity.flags.toString(16),extraFields:h&&h.debug});console.log("decoded LOCAL_FILE_HEADER:",JSON.stringify(S,null,2))}return this._prepareOutStream(this.parsedEntity,f),this.emit("entry",f),this.state=ce.FILE_DATA,e;case ce.CENTRAL_DIRECTORY_FILE_HEADER:return this.parsedEntity=this._readCentralDirectoryEntry(i),this.state=ce.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX,e;case ce.CENTRAL_DIRECTORY_FILE_HEADER_SUFFIX:var p=(this.parsedEntity.flags&2048)!=0,m=this._decodeString(i.slice(0,this.parsedEntity.fileNameLength),p),d=i.slice(this.parsedEntity.fileNameLength,this.parsedEntity.fileNameLength+this.parsedEntity.extraFieldLength),h=this._readExtraFields(d);h&&h.parsed&&h.parsed.path&&!p&&(m=h.parsed.path),this.parsedEntity.extra=h.parsed;var w=(this.parsedEntity.versionMadeBy&65280)>>8==3,v,D;if(w){v=this.parsedEntity.externalFileAttributes>>>16;var x=v>>>12;D=(x&10)==10}if(this.options.debug){let S=Object.assign({},this.parsedEntity,{path:m,flags:"0x"+this.parsedEntity.flags.toString(16),unixAttrs:v&&"0"+v.toString(8),isSymlink:D,extraFields:h.debug});console.log("decoded CENTRAL_DIRECTORY_FILE_HEADER:",JSON.stringify(S,null,2))}return this.state=ce.START,e;case ce.CDIR64_END:return this.parsedEntity=this._readEndOfCentralDirectory64(i),this.options.debug&&console.log("decoded CDIR64_END_RECORD:",this.parsedEntity),this.state=ce.CDIR64_END_DATA_SECTOR,e;case ce.CDIR64_END_DATA_SECTOR:return this.state=ce.START,e;case ce.CDIR64_LOCATOR:return this.state=ce.START,e;case ce.CENTRAL_DIRECTORY_END:return this.parsedEntity=this._readEndOfCentralDirectory(i),this.options.debug&&console.log("decoded CENTRAL_DIRECTORY_END:",this.parsedEntity),this.state=ce.CENTRAL_DIRECTORY_END_COMMENT,e;case ce.CENTRAL_DIRECTORY_END_COMMENT:return this.options.debug&&console.log("decoded CENTRAL_DIRECTORY_END_COMMENT:",i.slice(0,e).toString()),this.state=ce.TRAILING_JUNK,e;case ce.ERROR:return i.length;default:return console.log("didn't handle state #",this.state,"discarding"),i.length}};vr.prototype._prepareOutStream=function(i,e){var t=this,r=i.uncompressedSize===0&&/[\/\\]$/.test(e.path);e.path=e.path.replace(/^([/\\]*[.]+[/\\]+)*[/\\]*/,""),e.type=r?"Directory":"File",e.isDirectory=r;var n=!(i.flags&8);n&&(e.size=i.uncompressedSize);var o=i.versionsNeededToExtract<=45;if(this.outStreamInfo={stream:null,limit:n?i.compressedSize:-1,written:0},n)this.outStreamInfo.stream=new Z_.PassThrough;else{var s=new Buffer(4);s.writeUInt32LE(mwe,0);var a=i.extra.zip64Mode,l=a?20:12,u={pattern:s,requiredExtraSize:l},c=new dwe(u,function(m,w){var v=t._readDataDescriptor(m,a),D=v.compressedSize===w;if(!a&&!D&&w>=Jd)for(var x=w-Jd;x>=0&&(D=v.compressedSize===x,!D);)x-=Jd;if(!!D){t.state=ce.FILE_DATA_END;var S=a?24:16;return t.data.length>0?t.data=Buffer.concat([m.slice(S),t.data]):t.data=m.slice(S),!0}});this.outStreamInfo.stream=c}var f=i.flags&1||i.flags&64;if(f||!o){var p=f?"Encrypted files are not supported!":"Zip version "+Math.floor(i.versionsNeededToExtract/10)+"."+i.versionsNeededToExtract%10+" is not supported";e.skip=!0,setImmediate(()=>{e.emit("error",new Error(p))}),this.outStreamInfo.stream.pipe(new q5().autodrain());return}var d=i.compressionMethod>0;if(d){var h=pwe.createInflateRaw();h.on("error",function(m){t.state=ce.ERROR,t.emit("error",m)}),this.outStreamInfo.stream.pipe(h).pipe(e)}else this.outStreamInfo.stream.pipe(e);this._drainAllEntries&&e.autodrain()};vr.prototype._readFile=function(i){var e=Ks.parse(i).word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").vars;return e};vr.prototype._readExtraFields=function(i){var e={},t={parsed:e};this.options.debug&&(t.debug=[]);for(var r=0;r=l+4&&a&1&&(e.mtime=new Date(i.readUInt32LE(r+l)*1e3),l+=4),n.extraSize>=l+4&&a&2&&(e.atime=new Date(i.readUInt32LE(r+l)*1e3),l+=4),n.extraSize>=l+4&&a&4&&(e.ctime=new Date(i.readUInt32LE(r+l)*1e3));break;case 28789:o="Info-ZIP Unicode Path Extra Field";var u=i.readUInt8(r);if(u===1){var l=1,c=i.readUInt32LE(r+l);l+=4;var f=i.slice(r+l);e.path=f.toString()}break;case 13:case 22613:o=n.extraId===13?"PKWARE Unix":"Info-ZIP UNIX (type 1)";var l=0;if(n.extraSize>=8){var p=new Date(i.readUInt32LE(r+l)*1e3);l+=4;var d=new Date(i.readUInt32LE(r+l)*1e3);if(l+=4,e.atime=p,e.mtime=d,n.extraSize>=12){var h=i.readUInt16LE(r+l);l+=2;var m=i.readUInt16LE(r+l);l+=2,e.uid=h,e.gid=m}}break;case 30805:o="Info-ZIP UNIX (type 2)";var l=0;if(n.extraSize>=4){var h=i.readUInt16LE(r+l);l+=2;var m=i.readUInt16LE(r+l);l+=2,e.uid=h,e.gid=m}break;case 30837:o="Info-ZIP New Unix";var l=0,w=i.readUInt8(r);if(l+=1,w===1){var v=i.readUInt8(r+l);l+=1,v<=6&&(e.uid=i.readUIntLE(r+l,v)),l+=v;var D=i.readUInt8(r+l);l+=1,D<=6&&(e.gid=i.readUIntLE(r+l,D))}break;case 30062:o="ASi Unix";var l=0;if(n.extraSize>=14){var x=i.readUInt32LE(r+l);l+=4;var S=i.readUInt16LE(r+l);l+=2;var P=i.readUInt32LE(r+l);l+=4;var h=i.readUInt16LE(r+l);l+=2;var m=i.readUInt16LE(r+l);if(l+=2,e.mode=S,e.uid=h,e.gid=m,n.extraSize>14){var A=r+l,R=r+n.extraSize-14,M=this._decodeString(i.slice(A,R));e.symlink=M}}break}this.options.debug&&t.debug.push({extraId:"0x"+n.extraId.toString(16),description:o,data:i.slice(r,r+n.extraSize).inspect()}),r+=n.extraSize}return t};vr.prototype._readDataDescriptor=function(i,e){if(e){var t=Ks.parse(i).word32lu("dataDescriptorSignature").word32lu("crc32").word64lu("compressedSize").word64lu("uncompressedSize").vars;return t}var t=Ks.parse(i).word32lu("dataDescriptorSignature").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").vars;return t};vr.prototype._readCentralDirectoryEntry=function(i){var e=Ks.parse(i).word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word16lu("flags").word16lu("compressionMethod").word16lu("lastModifiedTime").word16lu("lastModifiedDate").word32lu("crc32").word32lu("compressedSize").word32lu("uncompressedSize").word16lu("fileNameLength").word16lu("extraFieldLength").word16lu("fileCommentLength").word16lu("diskNumber").word16lu("internalFileAttributes").word32lu("externalFileAttributes").word32lu("offsetToLocalFileHeader").vars;return e};vr.prototype._readEndOfCentralDirectory64=function(i){var e=Ks.parse(i).word64lu("centralDirectoryRecordSize").word16lu("versionMadeBy").word16lu("versionsNeededToExtract").word32lu("diskNumber").word32lu("diskNumberWithCentralDirectoryStart").word64lu("centralDirectoryEntries").word64lu("totalCentralDirectoryEntries").word64lu("sizeOfCentralDirectory").word64lu("offsetToStartOfCentralDirectory").vars;return e};vr.prototype._readEndOfCentralDirectory=function(i){var e=Ks.parse(i).word16lu("diskNumber").word16lu("diskStart").word16lu("centralDirectoryEntries").word16lu("totalCentralDirectoryEntries").word32lu("sizeOfCentralDirectory").word32lu("offsetToStartOfCentralDirectory").word16lu("commentLength").vars;return e};var wwe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ";vr.prototype._decodeString=function(i,e){if(e)return i.toString("utf8");if(this.options.decodeString)return this.options.decodeString(i);let t="";for(var r=0;r0&&(this.data=this.data.slice(t),this.data.length!==0););if(this.state===ce.FILE_DATA){if(this.outStreamInfo.limit>=0){var r=this.outStreamInfo.limit-this.outStreamInfo.written,n;r{if(this.state===ce.FILE_DATA_END)return this.state=ce.START,o.end(e);e()})}return}e()};vr.prototype.drainAll=function(){this._drainAllEntries=!0};vr.prototype._transform=function(i,e,t){var r=this;r.data.length>0?r.data=Buffer.concat([r.data,i]):r.data=i;var n=r.data.length,o=function(){if(r.data.length>0&&r.data.length0){e._parseOrOutput("buffer",function(){if(e.data.length>0)return setImmediate(function(){e._flush(i)});i()});return}if(e.state===ce.FILE_DATA)return i(new Error("Stream finished in an invalid state, uncompression failed"));setImmediate(i)};N5.exports=vr});var B5=y((wNe,$5)=>{var Yd=require("stream").Transform,Dwe=require("util"),xwe=Q_();function Js(i){if(!(this instanceof Js))return new Js(i);var e=i||{};Yd.call(this,{readableObjectMode:!0}),this.opts=i||{},this.unzipStream=new xwe(this.opts);var t=this;this.unzipStream.on("entry",function(r){t.push(r)}),this.unzipStream.on("error",function(r){t.emit("error",r)})}Dwe.inherits(Js,Yd);Js.prototype._transform=function(i,e,t){this.unzipStream.write(i,e,t)};Js.prototype._flush=function(i){var e=this;this.unzipStream.end(function(){process.nextTick(function(){e.emit("close")}),i()})};Js.prototype.on=function(i,e){return i==="entry"?Yd.prototype.on.call(this,"data",e):Yd.prototype.on.call(this,i,e)};Js.prototype.drainAll=function(){return this.unzipStream.drainAll(),this.pipe(new Yd({objectMode:!0,transform:function(i,e,t){t()}}))};$5.exports=Js});var H5=y((DNe,W5)=>{var Xd=require("path"),j5=require("fs"),U5=parseInt("0777",8);W5.exports=qc.mkdirp=qc.mkdirP=qc;function qc(i,e,t,r){typeof e=="function"?(t=e,e={}):(!e||typeof e!="object")&&(e={mode:e});var n=e.mode,o=e.fs||j5;n===void 0&&(n=U5),r||(r=null);var s=t||function(){};i=Xd.resolve(i),o.mkdir(i,n,function(a){if(!a)return r=r||i,s(null,r);switch(a.code){case"ENOENT":if(Xd.dirname(i)===i)return s(a);qc(Xd.dirname(i),e,function(l,u){l?s(l,u):qc(i,e,s,u)});break;default:o.stat(i,function(l,u){l||!u.isDirectory()?s(a,r):s(null,r)});break}})}qc.sync=function i(e,t,r){(!t||typeof t!="object")&&(t={mode:t});var n=t.mode,o=t.fs||j5;n===void 0&&(n=U5),r||(r=null),e=Xd.resolve(e);try{o.mkdirSync(e,n),r=r||e}catch(a){switch(a.code){case"ENOENT":r=i(Xd.dirname(e),t,r),i(e,t,r);break;default:var s;try{s=o.statSync(e)}catch(l){throw a}if(!s.isDirectory())throw a;break}}return r}});var K5=y((xNe,V5)=>{var Swe=require("fs"),z5=require("path"),Cwe=require("util"),Ewe=H5(),G5=require("stream").Transform,_we=Q_();function Ys(i){if(!(this instanceof Ys))return new Ys(i);G5.call(this),this.opts=i||{},this.unzipStream=new _we(this.opts),this.unfinishedEntries=0,this.afterFlushWait=!1,this.createdDirectories={};var e=this;this.unzipStream.on("entry",this._processEntry.bind(this)),this.unzipStream.on("error",function(t){e.emit("error",t)})}Cwe.inherits(Ys,G5);Ys.prototype._transform=function(i,e,t){this.unzipStream.write(i,e,t)};Ys.prototype._flush=function(i){var e=this,t=function(){process.nextTick(function(){e.emit("close")}),i()};this.unzipStream.end(function(){if(e.unfinishedEntries>0)return e.afterFlushWait=!0,e.on("await-finished",t);t()})};Ys.prototype._processEntry=function(i){var e=this,t=z5.join(this.opts.path,i.path),r=i.isDirectory?t:z5.dirname(t);this.unfinishedEntries++;var n=function(){var o=Swe.createWriteStream(t);o.on("close",function(){e.unfinishedEntries--,e._notifyAwaiter()}),o.on("error",function(s){e.emit("error",s)}),i.pipe(o)};if(this.createdDirectories[r]||r===".")return n();Ewe(r,function(o){if(o)return e.emit("error",o);if(e.createdDirectories[r]=!0,i.isDirectory){e.unfinishedEntries--,e._notifyAwaiter();return}n()})};Ys.prototype._notifyAwaiter=function(){this.afterFlushWait&&this.unfinishedEntries===0&&(this.emit("await-finished"),this.afterFlushWait=!1)};V5.exports=Ys});var J5=y(eT=>{"use strict";eT.Parse=B5();eT.Extract=K5()});var X5=y((CNe,Y5)=>{"use strict";function Twe(){}function My(i,e){let t=My.spread(i,e),r=t.then(n=>n[0]);return r.cancel=t.cancel,r}(function(i){function e(t,r){let n=null,o=new Promise((s,a)=>{function l(){t.removeListener(r,u),t.removeListener("error",c),o.cancel=Twe}function u(...f){l(),s(f)}function c(f){l(),a(f)}n=l,t.on(r,u),t.on("error",c)});if(!n)throw new TypeError("Could not get `cancel()` function");return o.cancel=n,o}i.spread=e})(My||(My={}));Y5.exports=My});var Z5=y(tT=>{"use strict";Object.defineProperty(tT,"__esModule",{value:!0});function Pwe(i){return function(e,t){return new Promise((r,n)=>{i.call(this,e,t,(o,s)=>{o?n(o):r(s)})})}}tT.default=Pwe});var nT=y((iT,e4)=>{"use strict";var Q5=iT&&iT.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},Rwe=require("events"),kwe=Q5(jt()),Iwe=Q5(Z5()),Zd=kwe.default("agent-base");function Fwe(i){return Boolean(i)&&typeof i.addRequest=="function"}function rT(){let{stack:i}=new Error;return typeof i!="string"?!1:i.split(` +`).some(e=>e.indexOf("(https.js:")!==-1||e.indexOf("node:https:")!==-1)}function qy(i,e){return new qy.Agent(i,e)}(function(i){class e extends Rwe.EventEmitter{constructor(r,n){super();let o=n;typeof r=="function"?this.callback=r:r&&(o=r),this.timeout=null,o&&typeof o.timeout=="number"&&(this.timeout=o.timeout),this.maxFreeSockets=1,this.maxSockets=1,this.maxTotalSockets=Infinity,this.sockets={},this.freeSockets={},this.requests={},this.options={}}get defaultPort(){return typeof this.explicitDefaultPort=="number"?this.explicitDefaultPort:rT()?443:80}set defaultPort(r){this.explicitDefaultPort=r}get protocol(){return typeof this.explicitProtocol=="string"?this.explicitProtocol:rT()?"https:":"http:"}set protocol(r){this.explicitProtocol=r}callback(r,n,o){throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`')}addRequest(r,n){let o=Object.assign({},n);typeof o.secureEndpoint!="boolean"&&(o.secureEndpoint=rT()),o.host==null&&(o.host="localhost"),o.port==null&&(o.port=o.secureEndpoint?443:80),o.protocol==null&&(o.protocol=o.secureEndpoint?"https:":"http:"),o.host&&o.path&&delete o.path,delete o.agent,delete o.hostname,delete o._defaultAgent,delete o.defaultPort,delete o.createConnection,r._last=!0,r.shouldKeepAlive=!1;let s=!1,a=null,l=o.timeout||this.timeout,u=d=>{r._hadError||(r.emit("error",d),r._hadError=!0)},c=()=>{a=null,s=!0;let d=new Error(`A "socket" was not created for HTTP request before ${l}ms`);d.code="ETIMEOUT",u(d)},f=d=>{s||(a!==null&&(clearTimeout(a),a=null),u(d))},p=d=>{if(s)return;if(a!=null&&(clearTimeout(a),a=null),Fwe(d)){Zd("Callback returned another Agent instance %o",d.constructor.name),d.addRequest(r,o);return}if(d){d.once("free",()=>{this.freeSocket(d,o)}),r.onSocket(d);return}let h=new Error(`no Duplex stream was returned to agent-base for \`${r.method} ${r.path}\``);u(h)};if(typeof this.callback!="function"){u(new Error("`callback` is not defined"));return}this.promisifiedCallback||(this.callback.length>=3?(Zd("Converting legacy callback function to promise"),this.promisifiedCallback=Iwe.default(this.callback)):this.promisifiedCallback=this.callback),typeof l=="number"&&l>0&&(a=setTimeout(c,l)),"port"in o&&typeof o.port!="number"&&(o.port=Number(o.port));try{Zd("Resolving socket for %o request: %o",o.protocol,`${r.method} ${r.path}`),Promise.resolve(this.promisifiedCallback(r,o)).then(p,f)}catch(d){Promise.reject(d).catch(f)}}freeSocket(r,n){Zd("Freeing socket %o %o",r.constructor.name,n),r.destroy()}destroy(){Zd("Destroying agent %o",this.constructor.name)}}i.Agent=e,i.prototype=i.Agent.prototype})(qy||(qy={}));e4.exports=qy});var r4=y(yl=>{"use strict";var Owe=yl&&yl.__awaiter||function(i,e,t,r){function n(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(c){try{u(r.next(c))}catch(f){s(f)}}function l(c){try{u(r.throw(c))}catch(f){s(f)}}function u(c){c.done?o(c.value):n(c.value).then(a,l)}u((r=r.apply(i,e||[])).next())})},Qd=yl&&yl.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(yl,"__esModule",{value:!0});var Awe=Qd(require("net")),Lwe=Qd(require("tls")),oT=Qd(require("url")),Mwe=Qd(jt()),qwe=Qd(X5()),Nwe=nT(),Xs=Mwe.default("http-proxy-agent");function $we(i){return typeof i=="string"?/^https:?$/i.test(i):!1}var t4=class extends Nwe.Agent{constructor(e){let t;if(typeof e=="string"?t=oT.default.parse(e):t=e,!t)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");Xs("Creating new HttpProxyAgent instance: %o",t),super(t);let r=Object.assign({},t);this.secureProxy=t.secureProxy||$we(r.protocol),r.host=r.hostname||r.host,typeof r.port=="string"&&(r.port=parseInt(r.port,10)),!r.port&&r.host&&(r.port=this.secureProxy?443:80),r.host&&r.path&&(delete r.path,delete r.pathname),this.proxy=r}callback(e,t){return Owe(this,void 0,void 0,function*(){let{proxy:r,secureProxy:n}=this,o=oT.default.parse(e.path);o.protocol||(o.protocol="http:"),o.hostname||(o.hostname=t.hostname||t.host||null),o.port==null&&typeof t.port&&(o.port=String(t.port)),o.port==="80"&&delete o.port,e.path=oT.default.format(o),r.auth&&e.setHeader("Proxy-Authorization",`Basic ${Buffer.from(r.auth).toString("base64")}`);let s;if(n?(Xs("Creating `tls.Socket`: %o",r),s=Lwe.default.connect(r)):(Xs("Creating `net.Socket`: %o",r),s=Awe.default.connect(r)),e._header){let a,l;Xs("Regenerating stored HTTP header string for request"),e._header=null,e._implicitHeader(),e.output&&e.output.length>0?(Xs("Patching connection write() output buffer with updated header"),a=e.output[0],l=a.indexOf(`\r +\r +`)+4,e.output[0]=e._header+a.substring(l),Xs("Output buffer: %o",e.output)):e.outputData&&e.outputData.length>0&&(Xs("Patching connection write() output buffer with updated header"),a=e.outputData[0].data,l=a.indexOf(`\r +\r +`)+4,e.outputData[0].data=e._header+a.substring(l),Xs("Output buffer: %o",e.outputData[0].data))}return yield qwe.default(s,"connect"),s})}};yl.default=t4});var n4=y((lT,i4)=>{"use strict";var Bwe=lT&&lT.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},sT=Bwe(r4());function aT(i){return new sT.default(i)}(function(i){i.HttpProxyAgent=sT.default,i.prototype=sT.default.prototype})(aT||(aT={}));i4.exports=aT});var o4=y(th=>{"use strict";var jwe=th&&th.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(th,"__esModule",{value:!0});var Uwe=jwe(jt()),eh=Uwe.default("https-proxy-agent:parse-proxy-response");function Wwe(i){return new Promise((e,t)=>{let r=0,n=[];function o(){let f=i.read();f?c(f):i.once("readable",o)}function s(){i.removeListener("end",l),i.removeListener("error",u),i.removeListener("close",a),i.removeListener("readable",o)}function a(f){eh("onclose had error %o",f)}function l(){eh("onend")}function u(f){s(),eh("onerror %o",f),t(f)}function c(f){n.push(f),r+=f.length;let p=Buffer.concat(n,r);if(p.indexOf(`\r +\r +`)===-1){eh("have not received end of HTTP headers yet..."),o();return}let h=p.toString("ascii",0,p.indexOf(`\r +`)),m=+h.split(" ")[1];eh("got proxy server response: %o",h),e({statusCode:m,buffered:p})}i.on("error",u),i.on("close",a),i.on("end",l),o()})}th.default=Wwe});var u4=y(bl=>{"use strict";var Hwe=bl&&bl.__awaiter||function(i,e,t,r){function n(o){return o instanceof t?o:new t(function(s){s(o)})}return new(t||(t=Promise))(function(o,s){function a(c){try{u(r.next(c))}catch(f){s(f)}}function l(c){try{u(r.throw(c))}catch(f){s(f)}}function u(c){c.done?o(c.value):n(c.value).then(a,l)}u((r=r.apply(i,e||[])).next())})},Nc=bl&&bl.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(bl,"__esModule",{value:!0});var s4=Nc(require("net")),a4=Nc(require("tls")),zwe=Nc(require("url")),Gwe=Nc(require("assert")),Vwe=Nc(jt()),Kwe=nT(),Jwe=Nc(o4()),rh=Vwe.default("https-proxy-agent:agent"),l4=class extends Kwe.Agent{constructor(e){let t;if(typeof e=="string"?t=zwe.default.parse(e):t=e,!t)throw new Error("an HTTP(S) proxy server `host` and `port` must be specified!");rh("creating new HttpsProxyAgent instance: %o",t),super(t);let r=Object.assign({},t);this.secureProxy=t.secureProxy||Zwe(r.protocol),r.host=r.hostname||r.host,typeof r.port=="string"&&(r.port=parseInt(r.port,10)),!r.port&&r.host&&(r.port=this.secureProxy?443:80),this.secureProxy&&!("ALPNProtocols"in r)&&(r.ALPNProtocols=["http 1.1"]),r.host&&r.path&&(delete r.path,delete r.pathname),this.proxy=r}callback(e,t){return Hwe(this,void 0,void 0,function*(){let{proxy:r,secureProxy:n}=this,o;n?(rh("Creating `tls.Socket`: %o",r),o=a4.default.connect(r)):(rh("Creating `net.Socket`: %o",r),o=s4.default.connect(r));let s=Object.assign({},r.headers),l=`CONNECT ${`${t.host}:${t.port}`} HTTP/1.1\r +`;r.auth&&(s["Proxy-Authorization"]=`Basic ${Buffer.from(r.auth).toString("base64")}`);let{host:u,port:c,secureEndpoint:f}=t;Xwe(c,f)||(u+=`:${c}`),s.Host=u,s.Connection="close";for(let w of Object.keys(s))l+=`${w}: ${s[w]}\r +`;let p=Jwe.default(o);o.write(`${l}\r +`);let{statusCode:d,buffered:h}=yield p;if(d===200){if(e.once("socket",Ywe),t.secureEndpoint){let w=t.servername||t.host;if(!w)throw new Error('Could not determine "servername"');return rh("Upgrading socket connection to TLS"),a4.default.connect(Object.assign(Object.assign({},Qwe(t,"host","hostname","path","port")),{socket:o,servername:w}))}return o}o.destroy();let m=new s4.default.Socket;return m.readable=!0,e.once("socket",w=>{rh("replaying proxy buffer for failed request"),Gwe.default(w.listenerCount("data")>0),w.push(h),w.push(null)}),m})}};bl.default=l4;function Ywe(i){i.resume()}function Xwe(i,e){return Boolean(!e&&i===80||e&&i===443)}function Zwe(i){return typeof i=="string"?/^https:?$/i.test(i):!1}function Qwe(i,...e){let t={},r;for(r in i)e.includes(r)||(t[r]=i[r]);return t}});var f4=y((fT,c4)=>{"use strict";var eDe=fT&&fT.__importDefault||function(i){return i&&i.__esModule?i:{default:i}},uT=eDe(u4());function cT(i){return new uT.default(i)}(function(i){i.HttpsProxyAgent=uT.default,i.prototype=uT.default.prototype})(cT||(cT={}));c4.exports=cT});var d4=y((RNe,p4)=>{"use strict";var tDe=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];p4.exports=(i,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let t=new Set(Object.keys(i).concat(tDe)),r={};for(let n of t)n in e||(r[n]={get(){let o=i[n];return typeof o=="function"?o.bind(i):o},set(o){i[n]=o},enumerable:!0,configurable:!1});return Object.defineProperties(e,r),i.once("aborted",()=>{e.destroy(),e.emit("aborted")}),i.once("close",()=>{i.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var m4=y((kNe,h4)=>{"use strict";var{Transform:rDe,PassThrough:iDe}=require("stream"),pT=require("zlib"),nDe=d4();h4.exports=i=>{let e=(i.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return i;let t=e==="br";if(t&&typeof pT.createBrotliDecompress!="function")return i.destroy(new Error("Brotli is not supported on Node.js < 12")),i;let r=!0,n=new rDe({transform(a,l,u){r=!1,u(null,a)},flush(a){a()}}),o=new iDe({autoDestroy:!1,destroy(a,l){i.destroy(),l(a)}}),s=t?pT.createBrotliDecompress():pT.createUnzip();return s.once("error",a=>{if(r&&!i.readable){o.end();return}o.destroy(a)}),nDe(i,o),i.pipe(n).pipe(s).pipe(o),o}});function oDe(i){let e;i.protocol==="http:"?e=process.env.HTTP_PROXY||process.env.http_proxy||null:i.protocol==="https:"&&(e=process.env.HTTPS_PROXY||process.env.https_proxy||process.env.HTTP_PROXY||process.env.http_proxy||null);let t=process.env.NO_PROXY||process.env.no_proxy;if(t==="*")e=null;else if(t){let r=i.hostname.replace(/^\.*/,".").toLowerCase(),n=i.port||i.protocol.startsWith("https")?"443":"80",o=t.split(",");for(let s=0,a=o.length;s{if(r){let l=r.onCancellationRequested(()=>{l.dispose(),a.destroy(new Error("request aborted"))})}let a=n.request(t,l=>{let u=l;if(l.statusCode>=200&&l.statusCode<300||l.statusCode===1223){let c=l.headers||{},f=[],p=c["content-type"]||"";u=(0,w4.default)(l),u.on("data",d=>{f.push(d)}),u.on("end",()=>{let d=Buffer.concat(f);if(!t.buffer&&(p.startsWith("application/json")||p.startsWith("text/"))){let h=p.match(/charset=(\S+)/),m=h?h[1]:"utf8",w=d.toString(m);if(!p.includes("application/json"))o(w);else try{let v=JSON.parse(w);o(v)}catch(v){s(new Error(`Parse response error: ${v}`))}}else o(d)}),u.on("error",d=>{s(new Error(`Unable to connect ${i}: ${d.message}`))})}else s(new Error(`Bad response from ${i}: ${l.statusCode}`))});a.on("error",s),a.on("timeout",()=>{a.destroy(new Error(`Request timeout after ${t.timeout}ms`))}),e&&(typeof e=="string"||Buffer.isBuffer(e)?a.write(e):a.write(JSON.stringify(e))),t.timeout&&a.setTimeout(t.timeout),a.end()})}function lDe(i){return i===null?"null":i===void 0?"undefined":typeof i=="string"?"string":Buffer.isBuffer(i)?"buffer":Array.isArray(i)||zt(i)?"object":"unknown"}function $c(i,e={},t){let r=hT(i,e);return aDe(i,e.data,r,t).catch(n=>{if(D4.error(`Fetch error for ${i}:`,r,n),r.agent&&r.agent.proxy){let{proxy:o}=r.agent;throw new Error(`Request failed using proxy ${o.host}: ${n.message}`)}else throw n})}var Ny,dT,g4,v4,y4,b4,w4,D4,$y=I(()=>{Ny=E($E()),dT=E(require("url")),g4=E(require("fs"));Yi();ie();v4=E(require("querystring")),y4=E(n4()),b4=E(f4()),w4=E(m4()),D4=W()("model-fetch")});function nh(i,e,t){let{dest:r,onProgress:n,extract:o}=e;if(!r||!ih.default.isAbsolute(r))throw new Error("Expect absolute file path for dest option.");let s;try{s=jy.default.statSync(r)}catch(c){jy.default.mkdirpSync(r)}if(s&&!s.isDirectory())throw new Error(`${r} exists, but not directory!`);let a=i.startsWith("https")?By.https:By.http,l=hT(i,e),u=ih.default.extname(i);return new Promise((c,f)=>{if(t){let d=t.onCancellationRequested(()=>{d.dispose(),p.destroy(new Error("request aborted"))})}let p=a.request(l,d=>{var h,m;if(d.statusCode>=200&&d.statusCode<300||d.statusCode===1223){let w=d.headers||{},v=w["content-disposition"];if(!u&&v){let P=x4.default.parse(v);((h=P.parameters)==null?void 0:h.filename)&&(u=ih.default.extname(P.parameters.filename))}if(o===!0)if(u===".zip"||w["content-type"]=="application/zip")o="unzip";else if(u==".tgz")o="untar";else{f(new Error(`Unable to extract for ${i}`));return}let D=Number(w["content-length"]),x=0;isNaN(D)||d.on("data",P=>{x+=P.length;let A=(x/D*100).toFixed(1);n?n(A):mT.info(`Download ${i} progress ${A}%`)}),d.on("error",P=>{f(new Error(`Unable to connect ${i}: ${P.message}`))}),d.on("end",()=>{mT.info("Download completed:",i)});let S;o==="untar"?S=d.pipe(S4.default.x({strip:(m=e.strip)!=null?m:1,C:r})):o==="unzip"?S=d.pipe(C4.default.Extract({path:r})):(r=ih.default.join(r,`${Ao()}${u}`),S=d.pipe(jy.default.createWriteStream(r))),S.on("finish",()=>{mT.info(`Downloaded ${i} => ${r}`),setTimeout(()=>{c(r)},100)}),S.on("error",f)}else f(new Error(`Invalid response from ${i}: ${d.statusCode}`))});p.on("error",f),p.on("timeout",()=>{p.destroy(new Error(`request timeout after ${e.timeout}ms`))}),e.timeout&&p.setTimeout(e.timeout),p.end()})}var x4,By,jy,ih,S4,C4,mT,gT=I(()=>{x4=E(v6()),By=E($E()),jy=E(bn()),ih=E(require("path")),S4=E(m5()),C4=E(J5());it();$y();mT=W()("model-download")});function uDe(i="coc.nvim"){let e=(0,R4.default)("npm",{registry:"https://registry.npmjs.org/"}),t=e[`${i}:registry`]||e.config_registry||e.registry;return t.endsWith("/")?t:t+"/"}function Wy(i,e){return t=>new I4(e,i,t)}var E4,_4,T4,Lr,P4,io,R4,Uy,k4,I4,F4=I(()=>{E4=E(require("events")),_4=E(require("child_process"));ud();T4=E(require("readline")),Lr=E(bn()),P4=E(require("os")),io=E(require("path")),R4=E(l6()),Uy=E(Gp());ie();gT();$y();Vt();k4=W()("model-installer");I4=class extends E4.EventEmitter{constructor(e,t,r){super();this.root=e;this.npm=t;this.def=r;if(Lr.default.existsSync(e)||Lr.default.mkdirpSync(e),/^https?:/.test(r))this.url=r;else if(r.startsWith("@")){let n=r.indexOf("@",1);n>1?(this.name=r.substring(0,n),this.version=r.substring(n+1)):this.name=r}else if(r.includes("@")){let[n,o]=r.split("@",2);this.name=n,this.version=o}else this.name=r}get info(){return{name:this.name,version:this.version}}async install(){this.log(`Using npm from: ${this.npm}`);let e=await this.getInfo();k4.info(`Fetched info of ${this.def}`,e);let{name:t}=e,r=e["engines.coc"]?e["engines.coc"].replace(/^\^/,">="):"";if(r&&!Uy.default.satisfies(b.version,r))throw new Error(`${t} ${e.version} requires coc.nvim >= ${r}, please update coc.nvim.`);return await this.doInstall(e),t}async update(e){this.url=e;let t=io.default.join(this.root,this.name);if((await Lr.default.lstat(t)).isSymbolicLink()){this.log("Skipped update for symbol link");return}let n;if(Lr.default.existsSync(io.default.join(t,"package.json"))){let l=await Lr.default.readFile(io.default.join(t,"package.json"),"utf8");n=JSON.parse(l).version}this.log(`Using npm from: ${this.npm}`);let o=await this.getInfo();if(n&&o.version&&Uy.default.gte(n,o.version)){this.log(`Current version ${n} is up to date.`);return}let s=o["engines.coc"]?o["engines.coc"].replace(/^\^/,">="):"";if(s&&!Uy.default.satisfies(b.version,s))throw new Error(`${o.version} requires coc.nvim ${s}, please update coc.nvim.`);await this.doInstall(o);let a=io.default.join(this.root,o.name,"package.json");if(Lr.default.existsSync(a))return this.log(`Updated to v${o.version}`),io.default.dirname(a);throw new Error(`Package.json not found: ${a}`)}async doInstall(e){let t=io.default.join(this.root,e.name);if(Lr.default.existsSync(t)&&!Lr.default.statSync(t).isDirectory()){this.log(`${t} is not directory skipped install`);return}let r=await Lr.default.mkdtemp(io.default.join(P4.default.tmpdir(),`${e.name.replace("/","-")}-`)),n=e["dist.tarball"];this.log(`Downloading from ${n}`),await nh(n,{dest:r,onProgress:p=>this.log(`Download progress ${p}%`,!0),extract:"untar"}),this.log(`Extension download at ${r}`);let o=await Lr.default.readFile(io.default.join(r,"package.json"),"utf8"),{dependencies:s}=JSON.parse(o);s&&Object.keys(s).length&&await new Promise((d,h)=>{let m=["install","--ignore-scripts","--no-lockfile","--production"];n.startsWith("https://github.com")&&(m=["install"]),(this.npm.endsWith("npm")||this.npm.endsWith("npm.CMD"))&&!this.npm.endsWith("pnpm")&&m.push("--legacy-peer-deps"),this.npm.endsWith("yarn")&&m.push("--ignore-engines"),this.log(`Installing dependencies by: ${this.npm} ${m.join(" ")}.`);let w=(0,_4.spawn)(this.npm,m,{cwd:r});T4.default.createInterface({input:w.stdout}).on("line",x=>{this.log(`[npm] ${x}`,!0)}),w.stderr.setEncoding("utf8"),w.stdout.setEncoding("utf8"),w.on("error",h);let D="";w.stderr.on("data",x=>{D+=x}),w.on("exit",x=>{if(x){D&&this.log(D),h(new Error(`${this.npm} install exited with ${x}`));return}d()})});let a=io.default.resolve(this.root,global.hasOwnProperty("__TEST__")?"":"..","package.json"),l=[],u=Xu(Lr.default.readFileSync(a,"utf8"),l,{allowTrailingComma:!0});if(l&&l.length>0)throw new Error(`Error on load ${a}`);u.dependencies=u.dependencies||{},this.url?u.dependencies[e.name]=this.url:u.dependencies[e.name]=">="+e.version;let c={dependencies:{}};Object.keys(u.dependencies).sort().forEach(p=>{c.dependencies[p]=u.dependencies[p]});let f=await $t(t);f&&(f.isDirectory()?Lr.default.removeSync(t):Lr.default.unlinkSync(t)),await Lr.default.move(r,t,{overwrite:!0}),await Lr.default.writeFile(a,JSON.stringify(c,null,2),{encoding:"utf8"}),this.log(`Update package.json at ${a}`),this.log(`Installed extension ${this.name}@${e.version} at ${t}`)}async getInfo(){if(this.url)return await this.getInfoFromUri();let e=uDe();this.log(`Get info from ${e}`);let t=await $c(e+this.name,{timeout:1e4,buffer:!0}),r=JSON.parse(t.toString());this.version||(this.version=r["dist-tags"].latest);let n=r.versions[this.version];if(!n)throw new Error(`${this.def} doesn't exists in ${e}.`);let o=n.engines&&n.engines.coc;if(!o)throw new Error(`${this.def} is not valid coc extension, "engines" field with coc property required.`);return{"dist.tarball":n.dist.tarball,"engines.coc":o,version:n.version,name:r.name}}async getInfoFromUri(){let{url:e}=this;if(!e.includes("github.com"))throw new Error(`"${e}" is not supported, coc.nvim support github.com only`);e=e.replace(/\/$/,"");let t="master";if(e.includes("@")){let s=e.indexOf("@");t=e.substr(s+1),e=e.substring(0,s)}let r=e.replace("github.com","raw.githubusercontent.com")+`/${t}/package.json`;this.log(`Get info from ${r}`);let n=await $c(r,{timeout:1e4}),o=typeof n=="string"?JSON.parse(n):n;return this.name=o.name,{"dist.tarball":`${e}/archive/${t}.tar.gz`,"engines.coc":o.engines?o.engines.coc:null,name:o.name,version:o.version}}log(e,t=!1){k4.info(e),this.emit("message",e,t)}}});var Bc,cDe,Hy,O4=I(()=>{Bc=E(require("fs"));Gr();cDe=W()("model-memos"),Hy=class{constructor(e){this.filepath=e;Bc.default.existsSync(e)||Bc.default.writeFileSync(e,"{}","utf8")}fetchContent(e,t){try{let r=Bc.default.readFileSync(this.filepath,"utf8"),o=JSON.parse(r)[e];return o?o[t]:void 0}catch(r){return}}async update(e,t,r){let{filepath:n}=this;try{let o=Bc.default.readFileSync(n,"utf8"),s=o?JSON.parse(o):{};s[e]=s[e]||{},r!==void 0?s[e][t]=Oo(r):delete s[e][t],o=JSON.stringify(s,null,2),Bc.default.writeFileSync(n,o,"utf8")}catch(o){cDe.error("Error on update memos:",o)}}createMemento(e){return{get:(t,r)=>{let n=this.fetchContent(e,t);return n===void 0?r:n},update:async(t,r)=>{await this.update(e,t,r)}}}}});function L4(i,...e){return i=Object(i),e.forEach(t=>{if(t!=null){t=Object(t);for(let r in t){let n=i[r];(n===void 0||n===A4[r]&&!fDe.call(i,r))&&(i[r]=t[r])}}}),i}function wl(i,e){let t={};for(let r of Object.keys(i))e.includes(r)||(t[r]=i[r]);return t}var A4,fDe,oh=I(()=>{A4=Object.prototype,fDe=A4.hasOwnProperty});function vT(i,e){let{range:t,uri:r}=e;i.find(n=>n.uri==r&&rt(n.range,t))==null&&i.push(e)}var jc,r2e,ge,_t=I(()=>{jc=E(G());ie();Te();Gr();r2e=W()("provider-manager"),ge=class{constructor(){this.providers=new Set}hasProvider(e){return this.getProvider(e)!=null}getProvider(e){let t=0,r;for(let n of this.providers){let{selector:o,priority:s}=n,a=b.match(o,e);a!=0&&(typeof s=="number"&&(a=s),!(ar.id==e);return t?t.provider:null}getProviders(e){let t=Array.from(this.providers);return t=t.filter(r=>b.match(r.selector,e)>0),t.sort((r,n)=>b.match(n.selector,e)-b.match(r.selector,e))}toLocations(e){let t=[];for(let r of e)if(!!r)if(jc.Location.is(r))vT(t,r);else if(Array.isArray(r)){for(let n of r)if(jc.Location.is(n))vT(t,n);else if(jc.LocationLink.is(n)){let{targetUri:o,targetSelectionRange:s}=n;vT(t,jc.Location.create(o,s))}}else T.showMessage(`Bad definition ${JSON.stringify(r)}`,"error");return t}}});var zy,d2e,Gy,M4=I(()=>{zy=E(G());_t();it();d2e=W()("codeActionManager"),Gy=class extends ge{constructor(){super(...arguments);this.providerMap=new WeakMap}register(e,t,r,n){let o={id:pe(),selector:e,provider:t,kinds:n,clientId:r};return this.providers.add(o),zy.Disposable.create(()=>{this.providers.delete(o)})}async provideCodeActions(e,t,r,n){let o=this.getProviders(e);if(!o.length)return null;if(r.only){let{only:a}=r;o=o.filter(l=>!(l.kinds&&!l.kinds.some(u=>a.includes(u))))}let s=[];return await Promise.all(o.map(a=>{let{provider:l,id:u}=a;return Promise.resolve(l.provideCodeActions(e,t,r,n)).then(c=>{if(!(!c||c.length==0))for(let f of c)if(zy.Command.is(f)){let p={title:f.title,command:f};s.push(p),this.providerMap.set(p,u)}else{if(r.only){if(!f.kind)continue;let d=!1;for(let h of r.only)if(f.kind.startsWith(h)){d=!0;break}if(!d)continue}s.findIndex(d=>d.title==f.title)==-1&&(this.providerMap.set(f,u),s.push(f))}})})),s}async resolveCodeAction(e,t){if(e.edit!=null)return e;let r=this.providerMap.get(e);if(!r)throw new Error("provider id not found from codeAction");let n=this.getProviderById(r);if(!n||typeof n.resolveCodeAction!="function")return e;let o=await Promise.resolve(n.resolveCodeAction(e,t));return o&&this.providerMap.set(o,r),o||e}dispose(){this.providers=new Set}}});var q4,Vy,N4=I(()=>{q4=E(G());_t();it();oh();Vy=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),q4.Disposable.create(()=>{this.providers.delete(r)})}async provideCodeLenses(e,t){let r=this.getProviders(e);if(!r.length)return null;let n=await Promise.all(r.map(o=>{let{provider:s,id:a}=o;return Promise.resolve(s.provideCodeLenses(e,t)).then(l=>{if(Array.isArray(l))for(let u of l)u.source=a;return l})}));return[].concat(...n)}async resolveCodeLens(e,t){if(e.command)return e;let{source:r}=e,n=this.getProviderById(r);if(!n||typeof n.resolveCodeLens!="function")return e;let o=await Promise.resolve(n.resolveCodeLens(wl(e,["source"]),t));return Object.assign(e,o),e}dispose(){this.providers=new Set}}});var $4,I2e,Ky,B4=I(()=>{$4=E(G());_t();it();I2e=W()("definitionManager"),Ky=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),$4.Disposable.create(()=>{this.providers.delete(r)})}async provideDeclaration(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return await Promise.resolve(o.provideDeclaration(e,t,r))}dispose(){this.providers=new Set}}});var j4,B2e,Jy,U4=I(()=>{j4=E(G());_t();it();B2e=W()("definitionManager"),Jy=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),j4.Disposable.create(()=>{this.providers.delete(r)})}async provideDefinition(e,t,r){let n=this.getProviders(e);if(!n.length)return null;let o=await Promise.all(n.map(s=>{let{provider:a}=s;return Promise.resolve(a.provideDefinition(e,t,r))}));return this.toLocations(o)}dispose(){this.providers=new Set}}});var W4,Yy,H4=I(()=>{W4=E(G());_t();it();Yy=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),W4.Disposable.create(()=>{this.providers.delete(r)})}async provideDocumentColors(e,t){let r=this.getProvider(e);if(!r)return null;let{provider:n}=r;return await Promise.resolve(n.provideDocumentColors(e,t))}async provideColorPresentations(e,t,r){let{range:n,color:o}=e,s=this.getProvider(t);if(!s)return null;let{provider:a}=s;return await Promise.resolve(a.provideColorPresentations(o,{document:t,range:n},r))}dispose(){this.providers=new Set}}});var z4,Xy,G4=I(()=>{z4=E(G());_t();it();Xy=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),z4.Disposable.create(()=>{this.providers.delete(r)})}async provideDocumentHighlights(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return await Promise.resolve(o.provideDocumentHighlights(e,t,r))}dispose(){this.providers=new Set}}});var V4,Zy,K4=I(()=>{V4=E(G());_t();it();Zy=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),V4.Disposable.create(()=>{this.providers.delete(r)})}async _provideDocumentLinks(e,t,r){let{provider:n,id:o}=e,s=await Promise.resolve(n.provideDocumentLinks(t,r));return!s||!s.length?[]:(s.forEach(a=>{a.data=a.data||{},a.data.source=o}),s)}async provideDocumentLinks(e,t){let r=this.getProviders(e);if(r.length==0)return[];let n=await Promise.all(r.map(o=>this._provideDocumentLinks(o,e,t)));return[].concat(...n)}async resolveDocumentLink(e,t){let{data:r}=e;if(!r||!r.source)return null;for(let n of this.providers)if(n.id==r.source){let{provider:o}=n;return e=await Promise.resolve(o.resolveDocumentLink(e,t)),e}return null}dispose(){this.providers=new Set}}});var J4,Qy,Y4=I(()=>{J4=E(G());_t();it();Qy=class extends ge{register(e,t,r){let n={id:pe(),displayName:r,selector:e,provider:t};return this.providers.add(n),J4.Disposable.create(()=>{this.providers.delete(n)})}async provideDocumentSymbols(e,t){let r=this.getProvider(e);if(!r)return null;let{provider:n}=r;return await Promise.resolve(n.provideDocumentSymbols(e,t))||[]}dispose(){this.providers=new Set}}});var X4,eb,Z4=I(()=>{X4=E(G());_t();it();eb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),X4.Disposable.create(()=>{this.providers.delete(r)})}async provideFoldingRanges(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return await Promise.resolve(o.provideFoldingRanges(e,t,r))||[]}dispose(){this.providers=new Set}}});var Q4,tb,ez=I(()=>{Q4=E(G());_t();it();tb=class extends ge{register(e,t,r=0){let n={id:pe(),selector:e,priority:r,provider:t};return this.providers.add(n),Q4.Disposable.create(()=>{this.providers.delete(n)})}handles(e){return this.getProvider(e)!=null}async provideDocumentFormattingEdits(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return await Promise.resolve(o.provideDocumentFormattingEdits(e,t,r))}dispose(){this.providers=new Set}}});var tz,rb,rz=I(()=>{tz=E(G());_t();it();rb=class extends ge{register(e,t,r=0){let n={id:pe(),selector:e,provider:t,priority:r};return this.providers.add(n),tz.Disposable.create(()=>{this.providers.delete(n)})}async provideDocumentRangeFormattingEdits(e,t,r,n){let o=this.getProvider(e);if(!o)return null;let{provider:s}=o;return await Promise.resolve(s.provideDocumentRangeFormattingEdits(e,t,r,n))}dispose(){this.providers=new Set}}});var iz,ib,nz=I(()=>{iz=E(G());_t();it();ib=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),iz.Disposable.create(()=>{this.providers.delete(r)})}async provideHover(e,t,r){let n=this.getProviders(e);if(n.length===0)return null;let o=[];for(let s=0,a=n.length;s{oz=E(G());_t();it();nb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),oz.Disposable.create(()=>{this.providers.delete(r)})}async provideReferences(e,t,r){let n=this.getProviders(e);if(!n.length)return null;let o=await Promise.all(n.map(s=>{let{provider:a}=s;return Promise.resolve(a.provideImplementation(e,t,r))}));return this.toLocations(o)}dispose(){this.providers=new Set}}});var az,cBe,ob,lz=I(()=>{az=E(G());ie();cBe=W()("onTypeFormatManager"),ob=class{constructor(){this.providers=new Set}register(e,t,r){let n={triggerCharacters:r,selector:e,provider:t};return this.providers.add(n),az.Disposable.create(()=>{this.providers.delete(n)})}hasProvider(e){for(let t of this.providers){let{selector:r}=t;if(b.match(r,e)>0)return!0}return!1}getProvider(e,t){for(let r of this.providers){let{triggerCharacters:n,selector:o}=r;if(b.match(o,e)>0&&n.includes(t))return r.provider}return null}async onCharacterType(e,t,r,n){let o=this.getProvider(t,e);if(!o)return;let s=await b.getFormatOptions(t.uri);return await Promise.resolve(o.provideOnTypeFormattingEdits(t,r,e,s,n))}dispose(){this.providers=new Set}}});var uz,sb,cz=I(()=>{uz=E(G());_t();it();sb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),uz.Disposable.create(()=>{this.providers.delete(r)})}async provideSelectionRanges(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return await Promise.resolve(o.provideSelectionRanges(e,t,r))||[]}dispose(){this.providers=new Set}}});var fz,ab,pz=I(()=>{fz=E(G());_t();it();ab=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),fz.Disposable.create(()=>{this.providers.delete(r)})}async provideReferences(e,t,r,n){let o=this.getProviders(e);if(!o.length)return null;let s=await Promise.all(o.map(a=>{let{provider:l}=a;return Promise.resolve(l.provideReferences(e,t,r,n))}));return this.toLocations(s)}dispose(){this.providers=new Set}}});var dz,lb,hz=I(()=>{dz=E(G());_t();it();lb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),dz.Disposable.create(()=>{this.providers.delete(r)})}async provideRenameEdits(e,t,r,n){let o=this.getProvider(e);if(!o)return null;let{provider:s}=o;return await Promise.resolve(s.provideRenameEdits(e,t,r,n))}async prepareRename(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;if(o.prepareRename==null)return null;let s=await Promise.resolve(o.prepareRename(e,t,r));return s==null?!1:s}dispose(){this.providers=new Set}}});var mz,ub,gz=I(()=>{mz=E(G());_t();it();ub=class extends ge{register(e,t,r){let n=r.reduce((s,a)=>s.concat(a.split(/\s*/g)),[]),o={id:pe(),selector:e,provider:t,triggerCharacters:n};return this.providers.add(o),mz.Disposable.create(()=>{this.providers.delete(o)})}shouldTrigger(e,t){let r=this.getProvider(e);if(!r)return!1;let{triggerCharacters:n}=r;return n&&n.indexOf(t)!=-1}async provideSignatureHelp(e,t,r,n){let o=this.getProvider(e);if(!o)return null;let s=await Promise.resolve(o.provider.provideSignatureHelp(e,t,r,n));return s&&s.signatures&&s.signatures.length?s:null}dispose(){this.providers=new Set}}});var vz,cb,yz=I(()=>{vz=E(G());_t();it();cb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),vz.Disposable.create(()=>{this.providers.delete(r)})}async provideTypeDefinition(e,t,r){let n=this.getProviders(e);if(!n.length)return null;let o=await Promise.all(n.map(s=>{let{provider:a}=s;return Promise.resolve(a.provideTypeDefinition(e,t,r))}));return this.toLocations(o)}dispose(){this.providers=new Set}}});var bz,fb,wz=I(()=>{it();bz=E(G()),fb=class{constructor(){this.providers=new Map}register(e){let t=pe();return this.providers.set(t,e),bz.Disposable.create(()=>{this.providers.delete(t)})}async provideWorkspaceSymbols(e,t){let r=Array.from(this.providers.entries());if(!r.length)return[];let n=[];return await Promise.all(r.map(o=>{let[s,a]=o;return Promise.resolve(a.provideWorkspaceSymbols(e,t)).then(l=>{l&&(l.source=s,n.push(...l))})})),n}async resolveWorkspaceSymbol(e,t){let r=this.providers.get(e.source);if(!!r)return typeof r.resolveWorkspaceSymbol!="function"?Promise.resolve(e):await Promise.resolve(r.resolveWorkspaceSymbol(e,t))}hasProvider(){return this.providers.size>0}dispose(){this.providers=new Map}}});var Dz,pb,xz=I(()=>{Dz=E(G());ie();_t();it();pb=class extends ge{register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),Dz.Disposable.create(()=>{this.providers.delete(r)})}async prepareCallHierarchy(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return o.prepareCallHierarchy===null?null:await Promise.resolve(o.prepareCallHierarchy(e,t,r))}async provideCallHierarchyOutgoingCalls(e,t){let{document:r}=await b.getCurrentState(),n=this.getProvider(r);if(!n)return null;let{provider:o}=n;return o.provideCallHierarchyOutgoingCalls===null?null:await Promise.resolve(o.provideCallHierarchyOutgoingCalls(e,t))}async provideCallHierarchyIncomingCalls(e,t){let{document:r}=await b.getCurrentState(),n=this.getProvider(r);if(!n)return null;let{provider:o}=n;return o.provideCallHierarchyIncomingCalls(e,t)===null?null:await Promise.resolve(o.provideCallHierarchyIncomingCalls(e,t))}dispose(){this.providers=new Set}}});var Sz,x3e,db,Cz=I(()=>{it();Sz=E(G());_t();x3e=W()("semanticTokensManager"),db=class extends ge{register(e,t,r){let n={id:pe(),selector:e,legend:r,provider:t};return this.providers.add(n),Sz.Disposable.create(()=>{this.providers.delete(n)})}getLegend(e){let t=this.getProvider(e);if(!!t)return t.provider.legend||t.legend}hasSemanticTokensEdits(e){let t=this.getProvider(e);return t?typeof t.provider.provideDocumentSemanticTokensEdits=="function":!1}async provideDocumentSemanticTokens(e,t){let r=this.getProvider(e);if(!r)return null;let{provider:n}=r;return n.provideDocumentSemanticTokens?await Promise.resolve(n.provideDocumentSemanticTokens(e,t)):null}async provideDocumentSemanticTokensEdits(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return o.provideDocumentSemanticTokensEdits?await Promise.resolve(o.provideDocumentSemanticTokensEdits(e,t,r)):null}dispose(){this.providers=new Set}}});var Ez,F3e,hb,_z=I(()=>{it();Ez=E(G());_t();F3e=W()("semanticTokensRangeManager"),hb=class extends ge{register(e,t,r){let n={id:pe(),selector:e,legend:r,provider:t};return this.providers.add(n),Ez.Disposable.create(()=>{this.providers.delete(n)})}getLegend(e){let t=this.getProvider(e);if(!!t)return t.provider.legend||t.legend}async provideDocumentRangeSemanticTokens(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return o.provideDocumentRangeSemanticTokens===null?null:await Promise.resolve(o.provideDocumentRangeSemanticTokens(e,t,r))}dispose(){this.providers=new Set}}});var Tz,j3e,mb,Pz=I(()=>{it();Tz=E(G());_t();j3e=W()("linkedEditingManager"),mb=class extends ge{dispose(){this.providers=new Set}register(e,t){let r={id:pe(),selector:e,provider:t};return this.providers.add(r),Tz.Disposable.create(()=>{this.providers.delete(r)})}async provideLinkedEditingRanges(e,t,r){let n=this.getProvider(e);if(!n)return null;let{provider:o}=n;return o.provideLinkedEditingRanges?await Promise.resolve(o.provideLinkedEditingRanges(e,t,r)):null}}});function kz(i){let{line:e,linenr:t,colnr:r}=i,n=er(e,0,r-1);return{line:t-1,character:n.length}}function Iz(i,e,t){let{label:r,data:n,insertTextFormat:o,insertText:s,textEdit:a}=i,l,u;if(n&&typeof n.word=="string")return n.word;if(a){let{range:c}=a;if(u=a.newText,c&&c.start.line==c.end.line){let{line:f,col:p,colnr:d}=e,h=td(f,p);if(c.start.character>h)u=f.slice(h,c.start.character)+u;else{let m=f.slice(c.start.character,h);m.length&&u.startsWith(m)&&(u=u.slice(m.length))}if(h=td(f,d-1),c.end.character>h){let m=f.slice(h,c.end.character);u.endsWith(m)&&(u=u.slice(0,-m.length))}}}else u=s;if(o==Rz.InsertTextFormat.Snippet&&u&&u.includes("$")){let f=new Ms().text(u);l=f?Oz(f,t):r}else l=Oz(u,t)||r;return l||""}function Fz(i,e,t=""){return e.get(i)||t}function Oz(i,e){if(!i)return"";for(let t=0;t{Rz=E(G());Uv();Ct();J3e=W()("util-complete")});var le,sh,Lz,B,ht=I(()=>{le=E(G());$n();el();M4();N4();B4();U4();H4();G4();K4();Y4();Z4();ez();rz();nz();sz();lz();cz();pz();hz();gz();yz();wz();xz();Cz();_z();Pz();xl();Dl();Pi();Az();Kr();Ct();Te();ie();sh=W()("languages"),Lz=class{constructor(){this.onTypeFormatManager=new ob;this.documentLinkManager=new Zy;this.documentColorManager=new Yy;this.foldingRangeManager=new eb;this.renameManager=new lb;this.formatManager=new tb;this.codeActionManager=new Gy;this.workspaceSymbolsManager=new fb;this.formatRangeManager=new rb;this.hoverManager=new ib;this.signatureManager=new ub;this.documentSymbolManager=new Qy;this.documentHighlightManager=new Xy;this.definitionManager=new Jy;this.declarationManager=new Ky;this.typeDefinitionManager=new cb;this.referenceManager=new ab;this.implementationManager=new nb;this.codeLensManager=new Vy;this.selectionRangeManager=new sb;this.callHierarchyManager=new pb;this.semanticTokensManager=new db;this.semanticTokensRangeManager=new hb;this.linkedEditingManager=new mb;this.cancelTokenSource=new le.CancellationTokenSource}init(){this.loadCompleteConfig(),b.onDidChangeConfiguration(e=>{e.affectsConfiguration("suggest")&&this.loadCompleteConfig()},this)}get nvim(){return b.nvim}get detailField(){let{detailField:e,floatEnable:t}=this.completeConfig;return e=="preview"&&(!t||!b.floatSupported)?"menu":"preview"}loadCompleteConfig(){let e=b.getConfiguration("suggest"),t=e.get("completionItemKindLabels",{});this.completionItemKindMap=new Map([[le.CompletionItemKind.Text,t.text||"v"],[le.CompletionItemKind.Method,t.method||"f"],[le.CompletionItemKind.Function,t.function||"f"],[le.CompletionItemKind.Constructor,typeof t.constructor=="function"?"f":t["constructor"]],[le.CompletionItemKind.Field,t.field||"m"],[le.CompletionItemKind.Variable,t.variable||"v"],[le.CompletionItemKind.Class,t.class||"C"],[le.CompletionItemKind.Interface,t.interface||"I"],[le.CompletionItemKind.Module,t.module||"M"],[le.CompletionItemKind.Property,t.property||"m"],[le.CompletionItemKind.Unit,t.unit||"U"],[le.CompletionItemKind.Value,t.value||"v"],[le.CompletionItemKind.Enum,t.enum||"E"],[le.CompletionItemKind.Keyword,t.keyword||"k"],[le.CompletionItemKind.Snippet,t.snippet||"S"],[le.CompletionItemKind.Color,t.color||"v"],[le.CompletionItemKind.File,t.file||"F"],[le.CompletionItemKind.Reference,t.reference||"r"],[le.CompletionItemKind.Folder,t.folder||"F"],[le.CompletionItemKind.EnumMember,t.enumMember||"m"],[le.CompletionItemKind.Constant,t.constant||"v"],[le.CompletionItemKind.Struct,t.struct||"S"],[le.CompletionItemKind.Event,t.event||"E"],[le.CompletionItemKind.Operator,t.operator||"O"],[le.CompletionItemKind.TypeParameter,t.typeParameter||"T"]]),this.completeConfig={defaultKindText:t.default||"",priority:e.get("languageSourcePriority",99),echodocSupport:e.get("echodocSupport",!1),snippetsSupport:e.get("snippetsSupport",!0),detailField:e.get("detailField","preview"),detailMaxLength:e.get("detailMaxLength",100),floatEnable:e.get("floatEnable",!0),invalidInsertCharacters:e.get("invalidInsertCharacters",["(","<","{","[","\r",` +`])}}hasFormatProvider(e){return!!(this.formatManager.hasProvider(e)||this.formatRangeManager.hasProvider(e))}registerOnTypeFormattingEditProvider(e,t,r){return this.onTypeFormatManager.register(e,t,r)}registerCompletionItemProvider(e,t,r,n,o=[],s,a){r=typeof r=="string"?[r]:r;let l=this.createCompleteSource(e,t,n,r,o,a||[],s);return st.addSource(l),sh.debug("created service source",e),{dispose:()=>{st.removeSource(e)}}}registerCodeActionProvider(e,t,r,n){return this.codeActionManager.register(e,t,r,n)}registerHoverProvider(e,t){return this.hoverManager.register(e,t)}registerSelectionRangeProvider(e,t){return this.selectionRangeManager.register(e,t)}registerSignatureHelpProvider(e,t,r){return this.signatureManager.register(e,t,r)}registerDocumentSymbolProvider(e,t,r){return this.documentSymbolManager.register(e,t,r==null?void 0:r.label)}registerFoldingRangeProvider(e,t){return this.foldingRangeManager.register(e,t)}registerDocumentHighlightProvider(e,t){return this.documentHighlightManager.register(e,t)}registerCodeLensProvider(e,t){return this.codeLensManager.register(e,t)}registerDocumentLinkProvider(e,t){return this.documentLinkManager.register(e,t)}registerDocumentColorProvider(e,t){return this.documentColorManager.register(e,t)}registerDefinitionProvider(e,t){return this.definitionManager.register(e,t)}registerDeclarationProvider(e,t){return this.declarationManager.register(e,t)}registerTypeDefinitionProvider(e,t){return this.typeDefinitionManager.register(e,t)}registerImplementationProvider(e,t){return this.implementationManager.register(e,t)}registerReferencesProvider(e,t){return this.referenceManager.register(e,t)}registerRenameProvider(e,t){return this.renameManager.register(e,t)}registerWorkspaceSymbolProvider(e){return arguments.length>1&&typeof arguments[1].provideWorkspaceSymbols=="function"&&(e=arguments[1]),this.workspaceSymbolsManager.register(e)}registerDocumentFormatProvider(e,t,r=0){return this.formatManager.register(e,t,r)}registerDocumentRangeFormatProvider(e,t,r=0){return this.formatRangeManager.register(e,t,r)}registerCallHierarchyProvider(e,t){return this.callHierarchyManager.register(e,t)}registerDocumentSemanticTokensProvider(e,t,r){return this.semanticTokensManager.register(e,t,r)}registerDocumentRangeSemanticTokensProvider(e,t,r){return this.semanticTokensRangeManager.register(e,t,r)}registerLinkedEditingRangeProvider(e,t){return this.linkedEditingManager.register(e,t)}shouldTriggerSignatureHelp(e,t){return this.signatureManager.shouldTrigger(e,t)}async getHover(e,t,r){return await this.hoverManager.provideHover(e,t,r)}async getSignatureHelp(e,t,r,n){return await this.signatureManager.provideSignatureHelp(e,t,r,n)}async getDefinition(e,t,r){return this.definitionManager.hasProvider(e)?await this.definitionManager.provideDefinition(e,t,r):null}async getDeclaration(e,t,r){return this.declarationManager.hasProvider(e)?await this.declarationManager.provideDeclaration(e,t,r):null}async getTypeDefinition(e,t,r){return this.typeDefinitionManager.hasProvider(e)?await this.typeDefinitionManager.provideTypeDefinition(e,t,r):null}async getImplementation(e,t,r){return this.implementationManager.hasProvider(e)?await this.implementationManager.provideReferences(e,t,r):null}async getReferences(e,t,r,n){return this.referenceManager.hasProvider(e)?await this.referenceManager.provideReferences(e,r,t,n):null}async getDocumentSymbol(e,t){return await this.documentSymbolManager.provideDocumentSymbols(e,t)}async getSelectionRanges(e,t,r){return await this.selectionRangeManager.provideSelectionRanges(e,t,r)}async getWorkspaceSymbols(e,t){return e=e||"",await this.workspaceSymbolsManager.provideWorkspaceSymbols(e,t)}async resolveWorkspaceSymbol(e,t){return await this.workspaceSymbolsManager.resolveWorkspaceSymbol(e,t)}async prepareRename(e,t,r){return await this.renameManager.prepareRename(e,t,r)}async provideRenameEdits(e,t,r,n){return await this.renameManager.provideRenameEdits(e,t,r,n)}async provideDocumentFormattingEdits(e,t,r){if(!this.formatManager.hasProvider(e)){if(!this.formatRangeManager.hasProvider(e))return null;let o=e.positionAt(e.getText().length),s=le.Range.create(le.Position.create(0,0),o);return await this.provideDocumentRangeFormattingEdits(e,s,t,r)}return await this.formatManager.provideDocumentFormattingEdits(e,t,r)}async provideDocumentRangeFormattingEdits(e,t,r,n){return this.formatRangeManager.hasProvider(e)?await this.formatRangeManager.provideDocumentRangeFormattingEdits(e,t,r,n):null}async getCodeActions(e,t,r,n){return await this.codeActionManager.provideCodeActions(e,t,r,n)}async getDocumentHighLight(e,t,r){return await this.documentHighlightManager.provideDocumentHighlights(e,t,r)}async getDocumentLinks(e,t){return this.documentLinkManager.hasProvider(e)?await this.documentLinkManager.provideDocumentLinks(e,t)||[]:null}async resolveDocumentLink(e){return await this.documentLinkManager.resolveDocumentLink(e,this.token)}async provideDocumentColors(e,t){return await this.documentColorManager.provideDocumentColors(e,t)}async provideFoldingRanges(e,t,r){return this.foldingRangeManager.hasProvider(e)?await this.foldingRangeManager.provideFoldingRanges(e,t,r):null}async provideColorPresentations(e,t,r){return await this.documentColorManager.provideColorPresentations(e,t,r)}async getCodeLens(e,t){return await this.codeLensManager.provideCodeLenses(e,t)}async resolveCodeLens(e,t){return await this.codeLensManager.resolveCodeLens(e,t)}async resolveCodeAction(e,t){return await this.codeActionManager.resolveCodeAction(e,t)}async provideDocumentOnTypeEdits(e,t,r,n){return this.onTypeFormatManager.onCharacterType(e,t,r,n)}canFormatOnType(e,t){return this.onTypeFormatManager.getProvider(t,e)!=null}async prepareCallHierarchy(e,t,r){return this.callHierarchyManager.prepareCallHierarchy(e,t,r)}async provideIncomingCalls(e,t){return this.callHierarchyManager.provideCallHierarchyIncomingCalls(e,t)}async provideOutgoingCalls(e,t){return this.callHierarchyManager.provideCallHierarchyOutgoingCalls(e,t)}getLegend(e){return this.semanticTokensManager.getLegend(e)}hasSemanticTokensEdits(e){return this.semanticTokensManager.hasSemanticTokensEdits(e)}async provideDocumentSemanticTokens(e,t){return this.semanticTokensManager.provideDocumentSemanticTokens(e,t)}async provideDocumentSemanticTokensEdits(e,t,r){return this.semanticTokensManager.provideDocumentSemanticTokensEdits(e,t,r)}async provideDocumentRangeSemanticTokens(e,t,r){return this.semanticTokensRangeManager.provideDocumentRangeSemanticTokens(e,t,r)}hasLinkedEditing(e){return this.linkedEditingManager.hasProvider(e)}async provideLinkedEdits(e,t,r){return this.linkedEditingManager.provideLinkedEditingRanges(e,t,r)}hasProvider(e,t){switch(e){case"formatOnType":return this.onTypeFormatManager.hasProvider(t);case"rename":return this.renameManager.hasProvider(t);case"onTypeEdit":return this.onTypeFormatManager.hasProvider(t);case"documentLink":return this.documentLinkManager.hasProvider(t);case"documentColor":return this.documentColorManager.hasProvider(t);case"foldingRange":return this.foldingRangeManager.hasProvider(t);case"format":return this.formatManager.hasProvider(t)||this.formatRangeManager.hasProvider(t);case"codeAction":return this.codeActionManager.hasProvider(t);case"workspaceSymbols":return this.workspaceSymbolsManager.hasProvider();case"formatRange":return this.formatRangeManager.hasProvider(t);case"hover":return this.hoverManager.hasProvider(t);case"signature":return this.signatureManager.hasProvider(t);case"documentSymbol":return this.documentSymbolManager.hasProvider(t);case"documentHighlight":return this.documentHighlightManager.hasProvider(t);case"definition":return this.definitionManager.hasProvider(t);case"declaration":return this.declarationManager.hasProvider(t);case"typeDefinition":return this.typeDefinitionManager.hasProvider(t);case"reference":return this.referenceManager.hasProvider(t);case"implementation":return this.implementationManager.hasProvider(t);case"codeLens":return this.codeLensManager.hasProvider(t);case"selectionRange":return this.selectionRangeManager.hasProvider(t);case"callHierarchy":return this.callHierarchyManager.hasProvider(t);case"semanticTokens":return this.semanticTokensManager.hasProvider(t);case"linkedEditing":return this.linkedEditingManager.hasProvider(t);default:throw new Error(`${e} not supported.`)}}dispose(){}createDiagnosticCollection(e){return At.create(e)}createCompleteSource(e,t,r,n,o,s,a){let l,u=[],c=typeof r.resolveCompletionItem=="function";a=a==null?this.completeConfig.priority:a;let f=new Set,p={name:e,priority:a,shortcut:t,enable:!0,sourceType:Ti.Service,documentSelector:n,triggerCharacters:o||[],toggle:()=>{p.enable=!p.enable},doComplete:async(d,h)=>{let{triggerCharacter:m,bufnr:w}=d;l=d.filetype,f=new Set;let v=o&&o.includes(m),D=le.CompletionTriggerKind.Invoked;if(d.triggerForInComplete?D=le.CompletionTriggerKind.TriggerForIncompleteCompletions:v&&(D=le.CompletionTriggerKind.TriggerCharacter),h.isCancellationRequested)return null;let x=kz(d),S={triggerKind:D,option:d};v&&(S.triggerCharacter=m);let P;try{let q=b.getDocument(w);P=await Promise.resolve(r.provideCompletionItems(q.textDocument,x,h,S))}catch(q){return sh.error(`Complete "${e}" error:`,q),null}if(!P||h.isCancellationRequested||(u=Array.isArray(P)?P:P.items,!u||u.length==0))return null;let A=this.getStartColumn(d.line,u),R=Object.assign({},d),M;A!=null&&(A{let O=this.convertVimCompleteItem(q,t,R,M);return O.index=F,O});return{startcol:A,isIncomplete:!!P.isIncomplete,items:L}},onCompleteResolve:async(d,h)=>{let{index:m}=d,w=u[m];if(!(!w||f.has(m))){if(c){h.onCancellationRequested(()=>{f.delete(m)}),f.add(m);try{let v=await Promise.resolve(r.resolveCompletionItem(Object.assign({},w),h));if(h.isCancellationRequested)return;v?Object.assign(w,v):f.delete(m)}catch(v){f.delete(m),sh.error(`Error on complete resolve: ${v.message}`,v.stack)}}if(d.documentation==null){let{documentation:v,detail:D}=w;if(!v&&!D)return;let x=[];if(D&&!d.detailShown&&D!=d.word&&(D=D.replace(/\n\s*/g," "),D.length)){let S=/^[\w-\s.,\t]+$/.test(D);x.push({filetype:S?"txt":l,content:D})}v&&(typeof v=="string"?x.push({filetype:"markdown",content:v}):v.value&&x.push({filetype:v.kind=="markdown"?"markdown":"txt",content:v.value})),d.documentation=x}}},onCompleteDone:async(d,h)=>{let m=u[d.index];if(!m)return;let w=h.linenr-1;m.insertText!=null&&!m.textEdit&&(m.textEdit={range:le.Range.create(w,h.col,w,h.colnr-1),newText:m.insertText}),d.line&&Object.assign(h,{line:d.line});try{let v=await this.applyTextEdit(m,d.word,h),{additionalTextEdits:D}=m;if(D&&m.textEdit){let x=le.InsertReplaceEdit.is(m.textEdit)?m.textEdit.replace:m.textEdit.range;D=D.filter(S=>{let P=le.InsertReplaceEdit.is(S)?S.replace:S.range;return tv(x,P)?(sh.error("Filtered overlap additionalTextEdit:",S),!1):!0})}await this.applyAdditionalEdits(D,h.bufnr,v),v&&await ir.selectCurrentPlaceholder(),m.command&&be.has(m.command.command)&&be.execute(m.command)}catch(v){sh.error("Error on CompleteDone:",v)}},shouldCommit:(d,h)=>{let m=u[d.index];return m?(m.commitCharacters||s).includes(h):!1}};return p}get token(){return this.cancelTokenSource=new le.CancellationTokenSource,this.cancelTokenSource.token}async applyTextEdit(e,t,r){let{nvim:n}=this,{textEdit:o}=e;if(!o)return!1;let{line:s,bufnr:a,linenr:l}=r,u=b.getDocument(a);if(!u)return!1;let c=o.newText,f=le.InsertReplaceEdit.is(o)?o.replace:o.range,p=e.insertTextFormat===le.InsertTextFormat.Snippet,d=s.substr(0,f.start.character),h=s.substr(f.end.character);if(p&&this.completeConfig.snippetsSupport===!1&&(p=!1,c=t),p){let v=u.getline(l-1).length-h.length,D=le.Range.create(l-1,f.start.character,l-1,v);return await ir.insertSnippet(c,!1,D,e.insertTextMode)}let m=`${d}${c}${h}`.split(/\r?\n/);if(m.length==1)await n.call("coc#util#setline",[l,m[0]]),await T.moveTo(le.Position.create(l-1,(d+c).length));else{await n.createBuffer(a).setLines(m,{start:l-1,end:l,strictIndexing:!1});let v=l-1+m.length-1,D=m[m.length-1].length-h.length;await T.moveTo({line:v,character:D})}return!1}async applyAdditionalEdits(e,t,r){if(!e||e.length==0)return;let n=b.getDocument(t);if(!n)return;await n.patchChange(!0);let o=null,s=await T.getCursorPosition();r||(o=Vu(s,e)),await n.applyEdits(e),o&&await T.moveTo(le.Position.create(s.line+o.line,s.character+o.character))}getStartColumn(e,t){let r=t[0];if(!r.textEdit)return null;let{newText:n}=r.textEdit,o=le.InsertReplaceEdit.is(r.textEdit)?r.textEdit.replace:r.textEdit.range,{character:s}=o.start;if(n.length0,c=e.insertTextFormat===le.InsertTextFormat.Snippet||u,f=e.label.trim(),p={word:Iz(e,r,a),abbr:f,menu:`[${t}]`,kind:Fz(e.kind,this.completionItemKindMap,this.completeConfig.defaultKindText),sortText:e.sortText||null,sourceScore:e.score||null,filterText:e.filterText||f,isSnippet:c,dup:e.data&&e.data.dup==0?0:1};if(n&&(p.filterText.startsWith(n)||e.textEdit&&e.textEdit.newText.startsWith(n)&&(p.filterText=e.textEdit.newText.split(/\r?\n/)[0]),!e.textEdit&&!p.word.startsWith(n)&&(p.word=`${n}${p.word}`)),e&&e.detail&&l!="preview"){let h=e.detail.replace(/\n\s*/g," ");me(h)=2&&e.kind<=4){let h=[e.detail||"",p.abbr,p.word];for(let m of h)if(m.includes("(")){p.signature=m;break}}return e.preselect&&(p.preselect=!0),((d=e.data)==null?void 0:d.optional)&&(p.abbr=p.abbr+"?"),p}},B=new Lz});var no,ah=I(()=>{Hu();Ct();no=class{constructor(e=-1){this.srcId=e;this.lines=[];this.highlights=[]}addLine(e,t){if(e.includes(` +`)){for(let r of e.split(/\r?\n/))this.addLine(r,t);return}if(t&&this.highlights.push({line:this.lines.length,colStart:e.match(/^\s*/)[0].length,colEnd:me(e),hlGroup:t}),e.includes("")){let r=Wu(e);for(let n of r.highlights){let{span:o,hlGroup:s}=n;o[0]!=o[1]&&this.highlights.push({line:this.lines.length,colStart:o[0],colEnd:o[1],hlGroup:s})}this.lines.push(r.line)}else this.lines.push(e)}addLines(e){this.lines.push(...e)}addText(e,t){let{lines:r}=this,n=r[r.length-1]||"";if(t){let o=me(n);this.highlights.push({line:r.length?r.length-1:0,colStart:o,colEnd:o+me(e),hlGroup:t})}r.length?r[r.length-1]=`${n}${e}`:r.push(e)}get length(){return this.lines.length}getline(e){return this.lines[e]||""}render(e,t=0,r=-1){e.setLines(this.lines,{start:t,end:r,strictIndexing:!1},!0);for(let n of this.highlights)e.addHighlight({hlGroup:n.hlGroup,colStart:n.colStart,colEnd:n.colEnd==null?-1:n.colEnd,line:t+n.line,srcId:this.srcId}).logError()}}});var qz=y((xUe,Mz)=>{"use strict";Mz.exports=G()});function $z(i,e){if(!i.killed)if(pDe)try{let t={stdio:["pipe","pipe","ignore"]};return e&&(t.cwd=e),lh.execFileSync("taskkill",["/T","/F","/PID",i.pid.toString()],t),!0}catch(t){return!1}else if(hDe||dDe)try{let t=(0,gb.join)(mDe,"bin/terminateProcess.sh");return Nz.default.existsSync(t)?!lh.spawnSync(t,[i.pid.toString()]).error:(console.error(`"${t}" not found`),!1)}catch(t){return!1}else return i.kill("SIGKILL"),!0}var lh,gb,Nz,pDe,dDe,hDe,mDe,Bz=I(()=>{lh=E(require("child_process")),gb=E(require("path")),Nz=E(require("fs")),pDe=process.platform==="win32",dDe=process.platform==="darwin",hDe=process.platform==="linux",mDe=(0,gb.dirname)(__dirname)});var jz,AUe,uh,yT=I(()=>{jz=E(G());ye();Te();"use strict";AUe=W()("language-client-progressPart"),uh=class{constructor(e,t,r){this.client=e;this.token=t;this.disposables=[];this._cancelled=!1;this.statusBarItem=T.createStatusBarItem(99,{progress:!0}),this.disposables.push(e.onProgress(jz.WorkDoneProgress.type,this.token,n=>{switch(n.kind){case"begin":this.begin(n);break;case"report":this.report(n);break;case"end":this.done(n.message),r&&r(this);break}}))}begin(e){typeof this.title!="string"&&(this.title=e.title,this.report(e))}report(e){let t=this.statusBarItem,r=[];this.title&&r.push(this.title),typeof e.percentage=="number"&&r.push(e.percentage.toFixed(0)+"%"),e.message&&r.push(e.message),t.text=r.join(" "),t.show()}cancel(){this._cancelled||(this._cancelled=!0,J(this.disposables))}done(e){if(this._cancelled)return;let t=this.statusBarItem;t.text=`${this.title} ${e||"finished"}`,setTimeout(()=>{t.dispose()},300),this.cancel()}}});var bT,wT,Uz=I(()=>{bT=E(G()),wT=class{constructor(e){this.defaultDelay=e,this.timeout=void 0,this.completionPromise=void 0,this.onSuccess=void 0,this.task=void 0}trigger(e,t=this.defaultDelay){return this.task=e,t>=0&&this.cancelTimeout(),this.completionPromise||(this.completionPromise=new Promise(r=>{this.onSuccess=r}).then(()=>{this.completionPromise=void 0,this.onSuccess=void 0;let r=this.task();return this.task=void 0,r})),(t>=0||this.timeout===void 0)&&(this.timeout=(0,bT.RAL)().timer.setTimeout(()=>{this.timeout=void 0,this.onSuccess(void 0)},t>=0?t:this.defaultDelay)),this.completionPromise}forceDelivery(){if(!this.completionPromise)return;this.cancelTimeout();let e=this.task();return this.completionPromise=void 0,this.onSuccess=void 0,this.task=void 0,e}isTriggered(){return this.timeout!==void 0}cancel(){this.cancelTimeout(),this.completionPromise=void 0}dispose(){this.cancelTimeout()}cancelTimeout(){this.timeout!==void 0&&((0,bT.RAL)().timer.clearTimeout(this.timeout),this.timeout=void 0)}}});function Wz(i){return{uri:i.uri,languageId:i.languageId,version:i.version,text:i.getText()}}function Hz(i){return{textDocument:{uri:i.uri}}}function zz(i){return{textDocument:{uri:i.uri,version:i.version},contentChanges:[{text:i.getText()}]}}function DT(i){return{textDocument:vb(i.document),reason:i.reason}}function vb(i){return{uri:i.uri,version:i.version}}function Gz(i,e){let t={textDocument:vb(i)};return e&&(t.text=i.getText()),t}function ch(i){return i.toString()}function Vz(i,e,t){return{textDocument:{uri:i.uri},position:e,context:wl(t,["option"])}}function hi(i,e){return{textDocument:{uri:i.uri},position:e}}function Kz(i,e,t){return{textDocument:Sl(i),position:e,context:t}}function Sl(i){return{uri:i.uri}}function Jz(i,e,t){return{textDocument:{uri:i.uri},position:e,context:{includeDeclaration:t.includeDeclaration}}}function Yz(i){return{textDocument:{uri:i.uri}}}function Xz(i){return{textDocument:{uri:i.uri}}}var Zs=I(()=>{oh()});function We(){return pe()}var yb=I(()=>{it()});function gDe(i,e,t,r,n){let o=new Qz,s=(0,C.createProtocolConnection)(i,e,o,n);return s.onError(l=>{t(l[0],l[1],l[2])}),s.onClose(r),{listen:()=>s.listen(),sendRequest:(l,...u)=>s.sendRequest(Le(l)?l:l.method,...u),onRequest:(l,u)=>s.onRequest(Le(l)?l:l.method,u),sendNotification:(l,u)=>s.sendNotification(Le(l)?l:l.method,u),onNotification:(l,u)=>s.onNotification(Le(l)?l:l.method,u),onProgress:s.onProgress,sendProgress:s.sendProgress,trace:(l,u,c)=>{let f={sendNotification:!1,traceFormat:C.TraceFormat.Text};c===void 0?s.trace(l,u,f):(Fo(c),s.trace(l,u,c))},initialize:l=>s.sendRequest(C.InitializeRequest.type,l),shutdown:()=>s.sendRequest(C.ShutdownRequest.type,void 0),exit:()=>s.sendNotification(C.ExitNotification.type),onLogMessage:l=>s.onNotification(C.LogMessageNotification.type,l),onShowMessage:l=>s.onNotification(C.ShowMessageNotification.type,l),onTelemetry:l=>s.onNotification(C.TelemetryEventNotification.type,l),didChangeConfiguration:l=>s.sendNotification(C.DidChangeConfigurationNotification.type,l),didChangeWatchedFiles:l=>s.sendNotification(C.DidChangeWatchedFilesNotification.type,l),didOpenTextDocument:l=>s.sendNotification(C.DidOpenTextDocumentNotification.type,l),didChangeTextDocument:l=>s.sendNotification(C.DidChangeTextDocumentNotification.type,l),didCloseTextDocument:l=>s.sendNotification(C.DidCloseTextDocumentNotification.type,l),didSaveTextDocument:l=>s.sendNotification(C.DidSaveTextDocumentNotification.type,l),onDiagnostics:l=>s.onNotification(C.PublishDiagnosticsNotification.type,l),dispose:()=>s.dispose()}}function ne(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var xT,C,Zz,Qs,Qz,e9,Uc,zo,t9,Ai,Li,Se,r9,vDe,i9,ST,oo,n9,o9,s9,a9,l9,u9,c9,$e,f9,p9,d9,h9,m9,g9,v9,y9,b9,w9,D9,x9,S9,C9,E9,_9,T9,P9,fh,CT,bb,dn=I(()=>{xT=E(require("path")),C=E(G());Ze();$n();ht();Vt();Yi();oh();Te();ie();Dl();yT();Uz();Zz=E(require("os"));Zs();yb();Qs=W()("language-client-client"),Qz=class{error(e){Qs.error(e)}warn(e){Qs.warn(e)}info(e){Qs.info(e)}log(e){Qs.log(e)}},e9=class{error(e){}warn(e){}info(e){}log(e){}};(function(t){t[t.Continue=1]="Continue",t[t.Shutdown=2]="Shutdown"})(Uc||(Uc={}));(function(t){t[t.DoNotRestart=1]="DoNotRestart",t[t.Restart=2]="Restart"})(zo||(zo={}));t9=class{constructor(e,t){this.name=e;this.maxRestartCount=t;this.restarts=[]}error(e,t,r){return r&&r<=3?1:2}closed(){return this.restarts.push(Date.now()),this.restarts.length0)return!0;return!1}register(e){!e.registerOptions.documentSelector||(this._listener||(this._listener=this._event(this.callback,this)),this._selectors.set(e.id,e.registerOptions.documentSelector))}callback(e){(!this._selectorFilter||this._selectorFilter(this._selectors.values(),e))&&(this._middleware?this._middleware(e,t=>this._client.sendNotification(this._type,this._createParams(t))):this._client.sendNotification(this._type,this._createParams(e)),this.notificationSent(e))}notificationSent(e){}unregister(e){this._selectors.delete(e),this._selectors.size===0&&this._listener&&(this._listener.dispose(),this._listener=void 0)}dispose(){this._selectors.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getProvider(e){for(let t of this._selectors.values())if(b.match(t,e))return{send:r=>{this.callback(r)}}}},n9=class extends oo{constructor(e,t){super(e,b.onDidOpenTextDocument,C.DidOpenTextDocumentNotification.type,e.clientOptions.middleware.didOpen,r=>({textDocument:Wz(r)}),oo.textDocumentFilter);this._syncedDocuments=t}get registrationType(){return C.DidOpenTextDocumentNotification.type}fillClientCapabilities(e){ne(ne(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;t&&r&&r.openClose&&this.register({id:We(),registerOptions:{documentSelector:t}})}register(e){if(super.register(e),!e.registerOptions.documentSelector)return;let t=e.registerOptions.documentSelector;b.textDocuments.forEach(r=>{let n=r.uri.toString();if(!this._syncedDocuments.has(n)&&b.match(t,r)>0){let o=this._client.clientOptions.middleware,s=a=>{this._client.sendNotification(this._type,this._createParams(a))};o.didOpen?o.didOpen(r,s):s(r),this._syncedDocuments.set(n,r)}})}notificationSent(e){super.notificationSent(e),this._syncedDocuments.set(e.uri.toString(),e)}},o9=class extends oo{constructor(e,t){super(e,b.onDidCloseTextDocument,C.DidCloseTextDocumentNotification.type,e.clientOptions.middleware.didClose,r=>Hz(r),oo.textDocumentFilter);this._syncedDocuments=t}get registrationType(){return C.DidCloseTextDocumentNotification.type}fillClientCapabilities(e){ne(ne(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;t&&r&&r.openClose&&this.register({id:We(),registerOptions:{documentSelector:t}})}notificationSent(e){super.notificationSent(e),this._syncedDocuments.delete(e.uri.toString())}unregister(e){let t=this._selectors.get(e);super.unregister(e);let r=this._selectors.values();this._syncedDocuments.forEach(n=>{if(b.match(t,n)>0&&!this._selectorFilter(r,n)){let o=this._client.clientOptions.middleware,s=a=>{this._client.sendNotification(this._type,this._createParams(a))};this._syncedDocuments.delete(n.uri.toString()),o.didClose?o.didClose(n,s):s(n)}})}},s9=class{constructor(e){this._client=e;this._changeData=new Map}get registrationType(){return C.DidChangeTextDocumentNotification.type}fillClientCapabilities(e){ne(ne(e,"textDocument"),"synchronization").dynamicRegistration=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;t&&r&&r.change!==void 0&&r.change!==C.TextDocumentSyncKind.None&&this.register({id:We(),registerOptions:Object.assign({},{documentSelector:t},{syncKind:r.change})})}register(e){!e.registerOptions.documentSelector||(this._listener||(this._listener=b.onDidChangeTextDocument(this.callback,this)),this._changeData.set(e.id,{documentSelector:e.registerOptions.documentSelector,syncKind:e.registerOptions.syncKind}))}callback(e){if(e.contentChanges.length===0)return;let t=b.getDocument(e.textDocument.uri);if(!t)return;let{textDocument:r}=t;for(let n of this._changeData.values())if(b.match(n.documentSelector,r)>0){let o=this._client.clientOptions.middleware;if(n.syncKind===C.TextDocumentSyncKind.Incremental)o.didChange?o.didChange(e,()=>this._client.sendNotification(C.DidChangeTextDocumentNotification.type,wl(e,["bufnr","original"]))):this._client.sendNotification(C.DidChangeTextDocumentNotification.type,wl(e,["bufnr","original"]));else if(n.syncKind===C.TextDocumentSyncKind.Full){let s=a=>{let{textDocument:l}=b.getDocument(a.textDocument.uri);this._client.sendNotification(C.DidChangeTextDocumentNotification.type,zz(l))};o.didChange?o.didChange(e,s):s(e)}}}unregister(e){this._changeData.delete(e),this._changeData.size===0&&this._listener&&(this._listener.dispose(),this._listener=void 0)}dispose(){this._changeData.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}getProvider(e){for(let t of this._changeData.values())if(b.match(t.documentSelector,e))return{send:r=>{this.callback(r)}}}},a9=class extends oo{constructor(e){super(e,b.onWillSaveTextDocument,C.WillSaveTextDocumentNotification.type,e.clientOptions.middleware.willSave,t=>DT(t),(t,r)=>oo.textDocumentFilter(t,r.document))}get registrationType(){return C.WillSaveTextDocumentNotification.type}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"synchronization");t.willSave=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;t&&r&&r.willSave&&this.register({id:We(),registerOptions:{documentSelector:t}})}},l9=class{constructor(e){this._client=e;this._selectors=new Map}get registrationType(){return C.WillSaveTextDocumentWaitUntilRequest.type}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"synchronization");t.willSaveWaitUntil=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;t&&r&&r.willSaveWaitUntil&&this.register({id:We(),registerOptions:{documentSelector:t}})}register(e){!e.registerOptions.documentSelector||(this._listener||(this._listener=b.onWillSaveTextDocument(this.callback,this)),this._selectors.set(e.id,e.registerOptions.documentSelector))}callback(e){if(oo.textDocumentFilter(this._selectors.values(),e.document)){let t=this._client.clientOptions.middleware,r=n=>this._client.sendRequest(C.WillSaveTextDocumentWaitUntilRequest.type,DT(n)).then(o=>o||[],o=>(T.showMessage(`Error on willSaveWaitUntil: ${o}`,"error"),Qs.error(o),[]));e.waitUntil(t.willSaveWaitUntil?t.willSaveWaitUntil(e,r):r(e))}}unregister(e){this._selectors.delete(e),this._selectors.size===0&&this._listener&&(this._listener.dispose(),this._listener=void 0)}dispose(){this._selectors.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}},u9=class extends oo{constructor(e){super(e,b.onDidSaveTextDocument,C.DidSaveTextDocumentNotification.type,e.clientOptions.middleware.didSave,t=>Gz(t,this._includeText),oo.textDocumentFilter);this._includeText=!1}get registrationType(){return C.DidSaveTextDocumentNotification.type}fillClientCapabilities(e){ne(ne(e,"textDocument"),"synchronization").didSave=!0}initialize(e,t){let r=e.resolvedTextDocumentSync;if(t&&r&&r.save){let n=typeof r.save=="boolean"?{includeText:!1}:{includeText:!!r.save.includeText};this.register({id:We(),registerOptions:Object.assign({},{documentSelector:t},n)})}}register(e){this._includeText=!!e.registerOptions.includeText,super.register(e)}},c9=class{constructor(e,t){this._notifyFileEvent=t;this._watchers=new Map}get registrationType(){return C.DidChangeWatchedFilesNotification.type}fillClientCapabilities(e){ne(ne(e,"workspace"),"didChangeWatchedFiles").dynamicRegistration=!0}initialize(e,t){}register(e){if(!Array.isArray(e.registerOptions.watchers))return;let t=[];for(let r of e.registerOptions.watchers){if(!Le(r.globPattern))continue;let n=!0,o=!0,s=!0;r.kind!=null&&(n=(r.kind&C.WatchKind.Create)!=0,o=(r.kind&C.WatchKind.Change)!=0,s=(r.kind&C.WatchKind.Delete)!=0);let a=b.createFileSystemWatcher(r.globPattern,!n,!o,!s);this.hookListeners(a,n,o,s,t),t.push(a)}this._watchers.set(e.id,t)}registerRaw(e,t){let r=[];for(let n of t)r.push(n),this.hookListeners(n,!0,!0,!0,r);this._watchers.set(e,r)}hookListeners(e,t,r,n,o){t&&e.onDidCreate(s=>this._notifyFileEvent({uri:ch(s),type:C.FileChangeType.Created}),null,o),r&&e.onDidChange(s=>this._notifyFileEvent({uri:ch(s),type:C.FileChangeType.Changed}),null,o),n&&e.onDidDelete(s=>this._notifyFileEvent({uri:ch(s),type:C.FileChangeType.Deleted}),null,o)}unregister(e){let t=this._watchers.get(e);if(t)for(let r of t)r.dispose()}dispose(){this._watchers.forEach(e=>{for(let t of e)t.dispose()}),this._watchers.clear()}},$e=class{constructor(e,t){this._client=e;this._registrationType=t;this._registrations=new Map}get registrationType(){return this._registrationType}register(e){if(!e.registerOptions.documentSelector)return;let t=this.registerLanguageProvider(e.registerOptions);this._registrations.set(e.id,{disposable:t[0],data:e,provider:t[1]})}unregister(e){let t=this._registrations.get(e);t&&t.disposable.dispose()}dispose(){this._registrations.forEach(e=>{e.disposable.dispose()}),this._registrations.clear()}getRegistration(e,t){if(t){if(C.TextDocumentRegistrationOptions.is(t)){let r=C.StaticRegistrationOptions.hasId(t)?t.id:We(),n=t.documentSelector||e;if(n)return[r,Object.assign({},t,{documentSelector:n})]}else if(Fo(t)&&t===!0||C.WorkDoneProgressOptions.is(t)){if(!e)return[void 0,void 0];let r=Fo(t)&&t===!0?{documentSelector:e}:Object.assign({},t,{documentSelector:e});return[We(),r]}}else return[void 0,void 0];return[void 0,void 0]}getRegistrationOptions(e,t){if(!(!e||!t))return Fo(t)&&t===!0?{documentSelector:e}:Object.assign({},t,{documentSelector:e})}getProvider(e){for(let t of this._registrations.values()){let r=t.data.registerOptions.documentSelector;if(r!==null&&b.match(r,e)>0)return t.provider}}getAllProviders(){let e=[];for(let t of this._registrations.values())e.push(t.provider);return e}},f9=class{constructor(e,t){this._client=e;this._registrationType=t;this._registrations=new Map}get registrationType(){return this._registrationType}register(e){let t=this.registerLanguageProvider(e.registerOptions);this._registrations.set(e.id,{disposable:t[0],provider:t[1]})}unregister(e){let t=this._registrations.get(e);t&&t.disposable.dispose()}dispose(){this._registrations.forEach(e=>{e.disposable.dispose()}),this._registrations.clear()}getProviders(){let e=[];for(let t of this._registrations.values())e.push(t.provider);return e}},p9=class extends $e{constructor(e){super(e,C.CompletionRequest.type)}fillClientCapabilities(e){let t=this._client.clientOptions.disableSnippetCompletion!==!0,r=ne(ne(e,"textDocument"),"completion");r.dynamicRegistration=!0,r.contextSupport=!0,r.completionItem={snippetSupport:t,commitCharactersSupport:!0,documentationFormat:this._client.supporedMarkupKind,deprecatedSupport:!0,preselectSupport:!0,insertReplaceSupport:!0,tagSupport:{valueSet:[C.CompletionItemTag.Deprecated]},resolveSupport:{properties:["documentation","detail","additionalTextEdits"]},insertTextModeSupport:{valueSet:[C.InsertTextMode.asIs,C.InsertTextMode.adjustIndentation]}},r.completionItemKind={valueSet:vDe}}initialize(e,t){this.index=0;let r=this.getRegistrationOptions(t,e.completionProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t=e.triggerCharacters||[],r=e.allCommitCharacters||[],n=e.priority,o={provideCompletionItems:(l,u,c,f)=>{let p=this._client,d=this._client.clientOptions.middleware,h=(m,w,v,D)=>p.sendRequest(C.CompletionRequest.type,Vz(m,w,v),D).then(x=>x,x=>p.handleFailedRequest(C.CompletionRequest.type,D,x,null));return d.provideCompletionItem?d.provideCompletionItem(l,u,f,c,h):h(l,u,f,c)},resolveCompletionItem:e.resolveProvider?(l,u)=>{let c=this._client,f=this._client.clientOptions.middleware,p=(d,h)=>c.sendRequest(C.CompletionResolveRequest.type,d,h).then(m=>m,m=>c.handleFailedRequest(C.CompletionResolveRequest.type,h,m,d));return f.resolveCompletionItem?f.resolveCompletionItem(l,u,p):p(l,u)}:void 0},s=this._client.id+(this.index?"-"+this.index:"");st.removeSource(s);let a=B.registerCompletionItemProvider(s,"LS",e.documentSelector||this._client.clientOptions.documentSelector,o,t,n,r);return this.index=this.index+1,[a,o]}},d9=class extends $e{constructor(e){super(e,C.HoverRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"hover");t.dynamicRegistration=!0,t.contentFormat=this._client.supporedMarkupKind}initialize(e,t){let r=this.getRegistrationOptions(t,e.hoverProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideHover:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(C.HoverRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(C.HoverRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideHover?l.provideHover(r,n,o,a):a(r,n,o)}};return[B.registerHoverProvider(e.documentSelector,t),t]}},h9=class extends $e{constructor(e){super(e,C.SignatureHelpRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"signatureHelp");t.dynamicRegistration=!0,t.contextSupport=!0,t.signatureInformation={documentationFormat:this._client.supporedMarkupKind,activeParameterSupport:!0,parameterInformation:{labelOffsetSupport:!0}}}initialize(e,t){let r=this.getRegistrationOptions(t,e.signatureHelpProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideSignatureHelp:(o,s,a,l)=>{let u=this._client,c=(p,d,h,m)=>u.sendRequest(C.SignatureHelpRequest.type,Kz(p,d,h),m).then(w=>w,w=>u.handleFailedRequest(C.SignatureHelpRequest.type,m,w,null)),f=u.clientOptions.middleware;return f.provideSignatureHelp?f.provideSignatureHelp(o,s,l,a,c):c(o,s,l,a)}},r=e.triggerCharacters||[];return[B.registerSignatureHelpProvider(e.documentSelector,t,r),t]}},m9=class extends $e{constructor(e){super(e,C.DefinitionRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"definition");t.dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.definitionProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDefinition:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(C.DefinitionRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(C.DefinitionRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideDefinition?l.provideDefinition(r,n,o,a):a(r,n,o)}};return[B.registerDefinitionProvider(e.documentSelector,t),t]}},g9=class extends $e{constructor(e){super(e,C.ReferencesRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"references").dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.referencesProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideReferences:(r,n,o,s)=>{let a=this._client,l=(c,f,p,d)=>a.sendRequest(C.ReferencesRequest.type,Jz(c,f,p),d).then(h=>h,h=>a.handleFailedRequest(C.ReferencesRequest.type,d,h,null)),u=a.clientOptions.middleware;return u.provideReferences?u.provideReferences(r,n,o,s,l):l(r,n,o,s)}};return[B.registerReferencesProvider(e.documentSelector,t),t]}},v9=class extends $e{constructor(e){super(e,C.DocumentHighlightRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"documentHighlight").dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentHighlightProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDocumentHighlights:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(C.DocumentHighlightRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(C.DocumentHighlightRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideDocumentHighlights?l.provideDocumentHighlights(r,n,o,a):a(r,n,o)}};return[B.registerDocumentHighlightProvider(e.documentSelector,t),t]}},y9=class extends $e{constructor(e){super(e,C.DocumentSymbolRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"documentSymbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:r9},t.hierarchicalDocumentSymbolSupport=!0,t.tagSupport={valueSet:i9}}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentSymbolProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDocumentSymbols:(n,o)=>{let s=this._client,a=(u,c)=>s.sendRequest(C.DocumentSymbolRequest.type,Yz(u),c).then(f=>{if(f!==null){if(f.length===0)return[];{let p=f[0];return C.DocumentSymbol.is(p),f}}},f=>s.handleFailedRequest(C.DocumentSymbolRequest.type,c,f,null)),l=s.clientOptions.middleware;return l.provideDocumentSymbols?l.provideDocumentSymbols(n,o,a):a(n,o)}},r=e.label?{label:e.label}:void 0;return[B.registerDocumentSymbolProvider(e.documentSelector,t,r),t]}},b9=class extends f9{constructor(e){super(e,C.WorkspaceSymbolRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"workspace"),"symbol");t.dynamicRegistration=!0,t.symbolKind={valueSet:r9},t.tagSupport={valueSet:i9}}initialize(e){!e.workspaceSymbolProvider||this.register({id:We(),registerOptions:e.workspaceSymbolProvider===!0?{workDoneProgress:!1}:e.workspaceSymbolProvider})}registerLanguageProvider(e){let t={provideWorkspaceSymbols:(r,n)=>{let o=this._client,s=(l,u)=>o.sendRequest(C.WorkspaceSymbolRequest.type,{query:l},u).then(c=>c,c=>o.handleFailedRequest(C.WorkspaceSymbolRequest.type,u,c,null)),a=o.clientOptions.middleware;return a.provideWorkspaceSymbols?a.provideWorkspaceSymbols(r,n,s):s(r,n)}};return[B.registerWorkspaceSymbolProvider(t),t]}},w9=class extends $e{constructor(e){super(e,C.CodeActionRequest.type);this.disposables=[]}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"codeAction");t.dynamicRegistration=!0,t.isPreferredSupport=!0,t.disabledSupport=!0,t.dataSupport=!0,t.honorsChangeAnnotations=!1,t.resolveSupport={properties:["edit"]},t.codeActionLiteralSupport={codeActionKind:{valueSet:[C.CodeActionKind.Empty,C.CodeActionKind.QuickFix,C.CodeActionKind.Refactor,C.CodeActionKind.RefactorExtract,C.CodeActionKind.RefactorInline,C.CodeActionKind.RefactorRewrite,C.CodeActionKind.Source,C.CodeActionKind.SourceOrganizeImports]}}}initialize(e,t){let r=this.getRegistrationOptions(t,e.codeActionProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t=n=>{if(be.has(n))return;let o=this._client,s=(l,u)=>{let c={command:l,arguments:u};return o.sendRequest(C.ExecuteCommandRequest.type,c).then(void 0,f=>{throw o.handleFailedRequest(C.ExecuteCommandRequest.type,void 0,f,void 0),f})},a=o.clientOptions.middleware;this.disposables.push(be.registerCommand(n,(...l)=>a.executeCommand?a.executeCommand(n,l,s):s(n,l),null,!0))},r={provideCodeActions:(n,o,s,a)=>{let l=this._client,u=(f,p,d,h)=>{let m={textDocument:{uri:f.uri},range:p,context:d};return l.sendRequest(C.CodeActionRequest.type,m,h).then(w=>{if(w!==null)return w.forEach(v=>{var x;let D=C.Command.is(v)?v.command:(x=v.command)==null?void 0:x.command;D&&!be.has(D)&&t(D)}),w},w=>l.handleFailedRequest(C.CodeActionRequest.type,h,w,null))},c=l.clientOptions.middleware;return c.provideCodeActions?c.provideCodeActions(n,o,s,a,u):u(n,o,s,a)},resolveCodeAction:e.resolveProvider?(n,o)=>{let s=this._client,a=this._client.clientOptions.middleware,l=(u,c)=>s.sendRequest(C.CodeActionResolveRequest.type,u,c).then(f=>f,f=>s.handleFailedRequest(C.CodeActionResolveRequest.type,c,f,u));return a.resolveCodeAction?a.resolveCodeAction(n,o,l):l(n,o)}:void 0};return[B.registerCodeActionProvider(e.documentSelector,r,this._client.id,e.codeActionKinds),r]}dispose(){this.disposables.forEach(e=>{e.dispose()}),this.disposables=[],super.dispose()}},D9=class extends $e{constructor(e){super(e,C.CodeLensRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"codeLens").dynamicRegistration=!0,ne(ne(e,"workspace"),"codeLens").refreshSupport=!0}initialize(e,t){this._client.onRequest(C.CodeLensRefreshRequest.type,async()=>{for(let o of this.getAllProviders())o.onDidChangeCodeLensEmitter.fire()});let n=this.getRegistrationOptions(t,e.codeLensProvider);!n||this.register({id:We(),registerOptions:n})}registerLanguageProvider(e){let t=new C.Emitter,r={onDidChangeCodeLenses:t.event,provideCodeLenses:(n,o)=>{let s=this._client,a=(u,c)=>s.sendRequest(C.CodeLensRequest.type,Xz(u),c).then(f=>f,f=>s.handleFailedRequest(C.CodeLensRequest.type,c,f,null)),l=s.clientOptions.middleware;return l.provideCodeLenses?l.provideCodeLenses(n,o,a):a(n,o)},resolveCodeLens:e.resolveProvider?(n,o)=>{let s=this._client,a=(u,c)=>s.sendRequest(C.CodeLensResolveRequest.type,u,c).then(f=>f,f=>s.handleFailedRequest(C.CodeLensResolveRequest.type,c,f,u)),l=s.clientOptions.middleware;return l.resolveCodeLens?l.resolveCodeLens(n,o,a):a(n,o)}:void 0};return[B.registerCodeLensProvider(e.documentSelector,r),{provider:r,onDidChangeCodeLensEmitter:t}]}},x9=class extends $e{constructor(e){super(e,C.DocumentFormattingRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"formatting").dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentFormattingProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDocumentFormattingEdits:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p={textDocument:{uri:u.uri},options:c};return s.sendRequest(C.DocumentFormattingRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(C.DocumentFormattingRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.provideDocumentFormattingEdits?l.provideDocumentFormattingEdits(r,n,o,a):a(r,n,o)}};return[B.registerDocumentFormatProvider(e.documentSelector,t,this._client.clientOptions.formatterPriority),t]}},S9=class extends $e{constructor(e){super(e,C.DocumentRangeFormattingRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"rangeFormatting").dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentRangeFormattingProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDocumentRangeFormattingEdits:(r,n,o,s)=>{let a=this._client,l=(c,f,p,d)=>{let h={textDocument:{uri:c.uri},range:f,options:p};return a.sendRequest(C.DocumentRangeFormattingRequest.type,h,d).then(m=>m,m=>a.handleFailedRequest(C.DocumentRangeFormattingRequest.type,d,m,null))},u=a.clientOptions.middleware;return u.provideDocumentRangeFormattingEdits?u.provideDocumentRangeFormattingEdits(r,n,o,s,l):l(r,n,o,s)}};return[B.registerDocumentRangeFormatProvider(e.documentSelector,t),t]}},C9=class extends $e{constructor(e){super(e,C.DocumentOnTypeFormattingRequest.type)}fillClientCapabilities(e){ne(ne(e,"textDocument"),"onTypeFormatting").dynamicRegistration=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentOnTypeFormattingProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideOnTypeFormattingEdits:(o,s,a,l,u)=>{let c=this._client,f=(d,h,m,w,v)=>{let D={textDocument:vb(d),position:h,ch:m,options:w};return c.sendRequest(C.DocumentOnTypeFormattingRequest.type,D,v).then(x=>x,x=>c.handleFailedRequest(C.DocumentOnTypeFormattingRequest.type,v,x,null))},p=c.clientOptions.middleware;return p.provideOnTypeFormattingEdits?p.provideOnTypeFormattingEdits(o,s,a,l,u,f):f(o,s,a,l,u)}},r=e.moreTriggerCharacter||[],n=[e.firstTriggerCharacter,...r];return[B.registerOnTypeFormattingEditProvider(e.documentSelector,t,n),t]}},E9=class extends $e{constructor(e){super(e,C.RenameRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"rename");t.dynamicRegistration=!0,t.prepareSupport=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.renameProvider);!r||(Fo(e.renameProvider)&&(r.prepareProvider=!1),this.register({id:We(),registerOptions:r}))}registerLanguageProvider(e){let t={provideRenameEdits:(r,n,o,s)=>{let a=this._client,l=(c,f,p,d)=>{let h={textDocument:{uri:c.uri},position:f,newName:p};return a.sendRequest(C.RenameRequest.type,h,d).then(m=>m,m=>a.handleFailedRequest(C.RenameRequest.type,d,m,null))},u=a.clientOptions.middleware;return u.provideRenameEdits?u.provideRenameEdits(r,n,o,s,l):l(r,n,o,s)},prepareRename:e.prepareProvider?(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p={textDocument:Sl(u),position:c};return s.sendRequest(C.PrepareRenameRequest.type,p,f).then(d=>C.Range.is(d)?d:this.isDefaultBehavior(d)?d.defaultBehavior===!0?null:Promise.reject(new Error("The element can't be renamed.")):d&&C.Range.is(d.range)?{range:d.range,placeholder:d.placeholder}:Promise.reject(new Error("The element can't be renamed.")),d=>s.handleFailedRequest(C.PrepareRenameRequest.type,f,d,void 0))},l=s.clientOptions.middleware;return l.prepareRename?l.prepareRename(r,n,o,a):a(r,n,o)}:void 0};return[B.registerRenameProvider(e.documentSelector,t),t]}isDefaultBehavior(e){let t=e;return t&&Fo(t.defaultBehavior)}},_9=class extends $e{constructor(e){super(e,C.DocumentLinkRequest.type)}fillClientCapabilities(e){let t=ne(ne(e,"textDocument"),"documentLink");t.dynamicRegistration=!0,t.tooltipSupport=!0}initialize(e,t){let r=this.getRegistrationOptions(t,e.documentLinkProvider);!r||this.register({id:We(),registerOptions:r})}registerLanguageProvider(e){let t={provideDocumentLinks:(r,n)=>{let o=this._client,s=(l,u)=>o.sendRequest(C.DocumentLinkRequest.type,{textDocument:{uri:l.uri}},u).then(c=>c,c=>o.handleFailedRequest(C.DocumentLinkRequest.type,u,c,null)),a=o.clientOptions.middleware;return a.provideDocumentLinks?a.provideDocumentLinks(r,n,s):s(r,n)},resolveDocumentLink:e.resolveProvider?(r,n)=>{let o=this._client,s=(l,u)=>o.sendRequest(C.DocumentLinkResolveRequest.type,l,u).then(c=>c,c=>o.handleFailedRequest(C.DocumentLinkResolveRequest.type,u,c,l)),a=o.clientOptions.middleware;return a.resolveDocumentLink?a.resolveDocumentLink(r,n,s):s(r,n)}:void 0};return[B.registerDocumentLinkProvider(e.documentSelector,t),t]}},T9=class{constructor(e){this._client=e;this._listeners=new Map}get registrationType(){return C.DidChangeConfigurationNotification.type}fillClientCapabilities(e){ne(ne(e,"workspace"),"didChangeConfiguration").dynamicRegistration=!0}initialize(){var t;let e=(t=this._client.clientOptions.synchronize)==null?void 0:t.configurationSection;e!==void 0&&this.register({id:We(),registerOptions:{section:e}})}register(e){let{section:t}=e.registerOptions,r=b.onDidChangeConfiguration(n=>{typeof t=="string"&&!n.affectsConfiguration(t)||Array.isArray(t)&&!t.some(o=>n.affectsConfiguration(o))||t!=null&&this.onDidChangeConfiguration(e.registerOptions.section)});if(this._listeners.set(e.id,r),Le(t)&&t.endsWith(".settings")){let n=this.getConfiguredSettings(t);if(!n||kg(n))return}t!=null&&this.onDidChangeConfiguration(e.registerOptions.section)}unregister(e){let t=this._listeners.get(e);t&&(this._listeners.delete(e),t.dispose())}dispose(){for(let e of this._listeners.values())e.dispose();this._listeners.clear()}onDidChangeConfiguration(e){let t=typeof e=="string"&&e.startsWith("languageserver."),r;Le(e)?r=[e]:r=e;let n=s=>{if(s===void 0){this._client.sendNotification(C.DidChangeConfigurationNotification.type,{settings:null});return}this._client.sendNotification(C.DidChangeConfigurationNotification.type,{settings:t?this.getConfiguredSettings(s[0]):this.extractSettingsInformation(s)})},o=this.getMiddleware();o?o(r,n):n(r)}getConfiguredSettings(e){let t=".settings".length;return b.getConfiguration(e.slice(0,-t)).get("settings",{})}extractSettingsInformation(e){function t(n,o){let s=n;for(let a=0;a=0?a=b.getConfiguration(o.substr(0,s)).get(o.substr(s+1)):a=b.getConfiguration(o),a){let l=e[n].split(".");t(r,l)[l[l.length-1]]=a}}return r}getMiddleware(){let e=this._client.clientOptions.middleware;if(e.workspace&&e.workspace.didChangeConfiguration)return e.workspace.didChangeConfiguration}},P9=class{constructor(e){this._client=e;this._commands=new Map}get registrationType(){return C.ExecuteCommandRequest.type}fillClientCapabilities(e){ne(ne(e,"workspace"),"executeCommand").dynamicRegistration=!0}initialize(e){!e.executeCommandProvider||this.register({id:We(),registerOptions:Object.assign({},e.executeCommandProvider)})}register(e){let t=this._client,r=t.clientOptions.middleware,n=(o,s)=>{let a={command:o,arguments:s};return t.sendRequest(C.ExecuteCommandRequest.type,a).then(void 0,l=>{throw t.handleFailedRequest(C.ExecuteCommandRequest.type,void 0,l,void 0),l})};if(e.registerOptions.commands){let o=[];for(let s of e.registerOptions.commands)o.push(be.registerCommand(s,(...a)=>r.executeCommand?r.executeCommand(s,a,n):n(s,a),null,!0));this._commands.set(e.id,o)}}unregister(e){let t=this._commands.get(e);t&&t.forEach(r=>r.dispose())}dispose(){this._commands.forEach(e=>{e.forEach(t=>t.dispose())}),this._commands.clear()}};(function(e){function i(t){return t&&C.MessageReader.is(t.reader)&&C.MessageWriter.is(t.writer)}e.is=i})(fh||(fh={}));CT=class{constructor(e,t){this._resolve=e;this._reject=t;this._used=!1}get isUsed(){return this._used}resolve(){this._used=!0,this._resolve()}reject(e){this._used=!0,this._reject(e)}},bb=class{constructor(e,t,r){this._features=[];this._dynamicFeatures=new Map;var l;this._id=e,this._name=t,r.outputChannel?this._outputChannel=r.outputChannel:this._outputChannel=void 0;let n=!1;(b.getConfiguration("suggest").get("snippetsSupport",!0)===!1||r.disableSnippetCompletion)&&(n=!0);let s={isTrusted:!1};r.markdown!==void 0&&r.markdown.isTrusted===!0&&(s.isTrusted=!0),this._clientOptions={disableWorkspaceFolders:r.disableWorkspaceFolders,disableSnippetCompletion:n,disableDynamicRegister:r.disableDynamicRegister,disableDiagnostics:r.disableDiagnostics,disableCompletion:r.disableCompletion,formatterPriority:r.formatterPriority,ignoredRootPaths:r.ignoredRootPaths,documentSelector:r.documentSelector||[],synchronize:r.synchronize||{},diagnosticCollectionName:r.diagnosticCollectionName,outputChannelName:r.outputChannelName||this._id,revealOutputChannelOn:r.revealOutputChannelOn||4,stdioEncoding:r.stdioEncoding||"utf8",initializationOptions:r.initializationOptions,initializationFailedHandler:r.initializationFailedHandler,progressOnInitialization:!!r.progressOnInitialization,errorHandler:r.errorHandler||this.createDefaultErrorHandler((l=r.connectionOptions)==null?void 0:l.maxRestartCount),middleware:r.middleware||{},workspaceFolder:r.workspaceFolder,connectionOptions:r.connectionOptions,markdown:s},this.state=0,this._connectionPromise=void 0,this._resolvedConnection=void 0,this._initializeResult=void 0,this._listeners=void 0,this._providers=void 0,this._diagnostics=void 0,this._fileEvents=[],this._fileEventDelayer=new wT(250),this._onReady=new Promise((u,c)=>{this._onReadyCallbacks=new CT(u,c)}),this._onStop=void 0,this._stateChangeEmitter=new C.Emitter,this._trace=C.Trace.Off,this._tracer={log:(u,c)=>{Le(u)?this.logTrace(u,c):this.logObjectTrace(u)}},this._syncedDocuments=new Map;let a=b.getConfiguration("coc.preferences");this._markdownSupport=a.get("enableMarkdown",!0),this.registerBuiltinFeatures()}get supporedMarkupKind(){return this._markdownSupport?[C.MarkupKind.Markdown,C.MarkupKind.PlainText]:[C.MarkupKind.PlainText]}get state(){return this._state}get id(){return this._id}get name(){return this._name}set state(e){let t=this.getPublicState();this._state=e;let r=this.getPublicState();r!==t&&this._stateChangeEmitter.fire({oldState:t,newState:r})}getPublicState(){return this.state===3?2:this.state===1?3:1}get initializeResult(){return this._initializeResult}sendRequest(e,...t){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{return this._resolvedConnection.sendRequest(e,...t)}catch(r){throw this.error(`Sending request ${Le(e)?e:e.method} failed.`,r),r}}onRequest(e,t){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{return this._resolvedConnection.onRequest(e,t)}catch(r){throw this.error(`Registering request handler ${Le(e)?e:e.method} failed.`,r),r}}sendNotification(e,t){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{this._resolvedConnection.sendNotification(e,t)}catch(r){throw this.error(`Sending notification ${Le(e)?e:e.method} failed.`,r),r}}onNotification(e,t){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{return this._resolvedConnection.onNotification(e,t)}catch(r){throw this.error(`Registering notification handler ${Le(e)?e:e.method} failed.`,r),r}}onProgress(e,t,r){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{if(e==C.WorkDoneProgress.type){let n=this._clientOptions.middleware.handleWorkDoneProgress;if(n!==void 0)return this._resolvedConnection.onProgress(e,t,o=>{n(t,o,()=>r(o))})}return this._resolvedConnection.onProgress(e,t,r)}catch(n){throw this.error(`Registering progress handler for token ${t} failed.`,n),n}}sendProgress(e,t,r){if(!this.isConnectionActive())throw new Error("Language client is not ready yet");try{this._resolvedConnection.sendProgress(e,t,r)}catch(n){throw this.error(`Sending progress for token ${t} failed.`,n),n}}get clientOptions(){return this._clientOptions}get onDidChangeState(){return this._stateChangeEmitter.event}get outputChannel(){if(!this._outputChannel){let{outputChannelName:e}=this._clientOptions;this._outputChannel=T.createOutputChannel(e||this._name)}return this._outputChannel}get diagnostics(){return this._diagnostics}createDefaultErrorHandler(e){return new t9(this._id,e!=null?e:4)}set trace(e){this._trace=e,this.onReady().then(()=>{this.resolveConnection().then(t=>{t.trace(this._trace,this._tracer,{sendNotification:!1,traceFormat:this._traceFormat})})},()=>{})}logObjectTrace(e){e.isLSPMessage&&e.type?this.outputChannel.append(`[LSP - ${new Date().toLocaleTimeString()}] `):this.outputChannel.append(`[Trace - ${new Date().toLocaleTimeString()}] `),e&&this.outputChannel.appendLine(`${JSON.stringify(e)}`)}data2String(e){if(e instanceof C.ResponseError){let t=e;return` Message: ${t.message} + Code: ${t.code} ${t.data?` +`+t.data.toString():""}`}return e instanceof Error?Le(e.stack)?e.stack:e.message:Le(e)?e:e.toString()}_appendOutput(e,t,r){let n=3;switch(e){case"Info":n=1;break;case"Warn":n=2;break}this.outputChannel.appendLine(`[${e} - ${new Date().toLocaleTimeString()}] ${t}`);let o;r&&(o=this.data2String(r),this.outputChannel.appendLine(o)),this._clientOptions.revealOutputChannelOn<=n&&this.outputChannel.show(!0)}info(e,t){this._appendOutput("Info",e,t)}warn(e,t){this._appendOutput("Warn",e,t)}error(e,t){this._appendOutput("Error",e,t)}logTrace(e,t){this.outputChannel.appendLine(`[Trace - ${new Date().toLocaleTimeString()}] ${e}`),t&&this.outputChannel.appendLine(this.data2String(t))}needsStart(){return this.state===0||this.state===4||this.state===5}needsStop(){return this.state===1||this.state===3}onReady(){return this._onReady}get started(){return this.state!=0}isConnectionActive(){return this.state===3&&!!this._resolvedConnection}start(){if(this._onReadyCallbacks.isUsed&&(this._onReady=new Promise((e,t)=>{this._onReadyCallbacks=new CT(e,t)})),this._listeners=[],this._providers=[],!this._diagnostics){let e=this._clientOptions,t=e.diagnosticCollectionName?e.diagnosticCollectionName:this._id;this._diagnostics=B.createDiagnosticCollection(t)}return this.state=1,this.resolveConnection().then(e=>(e.onLogMessage(t=>{let r;switch(t.type){case C.MessageType.Error:r="error",this.error(t.message);break;case C.MessageType.Warning:r="warning",this.warn(t.message);break;case C.MessageType.Info:r="info",this.info(t.message);break;default:r="log",this.outputChannel.appendLine(t.message)}if(global.hasOwnProperty("__TEST__")){console.log(`[${r}] ${t.message}`);return}}),e.onShowMessage(t=>{switch(t.type){case C.MessageType.Error:T.showErrorMessage(t.message);break;case C.MessageType.Warning:T.showWarningMessage(t.message);break;case C.MessageType.Info:T.showInformationMessage(t.message);break;default:T.showInformationMessage(t.message)}}),e.onRequest(C.ShowMessageRequest.type,t=>{let r;switch(t.type){case C.MessageType.Error:r=T.showErrorMessage.bind(T);break;case C.MessageType.Warning:r=T.showWarningMessage.bind(T);break;case C.MessageType.Info:r=T.showInformationMessage.bind(T);break;default:r=T.showInformationMessage.bind(T)}let n=t.actions||[];return r(t.message,...n)}),e.onRequest(C.ShowDocumentRequest.type,async t=>{var o;let r=async s=>{var a;try{return s.external===!0?(await b.openResource(s.uri),{success:!0}):(s.selection&&s.selection.start,await b.jumpTo(s.uri,(a=s.selection)==null?void 0:a.start),{success:!0})}catch(l){return{success:!0}}},n=(o=this._clientOptions.middleware.window)==null?void 0:o.showDocument;return n!==void 0?n(t,r):r(t)}),e.onTelemetry(t=>{}),e.listen(),this.initialize(e))).then(void 0,e=>{this.state=2,this._onReadyCallbacks.reject(e),this.error("Starting client failed ",e)}),C.Disposable.create(()=>{this.needsStop()&&this.stop()})}resolveConnection(){return this._connectionPromise||(this._connectionPromise=this.createConnection()),this._connectionPromise}resolveRootPath(){if(this._clientOptions.workspaceFolder)return j.parse(this._clientOptions.workspaceFolder.uri).fsPath;let{ignoredRootPaths:e}=this._clientOptions,t=b.getConfiguration(this.id),r=t.get("rootPatterns",[]),n=t.get("requireRootPattern",!1),o;if(r&&r.length){let a=b.getDocument(b.bufnr);if(a&&a.schema=="file"){let l=xT.default.dirname(j.parse(a.uri).fsPath);o=dd(l,r,b.cwd)}}if(n&&!o)return!1;let s=o||b.rootPath||b.cwd;return s===Zz.default.homedir()||e&&e.includes(s)?(this.warn(`Ignored rootPath ${s} of client "${this._id}"`),null):s}initialize(e){this.refreshTrace(e,!1);let{initializationOptions:t,progressOnInitialization:r}=this._clientOptions,n=this.resolveRootPath();if(n===!1){console.warn("required root pattern not found, server not started.");return}let o={processId:process.pid,rootPath:n||null,rootUri:n?ch(j.file(n)):null,capabilities:this.computeClientCapabilities(),initializationOptions:Cs(t)?t():t,trace:C.Trace.toString(this._trace),workspaceFolders:null,locale:this.getLocale(),clientInfo:{name:"coc.nvim",version:b.version}};if(this.fillInitializeParams(o),r){let s=We();o.workDoneToken=s;let a=new uh(e,s);return a.begin({title:`initializing ${this.id}`,kind:"begin"}),this.doInitialize(e,o).then(l=>(a.done(),l),l=>{throw a.cancel(),l})}else return this.doInitialize(e,o)}doInitialize(e,t){return e.initialize(t).then(r=>{this._resolvedConnection=e,this._initializeResult=r,this.state=3;let n;return Rg(r.capabilities.textDocumentSync)?r.capabilities.textDocumentSync===C.TextDocumentSyncKind.None?n={openClose:!1,change:C.TextDocumentSyncKind.None,save:void 0}:n={openClose:!0,change:r.capabilities.textDocumentSync,save:{includeText:!1}}:r.capabilities.textDocumentSync!=null&&r.capabilities.textDocumentSync!==void 0&&(n=r.capabilities.textDocumentSync),this._capabilities=Object.assign({},r.capabilities,{resolvedTextDocumentSync:n}),this._clientOptions.disableDiagnostics||e.onDiagnostics(o=>this.handleDiagnostics(o)),e.onRequest(C.RegistrationRequest.type,o=>this.handleRegistrationRequest(o)),e.onRequest("client/registerFeature",o=>this.handleRegistrationRequest(o)),e.onRequest(C.UnregistrationRequest.type,o=>this.handleUnregistrationRequest(o)),e.onRequest("client/unregisterFeature",o=>this.handleUnregistrationRequest(o)),e.onRequest(C.ApplyWorkspaceEditRequest.type,o=>this.handleApplyWorkspaceEdit(o)),e.sendNotification(C.InitializedNotification.type,{}),this.hookFileEvents(e),this.hookConfigurationChanged(e),this.initializeFeatures(e),this._onReadyCallbacks.resolve(),r}).then(void 0,r=>{throw this._clientOptions.initializationFailedHandler?this._clientOptions.initializationFailedHandler(r)?this.initialize(e):(this.stop(),this._onReadyCallbacks.reject(r)):r instanceof C.ResponseError&&r.data&&r.data.retry?T.showPrompt(r.message+" Retry?").then(n=>{n?this.initialize(e):(this.stop(),this._onReadyCallbacks.reject(r))}):(r&&r.message&&T.showMessage(r.message,"error"),this.error("Server initialization failed.",r),this.stop(),this._onReadyCallbacks.reject(r)),r})}stop(){return this._initializeResult=void 0,this._connectionPromise?this.state===4&&this._onStop?this._onStop:(this.state=4,this.cleanUp(),this._onStop=this.resolveConnection().then(e=>e.shutdown().then(()=>{e.exit(),e.dispose(),this.state=5,this.cleanUpChannel(),this._onStop=void 0,this._connectionPromise=void 0,this._resolvedConnection=void 0})).catch(e=>{Qs.error("Error on stop languageserver:",e),this.state=5,this.cleanUpChannel(),this._onStop=void 0,this._connectionPromise=void 0,this._resolvedConnection=void 0})):(this.state=5,Promise.resolve())}cleanUp(e=!0,t=!0){this._listeners&&(this._listeners.forEach(r=>r.dispose()),this._listeners=void 0),this._providers&&(this._providers.forEach(r=>r.dispose()),this._providers=void 0);for(let r of this._features.values())typeof r.dispose=="function"?r.dispose():Qs.error("Feature can't be disposed",r);this._syncedDocuments&&this._syncedDocuments.clear(),e&&this.cleanUpChannel(),this._diagnostics&&(t?(this._diagnostics.dispose(),this._diagnostics=void 0):this._diagnostics.clear())}cleanUpChannel(){this._outputChannel&&(this._outputChannel.dispose(),this._outputChannel=void 0)}notifyFileEvent(e){var o;let t=this;function r(s){t._fileEvents.push(s),t._fileEventDelayer.trigger(()=>{t.onReady().then(()=>{t.resolveConnection().then(a=>{t.isConnectionActive()&&a.didChangeWatchedFiles({changes:t._fileEvents}),t._fileEvents=[]})},a=>{t.error("Notify file events failed.",a)})})}let n=(o=this.clientOptions.middleware)==null?void 0:o.workspace;(n==null?void 0:n.didChangeWatchedFile)?n.didChangeWatchedFile(e,r):r(e)}handleDiagnostics(e){if(!this._diagnostics)return;let{uri:t,diagnostics:r}=e,n=this.clientOptions.middleware.handleDiagnostics;n?n(t,r,(o,s)=>this.setDiagnostics(o,s)):this.setDiagnostics(t,r)}setDiagnostics(e,t){var n;if(!this._diagnostics)return;if(b.getConfiguration("diagnostic").get("separateRelatedInformationAsDiagnostics")&&t.length>0){let o=new Map;o.set(e,t);for(let s of t){if((n=s.relatedInformation)==null?void 0:n.length){let a=`${s.message} + +Related diagnostics: +`;for(let l of s.relatedInformation){let u=xT.default.basename(j.parse(l.location.uri).fsPath),c=l.location.range.start.line;a=`${a} +${u}(line ${c+1}): ${l.message}`;let f=o.get(l.location.uri)||[];f.push(C.Diagnostic.create(l.location.range,l.message,C.DiagnosticSeverity.Hint,s.code,s.source)),o.set(l.location.uri,f)}s.message=a}this._diagnostics.set(Array.from(o))}}else this._diagnostics.set(e,t)}createConnection(){let e=(r,n,o)=>{Qs.error("connection error:",r,n),this.handleConnectionError(r,n,o)},t=()=>{this.handleConnectionClosed()};return this.createMessageTransports(this._clientOptions.stdioEncoding||"utf8").then(r=>gDe(r.reader,r.writer,e,t,this._clientOptions.connectionOptions))}handleConnectionClosed(){if(this.state===5)return;try{this._resolvedConnection&&this._resolvedConnection.dispose()}catch(t){}let e=1;if(this.state!==4)try{e=this._clientOptions.errorHandler.closed()}catch(t){}this._connectionPromise=void 0,this._resolvedConnection=void 0,e===1?(this.error("Connection to server got closed. Server will not be restarted."),this.state===1?(this._onReadyCallbacks.reject(new Error("Connection to server got closed. Server will not be restarted.")),this.state=2):this.state=5,this.cleanUp(!1,!0)):e===2&&(this.info("Connection to server got closed. Server will restart."),this.cleanUp(!1,!0),this.state=0,this.start())}restart(){this.cleanUp(!0,!1),this.start()}handleConnectionError(e,t,r){this._clientOptions.errorHandler.error(e,t,r)===2&&(this.error("Connection to server is erroring. Shutting down server."),this.stop())}hookConfigurationChanged(e){b.onDidChangeConfiguration(()=>{this.refreshTrace(e,!0)})}refreshTrace(e,t=!1){let r=b.getConfiguration(this._id),n=C.Trace.Off,o=C.TraceFormat.Text;if(r){let s=r.get("trace.server","off");typeof s=="string"?n=C.Trace.fromString(s):(n=C.Trace.fromString(r.get("trace.server.verbosity","off")),o=C.TraceFormat.fromString(r.get("trace.server.format","text")))}this._trace=n,this._traceFormat=o,e.trace(this._trace,this._tracer,{sendNotification:t,traceFormat:this._traceFormat})}hookFileEvents(e){let t=this._clientOptions.synchronize.fileEvents;if(!t)return;let r;Array.isArray(t)?r=t:r=[t],!!r&&this._dynamicFeatures.get(C.DidChangeWatchedFilesNotification.type.method).registerRaw(We(),r)}registerFeatures(e){for(let t of e)this.registerFeature(t)}registerFeature(e){if(this._features.push(e),ST.is(e)){let t=e.registrationType;this._dynamicFeatures.set(t.method,e)}}getFeature(e){return this._dynamicFeatures.get(e)}registerBuiltinFeatures(){this.registerFeature(new T9(this)),this.registerFeature(new n9(this,this._syncedDocuments)),this.registerFeature(new s9(this)),this.registerFeature(new a9(this)),this.registerFeature(new l9(this)),this.registerFeature(new u9(this)),this.registerFeature(new o9(this,this._syncedDocuments)),this.registerFeature(new c9(this,e=>this.notifyFileEvent(e))),this._clientOptions.disableCompletion||this.registerFeature(new p9(this)),this.registerFeature(new d9(this)),this.registerFeature(new h9(this)),this.registerFeature(new m9(this)),this.registerFeature(new g9(this)),this.registerFeature(new v9(this)),this.registerFeature(new y9(this)),this.registerFeature(new b9(this)),this.registerFeature(new w9(this)),this.registerFeature(new D9(this)),this.registerFeature(new x9(this)),this.registerFeature(new S9(this)),this.registerFeature(new C9(this)),this.registerFeature(new E9(this)),this.registerFeature(new _9(this)),this.registerFeature(new P9(this))}fillInitializeParams(e){for(let t of this._features)Cs(t.fillInitializeParams)&&t.fillInitializeParams(e)}computeClientCapabilities(){let e={};ne(e,"workspace").applyEdit=!0;let t=ne(ne(e,"workspace"),"workspaceEdit");t.documentChanges=!0,t.resourceOperations=[C.ResourceOperationKind.Create,C.ResourceOperationKind.Rename,C.ResourceOperationKind.Delete],t.failureHandling=C.FailureHandlingKind.TextOnlyTransactional;let r=ne(ne(e,"textDocument"),"publishDiagnostics");r.relatedInformation=!0,r.versionSupport=!1,r.tagSupport={valueSet:[C.DiagnosticTag.Unnecessary,C.DiagnosticTag.Deprecated]};let n=ne(e,"window"),o=ne(n,"showMessage");o.messageActionItem={additionalPropertiesSupport:!1};let s=ne(n,"showDocument");s.support=!1;let a=ne(e,"general");a.regularExpressions={engine:"ECMAScript",version:"ES2020"},a.markdown={parser:"marked",version:"1.1.0"};for(let l of this._features)l.fillClientCapabilities(e);return e}initializeFeatures(e){let t=this._clientOptions.documentSelector;for(let r of this._features)r.initialize(this._capabilities,t)}handleRegistrationRequest(e){return this.clientOptions.disableDynamicRegister?Promise.resolve():new Promise((t,r)=>{for(let n of e.registrations){let o=this._dynamicFeatures.get(n.method);if(!o){r(new Error(`No feature implementation for ${n.method} found. Registration failed.`));return}let s=n.registerOptions||{};s.documentSelector=s.documentSelector||this._clientOptions.documentSelector;let a={id:n.id,registerOptions:s};try{o.register(a)}catch(l){r(l);return}}t()})}handleUnregistrationRequest(e){return new Promise((t,r)=>{for(let n of e.unregisterations){let o=this._dynamicFeatures.get(n.method);if(!o){r(new Error(`No feature implementation for ${n.method} found. Unregistration failed.`));return}o.unregister(n.id)}t()})}handleApplyWorkspaceEdit(e){let t=e.edit,r=new Map;b.textDocuments.forEach(o=>r.set(o.uri.toString(),o));let n=!1;if(t.documentChanges){for(let o of t.documentChanges)if(C.TextDocumentEdit.is(o)&&o.textDocument.version&&o.textDocument.version>=0){let s=r.get(o.textDocument.uri);if(s&&s.version!==o.textDocument.version){n=!0;break}}}return n?Promise.resolve({applied:!1}):b.applyEdit(e.edit).then(o=>({applied:o}))}getLocale(){let e=process.env.LANG;return e?e.split(".")[0]:"en"}handleFailedRequest(e,t,r,n){if(r instanceof C.ResponseError){if(r.code===C.LSPErrorCodes.RequestCancelled){if(t!==void 0&&t.isCancellationRequested)return n}else if(r.code===C.LSPErrorCodes.ContentModified)return n}this.error(`Request ${e.method} failed.`,r)}logFailedRequest(e,t){t instanceof C.ResponseError&&t.code===C.LSPErrorCodes.RequestCancelled||this.error(`Request ${e.method} failed.`,t)}}});function R9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var Cl,ET,k9=I(()=>{Cl=E(G());ht();dn();"use strict";ET=class extends $e{constructor(e){super(e,Cl.DocumentColorRequest.type)}fillClientCapabilities(e){R9(R9(e,"textDocument"),"colorProvider").dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.colorProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideColorPresentations:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p={color:u,textDocument:{uri:c.document.uri},range:c.range};return s.sendRequest(Cl.ColorPresentationRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(Cl.ColorPresentationRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.provideColorPresentations?l.provideColorPresentations(r,n,o,a):a(r,n,o)},provideDocumentColors:(r,n)=>{let o=this._client,s=(l,u)=>{let c={textDocument:{uri:l.uri}};return o.sendRequest(Cl.DocumentColorRequest.type,c,u).then(f=>f,f=>o.handleFailedRequest(Cl.ColorPresentationRequest.type,u,f,null))},a=o.clientOptions.middleware;return a.provideDocumentColors?a.provideDocumentColors(r,n,s):s(r,n)}};return[B.registerDocumentColorProvider(e.documentSelector,t),t]}}});function ph(i){if(i){if(Array.isArray(i))return i.map(ph);if(typeof i=="object"){let e=Object.create(null);for(let t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=ph(i[t]));return e}}return i}var I9,$8e,_T,F9=I(()=>{I9=E(G());ie();$8e=W()("languageclient-configuration"),_T=class{constructor(e){this._client=e;var r;let t=(r=this._client.clientOptions.synchronize)==null?void 0:r.configurationSection;typeof t=="string"&&t.startsWith("languageserver.")&&(this.languageserverSection=t)}fillClientCapabilities(e){e.workspace=e.workspace||{},e.workspace.configuration=!0}initialize(){let e=this._client;e.onRequest(I9.ConfigurationRequest.type,(t,r)=>{let n=s=>{let a=[];for(let l of s.items)a.push(this.getConfiguration(l.scopeUri,l.section));return a},o=e.clientOptions.middleware.workspace;return o&&o.configuration?o.configuration(t,r,n):n(t,r)})}getConfiguration(e,t){let r=null;if(t){this.languageserverSection&&(t=`${this.languageserverSection}.${t}`);let n=t.lastIndexOf(".");if(n===-1)r=ph(b.getConfiguration(void 0,e).get(t));else{let o=b.getConfiguration(t.substr(0,n),e);o&&(r=ph(o.get(t.substr(n+1))))}}else{let n=b.getConfiguration(this.languageserverSection,e);r={};for(let o of Object.keys(n))n.has(o)&&(r[o]=ph(n.get(o)))}return r}dispose(){}}});function O9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var wb,TT,A9=I(()=>{wb=E(G());ht();dn();Zs();"use strict";TT=class extends $e{constructor(e){super(e,wb.DeclarationRequest.type)}fillClientCapabilities(e){let t=O9(O9(e,"textDocument"),"declaration");t.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.declarationProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideDeclaration:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(wb.DeclarationRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(wb.DeclarationRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideDeclaration?l.provideDeclaration(r,n,o,a):a(r,n,o)}};return[B.registerDeclarationProvider(e.documentSelector,t),t]}}});function L9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var Db,PT,M9=I(()=>{Db=E(G());ht();dn();"use strict";PT=class extends $e{constructor(e){super(e,Db.FoldingRangeRequest.type)}fillClientCapabilities(e){let t=L9(L9(e,"textDocument"),"foldingRange");t.dynamicRegistration=!0,t.rangeLimit=5e3,t.lineFoldingOnly=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.foldingRangeProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideFoldingRanges:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p={textDocument:{uri:u.uri}};return s.sendRequest(Db.FoldingRangeRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(Db.FoldingRangeRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.provideFoldingRanges?l.provideFoldingRanges(r,n,o,a):a(r,n,o)}};return[B.registerFoldingRangeProvider(e.documentSelector,t),t]}}});function q9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var xb,RT,N9=I(()=>{xb=E(G());ht();dn();Zs();RT=class extends $e{constructor(e){super(e,xb.ImplementationRequest.type)}fillClientCapabilities(e){let t=q9(q9(e,"textDocument"),"implementation");t.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.implementationProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideImplementation:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(xb.ImplementationRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(xb.ImplementationRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideImplementation?l.provideImplementation(r,n,o,a):a(r,n,o)}};return[B.registerImplementationProvider(e.documentSelector,t),t]}}});function yDe(i,e){return i[e]===void 0&&(i[e]=Object.create(null)),i[e]}var $9,kT,B9=I(()=>{$9=E(G());yT();"use strict";kT=class{constructor(e){this._client=e;this.activeParts=new Set}fillClientCapabilities(e){yDe(e,"window").workDoneProgress=!0}initialize(){let e=this._client,t=n=>{this.activeParts.delete(n)},r=n=>{this.activeParts.add(new uh(this._client,n.token,t))};e.onRequest($9.WorkDoneProgressCreateRequest.type,r)}dispose(){for(let e of this.activeParts)e.done();this.activeParts.clear()}}});function j9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var Sb,IT,U9=I(()=>{Sb=E(G());ht();dn();Zs();IT=class extends $e{constructor(e){super(e,Sb.TypeDefinitionRequest.type)}fillClientCapabilities(e){let t=j9(j9(e,"textDocument"),"typeDefinition");t.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.typeDefinitionProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideTypeDefinition:(r,n,o)=>{let s=this._client,a=(u,c,f)=>s.sendRequest(Sb.TypeDefinitionRequest.type,hi(u,c),f).then(p=>p,p=>s.handleFailedRequest(Sb.TypeDefinitionRequest.type,f,p,null)),l=s.clientOptions.middleware;return l.provideTypeDefinition?l.provideTypeDefinition(r,n,o,a):a(r,n,o)}};return[B.registerTypeDefinitionProvider(e.documentSelector,t),t]}}});function FT(i,e){if(i!==void 0)return i[e]}function H9(i,e){return i.filter(t=>!e.includes(t))}var dh,W9,a5e,OT,z9=I(()=>{dh=E(G());ie();W9=E(require("os"));yb();Ze();"use strict";a5e=W()("language-client-workspaceFolder");OT=class{constructor(e){this._client=e;this._listeners=new Map}get registrationType(){return dh.DidChangeWorkspaceFoldersNotification.type}getValidWorkspaceFolders(){let{workspaceFolders:e}=b;if(!e||e.length==0)return;let t=W9.default.homedir(),{ignoredRootPaths:r}=this._client.clientOptions;Array.isArray(r)||(r=[]);let n=e.filter(o=>{let s=j.parse(o.uri).fsPath;return s!=t&&!r.includes(s)});return n.length?n:void 0}asProtocol(e){return e===void 0?null:{uri:e.uri,name:e.name}}fillInitializeParams(e){let t=this.getValidWorkspaceFolders();this._initialFolders=t,t==null?e.workspaceFolders=null:e.workspaceFolders=t.map(r=>this.asProtocol(r))}fillClientCapabilities(e){e.workspace=e.workspace||{},e.workspace.workspaceFolders=!0}initialize(e){let t=this._client;t.onRequest(dh.WorkspaceFoldersRequest.type,o=>{let s=()=>{let l=this.getValidWorkspaceFolders();return l===void 0?null:l.map(c=>this.asProtocol(c))},a=t.clientOptions.middleware.workspace;return a&&a.workspaceFolders?a.workspaceFolders(o,s):s(o)});let r=FT(FT(FT(e,"workspace"),"workspaceFolders"),"changeNotifications"),n;typeof r=="string"?n=r:r===!0&&(n=We()),n&&this.register({id:n,registerOptions:void 0})}doSendEvent(e,t){let r={event:{added:e.map(n=>this.asProtocol(n)),removed:t.map(n=>this.asProtocol(n))}};this._client.sendNotification(dh.DidChangeWorkspaceFoldersNotification.type,r)}sendInitialEvent(e){if(this._initialFolders&&e){let t=H9(this._initialFolders,e),r=H9(e,this._initialFolders);(r.length>0||t.length>0)&&this.doSendEvent(r,t)}else this._initialFolders?this.doSendEvent([],this._initialFolders):e&&this.doSendEvent(e,[])}register(e){let t=e.id,r=this._client,n=b.onDidChangeWorkspaceFolders(s=>{let a=u=>{this.doSendEvent(u.added,u.removed)},l=r.clientOptions.middleware.workspace;l&&l.didChangeWorkspaceFolders?l.didChangeWorkspaceFolders(s,a):a(s)});this._listeners.set(t,n);let o=this.getValidWorkspaceFolders();this.sendInitialEvent(o)}unregister(e){let t=this._listeners.get(e);t!==void 0&&(this._listeners.delete(e),t.dispose())}dispose(){for(let e of this._listeners.values())e.dispose();this._listeners.clear()}}});function G9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var Cb,AT,V9=I(()=>{Cb=E(G());ht();dn();"use strict";AT=class extends $e{constructor(e){super(e,Cb.SelectionRangeRequest.type)}fillClientCapabilities(e){let t=G9(G9(e,"textDocument"),"selectionRange");t.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.selectionRangeProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideSelectionRanges:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p={textDocument:{uri:u.uri},positions:c};return s.sendRequest(Cb.SelectionRangeRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(Cb.SelectionRangeRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.provideSelectionRanges?l.provideSelectionRanges(r,n,o,a):a(r,n,o)}};return[B.registerSelectionRangeProvider(e.documentSelector,t),t]}}});function K9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var so,LT,J9=I(()=>{so=E(G());ht();dn();Zs();"use strict";LT=class extends $e{constructor(e){super(e,so.CallHierarchyPrepareRequest.type)}fillClientCapabilities(e){let r=K9(K9(e,"textDocument"),"callHierarchy");r.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.callHierarchyProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={prepareCallHierarchy:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p=hi(u,c);return s.sendRequest(so.CallHierarchyPrepareRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(so.CallHierarchyPrepareRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.prepareCallHierarchy?l.prepareCallHierarchy(r,n,o,a):a(r,n,o)},provideCallHierarchyIncomingCalls:(r,n)=>{let o=this._client,s=(l,u)=>o.sendRequest(so.CallHierarchyIncomingCallsRequest.type,{item:l},u).then(c=>c,c=>o.handleFailedRequest(so.CallHierarchyIncomingCallsRequest.type,u,c,null)),a=o.clientOptions.middleware;return a.provideCallHierarchyIncomingCalls?a.provideCallHierarchyIncomingCalls(r,n,s):s(r,n)},provideCallHierarchyOutgoingCalls:(r,n)=>{let o=this._client,s=(l,u)=>o.sendRequest(so.CallHierarchyOutgoingCallsRequest.type,{item:l},u).then(c=>c,c=>o.handleFailedRequest(so.CallHierarchyOutgoingCallsRequest.type,u,c,null)),a=o.clientOptions.middleware;return a.provideCallHierarchyOutgoingCalls?a.provideCallHierarchyOutgoingCalls(r,n,s):s(r,n)}};return[B.registerCallHierarchyProvider(e.documentSelector,t),t]}}});function Eb(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var se,o4e,MT,Y9=I(()=>{se=E(G());qT();Zs();Yi();dn();"use strict";o4e=W()("languageclient-semanticTokens");MT=class extends $e{constructor(e){super(e,se.SemanticTokensRegistrationType.type)}fillClientCapabilities(e){let t=Eb(Eb(e,"textDocument"),"semanticTokens");t.dynamicRegistration=!0,t.tokenTypes=[se.SemanticTokenTypes.namespace,se.SemanticTokenTypes.type,se.SemanticTokenTypes.class,se.SemanticTokenTypes.enum,se.SemanticTokenTypes.interface,se.SemanticTokenTypes.struct,se.SemanticTokenTypes.typeParameter,se.SemanticTokenTypes.parameter,se.SemanticTokenTypes.variable,se.SemanticTokenTypes.property,se.SemanticTokenTypes.enumMember,se.SemanticTokenTypes.event,se.SemanticTokenTypes.function,se.SemanticTokenTypes.method,se.SemanticTokenTypes.macro,se.SemanticTokenTypes.keyword,se.SemanticTokenTypes.modifier,se.SemanticTokenTypes.comment,se.SemanticTokenTypes.string,se.SemanticTokenTypes.number,se.SemanticTokenTypes.regexp,se.SemanticTokenTypes.operator],t.tokenModifiers=[se.SemanticTokenModifiers.declaration,se.SemanticTokenModifiers.definition,se.SemanticTokenModifiers.readonly,se.SemanticTokenModifiers.static,se.SemanticTokenModifiers.deprecated,se.SemanticTokenModifiers.abstract,se.SemanticTokenModifiers.async,se.SemanticTokenModifiers.modification,se.SemanticTokenModifiers.documentation,se.SemanticTokenModifiers.defaultLibrary],t.formats=[se.TokenFormat.Relative],t.requests={range:!0,full:{delta:!0}},t.multilineTokenSupport=!1,t.overlappingTokenSupport=!1,Eb(Eb(e,"workspace"),"semanticTokens").refreshSupport=!0}initialize(e,t){this._client.onRequest(se.SemanticTokensRefreshRequest.type,async()=>{for(let s of this.getAllProviders())s.onDidChangeSemanticTokensEmitter.fire()});let[n,o]=this.getRegistration(t,e.semanticTokensProvider);!n||!o||this.register({id:n,registerOptions:o})}registerLanguageProvider(e){let t=Fo(e.full)?e.full:e.full!==void 0,r=e.full!==void 0&&typeof e.full!="boolean"&&e.full.delta===!0,n=new se.Emitter,o=t?{onDidChangeSemanticTokens:n.event,legend:e.legend,provideDocumentSemanticTokens:(u,c)=>{let f=this._client,p=f.clientOptions.middleware,d=(h,m)=>{let w={textDocument:Sl(h)};return f.sendRequest(se.SemanticTokensRequest.type,w,m).then(v=>v,v=>f.handleFailedRequest(se.SemanticTokensRequest.type,m,v,null))};return p.provideDocumentSemanticTokens?p.provideDocumentSemanticTokens(u,c,d):d(u,c)},provideDocumentSemanticTokensEdits:r?(u,c,f)=>{let p=this._client,d=p.clientOptions.middleware,h=(m,w,v)=>{let D={textDocument:Sl(m),previousResultId:w};return p.sendRequest(se.SemanticTokensDeltaRequest.type,D,v).then(x=>x,x=>p.handleFailedRequest(se.SemanticTokensDeltaRequest.type,v,x,null))};return d.provideDocumentSemanticTokensEdits?d.provideDocumentSemanticTokensEdits(u,c,f,h):h(u,c,f)}:void 0}:void 0,a=e.range===!0?{legend:e.legend,provideDocumentRangeSemanticTokens:(u,c,f)=>{let p=this._client,d=p.clientOptions.middleware,h=(m,w,v)=>{let D={textDocument:Sl(m),range:w};return p.sendRequest(se.SemanticTokensRangeRequest.type,D,v).then(x=>x,x=>p.handleFailedRequest(se.SemanticTokensRangeRequest.type,v,x,null))};return d.provideDocumentRangeSemanticTokens?d.provideDocumentRangeSemanticTokens(u,c,f,h):h(u,c,f)}}:void 0,l=[];return o!==void 0&&l.push(B.registerDocumentSemanticTokensProvider(e.documentSelector,o,e.legend)),a!==void 0&&l.push(B.registerDocumentRangeSemanticTokensProvider(e.documentSelector,a,e.legend)),[se.Disposable.create(()=>l.forEach(u=>u.dispose())),{range:a,full:o,onDidChangeSemanticTokensEmitter:n}]}}});function X9(i,e){return i[e]===void 0&&(i[e]={}),i[e]}var _b,w4e,NT,Z9=I(()=>{_b=E(G());ht();dn();Zs();w4e=W()("languageclient-linkedEditingRange");NT=class extends $e{constructor(e){super(e,_b.LinkedEditingRangeRequest.type)}fillClientCapabilities(e){let t=X9(X9(e,"textDocument"),"linkedEditingRange");t.dynamicRegistration=!0}initialize(e,t){let[r,n]=this.getRegistration(t,e.linkedEditingRangeProvider);!r||!n||this.register({id:r,registerOptions:n})}registerLanguageProvider(e){let t={provideLinkedEditingRanges:(r,n,o)=>{let s=this._client,a=(u,c,f)=>{let p=hi(u,c);return s.sendRequest(_b.LinkedEditingRangeRequest.type,p,f).then(d=>d,d=>s.handleFailedRequest(_b.LinkedEditingRangeRequest.type,f,d,null))},l=s.clientOptions.middleware;return l.provideLinkedEditingRange?l.provideLinkedEditingRange(r,n,o,a):a(r,n,o)}};return[B.registerLinkedEditingRangeProvider(e.documentSelector,t),t]}}});function e7(i,e){return i[e]===void 0&&(i[e]={}),i[e]}function bDe(i,e){return i[e]}function t7(i,e,t){i[e]=t}function Tb(i){return{files:i.files.map(e=>({uri:e.toString()}))}}function r7(i){return{files:i.files.map(e=>({oldUri:e.oldUri.toString(),newUri:e.newUri.toString()}))}}var Q9,Mr,V4e,El,Pb,$T,BT,jT,Rb,UT,WT,HT,i7=I(()=>{Q9=E(Ps()),Mr=E(G());Pi();Vt();ie();yb();V4e=W()("language-client-fileOperations");El=class{constructor(e,t,r,n,o){this._filters=new Map;this._client=e,this._event=t,this._registrationType=r,this._clientCapability=n,this._serverCapability=o}get registrationType(){return this._registrationType}fillClientCapabilities(e){let t=e7(e7(e,"workspace"),"fileOperations");t7(t,"dynamicRegistration",!0),t7(t,this._clientCapability,!0)}initialize(e){var n;let t=(n=e.workspace)==null?void 0:n.fileOperations,r=t!==void 0?bDe(t,this._serverCapability):void 0;if((r==null?void 0:r.filters)!==void 0)try{this.register({id:We(),registerOptions:{filters:r.filters}})}catch(o){this._client.warn(`Ignoring invalid glob pattern for ${this._serverCapability} registration: ${o}`)}}register(e){this._listener||(this._listener=this._event(this.send,this));let t=e.registerOptions.filters.map(r=>{let n=new Q9.Minimatch(r.pattern.glob,El.asMinimatchOptions(r.pattern.options));if(!n.makeRe())throw new Error(`Invalid pattern ${r.pattern.glob}!`);return{scheme:r.scheme,matcher:n,kind:r.pattern.matches}});this._filters.set(e.id,t)}unregister(e){this._filters.delete(e),this._filters.size===0&&this._listener&&(this._listener.dispose(),this._listener=void 0)}dispose(){this._filters.clear(),this._listener&&(this._listener.dispose(),this._listener=void 0)}async filter(e,t){let r=await Promise.all(e.files.map(async o=>{let s=t(o),a=s.fsPath.replace(/\\/g,"/");for(let l of this._filters.values())for(let u of l)if(!(u.scheme!==void 0&&u.scheme!==s.scheme)){if(u.matcher.match(a)){if(u.kind===void 0)return!0;let c=await El.getFileType(s);if(c===void 0)return this._client.error(`Failed to determine file type for ${s.toString()}.`),!0;if(c===kn.File&&u.kind===Mr.FileOperationPatternKind.file||c===kn.Directory&&u.kind===Mr.FileOperationPatternKind.folder)return!0}else if(u.kind===Mr.FileOperationPatternKind.folder&&await El.getFileType(s)===kn.Directory&&u.matcher.match(`${a}/`))return!0}return!1})),n=e.files.filter((o,s)=>r[s]);return yf(mt({},e),{files:n})}static async getFileType(e){try{let t=await $t(e.fsPath);return t.isFile()?kn.File:t.isDirectory()?kn.Directory:t.isSymbolicLink()?kn.SymbolicLink:kn.Unknown}catch(t){return}}static asMinimatchOptions(e){if(e!==void 0&&e.ignoreCase===!0)return{nocase:!0}}},Pb=class extends El{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o);this._notificationType=r,this._accessUri=s,this._createParams=a}async send(e){let t=await this.filter(e,this._accessUri);if(t.files.length){let r=async n=>{this._client.sendNotification(this._notificationType,this._createParams(n))};this.doSend(t,r)}}},$T=class extends Pb{constructor(e){super(e,b.onDidCreateFiles,Mr.DidCreateFilesNotification.type,"didCreate","didCreate",t=>t,t=>Tb(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.didCreateFiles)?r.didCreateFiles(e,t):t(e)}},BT=class extends Pb{constructor(e){super(e,b.onDidRenameFiles,Mr.DidRenameFilesNotification.type,"didRename","didRename",t=>t.oldUri,t=>r7(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.didRenameFiles)?r.didRenameFiles(e,t):t(e)}},jT=class extends Pb{constructor(e){super(e,b.onDidDeleteFiles,Mr.DidDeleteFilesNotification.type,"didDelete","didDelete",t=>t,t=>Tb(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.didDeleteFiles)?r.didDeleteFiles(e,t):t(e)}},Rb=class extends El{constructor(e,t,r,n,o,s,a){super(e,t,r,n,o);this._requestType=r,this._accessUri=s,this._createParams=a}async send(e){let t=this.waitUntil(e);e.waitUntil(t)}async waitUntil(e){let t=await this.filter(e,this._accessUri);if(t.files.length){let r=n=>this._client.sendRequest(this._requestType,this._createParams(n));return this.doSend(t,r)}else return}},UT=class extends Rb{constructor(e){super(e,b.onWillCreateFiles,Mr.WillCreateFilesRequest.type,"willCreate","willCreate",t=>t,t=>Tb(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.willCreateFiles)?r.willCreateFiles(e,t):t(e)}},WT=class extends Rb{constructor(e){super(e,b.onWillRenameFiles,Mr.WillRenameFilesRequest.type,"willRename","willRename",t=>t.oldUri,t=>r7(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.willRenameFiles)?r.willRenameFiles(e,t):t(e)}},HT=class extends Rb{constructor(e){super(e,b.onWillDeleteFiles,Mr.WillDeleteFilesRequest.type,"willDelete","willDelete",t=>t,t=>Tb(t))}doSend(e,t){var n;let r=(n=this._client.clientOptions.middleware)==null?void 0:n.workspace;return(r==null?void 0:r.willDeleteFiles)?r.willDeleteFiles(e,t):t(e)}}});var Go,kb,Wc,ut,hze,hh,zT,xt,Hc,GT,VT,KT,Ib,n7,Fb,JT=I(()=>{Go=E(require("child_process")),kb=E(require("fs")),Wc=E(require("path")),ut=E(qz());Pi();ye();Yi();Bz();ie();dn();k9();F9();A9();M9();N9();B9();U9();z9();V9();J9();Y9();Z9();i7();dn();hze=Go.default.ChildProcess,hh=W()("language-client-index");(function(e){function i(t){return Le(t.command)}e.is=i})(zT||(zT={}));(function(n){n[n.stdio=0]="stdio",n[n.ipc=1]="ipc",n[n.pipe=2]="pipe",n[n.socket=3]="socket"})(xt||(xt={}));(function(e){function i(t){let r=t;return r&&r.kind===3&&Rg(r.port)}e.isSocket=i})(Hc||(Hc={}));(function(e){function i(t){return Le(t.module)}e.is=i})(GT||(GT={}));(function(e){function i(t){let r=t;return r&&r.writer!==void 0&&r.reader!==void 0}e.is=i})(VT||(VT={}));(function(e){function i(t){let r=t;return r&&r.process!==void 0&&typeof r.detached=="boolean"}e.is=i})(KT||(KT={}));Ib=class extends bb{constructor(e,t,r,n,o){let s,a,l,u,c;Le(t)?(s=e,a=t,l=r,u=n,c=!!o):(s=e.toLowerCase(),a=e,l=t,u=r,c=n),c===void 0&&(c=!1),super(s,a,u),this._serverOptions=l,this._forceDebug=c,this.registerProposedFeatures()}stop(){return super.stop().then(()=>{if(this._serverProcess){let e=this._serverProcess;this._serverProcess=void 0,(this._isDetached===void 0||!this._isDetached)&&this.checkProcessDied(e),this._isDetached=void 0}})}get serviceState(){let e=this._state;switch(e){case Se.Initial:return _e.Initial;case Se.Running:return _e.Running;case Se.StartFailed:return _e.StartFailed;case Se.Starting:return _e.Starting;case Se.Stopped:return _e.Stopped;case Se.Stopping:return _e.Stopping;default:return hh.error(`Unknown state: ${e}`),_e.Stopped}}static stateName(e){switch(e){case Se.Initial:return"Initial";case Se.Running:return"Running";case Se.StartFailed:return"StartFailed";case Se.Starting:return"Starting";case Se.Stopped:return"Stopped";case Se.Stopping:return"Stopping";default:return"Unknonw"}}checkProcessDied(e){if(!(!e||global.hasOwnProperty("__TEST__"))){if(global.hasOwnProperty("__TEST__")){process.kill(e.pid,0);return}setTimeout(()=>{try{process.kill(e.pid,0),$z(e)}catch(t){}},2e3)}}handleConnectionClosed(){this._serverProcess=void 0,super.handleConnectionClosed()}createMessageTransports(e){function t(c,f){if(!c&&!f)return;let p=Object.create(null);return Object.keys(process.env).forEach(d=>p[d]=process.env[d]),c&&Object.keys(c).forEach(d=>p[d]=c[d]),p}let r=["--debug=","--debug-brk=","--inspect=","--inspect-brk="],n=["--debug","--debug-brk","--inspect","--inspect-brk"];function o(){let c=process.execArgv;return c?c.some(f=>r.some(p=>f.startsWith(p))||n.some(p=>f===p)):!1}function s(c){if(c.stdin===null||c.stdout===null||c.stderr===null)throw new Error("Process created without stdio streams")}let a=this._serverOptions;if(Cs(a))return a().then(c=>{if(fh.is(c))return this._isDetached=!!c.detached,c;if(VT.is(c))return this._isDetached=!!c.detached,{reader:new ut.StreamMessageReader(c.reader),writer:new ut.StreamMessageWriter(c.writer)};{let f;return KT.is(c)?(f=c.process,this._isDetached=c.detached):(f=c,this._isDetached=!1),f.stderr.on("data",p=>this.outputChannel.append(Le(p)?p:p.toString(e))),{reader:new ut.StreamMessageReader(f.stdout),writer:new ut.StreamMessageWriter(f.stdin)}}});let l,u=a;return u.run||u.debug?typeof v8debug=="object"||this._forceDebug||o()?l=u.debug:l=u.run:l=a,this._getServerWorkingDir(l.options).then(c=>{if(GT.is(l)&&l.module){let f=l,p=f.transport||0;if(f.runtime){let d=[],h=f.options||Object.create(null);h.execArgv&&h.execArgv.forEach(D=>d.push(D)),d.push(f.module),f.args&&f.args.forEach(D=>d.push(D));let m=Object.create(null);m.cwd=c,m.env=t(h.env,!1);let w=this._getRuntimePath(f.runtime,c);hh.error("--coc runtime:",w);let v;if(p===1?(m.stdio=[null,null,null,"ipc"],d.push("--node-ipc")):p===0?d.push("--stdio"):p===2?(v=(0,ut.generateRandomPipeName)(),d.push(`--pipe=${v}`)):Hc.isSocket(p)&&d.push(`--socket=${p.port}`),d.push(`--clientProcessId=${process.pid.toString()}`),p===1||p===0){let D=Go.default.spawn(w,d,m);return!D||!D.pid?Promise.reject(`Launching server using runtime ${w} failed.`):(this._serverProcess=D,D.stderr.on("data",x=>this.outputChannel.append(Le(x)?x:x.toString(e))),p===1?(D.stdout.on("data",x=>this.outputChannel.append(Le(x)?x:x.toString(e))),Promise.resolve({reader:new ut.IPCMessageReader(D),writer:new ut.IPCMessageWriter(D)})):Promise.resolve({reader:new ut.StreamMessageReader(D.stdout),writer:new ut.StreamMessageWriter(D.stdin)}))}else{if(p===2)return(0,ut.createClientPipeTransport)(v).then(D=>{let x=Go.default.spawn(w,d,m);return!x||!x.pid?Promise.reject(`Launching server using runtime ${w} failed.`):(this._serverProcess=x,x.stderr.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),x.stdout.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),D.onConnected().then(S=>({reader:S[0],writer:S[1]})))});if(Hc.isSocket(p))return(0,ut.createClientSocketTransport)(p.port).then(D=>{let x=Go.default.spawn(w,d,m);return!x||!x.pid?Promise.reject(`Launching server using runtime ${w} failed.`):(this._serverProcess=x,x.stderr.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),x.stdout.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),D.onConnected().then(S=>({reader:S[0],writer:S[1]})))})}}else{let d;return new Promise((h,m)=>{let w=f.args&&f.args.slice()||[];p===1?w.push("--node-ipc"):p===0?w.push("--stdio"):p===2?(d=(0,ut.generateRandomPipeName)(),w.push(`--pipe=${d}`)):Hc.isSocket(p)&&w.push(`--socket=${p.port}`),w.push(`--clientProcessId=${process.pid.toString()}`);let v=f.options||Object.create(null);if(v.env=t(v.env,!0),v.execArgv=v.execArgv||[],v.cwd=c,v.silent=!0,p===1||p===0){let D=Go.default.fork(f.module,w||[],v);s(D),this._serverProcess=D,D.stderr.on("data",x=>this.outputChannel.append(Le(x)?x:x.toString(e))),p===1?(D.stdout.on("data",x=>this.outputChannel.append(Le(x)?x:x.toString(e))),h({reader:new ut.IPCMessageReader(this._serverProcess),writer:new ut.IPCMessageWriter(this._serverProcess)})):h({reader:new ut.StreamMessageReader(D.stdout),writer:new ut.StreamMessageWriter(D.stdin)})}else p===2?(0,ut.createClientPipeTransport)(d).then(D=>{let x=Go.default.fork(f.module,w||[],v);s(x),this._serverProcess=x,x.stderr.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),x.stdout.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),D.onConnected().then(S=>{h({reader:S[0],writer:S[1]})})}):Hc.isSocket(p)&&(0,ut.createClientSocketTransport)(p.port).then(D=>{let x=Go.default.fork(f.module,w||[],v);s(x),this._serverProcess=x,x.stderr.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),x.stdout.on("data",S=>this.outputChannel.append(Le(S)?S:S.toString(e))),D.onConnected().then(S=>{h({reader:S[0],writer:S[1]})})})})}}else if(zT.is(l)&&l.command){let f=l,p=f.args||[],d=Object.assign({},f.options);d.env=d.env?Object.assign({},process.env,d.env):process.env,d.cwd=d.cwd||c;let h=b.expand(l.command),m=Go.default.spawn(h,p,d);return m.on("error",w=>{this.error(w.message),hh.error(w)}),!m||!m.pid?Promise.reject(`Launching server "${this.id}" using command ${f.command} failed.`):(hh.info(`Language server "${this.id}" started with ${m.pid}`),m.on("exit",w=>{w!=0&&this.error(`${f.command} exited with code: ${w}`)}),m.stderr.on("data",w=>this.outputChannel.append(Le(w)?w:w.toString(e))),this._serverProcess=m,this._isDetached=!!d.detached,Promise.resolve({reader:new ut.StreamMessageReader(m.stdout),writer:new ut.StreamMessageWriter(m.stdin)}))}return Promise.reject(`Unsupported server configuration ${JSON.stringify(a,null,2)}`)})}_getRuntimePath(e,t){if(Wc.default.isAbsolute(e))return e;let r=this._mainGetRootPath();if(r!==void 0){let n=Wc.default.join(r,e);if(kb.default.existsSync(n))return n}if(t!==void 0){let n=Wc.default.join(t,e);if(kb.default.existsSync(n))return n}return e}_mainGetRootPath(){let e=b.workspaceFolders;if(!e||e.length===0)return;let t=e[0];return hh.error("--coc _mainGetRootPath:",t),t.uri}registerProposedFeatures(){this.registerFeatures(Fb.createAll(this))}registerBuiltinFeatures(){super.registerBuiltinFeatures(),this.registerFeature(new _T(this)),this.registerFeature(new IT(this)),this.registerFeature(new RT(this)),this.registerFeature(new TT(this)),this.registerFeature(new ET(this)),this.registerFeature(new PT(this)),this.registerFeature(new AT(this)),this.registerFeature(new kT(this)),this.registerFeature(new LT(this)),this.registerFeature(new MT(this)),this.registerFeature(new NT(this)),this.registerFeature(new $T(this)),this.registerFeature(new BT(this)),this.registerFeature(new jT(this)),this.registerFeature(new UT(this)),this.registerFeature(new WT(this)),this.registerFeature(new HT(this)),this.clientOptions.disableWorkspaceFolders||this.registerFeature(new OT(this))}_getServerWorkingDir(e){let t=e&&e.cwd;return t&&!Wc.default.isAbsolute(t)&&(t=Wc.default.join(b.cwd,t)),t||(t=b.cwd),t?new Promise(r=>{kb.default.lstat(t,(n,o)=>{r(!n&&o.isDirectory()?t:void 0)})}):Promise.resolve(void 0)}appendOutput(e,t){let r=Le(e)?e:e.toString(t);this.outputChannel.append(r.endsWith(` +`)?r:r+` +`)}},n7=class{constructor(e,t){this._client=e;this._setting=t;this._listeners=[]}start(){return b.onDidChangeConfiguration(e=>{e.affectsConfiguration(this._setting)&&this.onDidChangeConfiguration()},null,this._listeners),this.onDidChangeConfiguration(),{dispose:()=>{J(this._listeners),this._client.needsStop()&&this._client.stop()}}}onDidChangeConfiguration(){let e=this._setting.indexOf("."),t=e>=0?this._setting.substr(0,e):this._setting,r=e>=0?this._setting.substr(e+1):void 0,n=r?b.getConfiguration(t).get(r,!0):b.getConfiguration(t);n&&this._client.needsStart()?this._client.start():!n&&this._client.needsStop()&&this._client.stop()}};(function(e){function i(t){return[]}e.createAll=i})(Fb||(Fb={}))});function wDe(i){switch(i){case _e.Initial:return"init";case _e.Running:return"running";case _e.Starting:return"starting";case _e.StartFailed:return"startFailed";case _e.Stopping:return"stopping";case _e.Stopped:return"stopped";default:return"unknown"}}function DDe(i){let e=i.map(t=>typeof t=="string"?t:t.language);return e=e.filter(t=>typeof t=="string"),Array.from(new Set(e))}function xDe(i,e,t){let{command:r,module:n,port:o,args:s,filetypes:a}=t;if(s=s||[],!a)return T.showMessage(`Wrong configuration of LS "${e}", filetypes not found`,"error"),null;if(!r&&!n&&!o)return T.showMessage(`Wrong configuration of LS "${e}", no command or module specified.`,"error"),null;let l;if(n){if(n=b.expand(n),!s7.default.existsSync(n))return T.showMessage(`Module file "${n}" not found for LS "${e}"`,"error"),null;l={module:n,runtime:t.runtime||process.execPath,args:s,transport:CDe(t),options:EDe(t)}}else r?l={command:r,args:s,options:_De(t)}:o&&(l=()=>new Promise((d,h)=>{let m=new a7.default.Socket,w=t.host||"127.0.0.1";_l.info(`languageserver "${i}" connecting to ${w}:${o}`),m.connect(o,w,()=>{d({reader:m,writer:m})}),m.on("error",v=>{h(new Error(`Connection error for ${i}: ${v.message}`))})}));let u=!!t.disableWorkspaceFolders,c=!!t.disableSnippetCompletion;return[{ignoredRootPaths:(t.ignoredRootPaths||[]).map(d=>b.expand(d)),disableWorkspaceFolders:u,disableSnippetCompletion:c,disableDynamicRegister:!!t.disableDynamicRegister,disableCompletion:!!t.disableCompletion,disableDiagnostics:!!t.disableDiagnostics,formatterPriority:t.formatterPriority||0,documentSelector:u7(t.filetypes,t.additionalSchemes),revealOutputChannelOn:SDe(t.revealOutputChannelOn),synchronize:{configurationSection:`${i}.settings`},diagnosticCollectionName:e,outputChannelName:i,stdioEncoding:t.stdioEncoding||"utf8",progressOnInitialization:t.progressOnInitialization!==!1,initializationOptions:t.initializationOptions||{}},l]}function SDe(i){switch(i){case"info":return Ai.Info;case"warn":return Ai.Warn;case"error":return Ai.Error;case"never":return Ai.Never;default:return Ai.Never}}function u7(i,e){let t=[],r=["file","untitled"].concat(e||[]);return i?(i.forEach(n=>{t.push(...r.map(o=>({language:n,scheme:o})))}),t):r.map(n=>({scheme:n}))}function CDe(i){let{transport:e,transportPort:t}=i;return!e||e=="ipc"?xt.ipc:e=="stdio"?xt.stdio:e=="pipe"?xt.pipe:{kind:xt.socket,port:t}}function EDe(i){return{cwd:i.cwd,execArgv:i.execArgv||[],env:i.env||void 0}}function _De(i){return{cwd:i.cwd,detached:!!i.detached,shell:!!i.shell,env:i.env||void 0}}function c7(i){switch(i){case Li.Running:return"running";case Li.Starting:return"starting";case Li.Stopped:return"stopped";default:return"unknown"}}var o7,s7,a7,zc,_l,l7,qr,mh=I(()=>{o7=E(require("events")),s7=E(require("fs")),a7=E(require("net")),zc=E(G());JT();Pi();ye();ie();Te();_l=W()("services");l7=class extends o7.EventEmitter{constructor(){super(...arguments);this.registered=new Map;this.disposables=[]}init(){b.onDidOpenTextDocument(e=>{this.start(e)},null,this.disposables),b.onDidChangeConfiguration(e=>{e.affectsConfiguration("languageserver")&&this.createCustomServices()},null,this.disposables),this.createCustomServices()}dispose(){this.removeAllListeners(),J(this.disposables);for(let e of this.registered.values())e.dispose()}regist(e){let{id:t}=e;if(t||_l.error("invalid service configuration. ",e.name),!this.registered.get(t))return this.registered.set(t,e),_l.info(`registered service "${t}"`),this.shouldStart(e)&&e.start(),e.state==_e.Running&&this.emit("ready",t),e.onServiceReady(()=>{_l.info(`service ${t} started`),this.emit("ready",t)},null,this.disposables),zc.Disposable.create(()=>{e.stop(),e.dispose(),this.registered.delete(t)})}getService(e){let t=this.registered.get(e);return t||(t=this.registered.get(`languageserver.${e}`)),t}shouldStart(e){if(e.state!=_e.Initial)return!1;let t=e.selector;for(let r of b.documents)if(b.match(t,r.textDocument))return!0;return!1}start(e){let t=this.getServices(e);for(let r of t)r.state==_e.Initial&&r.start()}getServices(e){let t=[];for(let r of this.registered.values())b.match(r.selector,e)>0&&t.push(r);return t}stop(e){let t=this.registered.get(e);if(!t){T.showMessage(`Service ${e} not found`,"error");return}return Promise.resolve(t.stop())}stopAll(){for(let e of this.registered.values())e.stop()}async toggle(e){let t=this.registered.get(e);if(!t){T.showMessage(`Service ${e} not found`,"error");return}let{state:r}=t;try{r==_e.Running?await Promise.resolve(t.stop()):r==_e.Initial?await t.start():r==_e.Stopped&&await t.restart()}catch(n){T.showMessage(`Service error: ${n.message}`,"error")}}getServiceStats(){let e=[];for(let[t,r]of this.registered)e.push({id:t,languageIds:DDe(r.selector),state:wDe(r.state)});return e}createCustomServices(){let e=b.getConfiguration().get("languageserver",{});for(let t of Object.keys(e)){let r=e[t];this.registLanguageClient(t,r)}}waitClient(e){let t=this.getService(e);return t&&t.state==_e.Running?Promise.resolve():t?new Promise(r=>{t.onServiceReady(()=>{r()})}):new Promise(r=>{let n=o=>{(o==e||o==`languageserver.${e}`)&&(this.off("ready",n),r())};this.on("ready",n)})}async registNotification(e,t){await this.waitClient(e);let r=this.getService(e);if(!r.client){T.showMessage(`Not a language client: ${e}`,"error");return}r.client.onNotification(t,async o=>{await b.nvim.call("coc#do_notify",[e,t,o])})}async sendNotification(e,t,r){if(!t)throw new Error("method required for ontification");let n=this.getService(e);if(!n||!n.client)throw new Error(`Language server ${e} not found`);if(n.state==_e.Starting&&await n.client.onReady(),n.state!=_e.Running)throw new Error(`Language server ${e} not running`);await Promise.resolve(n.client.sendNotification(t,r))}async sendRequest(e,t,r,n){if(!t)throw new Error("method required for sendRequest");let o=this.getService(e);if(o||await nt(100),o=this.getService(e),!o||!o.client)throw new Error(`Language server ${e} not found`);if(o.state==_e.Starting&&await o.client.onReady(),o.state!=_e.Running)throw new Error(`Language server ${e} not running`);return n||(n=new zc.CancellationTokenSource().token),await Promise.resolve(o.client.sendRequest(t,r,n))}registLanguageClient(e,t){let r=typeof e=="string"?`languageserver.${e}`:e.id,n=[],o=new zc.Emitter,s=typeof e=="string"?null:e;if(this.registered.has(r))return;let a=!1,l={id:r,client:s,name:typeof e=="string"?e:e.name,selector:typeof e=="string"?u7(t.filetypes,t.additionalSchemes):e.clientOptions.documentSelector,state:_e.Initial,onServiceReady:o.event,start:()=>{if(l.state==_e.Starting||l.state==_e.Running||s&&!s.needsStart())return;if(a&&s)return s.restart(),Promise.resolve();if(!a){if(typeof e=="string"&&!s){let c=b.getConfiguration().get("languageserver",{})[e];if(!c||c.enable===!1)return;let f=xDe(r,e,c);if(!f)return;s=new Ib(r,e,f[1],f[0]),l.selector=f[0].documentSelector,l.client=s}s.onDidChangeState(c=>{let{oldState:f,newState:p}=c;p==Li.Starting?l.state=_e.Starting:p==Li.Running?l.state=_e.Running:p==Li.Stopped&&(l.state=_e.Stopped);let d=c7(f),h=c7(p);_l.info(`${s.name} state change: ${d} => ${h}`)},null,n),a=!0}l.state=_e.Starting,_l.debug(`starting service: ${r}`);let u=s.start();return n.push(u),new Promise(c=>{s.onReady().then(()=>{o.fire(void 0),c()},f=>{T.showMessage(`Server ${r} failed to start: ${f}`,"error"),_l.error(`Server ${r} failed to start:`,f),l.state=_e.StartFailed,c()})})},dispose:async()=>{o.dispose(),J(n)},stop:async()=>{!s||!s.needsStop()||await Promise.resolve(s.stop())},restart:async()=>{s?(l.state=_e.Starting,s.restart()):await l.start()}};return this.regist(l)}};qr=new l7});var f7,Tl,Gc,Ob=I(()=>{ie();Te();f7=E(require("events")),Tl=["","","","","","","","","","","","","","","","","","","","<2-LeftMouse>","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],Gc=class extends f7.EventEmitter{constructor(){super();this.configuration=b.getConfiguration("list"),this.disposable=b.onDidChangeConfiguration(e=>{e.affectsConfiguration("list")&&(this.configuration=b.getConfiguration("list"),this.emit("change"))})}get(e,t){return this.configuration.get(e,t)}get previousKey(){return this.fixKey(this.configuration.get("previousKeymap",""))}get nextKey(){return this.fixKey(this.configuration.get("nextKeymap",""))}dispose(){this.disposable.dispose(),this.removeAllListeners()}fixKey(e){if(Tl.includes(e))return e;let t=Tl.find(r=>r.toLowerCase()==e.toLowerCase());return t||(T.showMessage(`Configured key "${e}" not supported.`,"error"),null)}}});var $ze,Wze,Ab,p7=I(()=>{$ze=E($m());Te();Ob();Wze=W()("list-mappings"),Ab=class{constructor(e,t,r){this.manager=e;this.nvim=t;this.config=r;this.insertMappings=new Map;this.normalMappings=new Map;this.userInsertMappings=new Map;this.userNormalMappings=new Map;let{prompt:n}=e;this.add("insert","",()=>{n.removeTail()}),this.add("insert","",()=>{var o;(o=e.session)==null||o.history.next()}),this.add("insert","",()=>{var o;(o=e.session)==null||o.history.previous()}),this.add("insert","",async()=>{await n.paste()}),this.add("insert","",()=>e.switchMatcher()),this.add("insert",["",""],async()=>{await e.doAction()}),this.add("insert",["",""," "],()=>e.chooseAction()),this.add("insert","",()=>{e.toggleMode()}),this.add("insert","",()=>{e.stop()}),this.add("insert","",()=>e.cancel()),this.add("insert","",async()=>{var o;await((o=e.session)==null?void 0:o.reloadItems())}),this.add("insert","",()=>{n.moveLeft()}),this.add("insert","",()=>{n.moveRight()}),this.add("insert",["",""],()=>{n.moveToEnd()}),this.add("insert",["",""],()=>{n.moveToStart()}),this.add("insert",["","",""],()=>{n.onBackspace()}),this.add("insert","",()=>{n.removeWord()}),this.add("insert","",()=>{n.removeAhead()}),this.add("insert","",()=>n.insertRegister()),this.add("insert","",()=>e.feedkeys("",!1)),this.add("insert","",()=>e.feedkeys("",!1)),this.add("insert","",()=>e.feedkeys("",!1)),this.add("insert","",()=>e.normal("j")),this.add("insert","",()=>e.normal("k")),this.add("insert",[""],this.doScroll.bind(this,"")),this.add("insert",[""],this.doScroll.bind(this,"")),this.add("insert",[""],this.doScroll.bind(this,"")),this.add("insert",[""],this.doScroll.bind(this,"")),this.add("normal","",()=>{}),this.add("normal","t",()=>e.doAction("tabe")),this.add("normal","s",()=>e.doAction("split")),this.add("normal","d",()=>e.doAction("drop")),this.add("normal",["","","\r"],()=>e.doAction()),this.add("normal","",()=>{var o;return(o=e.session)==null?void 0:o.ui.selectAll()}),this.add("normal"," ",()=>{var o;return(o=e.session)==null?void 0:o.ui.toggleSelection()}),this.add("normal","p",()=>e.togglePreview()),this.add("normal",[""," ",""],()=>e.chooseAction()),this.add("normal","",()=>{e.stop()}),this.add("normal","",()=>e.cancel()),this.add("normal","",()=>{var o;return(o=e.session)==null?void 0:o.reloadItems()}),this.add("normal","",()=>{var o;return(o=e.session)==null?void 0:o.jumpBack()}),this.add("normal","",()=>this.scrollPreview("down")),this.add("normal","",()=>this.scrollPreview("up")),this.add("normal",["i","I","o","O","a","A"],()=>e.toggleMode()),this.add("normal","?",()=>{var o;return(o=e.session)==null?void 0:o.showHelp()}),this.add("normal",":",async()=>{await e.cancel(!1),await t.eval('feedkeys(":")')}),this.add("normal",[""],this.doScroll.bind(this,"")),this.add("normal",[""],this.doScroll.bind(this,"")),this.createMappings(),r.on("change",()=>{this.createMappings()})}createMappings(){let e=this.config.get("insertMappings",{});this.userInsertMappings=this.fixUserMappings(e);let t=this.config.get("normalMappings",{});this.userNormalMappings=this.fixUserMappings(t)}fixUserMappings(e){let t=new Map;for(let[r,n]of Object.entries(e))if(r.length==1)t.set(r,n);else if(r.startsWith("<")&&r.endsWith(">"))if(r.toLowerCase()=="")t.set(" ",n);else if(r.toLowerCase()=="")t.set("",n);else if(Tl.includes(r))t.set(r,n);else{let o=!1;for(let s=0;s{d7=E(G()),Gze=W()("list-prompt"),Lb=class{constructor(e,t){this.nvim=e;this.config=t;this.cusorIndex=0;this._input="";this._mode="insert";this.interactive=!1;this.requestInput=!1;this._onDidChangeInput=new d7.Emitter;this.onDidChangeInput=this._onDidChangeInput.event}get input(){return this._input}set input(e){this._input!=e&&(this.cusorIndex=e.length,this._input=e,this.drawPrompt(),this._onDidChangeInput.fire(this._input))}get mode(){return this._mode}set mode(e){e!=this._mode&&(this._mode=e,this.drawPrompt())}set matcher(e){this._matcher=e,this.drawPrompt()}start(e){e&&(this.interactive=e.interactive,this.cusorIndex=e.input.length,this._input=e.input,this._mode=e.mode,this._matcher=e.interactive?"":e.matcher),this.nvim.call("coc#prompt#start_prompt",["list"],!0),this.drawPrompt()}cancel(){let{nvim:e}=this;e.call("coc#prompt#stop_prompt",["list"],!0)}reset(){this._input="",this.cusorIndex=0}drawPrompt(){let e=this.config.get("indicator",">"),{cusorIndex:t,interactive:r,input:n,_matcher:o}=this,s=['echo ""'];if(this.mode=="insert")if(r?s.push("echohl MoreMsg | echon 'INTERACTIVE ' | echohl None"):o&&s.push(`echohl MoreMsg | echon '${o.toUpperCase()} ' | echohl None`),s.push(`echohl Special | echon '${e} ' | echohl None`),t==n.length)s.push(`echon '${n.replace(/'/g,"''")}'`),s.push("echohl Cursor | echon ' ' | echohl None");else{let l=n.slice(0,t);l&&s.push(`echon '${l.replace(/'/g,"''")}'`),s.push(`echohl Cursor | echon '${n[t].replace(/'/,"''")}' | echohl None`);let u=n.slice(t+1);s.push(`echon '${u.replace(/'/g,"''")}'`)}else s.push('echohl MoreMsg | echo "" | echohl None');s.push("redraw");let a=s.join("|");this.nvim.command(a,!0)}moveLeft(){this.cusorIndex!=0&&(this.cusorIndex=this.cusorIndex-1,this.drawPrompt())}moveRight(){this.cusorIndex!=this._input.length&&(this.cusorIndex=this.cusorIndex+1,this.drawPrompt())}moveToEnd(){this.cusorIndex!=this._input.length&&(this.cusorIndex=this._input.length,this.drawPrompt())}moveToStart(){this.cusorIndex!=0&&(this.cusorIndex=0,this.drawPrompt())}onBackspace(){let{cusorIndex:e,input:t}=this;if(e==0)return;let r=t.slice(0,e),n=t.slice(e);this.cusorIndex=e-1,this._input=`${r.slice(0,r.length-1)}${n}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeNext(){let{cusorIndex:e,input:t}=this;if(e==t.length-1)return;let r=t.slice(0,e),n=t.slice(e+1);this._input=`${r}${n}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeWord(){let{cusorIndex:e,input:t}=this;if(e==0)return;let r=t.slice(0,e),n=t.slice(e),o=r.replace(/[\w$]+([^\w$]+)?$/,"");this.cusorIndex=e-(r.length-o.length),this._input=`${o}${n}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeTail(){let{cusorIndex:e,input:t}=this;if(e==t.length)return;let r=t.slice(0,e);this._input=r,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}removeAhead(){let{cusorIndex:e,input:t}=this;if(e==0)return;let r=t.slice(e);this.cusorIndex=0,this._input=r,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}async acceptCharacter(e){if(this.requestInput){if(this.requestInput=!1,/^[0-9a-z"%#*+/:\-.]$/.test(e)){let t=await this.nvim.call("getreg",e);t=t.replace(/\n/g," "),this.addText(t)}}else this.addText(e)}insertRegister(){this.requestInput=!0}async paste(){let e=await this.nvim.eval("@*");e=e.replace(/\n/g,""),!!e&&this.addText(e)}async eval(e){let t=await this.nvim.call("eval",[e]);t=t.replace(/\n/g,""),this.addText(t)}addText(e){let{cusorIndex:t,input:r}=this;this.cusorIndex=t+e.length;let n=r.slice(0,t),o=r.slice(t);this._input=`${n}${e}${o}`,this.drawPrompt(),this._onDidChangeInput.fire(this._input)}}});function Vo(i){let e=[];for(let t=0,r=i.length;t=97&&i<=122||i>=65&&i<=90}function Bn(i,e){return i==e||i>=97&&i<=122&&e+32===i}function vh(i,e){let t=i.charCodeAt(0),r=e.charCodeAt(0);return t===r||t>=97&&t<=122&&r+32===t}function Vc(i,e){let t=i.length;if(i.length>e.length)return!1;let r=0;for(let n=0;n=97&&s<=122&&o+32===s){r=r+1;continue}}return r===t}var Kc=I(()=>{});var Xze,Mb,m7=I(()=>{Kc();ie();Xze=W()("list-history"),Mb=class{constructor(e,t){this.prompt=e;this.name=t;this.index=-1;this.loaded=[];this.current=[];this.db=b.createDatabase(`list-${t}-history`),this.key=Buffer.from(b.cwd).toString("base64")}filter(){let{input:e}=this.prompt;if(e==this.curr)return;this.historyInput="";let t=Vo(e);this.current=this.loaded.filter(r=>Vc(t,r)),this.index=-1}get curr(){return this.index==-1?null:this.current[this.index]}load(e){let{db:t}=this;e=e||"";let r=t.fetch(this.key);!r||!Array.isArray(r)?this.loaded=[]:this.loaded=r,this.index=-1,this.current=this.loaded.filter(n=>n.startsWith(e))}add(){let{loaded:e,db:t,prompt:r}=this,{input:n}=r;if(!n||n.length<2||n==this.historyInput)return;let o=e.indexOf(n);o!=-1&&e.splice(o,1),e.push(n),e.length>200&&(e=e.slice(-200)),t.push(this.key,e)}previous(){let{current:e,index:t}=this;!e||!e.length||(t<=0?this.index=e.length-1:this.index=t-1,this.historyInput=this.prompt.input=e[this.index]||"")}next(){let{current:e,index:t}=this;!e||!e.length||(t==e.length-1?this.index=0:this.index=t+1,this.historyInput=this.prompt.input=e[this.index]||"")}}});var g7,Jc,a9e,qb,v7=I(()=>{g7=E(zr()),Jc=E(G());je();ye();_s();Te();ie();a9e=W()("list-ui"),qb=class{constructor(e,t,r,n){this.nvim=e;this.name=t;this.listOptions=r;this.config=n;this.newTab=!1;this.currIndex=0;this.drawCount=0;this.items=[];this.disposables=[];this.selected=new Set;this.mutex=new kr;this._onDidChangeLine=new Jc.Emitter;this._onDidOpen=new Jc.Emitter;this._onDidClose=new Jc.Emitter;this._onDidLineChange=new Jc.Emitter;this._onDoubleClick=new Jc.Emitter;this.onDidChangeLine=this._onDidChangeLine.event;this.onDidLineChange=this._onDidLineChange.event;this.onDidOpen=this._onDidOpen.event;this.onDidClose=this._onDidClose.event;this.onDidDoubleClick=this._onDoubleClick.event;this.signOffset=n.get("signOffset"),this.matchHighlightGroup=n.get("matchHighlightGroup","Search"),this.newTab=r.position=="tab",N.on("BufWinLeave",async s=>{s!=this.bufnr||this.window==null||(this.window=null,this._onDidClose.fire(s))},null,this.disposables),N.on("CursorMoved",async(s,a)=>{s==this.bufnr&&this.onLineChange(a[0]-1)},null,this.disposables);let o=(0,g7.default)(async s=>{if(s!=this.bufnr)return;let[a,l,u]=await e.eval('[win_getid(),line("w0"),line("w$")]');u<300||!this.window||a!=this.window.id||(e.pauseNotification(),this.doHighlight(l-1,u),e.command("redraw",!0),e.resumeNotification(!1,!0))},100);this.disposables.push({dispose:()=>{o.clear()}}),N.on("CursorMoved",o,null,this.disposables)}get limitLines(){return this.config.get("limitLines",3e4)}onLineChange(e){this.currIndex!=e&&(this.currIndex=e,this._onDidChangeLine.fire(e))}set index(e){if(e<0||e>=this.items.length)return;let{nvim:t}=this;t.pauseNotification(),this.setCursor(e+1,0),t.command("redraw",!0),t.resumeNotification(!1,!0).logError()}get index(){return this.currIndex}get firstItem(){return this.items[0]}get lastItem(){return this.items[this.items.length-1]}getItem(e){return this.items[e]}get item(){let{window:e}=this;return e?e.cursor.then(t=>(this.currIndex=t[0]-1,this.items[this.currIndex]),t=>null):Promise.resolve(null)}async echoMessage(e){if(this.bufnr)return;let{items:t}=this,n=`[${t.indexOf(e)+1}/${t.length}] ${e.label||""}`;this.nvim.callTimer("coc#util#echo_lines",[[n]],!0)}async updateItem(e,t){if(!this.bufnr||b.bufnr!=this.bufnr)return;let r=Object.assign({resolved:!0},e);if(t0&&this.bufnr){r.pauseNotification();for(let o of t)r.command(`sign place ${n+o} line=${o} name=CocSelected buffer=${this.bufnr}`,!0);await r.resumeNotification()}}async toggleSelection(){let{nvim:e,selected:t,signOffset:r,bufnr:n}=this;if(b.bufnr!=n)return;let o=await e.call("line","."),s=await e.call("mode");if(s=="v"||s=="V"){let[l,u]=await this.getSelectedRange(),c=t.has(l);l>u&&([l,u]=[u,l]);for(let p=l;p<=u;p++)c?(t.delete(p),e.command(`sign unplace ${r+p} buffer=${n}`,!0)):(t.add(p),e.command(`sign place ${r+p} line=${p} name=CocSelected buffer=${n}`,!0));this.setCursor(u,0),e.command("redraw",!0),await e.resumeNotification();return}let a=t.has(o);e.pauseNotification(),a?(t.delete(o),e.command(`sign unplace ${r+o} buffer=${n}`,!0)):(t.add(o),e.command(`sign place ${r+o} line=${o} name=CocSelected buffer=${n}`,!0)),this.setCursor(o+1,0),e.command("redraw",!0),await e.resumeNotification()}async selectLines(e,t){let{nvim:r,signOffset:n,bufnr:o,length:s}=this;this.clearSelection();let{selected:a}=this;r.pauseNotification(),e>t&&([e,t]=[t,e]);for(let u=e;u<=t&&!(u>s);u++)a.add(u),r.command(`sign place ${n+u} line=${u} name=CocSelected buffer=${o}`,!0);this.setCursor(t,0),r.command("redraw",!0),await r.resumeNotification()}async selectAll(){let{length:e}=this;e!=0&&await this.selectLines(1,e)}clearSelection(){let{selected:e,nvim:t,signOffset:r,bufnr:n}=this;if(!!n&&e.size>0){let o=[];for(let s of e)o.push(r+s);t.call("coc#util#unplace_signs",[n,o],!0),this.selected=new Set}}get shown(){return this.window!=null}get bufnr(){var e;return(e=this.buffer)==null?void 0:e.id}get winid(){var e;return(e=this.window)==null?void 0:e.id}get ready(){return this.window?Promise.resolve():new Promise((e,t)=>{let r=setTimeout(()=>{t(new Error("window create timeout"))},3e3),n=this.onDidLineChange(()=>{n.dispose(),clearTimeout(r),e()})})}async drawItems(e,t,r=!1,n){let o=this.drawCount=this.drawCount+1,{nvim:s,name:a,listOptions:l}=this,u=await this.mutex.acquire();if(this.items=e.length>this.limitLines?e.slice(0,this.limitLines):e,this.window==null&&!(n&&n.isCancellationRequested))try{let{position:d,numberSelect:h}=l,[m,w]=await s.call("coc#list#create",[d,t,a,h]);n&&n.isCancellationRequested?s.call("coc#list#clean_up",[],!0):(this.height=t,this.buffer=s.createBuffer(m),this.window=s.createWindow(w),this._onDidOpen.fire(this.bufnr))}catch(d){s.call("coc#prompt#stop_prompt",["list"],!0),s.call("coc#list#clean_up",[],!0),u(),T.showMessage(`Error on list create: ${d.message}`,"error");return}if(u(),n&&n.isCancellationRequested||o!==this.drawCount)return;let f=this.items.map(d=>d.label);this.clearSelection();let p=r?this.currIndex:0;await this.setLines(f,!1,p),this._onDidLineChange.fire(this.currIndex+1)}async appendItems(e){if(!this.window)return;let t=this.items.length;if(t>=this.limitLines)return;let r=this.limitLines-t,n=e.slice(0,r);this.items=this.items.concat(n),await this.setLines(n.map(o=>o.label),t>0,this.currIndex)}async setLines(e,t=!1,r){let{nvim:n,buffer:o,window:s}=this;if(!o||!s)return;if(n.pauseNotification(),!t){let l=this.config.get("statusLineSegments");l&&s.notify("nvim_win_set_option",["statusline",l.join(" ")]),n.call("coc#compat#clear_matches",[s.id],!0),e.length||(e=["No results, press ? on normal mode to get help."],n.call("coc#compat#matchaddpos",["Comment",[[1]],99,this.window.id],!0))}if(o.setOption("modifiable",!0,!0),b.isVim?n.call("coc#list#setlines",[o.id,e,t],!0):o.setLines(e,{start:t?-1:0,end:-1,strictIndexing:!1},!0),o.setOption("modifiable",!1,!0),!t&&r==0)this.doHighlight(0,300);else{let l=this.newTab?b.env.lines:this.height;this.doHighlight(Math.max(0,r-l),Math.min(r+l+1,this.length-1))}t||(this.currIndex=r,s.notify("nvim_win_set_cursor",[[r+1,0]])),n.command("redraws",!0);let a=await n.resumeNotification();Array.isArray(a[1])&&a[1][0]==0&&(this.window=null)}restoreWindow(){if(this.newTab)return;let{winid:e,height:t}=this;e&&t&&this.nvim.call("coc#list#restore",[e,t],!0)}reset(){this.window&&(this.window=null,this.buffer=null)}dispose(){J(this.disposables),this.window=null,this._onDidChangeLine.dispose(),this._onDidOpen.dispose(),this._onDidClose.dispose(),this._onDidLineChange.dispose(),this._onDoubleClick.dispose()}get length(){return this.items.length}get selectedItems(){let{selected:e,items:t}=this,r=[];for(let n of e)t[n-1]&&r.push(t[n-1]);return r}doHighlight(e,t){let{nvim:r}=b,{items:n}=this,o=[];for(let s=e;s<=Math.min(t,n.length-1);s++){let{ansiHighlights:a,highlights:l}=n[s];if(a)for(let u of a){let{span:c,hlGroup:f}=u;o.push({hlGroup:f,priority:9,pos:[s+1,c[0]+1,c[1]-c[0]]})}if(l&&Array.isArray(l.spans)){let{spans:u,hlGroup:c}=l;for(let f of u)o.push({hlGroup:c||this.matchHighlightGroup,priority:11,pos:[s+1,f[0]+1,f[1]-f[0]]})}}r.call("coc#compat#matchaddgroups",[this.window.id,o],!0)}setCursor(e,t){let{window:r,items:n}=this,o=n.length==0?1:n.length;e>o||(this.onLineChange(e-1),r&&r.notify("nvim_win_set_cursor",[[e,t]]))}async getSelectedRange(){let{nvim:e}=this;await e.call("coc#prompt#stop_prompt",["list"]),await e.eval('feedkeys("\\", "in")');let[,t]=await e.call("getpos","'<"),[,r]=await e.call("getpos","'>");return t>r&&([t,r]=[r,t]),this.nvim.call("coc#prompt#start_prompt",["list"],!0),[t,r]}}});function LDe(i){return i.toLowerCase()===i}function MDe(i){return i.toUpperCase()===i}function qDe(i){let e=i.length,t=new Array(e),r="/";for(let n=0;n1024)return Yc;let n=new Array(t),o=new Array(t);return b7(i,e,n,o),o[t-1][r-1]}function w7(i,e){let t=i.length,r=e.length,n=new Array(t);if(!t||!r)return n;if(t===r){for(let l=0;l1024)return n;let o=new Array(t),s=new Array(t);b7(i,e,o,s);let a=!1;for(let l=t-1,u=r-1;l>=0;l--)for(;u>=0;u--)if(o[l][u]!==Yc&&(a||o[l][u]===s[l][u])){a=l&&u&&s[l][u]===o[l-1][u-1]+y7,n[l]=u--;break}return n}function D7(i,e){i=i.toLowerCase(),e=e.toLowerCase();let t=i.length;for(let r=0,n=0;r{Yc=-Infinity,TDe=Infinity,PDe=-.005,RDe=-.005,kDe=-.01,y7=1,IDe=.9,FDe=.8,ODe=.7,ADe=.6});function x7(i,e,t=""){if(!e)return{score:1};let r=[],n=Vo(e),o=t?i.indexOf(t):-1,s=o!=-1&&Vc(n,t),a=0,l=e[0],u=0;if(s){if(t.startsWith(l))a=a+2,u=o+1,r.push(o);else if(t[0].toLowerCase()==l)a=a+1.5,u=o+1,r.push(o);else for(let c=1;ce.score&&(e=i[t]);return e}var XT,C7=I(()=>{XT=E(require("path"));Kc()});function Bb(i){return i.filterText!=null?MU(i.filterText,i.label):i.label}function jDe(i){let e=[],t=0,r=0,n="";for(;ro.replace(/\\\s/g," ").trim()).filter(o=>o.length>0)}var yh,$De,BDe,$b,E7=I(()=>{yh=E(G());Hu();rE();YT();C7();Ct();Te();ie();$De=W()("list-worker"),BDe="",$b=class{constructor(e,t,r,n,o){this.nvim=e;this.list=t;this.prompt=r;this.listOptions=n;this.config=o;this._loading=!1;this.totalItems=[];this._onDidChangeItems=new yh.Emitter;this._onDidChangeLoading=new yh.Emitter;this.onDidChangeItems=this._onDidChangeItems.event;this.onDidChangeLoading=this._onDidChangeLoading.event}set loading(e){this._loading!=e&&(this._loading=e,this._onDidChangeLoading.fire(e))}get isLoading(){return this._loading}async loadItems(e,t=!1){let{list:r,listOptions:n}=this;this.loading=!0;let{interactive:o}=n;this.tokenSource=new yh.CancellationTokenSource;let s=this.tokenSource.token,a=await r.loadItems(e,s);if(!s.isCancellationRequested)if(!a||Array.isArray(a)){this.tokenSource=null,a=a||[],this.totalItems=a.map(u=>(u.label=this.fixLabel(u.label),this.parseListItemAnsi(u),u)),this.loading=!1;let l;o?l=this.convertToHighlightItems(a):l=this.filterItems(a),this._onDidChangeItems.fire({items:l,reload:t,finished:!0})}else{let l=a,u=this.totalItems=[],c=0,f=e.input,p,d,h=v=>{if(d=Date.now(),c>=u.length)return;let D=this.input!=f;if(!(o&&D))if(c==0||D){f=this.input,c=u.length;let x;o?x=this.convertToHighlightItems(u):x=this.filterItems(u),this._onDidChangeItems.fire({items:x,reload:t,append:!1,finished:v})}else{let x=u.slice(c);c=u.length;let S;o?S=this.convertToHighlightItems(x):S=this.filterItems(x),this._onDidChangeItems.fire({items:S,append:!0,finished:v})}};l.on("data",v=>{p&&clearTimeout(p),!s.isCancellationRequested&&(o&&this.input!=f||(v.label=this.fixLabel(v.label),this.parseListItemAnsi(v),u.push(v),!d&&u.length==500||Date.now()-d>200?h():p=setTimeout(()=>h(),50)))});let m=()=>{l!=null&&(this.tokenSource=null,l=null,this.loading=!1,w.dispose(),p&&clearTimeout(p),u.length==0?this._onDidChangeItems.fire({items:[],finished:!0}):h(!0))},w=s.onCancellationRequested(()=>{l&&(l.dispose(),m())});l.on("error",async v=>{l!=null&&(l=null,this.tokenSource=null,this.loading=!1,w.dispose(),p&&clearTimeout(p),this.nvim.call("coc#prompt#stop_prompt",["list"],!0),T.showMessage(`Task error: ${v.toString()}`,"error"),$De.error(v))}),l.on("end",m)}}drawItems(){let{totalItems:e,listOptions:t}=this,r;t.interactive?r=this.convertToHighlightItems(e):r=this.filterItems(e),this._onDidChangeItems.fire({items:r,finished:!0})}stop(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null),this.loading=!1}get length(){return this.totalItems.length}get input(){return this.prompt.input}convertToHighlightItems(e){let{input:t}=this;return t?e.map(r=>{let n=Bb(r);if(n=="")return r;let o=x7(n,t);if(!o||!o.score)return r;let s=this.getHighlights(n,o.matches);return Object.assign({},r,{highlights:s})}):[]}filterItems(e){let{input:t}=this,{sort:r,matcher:n,ignorecase:o}=this.listOptions,s=this.config.extendedSearchMode?jDe(t):[t];if(t.length==0||s.length==0)return e;if(n=="strict"){let u=[];for(let c of e){let f=[],p=Bb(c),d=!0;for(let h of s){let m=o?p.toLowerCase().indexOf(h.toLowerCase()):p.indexOf(h);if(m==-1){d=!1;break}f.push([Ci(p,m),Ci(p,m+me(h))])}d&&u.push(Object.assign({},c,{highlights:{spans:f}}))}return u}if(n=="regex"){let u=[],c=o?"iu":"u",f=s.reduce((p,d)=>{try{let h=new RegExp(d,c);p.push(h)}catch(h){}return p},[]);for(let p of e){let d=[],h=Bb(p),m=!0;for(let w of f){let v=h.match(w);if(v==null){m=!1;break}d.push([Ci(h,v.index),Ci(h,v.index+me(v[0]))])}m&&u.push(Object.assign({},p,{highlights:{spans:d}}))}return u}let a=[],l=0;for(let u of e){let c=u.filterText||u.label,f=0,p=[],d=Bb(u),h=!0;for(let w of s){if(!D7(w,c)){h=!1;break}p.push(...w7(w,d)),r&&(f+=Nb(w,c))}if(!h)continue;let m=Object.assign({},u,{sortText:typeof u.sortText=="string"?u.sortText:String.fromCharCode(l),score:f,highlights:this.getHighlights(d,p)});a.push(m),l=l+1}return r&&a.length&&a.sort((u,c)=>u.score!=c.score?c.score-u.score:u.sortText>c.sortText?1:-1),a}getHighlights(e,t){let r=[];if(t&&t.length){let n=t.shift(),o=t.shift(),s=n;for(;o;){if(o==s+1){s=o,o=t.shift();continue}r.push([Ci(e,n),Ci(e,s)+1]),n=o,s=n,o=t.shift()}r.push([Ci(e,n),Ci(e,s)+1])}return{spans:r}}parseListItemAnsi(e){let{label:t}=e;if(e.ansiHighlights||!t.includes(BDe))return;let{line:r,highlights:n}=Wu(t);e.label=r,e.ansiHighlights=n}fixLabel(e){let{columns:t}=b.env;return e=e.split(` +`).join(" "),e.slice(0,t*2)}dispose(){this.stop()}}});var ZT,_7,UDe,T7,jb,P7=I(()=>{ZT=E(zr()),_7=E(G());Ko();ah();ye();ie();Te();m7();v7();E7();UDe=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],T7=W()("list-session"),jb=class{constructor(e,t,r,n,o=[],s){this.nvim=e;this.prompt=t;this.list=r;this.listOptions=n;this.listArgs=o;this.config=s;this.loadingFrame="";this.hidden=!1;this.disposables=[];this.args=[];this.ui=new qb(e,r.name,n,s),this.history=new Mb(t,r.name),this.worker=new $b(e,r,t,n,{interactiveDebounceTime:s.get("interactiveDebounceTime",100),extendedSearchMode:s.get("extendedSearchMode",!0)}),this.interactiveDebounceTime=s.get("interactiveDebounceTime",100);let a=(0,ZT.default)(async()=>{let[u,c,f]=await e.eval('[coc#list#has_preview(),win_getid(),line(".")]');u&&c==this.winid&&await this.doPreview(f-1)},50);this.disposables.push({dispose:()=>{a.clear()}}),this.ui.onDidChangeLine(a,null,this.disposables),this.ui.onDidChangeLine(this.resolveItem,this,this.disposables),this.ui.onDidLineChange(this.resolveItem,this,this.disposables);let l=(0,ZT.default)(async()=>{let{autoPreview:u}=this.listOptions;if(!u){let[c,f]=await e.eval("[coc#list#has_preview(),mode()]");if(!c||f!="n")return}await this.doAction("preview")},50);this.disposables.push({dispose:()=>{l.clear()}}),this.ui.onDidLineChange(l,null,this.disposables),this.ui.onDidLineChange(()=>{this.updateStatus()},null,this.disposables),this.ui.onDidOpen(async()=>{typeof this.list.doHighlight=="function"&&this.list.doHighlight(),this.listOptions.first&&await this.doAction()},null,this.disposables),this.ui.onDidClose(async()=>{await this.hide()},null,this.disposables),this.ui.onDidDoubleClick(async()=>{await this.doAction()},null,this.disposables),this.worker.onDidChangeItems(async({items:u,reload:c,append:f,finished:p})=>{if(!this.hidden)if(f)await this.ui.appendItems(u);else{let d=this.config.get("height",10);p&&!n.interactive&&n.input.length==0&&(d=Math.min(u.length,d));let h=this.uiTokenSource=new _7.CancellationTokenSource;await this.ui.drawItems(u,Math.max(1,d),c,h.token)}},null,this.disposables),this.worker.onDidChangeLoading(u=>{this.hidden||(u?this.interval=setInterval(()=>{let c=Math.floor(new Date().getMilliseconds()/100);this.loadingFrame=UDe[c],this.updateStatus()},100):(this.interval&&(this.loadingFrame="",clearInterval(this.interval),this.interval=null),this.updateStatus()))},null,this.disposables)}async start(e){this.args=e,this.cwd=b.cwd,this.hidden=!1;let{listOptions:t,listArgs:r}=this,n=await this.nvim.eval('[win_getid(),bufnr("%"),winheight("%")]');this.listArgs=r,this.history.load(t.input||""),this.window=this.nvim.createWindow(n[0]),this.buffer=this.nvim.createBuffer(n[1]),this.savedHeight=n[2],await this.worker.loadItems(this.context)}async reloadItems(){if(!this.window)return;let e=await this.nvim.call("winbufnr",[this.window.id]);e!=-1&&(this.buffer=this.nvim.createBuffer(e),await this.worker.loadItems(this.context,!0))}async call(e){var o,s;await this.nvim.call("coc#prompt#stop_prompt",["list"]);let t=await this.ui.getItems(),r={name:this.name,args:this.listArgs,input:this.prompt.input,winid:(o=this.window)==null?void 0:o.id,bufnr:(s=this.buffer)==null?void 0:s.id,targets:t},n=await this.nvim.call(e,[r]);return this.prompt.start(),n}async chooseAction(){let{nvim:e}=this,{actions:t,defaultAction:r}=this.list,n=t.map(c=>c.name),o=n.indexOf(r);o!=-1&&(n.splice(o,1),n.unshift(r));let s=new Set,a=[],l=[];for(let c of n){let f=0;for(let p of c){if(!s.has(p)){s.add(p),a.push(`${c.slice(0,f)}&${c.slice(f)}`);break}f++}f==c.length&&l.push(c)}l.length&&(T7.error(`Can't create shortcut for actions: ${l.join(",")} of "${this.name}" list`),n=n.filter(c=>!l.includes(c))),await e.call("coc#prompt#stop_prompt",["list"]);let u=await e.call("confirm",["Choose action:",a.join(` +`)]);await nt(10),this.prompt.start(),u&&await this.doAction(n[u-1])}async doAction(e){let{list:t}=this;e=e||t.defaultAction;let r=t.actions.find(o=>o.name==e);if(!r){T.showMessage(`Action ${e} not found`,"error");return}let n;if(e=="preview"){let o=await this.ui.item;n=o?[o]:[]}else n=await this.ui.getItems();n.length&&await this.doItemAction(n,r)}async doPreview(e){let t=this.ui.getItem(e),r=this.list.actions.find(n=>n.name=="preview");!t||!r||await this.doItemAction([t],r)}async first(){await this.doDefaultAction(0)}async last(){await this.doDefaultAction(this.ui.length-1)}async previous(){await this.doDefaultAction(this.ui.index-1)}async next(){await this.doDefaultAction(this.ui.index+1)}async doDefaultAction(e){let{ui:t}=this,r=t.getItem(e);!r||(t.index=e,await this.doItemAction([r],this.defaultAction),await t.echoMessage(r))}get name(){return this.list.name}get winid(){return this.ui.winid}get length(){return this.ui.length}get defaultAction(){let{defaultAction:e,actions:t}=this.list,r=t.find(n=>n.name==e);if(!r)throw new Error(`default action "${e}" not found`);return r}async hide(){if(this.hidden)return;this.uiTokenSource&&(this.uiTokenSource.cancel(),this.uiTokenSource.dispose(),this.uiTokenSource=null);let{nvim:e,interval:t}=this;t&&clearInterval(t),this.hidden=!0,this.worker.stop(),this.history.add();let{winid:r}=this.ui;this.ui.reset(),this.window&&r&&(await e.call("coc#list#hide",[this.window.id,this.savedHeight,r]),b.isVim&&(e.command("redraw",!0),await nt(10))),e.call("coc#prompt#stop_prompt",["list"],!0)}toggleMode(){let e=this.prompt.mode=="normal"?"insert":"normal";this.prompt.mode=e,this.listOptions.mode=e,this.updateStatus()}stop(){this.worker.stop()}async resolveItem(){let e=this.ui.index,t=this.ui.getItem(e);if(!t||t.resolved)return;let{list:r}=this;if(typeof r.resolveItem=="function"){let n=await Promise.resolve(r.resolveItem(t));n&&e==this.ui.index&&await this.ui.updateItem(n,e)}}async showHelp(){await this.hide();let{list:e,nvim:t}=this;if(!e)return;t.pauseNotification(),t.command("tabe +setl\\ previewwindow [LIST HELP]",!0),t.command("setl nobuflisted noswapfile buftype=nofile bufhidden=wipe",!0),await t.resumeNotification();let r=e.options&&e.options.length,n=await t.buffer,o=new no;if(o.addLine("NAME","Label"),o.addLine(` ${e.name} - ${e.description||""} +`),o.addLine("SYNOPSIS","Label"),o.addLine(` :CocList [LIST OPTIONS] ${e.name}${r?" [ARGUMENTS]":""} +`),e.detail){o.addLine("DESCRIPTION","Label");let a=e.detail.split(` +`).map(l=>" "+l);o.addLine(a.join(` +`)+` +`)}if(r){o.addLine("ARGUMENTS","Label"),o.addLine("");for(let a of e.options)o.addLine(a.name,"Special"),o.addLine(` ${a.description}`),o.addLine("");o.addLine("")}let s=b.getConfiguration(`list.source.${e.name}`);if(Object.keys(s).length){o.addLine("CONFIGURATIONS","Label"),o.addLine("");let a={};we.all.forEach(l=>{let{packageJSON:u}=l,{contributes:c}=u;if(!c)return;let{configuration:f}=c;if(f){let{properties:p}=f;if(p)for(let d of Object.keys(p))a[d]=p[d]}});for(let l of Object.keys(s)){let u=s[l],c=`list.source.${e.name}.${l}`,f=a[c]&&a[c].description?a[c].description:l;o.addLine(` "${c}"`,"MoreMsg"),o.addText(` - ${f}, current value: `),o.addText(JSON.stringify(u),"Special")}o.addLine("")}o.addLine("ACTIONS","Label"),o.addLine(` ${e.actions.map(a=>a.name).join(", ")}`),o.addLine(""),o.addLine("see ':h coc-list-options' for available list options.","Comment"),t.pauseNotification(),o.render(n,0,-1),t.command("setl nomod",!0),t.command("setl nomodifiable",!0),t.command("normal! gg",!0),t.command("nnoremap q :bd!",!0),await t.resumeNotification()}switchMatcher(){let{matcher:e,interactive:t}=this.listOptions;if(t)return;let r=["fuzzy","strict","regex"],n=r.indexOf(e)+1;n>=r.length&&(n=0),this.listOptions.matcher=r[n],this.prompt.matcher=r[n],this.worker.drawItems()}updateStatus(){let{ui:e,list:t,nvim:r}=this;if(!e.winid)return;let n=r.createBuffer(e.bufnr),o={mode:this.prompt.mode.toUpperCase(),args:this.args.join(" "),name:t.name,cwd:this.cwd,loading:this.loadingFrame,total:this.worker.length};r.pauseNotification(),n.setVar("list_status",o,!0),r.command("redraws",!0),r.resumeNotification(!1,!0).logError()}get context(){let{winid:e}=this.ui;return{options:this.listOptions,args:this.listArgs,input:this.prompt.input,cwd:b.cwd,window:this.window,buffer:this.buffer,listWindow:e?this.nvim.createWindow(e):void 0}}redrawItems(){this.worker.drawItems()}onMouseEvent(e){switch(e){case"":return this.ui.onMouse("mouseDown");case"":return this.ui.onMouse("mouseDrag");case"":return this.ui.onMouse("mouseUp");case"<2-LeftMouse>":return this.ui.onMouse("doubleClick")}}async doNumberSelect(e){if(!this.listOptions.numberSelect)return!1;let t=e.charCodeAt(0);if(t>=48&&t<=57){let r=Number(e);return r==0&&(r=10),this.ui.length>=r&&(this.nvim.pauseNotification(),this.ui.setCursor(Number(e),0),await this.nvim.resumeNotification(),await this.doAction()),!0}return!1}jumpBack(){let{window:e,nvim:t}=this;e&&(t.pauseNotification(),t.call("coc#prompt#stop_prompt",["list"],!0),this.nvim.call("win_gotoid",[e.id],!0),t.resumeNotification(!1,!0).logError())}async resume(){this.winid&&await this.hide();let e=await this.nvim.eval('[win_getid(),bufnr("%"),winheight("%")]');this.hidden=!1,this.window=this.nvim.createWindow(e[0]),this.buffer=this.nvim.createBuffer(e[1]),this.savedHeight=e[2],this.prompt.start(),await this.ui.resume(),this.listOptions.autoPreview&&await this.doAction("preview")}async doItemAction(e,t){let{noQuit:r}=this.listOptions,{nvim:n}=this,o=t.persist===!0||t.name=="preview",s=this.winid&&(o||r);try{if(s?o||(n.pauseNotification(),n.call("coc#prompt#stop_prompt",["list"],!0),n.call("win_gotoid",[this.context.window.id],!0),await n.resumeNotification()):await this.hide(),t.multiple)await Promise.resolve(t.execute(e,this.context));else if(t.parallel)await Promise.all(e.map(a=>Promise.resolve(t.execute(a,this.context))));else for(let a of e)await Promise.resolve(t.execute(a,this.context));s&&this.ui.restoreWindow(),t.reload&&s&&await this.worker.loadItems(this.context,!0)}catch(a){T.showMessage(a.message,"error"),T7.error(`Error on action "${t.name}"`,a)}}onInputChange(){this.timer&&clearTimeout(this.timer);let e=this.worker.length;if(this.listOptions.input=this.prompt.input,this.listOptions.interactive)this.worker.stop(),this.timer=setTimeout(async()=>{await this.worker.loadItems(this.context)},this.interactiveDebounceTime);else if(e){let t=Math.max(Math.min(Math.floor(e/200),300),50);this.timer=setTimeout(()=>{this.worker.drawItems()},t)}}dispose(){if(!this.hidden){this.hidden=!0,this.uiTokenSource&&(this.uiTokenSource.cancel(),this.uiTokenSource.dispose(),this.uiTokenSource=null);let{winid:e}=this.ui;this.ui.reset(),this.window&&e&&this.nvim.call("coc#list#hide",[this.window.id,this.savedHeight,e],!0)}this.interval&&clearInterval(this.interval),this.timer&&clearTimeout(this.timer),J(this.disposables),this.worker.dispose(),this.ui.dispose()}}});var R7,k7,I7,WDe,Ub,F7=I(()=>{R7=E(require("child_process")),k7=E(require("events")),I7=E(require("readline"));ye();WDe=W()("list-commandTask"),Ub=class extends k7.EventEmitter{constructor(e){super();this.opt=e;this.disposables=[];this.start()}start(){let{cmd:e,args:t,cwd:r,onLine:n}=this.opt,o=(0,R7.spawn)(e,t,{cwd:r,windowsHide:!0});this.disposables.push({dispose:()=>{o.kill()}}),o.on("error",a=>{this.emit("error",a.message)}),o.stderr.on("data",a=>{WDe.error(`[${e} Error]`,a.toString("utf8"))});let s=I7.default.createInterface(o.stdout);s.on("line",a=>{let l=n(a);l&&this.emit("data",l)}),s.on("close",()=>{this.emit("end")})}dispose(){J(this.disposables)}}});var O7,QT,A7,mi,HDe,Jt,ao=I(()=>{O7=E(require("fs")),QT=E(require("path")),A7=E(require("readline")),mi=E(G());Ze();ye();Vt();Kr();ie();F7();Ob();HDe=W()("list-basic"),Jt=class{constructor(e){this.nvim=e;this.defaultAction="open";this.actions=[];this.options=[];this.disposables=[];this.config=new Gc}get alignColumns(){return this.config.get("alignColumns",!1)}get hlGroup(){return this.config.get("previewHighlightGroup","Search")}get previewHeight(){return this.config.get("maxPreviewHeight",12)}get splitRight(){return this.config.get("previewSplitRight",!1)}parseArguments(e){if(!this.optionMap){this.optionMap=new Map;for(let r of this.options){let n=r.name.split(/,\s*/g).map(s=>s.replace(/\s+.*/g,"")),o=r.key?r.key:n[n.length-1].replace(/^-/,"");for(let s of n)this.optionMap.set(s,{name:o,hasValue:r.hasValue})}}let t={};for(let r=0;r{let n=await this.convertLocation(t.location);await this.previewLocation(n,r)}});let{nvim:e}=this;this.createAction({name:"quickfix",multiple:!0,execute:async t=>{let r=await Promise.all(t.map(o=>this.convertLocation(o.location).then(s=>b.getQuickfixItem(s))));await e.call("setqflist",[r]);let n=await e.getVar("coc_quickfix_open_command");e.command(typeof n=="string"?n:"copen",!0)}});for(let t of["open","tabe","drop","vsplit","split"])this.createAction({name:t,execute:async r=>{await this.jumpTo(r.location,t=="open"?null:t)}})}async convertLocation(e){if(typeof e=="string")return mi.Location.create(e,mi.Range.create(0,0,0,0));if(mi.Location.is(e))return e;let t=j.parse(e.uri);if(t.scheme!="file")return mi.Location.create(e.uri,mi.Range.create(0,0,0,0));let r=A7.default.createInterface({input:O7.default.createReadStream(t.fsPath,{encoding:"utf8"})}),n=e.line,o=0,s=!1,a=await new Promise(l=>{r.on("line",u=>{if(!s){if(u.includes(n)){r.removeAllListeners(),r.close(),s=!0,l(u);return}o=o+1}}),r.on("error",u=>{this.nvim.errWriteLine(`Read ${t.fsPath} error: ${u.message}`),l(null)})});if(a!=null){let l=e.text?a.indexOf(e.text):0;l==0&&(l=a.match(/^\s*/)[0].length);let u=mi.Position.create(o,l+(e.text?e.text.length:0));return mi.Location.create(e.uri,mi.Range.create(mi.Position.create(o,l),u))}return mi.Location.create(e.uri,mi.Range.create(0,0,0,0))}async jumpTo(e,t){if(typeof e=="string"){await b.jumpTo(e,null,t);return}let{range:r,uri:n}=await this.convertLocation(e),o=r.start;o.line==0&&o.character==0&&Ke(o,r.end)==0&&(o=null),await b.jumpTo(n,o,t)}createAction(e){let{name:t}=e,r=this.actions.findIndex(n=>n.name==t);r!==-1&&this.actions.splice(r,1),this.actions.push(e)}async previewLocation(e,t){if(!t.listWindow)return;let{nvim:r}=this,{uri:n,range:o}=e,s=b.getDocument(e.uri),a=j.parse(n),l=[];if(s)l=s.getLines();else if(a.scheme=="file")try{l=(await ec(a.fsPath,"utf8")).split(/\r?\n/)}catch(c){""+a.fsPath,c.message}let u={winid:t.window.id,range:Ja(o)?null:o,lnum:o.start.line+1,name:a.scheme=="file"?a.fsPath:n,filetype:s?s.filetype:this.getFiletype(a.fsPath),position:t.options.position,maxHeight:this.previewHeight,splitRight:this.splitRight,hlGroup:this.hlGroup,scheme:a.scheme};await r.call("coc#list#preview",[l,u]),b.isVim&&r.command("redraw",!0)}async preview(e,t){let{nvim:r}=this,{bufname:n,filetype:o,range:s,lines:a,lnum:l}=e,u={winid:t.window.id,lnum:s?s.start.line+1:l||1,filetype:o||"txt",position:t.options.position,maxHeight:this.previewHeight,splitRight:this.splitRight,hlGroup:this.hlGroup};n&&(u.name=n),s&&(u.range=s),await r.call("coc#list#preview",[a,u]),b.isVim&&r.command("redraw",!0)}doHighlight(){}dispose(){J(this.disposables)}getFiletype(e){let t=QT.default.extname(e);if(!t)return"";for(let r of b.documents){let n=j.parse(r.uri).fsPath;if(QT.default.extname(n)==t){let{filetype:o}=r;return o=="javascriptreact"?"javascript":o=="typescriptreact"?"typescript":o.indexOf(".")!==-1?o.split(".")[0]:o}}return""}}});function gi(i,e){if(e.length===0)return[];let t=[];if(i){let r=Array(Math.min(...e.map(n=>n.label.length))).fill(0);for(let n of e)for(let o=0;oyf(mt({},n),{label:n.label.map((o,s)=>o.padEnd(r[s])).join(" ")}))}else t=e.map(r=>yf(mt({},r),{label:r.label.join(" ")}));return t}function L7(i,e){var t;if(i==="hidden")return"";if(i==="full")return e;if(i==="short"){let r=e.split(Wb.default.sep);return r.length<2?e:[...r.slice(0,r.length-2).filter(o=>o.length>0).map(o=>o[0]),r[r.length-1]].join(Wb.default.sep)}else{let r=e.split(Wb.default.sep);return(t=r[r.length-1])!=null?t:""}}var Wb,ea=I(()=>{Wb=E(require("path"))});function zDe(i,e){let t=i.indexOf(e);return t==-1?-1:i.length-t}var Hb,M7=I(()=>{$n();je();ie();ao();ea();Hb=class extends Jt{constructor(e){super(e);this.defaultAction="run";this.description="registered commands of coc.nvim";this.name="commands";this.mru=b.createMru("commands"),this.addAction("run",async t=>{let{cmd:r}=t.data;await N.fire("Command",[r]),be.executeCommand(r).logError(),await be.addRecent(r)}),this.addAction("append",async t=>{let{cmd:r}=t.data;await e.feedKeys(`:CocCommand ${r} `,"n",!1)})}async loadItems(e){let t=[],r=await this.mru.load(),{commandList:n,onCommandList:o,titles:s}=be,a=n.map(l=>l.id).concat(o);for(let l of[...new Set(a)])t.push({label:[l,...s.get(l)?[s.get(l)]:[]],filterText:l,data:{cmd:l,score:zDe(r,l)}});return t.sort((l,u)=>u.data.score-l.data.score),gi(this.alignColumns,t)}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocCommandsTitle /\\t.*$/ contained containedin=CocCommandsLine",!0),e.command("highlight default link CocCommandsTitle Comment",!0),e.resumeNotification().catch(t=>{})}}});var bh,n7e,lo,wh=I(()=>{Ro();bh=E(require("path"));ao();ie();Ze();Vt();Ct();n7e=W()("list-location"),lo=class extends Jt{constructor(e){super(e);this.defaultAction="open";this.description="show locations saved by g:coc_jump_locations variable";this.name="location";this.addLocationActions()}async loadItems(e,t){let r=await this.nvim.getVar("coc_jump_locations");if(t.isCancellationRequested)return[];r=r||[],r.forEach(a=>{if(!a.uri){let l=bh.default.isAbsolute(a.filename)?a.filename:bh.default.join(e.cwd,a.filename);a.uri=j.file(l).toString()}if(!a.bufnr&&b.getDocument(a.uri)!=null&&(a.bufnr=b.getDocument(a.uri).bufnr),a.range)a.lnum=a.lnum||a.range.start.line+1,a.col=a.col||a.range.start.character+1;else{let{lnum:l,col:u}=a;a.range=Oe.create(l-1,u-1,l-1,u-1)}});let n=await this.nvim.call("bufnr","%"),o=r.every(a=>a.bufnr&&n&&a.bufnr==n);return r.map(a=>{let l=o?"":a.filename,u=`${l}${a.text.trim()}`;bh.default.isAbsolute(l)&&(l=pt(e.cwd,l)?bh.default.relative(e.cwd,l):l);let c=`${l} |${a.type?a.type+" ":""}${a.lnum} col ${a.col}| `,f;if(a.range&&a.range.start.line==a.range.end.line){let d=me(c)+me(a.text.slice(0,a.range.start.character)),h=me(c)+me(a.text.slice(0,a.range.end.character));f={hlGroup:"Search",span:[d,h]}}return{label:c+a.text,location:oi.create(a.uri,a.range),filterText:u,ansiHighlights:f?[f]:void 0}})}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocLocationName /\\v^[^|]+/ contained containedin=CocLocationLine",!0),e.command("syntax match CocLocationPosition /\\v\\|\\w*\\s?\\d+\\scol\\s\\d+\\|/ contained containedin=CocLocationLine",!0),e.command("syntax match CocLocationError /Error/ contained containedin=CocLocationPosition",!0),e.command("syntax match CocLocationWarning /Warning/ contained containedin=CocLocationPosition",!0),e.command("highlight default link CocLocationName Directory",!0),e.command("highlight default link CocLocationPosition LineNr",!0),e.command("highlight default link CocLocationError Error",!0),e.command("highlight default link CocLocationWarning WarningMsg",!0),e.resumeNotification().catch(t=>{})}}});var q7,p7e,zb,N7=I(()=>{q7=E(require("path"));el();wh();Vt();ea();p7e=W()("list-symbols"),zb=class extends lo{constructor(){super(...arguments);this.defaultAction="open";this.description="diagnostics of current workspace";this.name="diagnostics"}async loadItems(e){let t=At.getDiagnosticList(),{cwd:r}=e,n=this.getConfig().get("includeCode",!0),o=this.getConfig().get("pathFormat","full"),s=t.map(a=>{let l=pt(r,a.file)?q7.default.relative(r,a.file):a.file,u=L7(o,l),c=o!=="hidden"?[`${u}:${a.lnum}`]:[],f=n?[`[${a.source}${a.code?"":"]"}`,a.code?`${a.code}]`:""]:[];return{label:[...c,...f,a.severity,a.message],location:a.location}});return gi(this.alignColumns,s)}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocDiagnosticsFile /\\v^\\s*\\S+/ contained containedin=CocDiagnosticsLine",!0),e.command("syntax match CocDiagnosticsError /\\tError\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),e.command("syntax match CocDiagnosticsWarning /\\tWarning\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),e.command("syntax match CocDiagnosticsInfo /\\tInformation\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),e.command("syntax match CocDiagnosticsHint /\\tHint\\s*\\t/ contained containedin=CocDiagnosticsLine",!0),e.command("highlight default link CocDiagnosticsFile Comment",!0),e.command("highlight default link CocDiagnosticsError CocErrorSign",!0),e.command("highlight default link CocDiagnosticsWarning CocWarningSign",!0),e.command("highlight default link CocDiagnosticsInfo CocInfoSign",!0),e.command("highlight default link CocDiagnosticsHint CocHintSign",!0),e.resumeNotification().catch(t=>{})}}});function VDe(i){switch(i){case"unknown":return 2;case"activated":return 1;case"disabled":return-1;default:return 0}}var Xc,$7,Gb,GDe,Vb,B7=I(()=>{Xc=E(bn()),$7=E(require("os")),Gb=E(require("path"));Ze();Ko();ye();ie();Te();ao();ea();GDe=W()("list-extensions"),Vb=class extends Jt{constructor(e){super(e);this.defaultAction="toggle";this.description="manage coc extensions";this.name="extensions";this.addAction("toggle",async t=>{let{id:r,state:n}=t.data;n!="disabled"&&(n=="activated"?await we.deactivate(r):await we.activate(r),await nt(100))},{persist:!0,reload:!0,parallel:!0}),this.addAction("configuration",async t=>{let{root:r}=t.data,n=Gb.default.join(r,"package.json");if(Xc.default.existsSync(n)){let s=Xc.default.readFileSync(n,"utf8").split(/\r?\n/).findIndex(a=>a.includes('"contributes"'));await b.jumpTo(j.file(n).toString(),{line:s==-1?0:s,character:0})}}),this.addAction("open",async t=>{let{root:r}=t.data;b.env.isiTerm?e.call("coc#util#iterm_open",[r],!0):e.call("coc#util#open_url",[r],!0)}),this.addAction("disable",async t=>{let{id:r,state:n}=t.data;n!=="disabled"&&await we.toggleExtension(r)},{persist:!0,reload:!0,parallel:!0}),this.addAction("enable",async t=>{let{id:r,state:n}=t.data;n=="disabled"&&await we.toggleExtension(r)},{persist:!0,reload:!0,parallel:!0}),this.addAction("lock",async t=>{let{id:r}=t.data;await we.toggleLock(r)},{persist:!0,reload:!0}),this.addAction("help",async t=>{let{root:r}=t.data,o=(await Xc.default.readdir(r)).find(s=>/^readme/i.test(s));if(o){let s=await e.call("fnameescape",[Gb.default.join(r,o)]);await b.callAsync("coc#util#execute",[`edit ${s}`])}}),this.addAction("reload",async t=>{let{id:r}=t.data;await we.reloadExtension(r)},{persist:!0,reload:!0}),this.addAction("fix",async t=>{let{root:r,isLocal:n}=t.data,{npm:o}=we;if(n){T.showMessage("Can't fix for local extension.","warning");return}if(!o)return;let s=Gb.default.join(r,"node_modules");Xc.default.existsSync(s)&&Xc.default.removeSync(s);let a=await b.createTerminal({cwd:r});!await a.show(!1)||(b.nvim.command("startinsert",!0),a.sendText(`${o} install --production --ignore-scripts --no-lockfile`,!0))}),this.addMultipleAction("uninstall",async t=>{let r=[];for(let n of t)n.data.isLocal||r.push(n.data.id);we.uninstallExtension(r).catch(n=>{GDe.error(n)})})}async loadItems(e){let t=[],r=await we.getExtensionStates(),n=await we.getLockedList();for(let o of r){let s="+";o.state=="disabled"?s="-":o.state=="activated"?s="*":o.state=="unknown"&&(s="?");let a=await this.nvim.call("resolve",o.root),l=n.includes(o.id);t.push({label:[`${s} ${o.id}${l?" \uE0A2":""}`,...o.isLocal?["[RTP]"]:[],o.version,a.replace($7.default.homedir(),"~")],filterText:o.id,data:{id:o.id,root:a,state:o.state,isLocal:o.isLocal,priority:VDe(o.state)}})}return t.sort((o,s)=>o.data.priority!=s.data.priority?s.data.priority-o.data.priority:s.data.id-o.data.id?1:-1),gi(this.alignColumns,t)}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocExtensionsActivited /\\v^\\*/ contained containedin=CocExtensionsLine",!0),e.command("syntax match CocExtensionsLoaded /\\v^\\+/ contained containedin=CocExtensionsLine",!0),e.command("syntax match CocExtensionsDisabled /\\v^-/ contained containedin=CocExtensionsLine",!0),e.command("syntax match CocExtensionsName /\\v%3c\\S+/ contained containedin=CocExtensionsLine",!0),e.command("syntax match CocExtensionsRoot /\\v\\t[^\\t]*$/ contained containedin=CocExtensionsLine",!0),e.command("syntax match CocExtensionsLocal /\\v\\[RTP\\]/ contained containedin=CocExtensionsLine",!0),e.command("highlight default link CocExtensionsActivited Special",!0),e.command("highlight default link CocExtensionsLoaded Normal",!0),e.command("highlight default link CocExtensionsDisabled Comment",!0),e.command("highlight default link CocExtensionsName String",!0),e.command("highlight default link CocExtensionsLocal MoreMsg",!0),e.command("highlight default link CocExtensionsRoot Comment",!0),e.resumeNotification().catch(t=>{})}}});var j7,U7,Kb,W7=I(()=>{j7=E(require("path"));Ze();U7=E(bn());Vt();ie();Te();ao();Kb=class extends Jt{constructor(e){super(e);this.defaultAction="edit";this.description="list of current workspace folders";this.name="folders";this.addAction("edit",async t=>{let r=await e.call("input",["Folder: ",t.label,"dir"]),n=await $t(r);if(!n||!n.isDirectory()){T.showMessage(`invalid path: ${r}`,"error");return}b.renameWorkspaceFolder(t.label,r)}),this.addAction("delete",async t=>{b.removeWorkspaceFolder(t.label)},{reload:!0,persist:!0}),this.addAction("newfile",async t=>{let r=await T.requestInput("File name",t.label+"/"),n=j7.default.dirname(r),o=await $t(n);(!o||!o.isDirectory())&&U7.default.mkdirpSync(n),await b.createFile(r,{overwrite:!1,ignoreIfExists:!0}),await this.jumpTo(j.file(r).toString())})}async loadItems(e){return b.folderPaths.map(t=>({label:t}))}}});function z7(i){if(!i.startsWith("file:"))return i;let e=j.parse(i).fsPath;return pt(b.cwd,e)?H7.default.relative(b.cwd,e):e}var H7,Jb,G7=I(()=>{ht();ie();H7=E(require("path"));ao();Ro();Ze();Vt();Jb=class extends Jt{constructor(e){super(e);this.defaultAction="open";this.description="links of current buffer";this.name="links";this.addAction("open",async t=>{let{target:r}=t.data;j.parse(r).scheme.startsWith("http")?await e.call("coc#util#open_url",r):await b.jumpTo(r)}),this.addAction("jump",async t=>{let{location:r}=t.data;await b.jumpTo(r.uri,r.range.start)})}async loadItems(e,t){let r=await e.window.buffer,n=b.getDocument(r.id);if(!n)return null;let o=[],s=await B.getDocumentLinks(n.textDocument,t);if(s==null)throw new Error("Links provider not found.");let a=[];for(let l of s)l.target?o.push({label:z7(l.target),data:{target:l.target,location:oi.create(n.uri,l.range)}}):(l=await B.resolveDocumentLink(l),l.target&&o.push({label:z7(l.target),data:{target:l.target,location:oi.create(n.uri,l.range)}}),a.push(l));return o}}});function KDe(i,e){let t=i.indexOf(e);return t==-1?-1:i.length-t}var Yb,V7=I(()=>{ao();Ev();ea();Yb=class extends Jt{constructor(e,t){super(e);this.listMap=t;this.name="lists";this.defaultAction="open";this.description="registered lists of coc.nvim";this.mru=new Os("lists");this.addAction("open",async r=>{let{name:n}=r.data;await this.mru.add(n),await e.command(`CocList ${n}`)})}async loadItems(e){let t=[],r=await this.mru.load();for(let n of this.listMap.values())n.name!="lists"&&t.push({label:[n.name,...n.description?[n.description]:[]],data:{name:n.name,interactive:n.interactive,score:KDe(r,n.name)}});return t.sort((n,o)=>o.data.score-n.data.score),gi(this.alignColumns,t)}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocListsDesc /\\t.*$/ contained containedin=CocListsLine",!0),e.command("highlight default link CocListsDesc Comment",!0),e.resumeNotification().catch(t=>{})}}});function uo(i){switch(i){case ct.SymbolKind.File:return"File";case ct.SymbolKind.Module:return"Module";case ct.SymbolKind.Namespace:return"Namespace";case ct.SymbolKind.Package:return"Package";case ct.SymbolKind.Class:return"Class";case ct.SymbolKind.Method:return"Method";case ct.SymbolKind.Property:return"Property";case ct.SymbolKind.Field:return"Field";case ct.SymbolKind.Constructor:return"Constructor";case ct.SymbolKind.Enum:return"Enum";case ct.SymbolKind.Interface:return"Interface";case ct.SymbolKind.Function:return"Function";case ct.SymbolKind.Variable:return"Variable";case ct.SymbolKind.Constant:return"Constant";case ct.SymbolKind.String:return"String";case ct.SymbolKind.Number:return"Number";case ct.SymbolKind.Boolean:return"Boolean";case ct.SymbolKind.Array:return"Array";case ct.SymbolKind.Object:return"Object";case ct.SymbolKind.Key:return"Key";case ct.SymbolKind.Null:return"Null";case ct.SymbolKind.EnumMember:return"EnumMember";case ct.SymbolKind.Struct:return"Struct";case ct.SymbolKind.Event:return"Event";case ct.SymbolKind.Operator:return"Operator";case ct.SymbolKind.TypeParameter:return"TypeParameter";default:return"Unknown"}}var ct,Dh=I(()=>{ct=E(G())});function Y7(i,e){return`${i.name}${e?` ${e}`:""}`}function JDe(i,e){let t=i.selectionRange,r=e.selectionRange;return t.start.line!=r.start.line?t.start.line-r.start.line:t.start.character-r.start.character}var K7,J7,tGe,Xb,X7=I(()=>{K7=E(require("path"));Ro();Ze();J7=E(Op());ht();ye();Vt();ie();wh();Dh();ea();tGe=W()("list-symbols");Xb=class extends lo{constructor(){super(...arguments);this.description="symbols of current document";this.name="outline";this.options=[{name:"-k, -kind KIND",hasValue:!0,description:"filters also by kind"}]}async loadItems(e,t){let r=await e.window.buffer,n=b.getDocument(r.id);if(!n)return null;let s=this.getConfig().get("ctagsFilestypes",[]),a,l=this.parseArguments(e.args);if(s.includes(n.filetype)||(a=await B.getDocumentSymbol(n.textDocument,t)),t.isCancellationRequested)return[];if(!a)return await this.loadCtagsSymbols(n);if(a.length==0)return[];let u=l.kind?l.kind.toLowerCase():null,c=[];if(!a[0].hasOwnProperty("location")){let p=function(d,h=0){d.sort(JDe);for(let m of d){let w=uo(m.kind),v=oi.create(n.uri,m.selectionRange);c.push({label:[`${"| ".repeat(h)}${m.name}`,`[${w}]`,`${m.range.start.line+1}`],filterText:Y7(m,l.kind==""?w:null),location:v,data:{kind:w}}),m.children&&m.children.length&&p(m.children,h+1)}};p(a),u&&(c=c.filter(d=>d.data.kind.toLowerCase().indexOf(u)==0))}else{a.sort((p,d)=>{let h=p.location.range.start,m=d.location.range.start,w=h.line-m.line;return w==0?h.character-m.character:w});for(let p of a){let d=uo(p.kind);p.name.endsWith(") callback")||u&&!d.toLowerCase().startsWith(u)||(p.location.uri===void 0&&(p.location.uri=n.uri),c.push({label:[p.name,`[${d}]`,`${p.location.range.start.line+1}`],filterText:Y7(p,l.kind==""?d:null),location:p.location}))}}return gi(this.alignColumns,c)}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocOutlineName /\\v\\s?[^\\t]+\\s/ contained containedin=CocOutlineLine",!0),e.command("syntax match CocOutlineIndentLine /\\v\\|/ contained containedin=CocOutlineLine,CocOutlineName",!0),e.command("syntax match CocOutlineKind /\\[\\w\\+\\]/ contained containedin=CocOutlineLine",!0),e.command("syntax match CocOutlineLine /\\d\\+$/ contained containedin=CocOutlineLine",!0),e.command("highlight default link CocOutlineName Normal",!0),e.command("highlight default link CocOutlineIndentLine Comment",!0),e.command("highlight default link CocOutlineKind Typedef",!0),e.command("highlight default link CocOutlineLine Comment",!0),e.resumeNotification(!1,!0).logError()}async loadCtagsSymbols(e){if(!J7.default.sync("ctags",{nothrow:!0}))return[];let t=j.parse(e.uri),r=K7.default.extname(t.fsPath),n="",s=`${await this.nvim.call("tempname")}.${r}`,a=await this.nvim.call("fnameescape",s);await IU(a,e.getDocumentContent());try{n=await Kn(`ctags -f - --excmd=number --language-force=${e.filetype} ${a}`)}catch(c){}if(n.trim().length||(n=await Kn(`ctags -f - --excmd=number ${a}`)),n=n.trim(),!n)return[];let l=n.split(/\r?\n/),u=[];for(let c of l){let f=c.split(" ");if(f.length<4)continue;let p=Number(f[2].replace(/;"$/,"")),d=e.getline(p-1);if(!d)continue;let h=d.indexOf(f[0]),m=h==-1?0:h,w=Oe.create(p-1,m,p-1,m+f[0].length);u.push({label:`${f[0]} [${f[3]}] ${p}`,filterText:f[0],location:oi.create(e.uri,w),data:{line:p}})}return u.sort((c,f)=>c.data.line-f.data.line),u}}});var Zb,Z7=I(()=>{mh();ao();ye();ea();Zb=class extends Jt{constructor(e){super(e);this.defaultAction="toggle";this.description="registered services of coc.nvim";this.name="services";this.addAction("toggle",async t=>{let{id:r}=t.data;await qr.toggle(r),await nt(100)},{persist:!0,reload:!0})}async loadItems(e){let t=qr.getServiceStats();return t.sort((r,n)=>r.id>n.id?-1:1),gi(this.alignColumns,t.map(r=>({label:[r.state=="running"?"*":" ",r.id,`[${r.state}]`,r.languageIds.join(", ")],data:{id:r.id}})))}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocServicesPrefix /\\v^./ contained containedin=CocServicesLine",!0),e.command("syntax match CocServicesName /\\v%3c\\S+/ contained containedin=CocServicesLine",!0),e.command("syntax match CocServicesStat /\\v\\t\\[\\w+\\]/ contained containedin=CocServicesLine",!0),e.command("syntax match CocServicesLanguages /\\v(\\])@<=.*$/ contained containedin=CocServicesLine",!0),e.command("highlight default link CocServicesPrefix Special",!0),e.command("highlight default link CocServicesName Type",!0),e.command("highlight default link CocServicesStat Statement",!0),e.command("highlight default link CocServicesLanguages Comment",!0),e.resumeNotification().catch(t=>{})}}});function ew(i,e){return i.length>e?i.slice(0,e-1)+".":i+" ".repeat(e-i.length)}var dGe,Qb,Q7=I(()=>{Ro();Ze();Dl();ie();ao();dGe=W()("list-sources"),Qb=class extends Jt{constructor(e){super(e);this.defaultAction="toggle";this.description="registered completion sources";this.name="sources";this.addAction("toggle",async t=>{let{name:r}=t.data;st.toggleSource(r)},{persist:!0,reload:!0}),this.addAction("refresh",async t=>{let{name:r}=t.data;await st.refresh(r)},{persist:!0,reload:!0}),this.addAction("open",async t=>{let{location:r}=t;r&&await this.jumpTo(r)})}async loadItems(e){let t=st.sourceStats(),r=await e.buffer.getOption("filetype"),n=b.env.disabledSources,o=n?n[r]||[]:[];return t.sort((s,a)=>s.type!=a.type?s.typea.name?-1:1),t.map(s=>{let a=s.disabled?" ":"*";o&&o.includes(s.name)&&(a="-");let l;return s.filepath&&(l=oi.create(j.file(s.filepath).toString(),Oe.create(0,0,0,0))),{label:`${a} ${ew(s.name,22)} ${ew("["+s.shortcut+"]",10)} ${ew(s.triggerCharacters.join(""),10)} ${ew(s.priority.toString(),3)} ${s.filetypes.join(",")}`,location:l,data:{name:s.name}}})}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocSourcesPrefix /\\v^./ contained containedin=CocSourcesLine",!0),e.command("syntax match CocSourcesName /\\v%3c\\S+/ contained containedin=CocSourcesLine",!0),e.command("syntax match CocSourcesType /\\v%25v.*%36v/ contained containedin=CocSourcesLine",!0),e.command("syntax match CocSourcesPriority /\\v%46v.*%50v/ contained containedin=CocSourcesLine",!0),e.command("syntax match CocSourcesFileTypes /\\v\\S+$/ contained containedin=CocSourcesLine",!0),e.command("highlight default link CocSourcesPrefix Special",!0),e.command("highlight default link CocSourcesName Type",!0),e.command("highlight default link CocSourcesPriority Number",!0),e.command("highlight default link CocSourcesFileTypes Comment",!0),e.command("highlight default link CocSourcesType Statement",!0),e.resumeNotification(!1,!0)}}});var eP,eG,tG,_Ge,tw,rG=I(()=>{eP=E(require("path")),eG=E(Ps());Ze();ht();ie();wh();Dh();Vt();YT();tG=E(G());ea();_Ge=W()("list-symbols"),tw=class extends lo{constructor(){super(...arguments);this.interactive=!0;this.description="search workspace symbols";this.detail="Symbols list is provided by server, it works on interactive mode only.";this.name="symbols";this.options=[{name:"-k, -kind KIND",description:"Filter symbols by kind.",hasValue:!0}]}async loadItems(e,t){let{input:r}=e,n=this.parseArguments(e.args),o=n.kind?n.kind.toLowerCase():"";if(!e.options.interactive)throw new Error("Symbols only works on interactive mode");let s=await B.getWorkspaceSymbols(r,t);if(!s)throw new Error("No workspace symbols provider registered");let l=this.getConfig().get("excludes",[]),u=[];for(let c of s){let f=uo(c.kind);if(o&&f.toLowerCase()!=o)continue;let p=j.parse(c.location.uri).fsPath;pt(b.cwd,p)&&(p=eP.default.relative(b.cwd,p)),!l.some(d=>(0,eG.default)(p,d))&&u.push({label:[c.name,`[${f}]`,p],filterText:`${c.name}`,location:c.location,data:{original:c,kind:c.kind,file:p,score:Nb(r,c.name)}})}return u.sort((c,f)=>c.data.score!=f.data.score?f.data.score-c.data.score:c.data.kind!=f.data.kind?c.data.kind-f.data.kind:c.data.file.length-f.data.file.length),gi(this.alignColumns,u)}async resolveItem(e){let t=e.data.original;if(!t)return null;let r=new tG.CancellationTokenSource,n=await B.resolveWorkspaceSymbol(t,r.token);if(!n)return null;let o=uo(n.kind),s=j.parse(n.location.uri).fsPath;return pt(b.cwd,s)&&(s=eP.default.relative(b.cwd,s)),{label:`${t.name} [${o}] ${s}`,filterText:`${t.name}`,location:t.location}}doHighlight(){let{nvim:e}=this;e.pauseNotification(),e.command("syntax match CocSymbolsName /\\v^\\s*\\S+/ contained containedin=CocSymbolsLine",!0),e.command("syntax match CocSymbolsKind /\\[\\w\\+\\]\\s*\\t/ contained containedin=CocSymbolsLine",!0),e.command("syntax match CocSymbolsFile /\\S\\+$/ contained containedin=CocSymbolsLine",!0),e.command("highlight default link CocSymbolsName Normal",!0),e.command("highlight default link CocSymbolsKind Typedef",!0),e.command("highlight default link CocSymbolsFile Comment",!0),e.resumeNotification().catch(t=>{})}}});var iG,xh,nG,oG,sG,yr,rw=I(()=>{iG=E(zr()),xh=E(G());je();Ko();ye();ie();Te();Ob();p7();h7();P7();M7();N7();B7();W7();G7();V7();wh();X7();Z7();Q7();rG();nG=W()("list-manager"),oG=["","","","<2-LeftMouse>"],sG=class{constructor(){this.plugTs=0;this.sessionsMap=new Map;this.disposables=[];this.listMap=new Map}init(e){this.nvim=e,this.config=new Gc,this.prompt=new Lb(e,this.config),this.mappings=new Ab(this,e,this.config);let t=this.config.get("selectedSignText","*");e.command(`sign define CocSelected text=${t} texthl=CocSelectedText linehl=CocSelectedLine`,!0),N.on("InputChar",this.onInputChar,this,this.disposables),N.on("FocusGained",(0,iG.default)(async()=>{await this.getCurrentSession()&&this.prompt.drawPrompt()},100),null,this.disposables);let r;N.on("WinEnter",n=>{let o=this.getSessionByWinid(n);o&&this.prompt.start(o.listOptions)},null,this.disposables),N.on("WinLeave",n=>{this.getSessionByWinid(n)&&this.prompt.cancel()}),this.disposables.push(xh.Disposable.create(()=>{r&&clearTimeout(r)})),this.prompt.onDidChangeInput(()=>{let{session:n}=this;!n||(n.onInputChange(),n.history.filter())}),this.registerList(new Jb(e)),this.registerList(new lo(e)),this.registerList(new tw(e)),this.registerList(new Xb(e)),this.registerList(new Hb(e)),this.registerList(new Vb(e)),this.registerList(new zb(e)),this.registerList(new Qb(e)),this.registerList(new Zb(e)),this.registerList(new Yb(e,this.listMap)),this.registerList(new Kb(e))}async start(e){let t=this.parseArgs(e);if(!t)return;let{name:r}=t.list,n=this.sessionsMap.get(r);n&&n.dispose(),this.prompt.start(t.options);let o=new jb(this.nvim,this.prompt,t.list,t.options,t.listArgs,this.config);this.sessionsMap.set(r,o),this.lastSession=o;try{await o.start(e)}catch(s){this.nvim.call("coc#prompt#stop_prompt",["list"],!0);let a=s instanceof Error?s.message:s.toString();T.showMessage(`Error on "CocList ${r}": ${a}`,"error"),nG.error(s)}}getSessionByWinid(e){for(let t of this.sessionsMap.values())if(t&&t.winid==e)return this.lastSession=t,t;return null}async getCurrentSession(){let{id:e}=await this.nvim.window;for(let t of this.sessionsMap.values())if(t&&t.winid==e)return this.lastSession=t,t;return null}async resume(e){var t;if(!e)await((t=this.session)==null?void 0:t.resume());else{let r=this.sessionsMap.get(e);if(!r){T.showMessage(`Can't find exists ${e} list`);return}await r.resume()}}async doAction(e){let t=this.lastSession;!t||await t.doAction(e)}async first(e){let t=this.getSession(e);t&&await t.first()}async last(e){let t=this.getSession(e);t&&await t.last()}async previous(e){let t=this.getSession(e);t&&await t.previous()}async next(e){let t=this.getSession(e);t&&await t.next()}getSession(e){return e?this.sessionsMap.get(e):this.session}async cancel(e=!0){this.prompt.cancel(),!!e&&this.session&&await this.session.hide()}reset(){this.prompt.cancel(),this.lastSession=void 0;for(let e of this.sessionsMap.values())e.dispose();this.sessionsMap.clear(),this.nvim.call("coc#prompt#stop_prompt",["list"],!0)}switchMatcher(){var e;(e=this.session)==null||e.switchMatcher()}async togglePreview(){let{nvim:e}=this,t=await e.call("coc#list#get_preview",[0]);t!=-1?(await e.createWindow(t).close(!0),await e.command("redraw")):await this.doAction("preview")}async chooseAction(){let{lastSession:e}=this;e&&await e.chooseAction()}parseArgs(e){let t=[],r=!1,n=!1,o=!1,s=!1,a=!1,l,u="",c="fuzzy",f="bottom",p=[],d=[];for(let w of e)if(!l&&w.startsWith("-"))d.push(w);else if(l)p.push(w);else{if(!/^\w+$/.test(w))return T.showMessage(`Invalid list option: "${w}"`,"error"),null;l=w}l=l||"lists";let h=b.getConfiguration(`list.source.${l}`);!d.length&&!p.length&&(d=h.get("defaultOptions",[])),p.length||(p=h.get("defaultArgs",[]));for(let w of d)if(w.startsWith("--input"))u=w.slice(8);else if(w=="--number-select"||w=="-N")o=!0;else if(w=="--auto-preview"||w=="-A")n=!0;else if(w=="--regex"||w=="-R")c="regex";else if(w=="--strict"||w=="-S")c="strict";else if(w=="--interactive"||w=="-I")r=!0;else if(w=="--top")f="top";else if(w=="--tab")f="tab";else if(w=="--ignore-case"||w=="--normal"||w=="--no-sort")t.push(w.slice(2));else if(w=="--first")a=!0;else if(w=="--no-quit")s=!0;else return T.showMessage(`Invalid option "${w}" of list`,"error"),null;let m=this.listMap.get(l);return m?r&&!m.interactive?(T.showMessage(`Interactive mode of "${l}" list not supported`,"error"),null):{list:m,listArgs:p,options:{numberSelect:o,autoPreview:n,noQuit:s,first:a,input:u,interactive:r,matcher:c,position:f,ignorecase:!!t.includes("ignore-case"),mode:t.includes("normal")?"normal":"insert",sort:!t.includes("no-sort")}}:(T.showMessage(`List ${l} not found`,"error"),null)}async onInputChar(e,t,r){if(e!="list")return;let{mode:n}=this.prompt,o=Date.now();if(t==""||this.plugTs&&o-this.plugTs<20){this.plugTs=o;return}if(!!t){if(t==""){await this.cancel();return}try{n=="insert"?await this.onInsertInput(t,r):await this.onNormalInput(t,r)}catch(s){T.showMessage(`Error on input ${t}: ${s}`),nG.error(s)}}}async onInsertInput(e,t){let{session:r}=this;if(!r)return;if(oG.includes(e)){await this.onMouseEvent(e);return}if(!(await r.doNumberSelect(e)||await this.mappings.doInsertKeymap(e)||t)&&!(e.startsWith("<")&&e.endsWith(">")))for(let s of e){let a=s.codePointAt(0);if(a==65533||a<32||a>=127&&a<=159)return;await this.prompt.acceptCharacter(s)}}async onNormalInput(e,t){if(oG.includes(e)){await this.onMouseEvent(e);return}await this.mappings.doNormalKeymap(e)||await this.feedkeys(e)}onMouseEvent(e){if(this.session)return this.session.onMouseEvent(e)}async feedkeys(e,t=!0){let{nvim:r}=this;e=e.startsWith("<")&&e.endsWith(">")?`\\${e}`:e,await r.call("coc#prompt#stop_prompt",["list"]),await r.call("eval",[`feedkeys("${e}", "${t?"i":"in"}")`]),this.prompt.start()}async command(e){let{nvim:t}=this;await t.call("coc#prompt#stop_prompt",["list"]),await t.command(e),this.prompt.start()}async normal(e,t=!0){let{nvim:r}=this;await r.call("coc#prompt#stop_prompt",["list"]),await r.command(`normal${t?"!":""} ${e}`),this.prompt.start()}async call(e){if(this.session)return await this.session.call(e)}get session(){return this.lastSession}registerList(e){let{name:t}=e,r=this.listMap.get(t);this.listMap.has(t)&&(r&&(typeof r.dispose=="function"&&r.dispose(),this.listMap.delete(t)),T.showMessage(`list "${t}" recreated.`)),this.listMap.set(t,e);let o=b.getConfiguration(`list.source.${t}`).get("defaultAction");return o&&e.actions.find(s=>s.name==o)&&(e.defaultAction=o),we.addSchemeProperty(`list.source.${t}.defaultAction`,{type:"string",default:null,description:`Default default action of "${t}" list.`}),we.addSchemeProperty(`list.source.${t}.defaultOptions`,{type:"array",default:e.interactive?["--interactive"]:[],description:`Default list options of "${t}" list, only used when both list option and argument are empty.`,uniqueItems:!0,items:{type:"string",enum:["--top","--normal","--no-sort","--input","--tab","--strict","--regex","--ignore-case","--number-select","--interactive","--auto-preview","--first","--no-quit"]}}),we.addSchemeProperty(`list.source.${t}.defaultArgs`,{type:"array",default:[],description:`Default argument list of "${t}" list, only used when list argument is empty.`,uniqueItems:!0,items:{type:"string"}}),xh.Disposable.create(()=>{typeof e.dispose=="function"&&e.dispose(),this.listMap.delete(t)})}get names(){return Array.from(this.listMap.keys())}get descriptions(){let e={};for(let t of this.listMap.keys()){let r=this.listMap.get(t);e[t]=r.description}return e}async loadItems(e){let t=[e],r=this.parseArgs(t);if(!r)return;let{list:n,options:o,listArgs:s}=r,l=new xh.CancellationTokenSource().token,u=await this.nvim.eval('[win_getid(),bufnr("%")]');return await n.loadItems({options:o,args:s,input:"",cwd:b.cwd,window:this.nvim.createWindow(u[0]),buffer:this.nvim.createBuffer(u[1]),listWindow:null},l)}toggleMode(){let e=this.lastSession;e&&e.toggleMode()}get isActivated(){var e;return((e=this.session)==null?void 0:e.winid)!=null}stop(){let e=this.lastSession;e&&e.stop()}dispose(){for(let e of this.sessionsMap.values())e.dispose();this.sessionsMap.clear(),this.config&&this.config.dispose(),this.lastSession=void 0,J(this.disposables)}},yr=new sG});var aG=I(()=>{});var uG={};os(uG,{BaseLanguageClient:()=>bb,BasicList:()=>Jt,Buffer:()=>Zc.Buffer,CancellationToken:()=>ue.CancellationToken,CancellationTokenSource:()=>ue.CancellationTokenSource,ClientState:()=>Se,CloseAction:()=>zo,CodeActionKind:()=>ue.CodeActionKind,CompletionItemKind:()=>ue.CompletionItemKind,CompletionTriggerKind:()=>ue.CompletionTriggerKind,ConfigurationTarget:()=>Nt,Diagnostic:()=>ue.Diagnostic,DiagnosticSeverity:()=>ue.DiagnosticSeverity,DiagnosticTag:()=>ue.DiagnosticTag,Disposable:()=>ue.Disposable,Document:()=>rc,DocumentHighlightKind:()=>ue.DocumentHighlightKind,Emitter:()=>ue.Emitter,ErrorAction:()=>Uc,Event:()=>ue.Event,ExtensionType:()=>_i,FileChangeType:()=>ue.FileChangeType,FileSystemWatcher:()=>nc,FileType:()=>kn,FloatFactory:()=>tn,Highligher:()=>no,InsertTextFormat:()=>ue.InsertTextFormat,LanguageClient:()=>Ib,Location:()=>ue.Location,LocationLink:()=>ue.LocationLink,MarkupKind:()=>ue.MarkupKind,MessageLevel:()=>Yn,MessageTransports:()=>fh,Mru:()=>Os,Mutex:()=>kr,Neovim:()=>Zc.Neovim,NotificationType:()=>ue.NotificationType,NotificationType0:()=>ue.NotificationType0,NullLogger:()=>e9,PatternType:()=>Ei,Position:()=>ue.Position,ProgressType:()=>lG.ProgressType,ProposedFeatures:()=>Fb,Range:()=>ue.Range,RequestType:()=>ue.RequestType,RequestType0:()=>ue.RequestType0,RevealOutputChannelOn:()=>Ai,ServiceStat:()=>_e,SettingMonitor:()=>n7,SignatureHelpTriggerKind:()=>ue.SignatureHelpTriggerKind,SourceType:()=>Ti,State:()=>Li,SymbolKind:()=>ue.SymbolKind,TextDocumentFeature:()=>$e,TextEdit:()=>ue.TextEdit,TransportKind:()=>xt,Uri:()=>j,Watchman:()=>An,Window:()=>Zc.Window,ansiparse:()=>rd,commands:()=>be,concurrent:()=>Mp,diagnosticManager:()=>At,disposeAll:()=>J,download:()=>nh,events:()=>N,executable:()=>Lp,extensions:()=>we,fetch:()=>$c,isRunning:()=>q2,languages:()=>B,listManager:()=>yr,runCommand:()=>Kn,services:()=>qr,snippetManager:()=>ir,sources:()=>st,wait:()=>nt,watchFile:()=>Au,window:()=>T,workspace:()=>b});var Zc,ue,lG,qT=I(()=>{$n();je();ht();oE();Ev();zu();$y();gT();ah();sE();mh();Dl();ie();Te();Ko();rw();xl();ao();el();Hu();Mv();_s();Ze();Zc=E(l0()),ue=E(G()),lG=E($a());Pi();JT();aG();ye()});function XDe(i){return()=>{throw new Error(`process.${i}() is not allowed in extension sandbox`)}}function ZDe(){let i=e=>e==="coc.nvim"?(qT(),uG):this.require(e);return i.resolve=e=>co._resolveFilename(e,this),i.main=process.mainModule,i.extensions=co._extensions,i.cache=co._cache,i}function QDe(i){return function(e,t){let r=ZDe.call(this),n=fG.dirname(t),o=e.replace(/^\#\!.*/,""),s=co.wrap(o),a=iw.runInContext(s,i,{filename:t}),l=[this.exports,r,this,t,n];return a.apply(this.exports,l)}}function exe(i,e){let t=new co(i);t.paths=co._nodeModulePaths(i);let r=iw.createContext({module:t,Buffer,console:{debug:(...n)=>{e.debug.apply(e,n)},log:(...n)=>{e.info.apply(e,n)},error:(...n)=>{e.error.apply(e,n)},info:(...n)=>{e.info.apply(e,n)},warn:(...n)=>{e.warn.apply(e,n)}}});L4(r,global),r.Reflect=Reflect,r.require=function(o){let s=co.prototype._compile;co.prototype._compile=QDe(r);let a=r.module.require(o);return co.prototype._compile=s,a},r.process=new process.constructor;for(let n of Object.keys(process))r.process[n]=process[n];return YDe.forEach(n=>{r.process[n]=XDe(n)}),r.process.chdir=()=>{},r.process.umask=n=>{if(typeof n!="undefined")throw new Error("Cannot use process.umask() to change mask (read-only)");return process.umask()},r}function dG(i,e,t=!1){if(t||!cG.default.existsSync(e))return{activate:()=>{},deactivate:null};let r=exe(e,pG(`extension:${i}`));delete co._cache[require.resolve(e)];let n=r.require(e),o=n&&n.activate||n;return typeof o!="function"?{activate:()=>{},deactivate:null}:{activate:o,deactivate:typeof n.deactivate=="function"?n.deactivate:null}}var cG,fG,iw,pG,CVe,co,YDe,hG=I(()=>{cG=E(require("fs")),fG=E(require("path")),iw=E(require("vm"));oh();pG=W(),CVe=pG("util-factoroy"),co=require("module"),YDe=["reallyExit","abort","umask","setuid","setgid","setgroups","_fatalException","exit","kill"]});var mG,Tt,gG,Be,vG,nw,yG,GVe,bG,Xr,wG,we,Ko=I(()=>{mG=E(zr());ud();Tt=E(bn()),gG=E(ES()),Be=E(require("path")),vG=E(Gp()),nw=E(G());Ze();yG=E(Op());$n();je();tE();zu();BW();F4();O4();Pi();ye();gd();GVe=E($m());hG();Vt();Yi();Mv();ie();Te();bG=W(),Xr=bG("extensions"),wG=class{constructor(){this.extensions=new Map;this.disabled=new Set;this._onDidLoadExtension=new nw.Emitter;this._onDidActiveExtension=new nw.Emitter;this._onDidUnloadExtension=new nw.Emitter;this._additionalSchemes={};this.activated=!1;this.disposables=[];this.ready=!0;this.onDidLoadExtension=this._onDidLoadExtension.event;this.onDidActiveExtension=this._onDidActiveExtension.event;this.onDidUnloadExtension=this._onDidUnloadExtension.event;let e=global.hasOwnProperty("__TEST__")?Be.default.join(__dirname,"__tests__"):process.env.COC_DATA_HOME,t=this.root=Be.default.join(e,"extensions");Tt.default.existsSync(t)||Tt.default.mkdirpSync(t);let r=Be.default.join(t,"package.json");Tt.default.existsSync(r)||Tt.default.writeFileSync(r,'{"dependencies":{}}',"utf8");let n=Be.default.join(t,"db.json");this.db=new tc(n)}get outputChannel(){return this._outputChannel?this._outputChannel:(this._outputChannel=T.createOutputChannel("extensions"),this._outputChannel)}async init(){let e=this.db.fetch("extension")||{},t=Object.keys(e);for(let o of t)e[o].disabled==!0&&this.disabled.add(o);if(process.env.COC_NO_PLUGINS)return;let r=await this.globalExtensionStats(),n=await this.localExtensionStats(r.map(o=>o.id));r=r.concat(n),this.memos=new Hy(Be.default.resolve(this.root,"../memos.json")),r.map(o=>{let s=o.isLocal?_i.Local:_i.Global;try{this.createExtension(o.root,o.packageJSON,s)}catch(a){Xr.error(`Error on create ${o.root}:`,a)}}),await this.loadFileExtensions(),be.register({id:"extensions.forceUpdateAll",execute:async()=>{let o=await this.cleanExtensions();Xr.info(`Force update extensions: ${o}`),await this.installExtensions(o)}},!1,"remove all global extensions and install them"),b.onDidRuntimePathChange(async o=>{for(let s of o)s&&this.checkDirectory(s)===!0&&await this.loadExtension(s)},null,this.disposables)}async activateExtensions(){this.activated=!0;for(let o of this.extensions.values()){let{id:s,packageJSON:a}=o.extension;await this.setupActiveEvents(s,a)}let e=new tn(b.nvim);if(N.on("CursorMoved",(0,mG.debounce)(async o=>{if(this.installBuffer&&o==this.installBuffer.bufnr){let s=await b.nvim.call("line",["."]),a=this.installBuffer.getMessages(s-1),l=a&&a.length?[{content:a.join(` +`),filetype:"txt"}]:[];await e.show(l,{modes:["n"]})}},500)),global.hasOwnProperty("__TEST__"))return;this.checkExtensions().logError();let t=b.getConfiguration("coc.preferences"),r=t.get("extensionUpdateCheck","never"),n=t.get("silentAutoupdate",!0);if(r!="never"){let o=new Date,s=new Date(o.getFullYear(),o.getMonth(),o.getDate()-(r=="daily"?0:7)),a=this.db.fetch("lastUpdate");if(a&&Number(a)>s.getTime())return;this.outputChannel.appendLine("Start auto update..."),this.updateExtensions(!1,n).logError()}}async updateExtensions(e,t=!1){if(!this.npm)return;let r=await this.getLockedList(),n=await this.globalExtensionStats();n=n.filter(l=>![...r,...this.disabled].includes(l.id)),this.db.push("lastUpdate",Date.now()),t&&T.showMessage("Updating extensions, checkout output:///extensions for details.","more");let o=this.installBuffer=new _d(!0,e,t?this.outputChannel:void 0);o.setExtensions(n.map(l=>l.id)),await o.show(b.nvim);let s=Wy(this.npm,this.modulesFolder);await Mp(n,l=>{let{id:u}=l;o.startProgress([u]);let c=l.exotic?l.uri:null,f=s(u);return f.on("message",(p,d)=>{o.addMessage(u,p,d)}),f.update(c).then(p=>{o.finishProgress(u,!0),p&&this.loadExtension(p).logError()},p=>{o.addMessage(u,p.message),o.finishProgress(u,!1)})},t?1:3)}async checkExtensions(){let{globalExtensions:e}=b.env;if(e&&e.length){let t=this.filterGlobalExtensions(e);this.installExtensions(t).logError()}}get installer(){return Wy(this.npm,this.modulesFolder)}async installExtensions(e=[]){let{npm:t}=this;if(!t||!e.length)return;e=Cv(e);let r=this.installBuffer=new _d;r.setExtensions(e),await r.show(b.nvim);let n=Wy(this.npm,this.modulesFolder);await Mp(e,s=>{r.startProgress([s]);let a=n(s);return a.on("message",(l,u)=>{r.addMessage(s,l,u)}),a.install().then(l=>{r.finishProgress(s,!0);let u=Be.default.join(this.modulesFolder,l);this.loadExtension(u).logError()},l=>{r.addMessage(s,l.message),r.finishProgress(s,!1),Xr.error(`Error on install ${s}`,l)})})}getMissingExtensions(){let e=this.loadJson()||{dependencies:{}},t=[];for(let r of Object.keys(e.dependencies)){let n=Be.default.join(this.modulesFolder,r);if(!Tt.default.existsSync(n)){let o=e.dependencies[r];o.startsWith("http")?t.push(o):t.push(r)}}return t}get npm(){let e=b.getConfiguration("npm").get("binPath","npm");e=b.expand(e);for(let t of[e,"yarnpkg","yarn","npm"])try{return yG.default.sync(t)}catch(r){continue}return T.showMessage("Can't find npm or yarn in your $PATH","error"),null}get all(){return Array.from(this.extensions.values()).map(e=>e.extension).filter(e=>!this.isDisabled(e.id))}getExtension(e){return this.extensions.get(e)}getExtensionState(e){if(this.isDisabled(e))return"disabled";let r=this.extensions.get(e);if(!r)return"unknown";let{extension:n}=r;return n.isActive?"activated":"loaded"}async getExtensionStates(){let e=await this.localExtensionStats([]),t=await this.globalExtensionStats();return e.concat(t.filter(r=>e.find(n=>n.id==r.id)==null))}async getLockedList(){let e=await this.db.fetch("extension");return e=e||{},Object.keys(e).filter(t=>e[t].locked===!0)}async toggleLock(e){let t=`extension.${e}.locked`;await this.db.fetch(t)?this.db.delete(t):this.db.push(t,!0)}async toggleExtension(e){let t=this.getExtensionState(e);if(t==null)return;t=="activated"&&await this.deactivate(e);let r=`extension.${e}.disabled`;if(this.db.push(r,t!="disabled"),t!="disabled")this.disabled.add(e),await this.unloadExtension(e);else{this.disabled.delete(e);let n=Be.default.join(this.modulesFolder,e);Tt.default.existsSync(n)&&await this.loadExtension(n)}await nt(200)}async reloadExtension(e){let t=this.extensions.get(e);if(!t){T.showMessage(`Extension ${e} not registered`,"error");return}if(t.type==_i.Internal){T.showMessage(`Can't reload internal extension "${t.id}"`,"warning");return}t.type==_i.SingleFile?await this.loadExtensionFile(t.filepath):t.directory?await this.loadExtension(t.directory):T.showMessage(`Can't reload extension ${t.id}`,"warning")}async cleanExtensions(){let e=this.modulesFolder;if(!Tt.default.existsSync(e))return[];let t=this.globalExtensions,r=[];for(let n of t){let o=Be.default.join(e,n),s=await Tt.default.lstat(o);!s||s&&s.isSymbolicLink()||(await this.unloadExtension(n),await Tt.default.remove(o),r.push(n))}return r}async uninstallExtension(e){try{if(!e.length)return;let[t,r]=Sv(e,a=>this.globalExtensions.includes(a));r.length&&T.showMessage(`Extensions ${r} not global extensions, can't uninstall!`,"warning");let n=this.loadJson()||{dependencies:{}};for(let a of t){await this.unloadExtension(a),delete n.dependencies[a];let l=Be.default.join(this.modulesFolder,a);Tt.default.existsSync(l)&&await Tt.default.remove(l)}let o={dependencies:{}};Object.keys(n.dependencies).sort().forEach(a=>{o.dependencies[a]=n.dependencies[a]});let s=Be.default.join(this.root,"package.json");Tt.default.writeFileSync(s,JSON.stringify(o,null,2),{encoding:"utf8"}),T.showMessage(`Removed: ${t.join(" ")}`)}catch(t){T.showMessage(`Uninstall failed: ${t.message}`,"error")}}isDisabled(e){return this.disabled.has(e)}has(e){return this.extensions.has(e)}isActivated(e){let t=this.extensions.get(e);return!!(t&&t.extension.isActive)}async loadExtension(e){try{let t=Be.default.dirname(e),r=Be.default.normalize(t)!=Be.default.normalize(this.modulesFolder),n=Be.default.join(e,"package.json"),o=JSON.parse(Tt.default.readFileSync(n,"utf8")),{name:s}=o;return this.isDisabled(s)?!1:(await this.unloadExtension(s),this.createExtension(e,Object.freeze(o),r?_i.Local:_i.Global),!0)}catch(t){return T.showMessage(`Error on load extension from "${e}": ${t.message}`,"error"),Xr.error(`Error on load extension from ${e}`,t),!1}}async loadFileExtensions(){if(!process.env.COC_VIMCONFIG)return;let e=Be.default.join(process.env.COC_VIMCONFIG,"coc-extensions");if(!Tt.default.existsSync(e))return;let t=await Tt.default.readdir(e);t=t.filter(r=>r.endsWith(".js"));for(let r of t)await this.loadExtensionFile(Be.default.join(e,r))}loadedExtensions(){return Array.from(this.extensions.keys())}async watchExtension(e){let t=this.extensions.get(e);if(!t){T.showMessage(`extension ${e} not found`,"error");return}if(e.startsWith("single-"))T.showMessage(`watching ${t.filepath}`),this.disposables.push(Au(t.filepath,async()=>{await this.loadExtensionFile(t.filepath),T.showMessage(`reloaded ${e}`)}));else{let r=b.getWatchmanPath();if(!r){T.showMessage("watchman not found","error");return}let n=await An.createClient(r,t.directory);if(!n){T.showMessage("Can't create watchman client, check output:///watchman");return}T.showMessage(`watching ${t.directory}`),this.disposables.push(n),n.subscribe("**/*.js",async()=>{await this.reloadExtension(e),T.showMessage(`reloaded ${e}`)}).then(o=>{this.disposables.push(o)},o=>{Xr.error(o)})}}async loadExtensionFile(e){let t=Be.default.basename(e),r=Be.default.basename(e,".js"),n="single-"+r;if(this.isDisabled(n))return;let o=Be.default.dirname(e),s={name:n,main:t,engines:{coc:"^0.0.79"}},a=Be.default.join(o,r+".json"),l=await $t(a);if(l&&l.isFile()){let u=await ec(a,"utf8"),c=JSON.parse(u);if(c){let f=["activationEvents","contributes"];for(let p of f)c[p]&&(s[p]=c[p])}}await this.unloadExtension(n),this.createExtension(o,s,_i.SingleFile)}async activate(e){if(this.isDisabled(e))throw new Error(`Extension ${e} is disabled!`);let t=this.extensions.get(e);if(!t)throw new Error(`Extension ${e} not registered!`);let{extension:r}=t;return r.isActive?!0:(await Promise.resolve(r.activate()),r.isActive?(this._onDidActiveExtension.fire(r),!0):!1)}async deactivate(e){let t=this.extensions.get(e);return t?(await Promise.resolve(t.deactivate()),!0):!1}async call(e,t,r){let n=this.extensions.get(e);if(!n)throw new Error(`extension ${e} not registered`);let{extension:o}=n;o.isActive||await this.activate(e);let{exports:s}=o;if(!s||!s.hasOwnProperty(t))throw new Error(`method ${t} not found on extension ${e}`);return await Promise.resolve(s[t].apply(null,r))}getExtensionApi(e){let t=this.extensions.get(e);if(!t)return null;let{extension:r}=t;return r.isActive?r.exports:null}registerExtension(e,t){let{id:r,packageJSON:n}=e;this.extensions.set(r,{id:r,type:_i.Internal,extension:e,deactivate:t,isLocal:!0});let{contributes:o}=n;if(o){let{configuration:s}=o;if(s&&s.properties){let{properties:a}=s,l={};for(let u of Object.keys(a)){let c=a[u].default;c!=null&&(l[u]=c)}b.configurations.extendsDefaults(l)}}this._onDidLoadExtension.fire(e),this.setupActiveEvents(r,n).logError()}get globalExtensions(){let e=this.loadJson();return!e||!e.dependencies?[]:Object.keys(e.dependencies)}async globalExtensionStats(){let e=this.loadJson();if(!e||!e.dependencies)return[];let{modulesFolder:t}=this;return(await Promise.all(Object.keys(e.dependencies).map(n=>new Promise(async o=>{try{let s=e.dependencies[n],a=Be.default.join(t,n),l=this.checkDirectory(a);if(l instanceof Error)return T.showMessage(`Unable to load global extension at ${a}: ${l.message}`,"error"),Xr.error(`Error on load ${a}`,l),o(null);let u=await ec(Be.default.join(a,"package.json"),"utf8");a=await Tt.default.realpath(a);let c=JSON.parse(u),f=c&&c.version||"",p=c&&c.description||"",d=gG.default.isValid(s)?s:"";o({id:n,isLocal:!1,version:f,description:p,exotic:/^https?:/.test(s),uri:d.replace(/\.git(#master)?$/,""),root:a,state:this.getExtensionState(n),packageJSON:Object.freeze(c)})}catch(s){Xr.error(s),o(null)}})))).filter(n=>n!=null)}async localExtensionStats(e){let r=(await b.nvim.eval("&runtimepath")).split(",");return(await Promise.all(r.map(o=>new Promise(async s=>{try{if(this.checkDirectory(o)!==!0)return s(null);let l=Be.default.join(o,"package.json"),u=await ec(l,"utf8"),c=JSON.parse(u),f=this.extensions.get(c.name);if(f&&!f.isLocal)return Xr.info(`Extension "${c.name}" in runtimepath already loaded.`),s(null);if(e.includes(c.name))return Xr.info(`Skipped load vim plugin from "${o}", "${c.name}" already global extension.`),s(null);let p=c&&c.version||"",d=c&&c.description||"";s({id:c.name,isLocal:!0,version:p,description:d,exotic:!1,root:o,state:this.getExtensionState(c.name),packageJSON:Object.freeze(c)})}catch(a){Xr.error(a),s(null)}})))).filter(o=>o!=null)}loadJson(){let{root:e}=this,t=Be.default.join(e,"package.json");if(!Tt.default.existsSync(t))return null;let r=[],n=Tt.default.readFileSync(t,"utf8"),o=Xu(n,r,{allowTrailingComma:!0});return r&&r.length>0&&(T.showMessage(`Error on parse ${t}`,"error"),b.nvim.call("coc#util#open_file",["edit",t],!0)),o}get schemes(){return this._additionalSchemes}addSchemeProperty(e,t){this._additionalSchemes[e]=t,b.configurations.extendsDefaults({[e]:t.default})}async setupActiveEvents(e,t){let{activationEvents:r}=t;if(!this.canActivate(e))return;if(!r||Array.isArray(r)&&r.includes("*")){await this.activate(e).catch(s=>{T.showMessage(`Error on activate extension ${e}: ${s.message}`),this.outputChannel.appendLine(`Error on activate extension ${e}. +${s.message} + ${s.stack}`)});return}let n=[],o=()=>(J(n),new Promise(s=>{if(!this.canActivate(e))return this.outputChannel.appendLine(`Extension ${e} is disabled or not loaded.`),s();let a=setTimeout(()=>{this.outputChannel.appendLine(`Extension ${e} activate cost more than 1s`),s()},1e3);this.activate(e).then(()=>{clearTimeout(a),s()},l=>{clearTimeout(a),T.showMessage(`Error on activate extension ${e}: ${l.message}`),this.outputChannel.appendLine(`Error on activate extension ${e}:${l.message} + ${l.stack}`),s()})}));for(let s of r){let a=s.split(":"),l=a[0];if(l=="onLanguage"){if(b.filetypes.has(a[1])){await o();return}b.onDidOpenTextDocument(u=>{u.languageId==a[1]&&o()},null,n)}else if(l=="onCommand")be.onCommandList.push(a[1]),N.on("Command",async u=>{u==a[1]&&(await o(),await nt(500))},null,n);else if(l=="workspaceContains"){let u=async()=>{let f=b.workspaceFolders.map(p=>j.parse(p.uri).fsPath);for(let p of f)if(Rs(p,a[1].split(/\s+/)))return await o(),!0};if(await u())return;b.onDidChangeWorkspaceFolders(u,null,n)}else if(l=="onFileSystem"){for(let u of b.documents)if(j.parse(u.uri).scheme==a[1]){await o();return}b.onDidOpenTextDocument(u=>{j.parse(u.uri).scheme==a[1]&&o()},null,n)}else T.showMessage(`Unsupported event ${s} of ${e}`,"error")}}createExtension(e,t,r){let n=t.name,o=!1,s=null,a=Be.default.join(e,t.main||"index.js"),l,u=[],c={activate:async()=>{if(o)return s;let p={subscriptions:u,extensionPath:e,globalState:this.memos.createMemento(`${n}|global`),workspaceState:this.memos.createMemento(`${n}|${b.rootPath}`),asAbsolutePath:d=>Be.default.join(e,d),storagePath:Be.default.join(this.root,`${n}-data`),logger:bG(n)};if(o=!0,!l)try{let d=!(t.engines||{}).hasOwnProperty("coc");l=dG(n,a,d)}catch(d){Xr.error(`Error on createExtension ${n} from ${a}`,d);return}try{s=await Promise.resolve(l.activate(p)),Xr.debug("activate:",n)}catch(d){o=!1,Xr.error(`Error on active extension ${n}: ${d.stack}`,d)}return s}};Object.defineProperties(c,{id:{get:()=>n,enumerable:!0},packageJSON:{get:()=>t,enumerable:!0},extensionPath:{get:()=>e,enumerable:!0},isActive:{get:()=>o,enumerable:!0},exports:{get:()=>s,enumerable:!0}}),this.extensions.set(n,{id:n,type:r,isLocal:r==_i.Local,extension:c,directory:e,filepath:a,deactivate:()=>{if(!!o&&(o=!1,J(u),u.splice(0,u.length),u=[],l&&l.deactivate))try{return Promise.resolve(l.deactivate()).catch(p=>{Xr.error(`Error on ${n} deactivate: `,p)})}catch(p){Xr.error(`Error on ${n} deactivate: `,p)}}});let{contributes:f}=t;if(f){let{configuration:p,rootPatterns:d,commands:h}=f;if(p&&p.properties){let{properties:m}=p,w={};for(let v of Object.keys(m)){let D=m[v].default;D!=null&&(w[v]=D)}b.configurations.extendsDefaults(w)}if(d&&d.length)for(let m of d)b.addRootPattern(m.filetype,m.patterns);if(h&&h.length)for(let m of h)be.titles.set(m.command,m.title)}this._onDidLoadExtension.fire(c),this.activated&&this.setupActiveEvents(n,t).logError()}filterGlobalExtensions(e){let t=new Map;e.forEach(s=>{let a=this.getExtensionName(s);a&&t.set(a,s)});let r=this.loadJson(),n=[],o=[];if(r&&r.dependencies)for(let s of Object.keys(r.dependencies)){let a=r.dependencies[s];typeof a=="string"&&Tt.default.existsSync(Be.default.join(this.modulesFolder,s,"package.json"))&&(o.push(s),/^https?:/.test(a)&&n.push(a))}for(let s of t.keys()){if(this.disabled.has(s)||this.extensions.has(s)){t.delete(s);continue}(/^https?:/.test(s)&&n.some(a=>a.startsWith(s))||o.includes(s))&&t.delete(s)}return Array.from(t.values())}getExtensionName(e){return/^https?:/.test(e)||!e.includes("@")?e:e.replace(/@[\d.]+$/,"")}get modulesFolder(){return Be.default.join(this.root,global.hasOwnProperty("__TEST__")?"":"node_modules")}canActivate(e){return!this.disabled.has(e)&&this.extensions.has(e)}async unloadExtension(e){this.extensions.get(e)&&(await this.deactivate(e),this.extensions.delete(e),this._onDidUnloadExtension.fire(e))}checkDirectory(e){try{let t=Be.default.join(e,"package.json");if(!Tt.default.existsSync(t))throw new Error("package.json not found");let r=JSON.parse(Tt.default.readFileSync(t,"utf8")),{name:n,engines:o,main:s}=r;if(!n||!o)throw new Error("can't find name & engines in package.json");if(!o||!zt(o))throw new Error(`invalid engines in ${t}`);if(s&&!Tt.default.existsSync(Be.default.join(e,s)))throw new Error(`main file ${s} not found, you may need to build the project.`);let a=Object.keys(o);if(!a.includes("coc")&&!a.includes("vscode"))throw new Error("Engines in package.json doesn't have coc or vscode");if(a.includes("coc")){let l=o.coc.replace(/^\^/,">=");if(!vG.default.satisfies(b.version,l))throw new Error(`Please update coc.nvim, ${r.name} requires coc.nvim ${o.coc}`)}return!0}catch(t){return t}}dispose(){J(this.disposables)}},we=new wG});var uKe,hn,Qc=I(()=>{Pi();Ct();ie();uKe=W()("model-source"),hn=class{constructor(e){this._disabled=!1;this.nvim=b.nvim,this.name=e.name,this.filepath=e.filepath||"",this.sourceType=e.sourceType||Ti.Native,this.isSnippet=!!e.isSnippet,this.defaults=e}get priority(){return this.getConfig("priority",1)}get triggerOnly(){let e=this.defaults.triggerOnly;return typeof e=="boolean"?e:!this.triggerCharacters&&!this.triggerPatterns?!1:Array.isArray(this.triggerPatterns)&&this.triggerPatterns.length!=0}get triggerCharacters(){return this.getConfig("triggerCharacters",null)}get optionalFns(){return this.defaults.optionalFns||[]}get triggerPatterns(){let e=this.getConfig("triggerPatterns",null);return!e||e.length==0?null:e.map(t=>typeof t=="string"?new RegExp(t+"$"):t)}get shortcut(){let e=this.getConfig("shortcut","");return e||this.name.slice(0,3)}get enable(){return this._disabled?!1:this.getConfig("enable",!0)}get filetypes(){return this.getConfig("filetypes",null)}get disableSyntaxes(){return this.getConfig("disableSyntaxes",[])}getConfig(e,t){let r=b.getConfiguration(`coc.source.${this.name}`);return t=this.defaults.hasOwnProperty(e)?this.defaults[e]:t,r.get(e,t)}toggle(){this._disabled=!this._disabled}get firstMatch(){return this.getConfig("firstMatch",!0)}get menu(){let{shortcut:e}=this;return e?`[${e}]`:""}filterWords(e,t){let{firstMatch:r}=this,n=[],{input:o}=t,s=t.word;if(!o.length)return[];let a=o[0];for(let l of e)!l||l.length<3||r&&a!=l[0]||!r&&a.toLowerCase()!=l[0].toLowerCase()||l==s||l==o||n.push(l);return n}fixStartcol(e,t){let{col:r,input:n,line:o,bufnr:s}=e,a=er(o,0,r),l=b.getDocument(s);if(!l)return r;let{chars:u}=l;for(let c=a.length-1;c>=0;c--){let f=a[c];if(!u.isKeywordChar(f)&&!t.includes(f))break;n=`${f}${n}`,r=r-1}return e.col=r,e.input=n,r}async shouldComplete(e){let{disableSyntaxes:t}=this;if(e.synname&&t&&t.length){let n=(e.synname||"").toLowerCase();if(t.findIndex(o=>n.includes(o.toLowerCase()))!==-1)return!1}let r=this.defaults.shouldComplete;return r?await Promise.resolve(r.call(this,e)):!0}async refresh(){let e=this.defaults.refresh;e&&await Promise.resolve(e.call(this))}async onCompleteDone(e,t){let r=this.defaults.onCompleteDone;r&&await Promise.resolve(r.call(this,e,t))}async doComplete(e,t){let r=this.defaults.doComplete;return r?await Promise.resolve(r.call(this,e,t)):null}}});var gKe,ow,DG=I(()=>{Kc();Ct();ie();Te();Qc();gKe=W()("model-source-vim"),ow=class extends hn{async callOptinalFunc(e,t){if(!this.optionalFns.includes(e))return null;let n=`coc#source#${this.name}#${e}`,o;try{o=await this.nvim.call(n,t)}catch(s){return T.showMessage(`Vim error from source ${this.name}: ${s.message}`,"error"),null}return o}async shouldComplete(e){return await super.shouldComplete(e)?this.optionalFns.includes("should_complete")?!!await this.callOptinalFunc("should_complete",[e]):!0:!1}async refresh(){await this.callOptinalFunc("refresh",[])}async onCompleteDone(e,t){await super.onCompleteDone(e,t),!!this.optionalFns.includes("on_complete")&&await this.callOptinalFunc("on_complete",[e])}onEnter(e){if(!this.optionalFns.includes("on_enter"))return;let t=b.getDocument(e);if(!t)return;let{filetypes:r}=this;r&&!r.includes(t.filetype)||this.callOptinalFunc("on_enter",[{bufnr:e,uri:t.uri,languageId:t.filetype}]).logError()}async doComplete(e,t){let{col:r,input:n,line:o,colnr:s}=e,a=await this.callOptinalFunc("get_startcol",[e]);if(t.isCancellationRequested)return;if(a){if(a<0)return null;a=Number(a),(isNaN(a)||a<0)&&(a=r),a!==r&&(n=er(o,a,s-1),e=Object.assign({},e,{col:a,changed:r-a,input:n}))}let l=await this.nvim.callAsync("coc#util#do_complete",[this.name,e]);if(!l||l.length==0||t.isCancellationRequested)return null;if(this.firstMatch&&n.length){let c=n[0];l=l.filter(f=>{let p=f.filterText?f.filterText[0]:f.word[0];return vh(c,p)})}l=l.map(c=>{if(typeof c=="string")return{word:c,menu:this.menu,isSnippet:this.isSnippet};let f=c.menu?c.menu+" ":"";return c.menu=`${f}${this.menu}`,c.isSnippet=this.isSnippet,delete c.user_data,c});let u={items:l};return a&&(u.startcol=a),u}}});var SG={};os(SG,{default:()=>sw,regist:()=>txe});function txe(i){return i.set("around",new sw),xG.Disposable.create(()=>{i.delete("around")})}var xG,wKe,sw,CG=I(()=>{xG=E(G());Qc();ie();wKe=W()("source-around"),sw=class extends hn{constructor(){super({name:"around",filepath:__filename})}doComplete(e){let{bufnr:t,input:r}=e;if(r.length===0)return null;let n=b.getDocument(t);if(!n)return null;let o=n.words,s=n.getMoreWords();return o.push(...s),o=this.filterWords(o,e),Promise.resolve({items:o.map(a=>({word:a,menu:this.menu}))})}}});var _G={};os(_G,{default:()=>aw,regist:()=>rxe});function rxe(i){return i.set("buffer",new aw),EG.Disposable.create(()=>{i.delete("buffer")})}var EG,SKe,aw,TG=I(()=>{EG=E(G());Qc();ie();SKe=W()("source-buffer"),aw=class extends hn{constructor(){super({name:"buffer",filepath:__filename})}get ignoreGitignore(){return this.getConfig("ignoreGitignore",!0)}getWords(e){let{ignoreGitignore:t}=this,r=[];return b.documents.forEach(n=>{if(n.bufnr!=e&&!(t&&n.isIgnored))for(let o of n.words)r.includes(o)||r.push(o)}),r}doComplete(e){let{bufnr:t,input:r}=e;if(r.length==0)return null;let n=this.getWords(t);return n=this.filterWords(n,e),Promise.resolve({items:n.map(o=>({word:o,menu:this.menu}))})}}});var IG={};os(IG,{default:()=>uw,regist:()=>oxe});function oxe(i){return i.set("file",new uw),kG.Disposable.create(()=>{i.delete("file")})}var lw,PG,Mi,RG,kG,ixe,nxe,uw,FG=I(()=>{lw=E(require("fs")),PG=E(Ps()),Mi=E(require("path")),RG=E(require("util")),kG=E(G());Qc();Vt();Ct();ie();ixe=W()("source-file"),nxe=/(?:\.{0,2}|~|\$HOME|([\w]+)|)\/(?:[\w.@()-]+\/)*(?:[\w.@()-])*$/,uw=class extends hn{constructor(){super({name:"file",filepath:__filename})}resolveEnvVariables(e){let t=e;return t=t.replace(/%([^%]+)%/g,(r,n)=>process.env[n]),t=t.replace(/\$([A-Z_]+[A-Z0-9_]*)|\${([A-Z0-9_]*)}/gi,(r,n,o)=>process.env[n||o]),t}getPathOption(e){let{line:t,colnr:r}=e,n=er(t,0,r-1);if(n=this.resolveEnvVariables(n),!n||n.endsWith("//"))return null;let o=n.match(nxe);if(o&&o.length){let s=b.expand(o[0]),a=o[0].match(/[^/]*$/)[0];return{pathstr:s,part:o[1],startcol:r-a.length-1,input:a}}return null}async getFileItem(e,t){let r=Mi.default.join(e,t),n=await $t(r);if(n){let o=n.isDirectory()?t+"/":t;return{word:t,abbr:o}}return null}filterFiles(e){let t=this.getConfig("ignoreHidden",!0),r=this.getConfig("ignorePatterns",[]);return e.filter(n=>{if(n==null||t&&n.startsWith("."))return!1;for(let o of r)if((0,PG.default)(n,o,{dot:!0}))return!1;return!0})}async getItemsFromRoot(e,t){let r=[],n=e.endsWith("/")?e:Mi.default.dirname(e),o=Mi.default.isAbsolute(e)?n:Mi.default.join(t,n);try{let s=await $t(o);if(s&&s.isDirectory()){let a=await RG.default.promisify(lw.default.readdir)(o);a=this.filterFiles(a);let l=await Promise.all(a.map(u=>this.getFileItem(o,u)));r=r.concat(l)}return r=r.filter(a=>a!=null),r}catch(s){return ixe.error("Error on list files:",s),r}}get trimSameExts(){return this.getConfig("trimSameExts",[])}async doComplete(e){let{col:t,filepath:r}=e,n=this.getPathOption(e);if(!n)return null;let{pathstr:o,part:s,startcol:a,input:l}=n;if(av.word[0]===w)),{items:h.map(v=>{let D=Mi.default.extname(v.word);return v.word=m&&D===f?v.word.replace(f,""):v.word,{word:`${u}${v.word}`,abbr:`${u}${v.abbr}`,menu:this.menu}})}}}});var OG,AG,cw,LG,MG,qG,NG,st,Dl=I(()=>{OG=E(Ju()),AG=E(require("fs")),cw=E(require("path")),LG=E(require("util")),MG=E(G());je();Ko();Qc();DG();Pi();ye();Vt();cE();ie();Te();Ct();qG=W()("sources"),NG=class{constructor(){this.sourceMap=new Map;this.disposables=[];this.remoteSourcePaths=[]}get nvim(){return b.nvim}createNativeSources(){try{this.disposables.push((CG(),SG).regist(this.sourceMap)),this.disposables.push((TG(),_G).regist(this.sourceMap)),this.disposables.push((FG(),IG).regist(this.sourceMap))}catch(e){console.error("Create source error:"+e.message)}}async createVimSourceExtension(e,t){let r=cw.default.basename(t,".vim");try{await e.command(`source ${t}`);let n=await e.call("coc#util#remote_fns",r);for(let c of["init","complete"])if(!n.includes(c))return T.showMessage(`${c} not found for source ${r}`,"error"),null;let o=await e.call(`coc#source#${r}#init`,[]),s={name:`coc-source-${r}`,engines:{coc:">= 0.0.1"},activationEvents:o.filetypes?o.filetypes.map(c=>`onLanguage:${c}`):["*"],contributes:{configuration:{properties:{[`coc.source.${r}.enable`]:{type:"boolean",default:!0},[`coc.source.${r}.firstMatch`]:{type:"boolean",default:!!o.firstMatch},[`coc.source.${r}.triggerCharacters`]:{type:"number",default:o.triggerCharacters||[]},[`coc.source.${r}.priority`]:{type:"number",default:o.priority||9},[`coc.source.${r}.shortcut`]:{type:"string",default:o.shortcut||r.slice(0,3).toUpperCase(),description:"Shortcut text shown in complete menu."},[`coc.source.${r}.disableSyntaxes`]:{type:"array",default:[],items:{type:"string"}},[`coc.source.${r}.filetypes`]:{type:"array",default:o.filetypes||null,description:"Enabled filetypes.",items:{type:"string"}}}}}},a=new ow({name:r,filepath:t,sourceType:Ti.Remote,optionalFns:n.filter(c=>!["init","complete"].includes(c))}),l=!1,u={id:s.name,packageJSON:s,exports:void 0,extensionPath:t,activate:()=>(l=!0,this.addSource(a),Promise.resolve())};Object.defineProperty(u,"isActive",{get:()=>l}),we.registerExtension(u,()=>{l=!1,this.removeSource(a)})}catch(n){T.showMessage(`Error on create vim source ${r}: ${n.message}`,"error")}}createRemoteSources(){let{runtimepath:e}=b.env,t=e.split(",");for(let r of t)this.createVimSources(r).logError()}async createVimSources(e){if(this.remoteSourcePaths.includes(e))return;this.remoteSourcePaths.push(e);let t=cw.default.join(e,"autoload/coc/source"),r=await $t(t);if(r&&r.isDirectory()){let n=await LG.default.promisify(AG.default.readdir)(t);n=n.filter(s=>s.endsWith(".vim"));let o=n.map(s=>cw.default.join(t,s));if(o.length==0)return;await Promise.all(o.map(s=>this.createVimSourceExtension(this.nvim,s)))}}init(){this.createNativeSources(),this.createRemoteSources(),N.on("BufEnter",this.onDocumentEnter,this,this.disposables),b.watchOption("runtimepath",async(e,t)=>{let r=(0,OG.default)(e,t);for(let[n,o]of r)if(n==1){let s=o.replace(/,$/,"").split(",");for(let a of s)a&&await this.createVimSources(a)}},this.disposables)}get names(){return Array.from(this.sourceMap.keys())}get sources(){return Array.from(this.sourceMap.values())}has(e){return this.names.findIndex(t=>t==e)!=-1}getSource(e){return e&&this.sourceMap.get(e)||null}async doCompleteResolve(e,t){let r=this.getSource(e.source);if(r&&typeof r.onCompleteResolve=="function")try{await Promise.resolve(r.onCompleteResolve(e,t))}catch(n){qG.error("Error on complete resolve:",n.stack)}}async doCompleteDone(e,t){let r=JSON.parse(e.user_data),n=this.getSource(r.source);n&&typeof n.onCompleteDone=="function"&&await Promise.resolve(n.onCompleteDone(e,t))}shouldCommit(e,t){if(!e||!e.source)return!1;let r=this.getSource(e.source);return r&&r.sourceType==Ti.Service&&typeof r.shouldCommit=="function"?r.shouldCommit(e,t):!1}getCompleteSources(e){let{filetype:t}=e,r=er(e.line,0,e.colnr-1),n=e.input==""&&!!e.triggerCharacter,o=Tg(e.filepath,e.bufnr,"",b.env.isCygwin);return n?this.getTriggerSources(r,t,o):this.getNormalSources(e.filetype,o)}getNormalSources(e,t){return this.sources.filter(r=>{let{filetypes:n,triggerOnly:o,documentSelector:s,enable:a}=r;return!(!a||o||n&&!n.includes(e)||s&&ac(s,t,e)==0||this.disabledByLanguageId(r,e))})}checkTrigger(e,t,r){let{triggerCharacters:n,triggerPatterns:o}=e;return!n&&!o?!1:!!(r&&n&&n.includes(r)||o&&o.findIndex(s=>s.test(t))!==-1)}shouldTrigger(e,t,r){return this.getTriggerSources(e,t,r).length>0}getTriggerSources(e,t,r){let n=e.length?e[e.length-1]:"";return n?this.sources.filter(o=>{let{filetypes:s,enable:a,documentSelector:l}=o;return!a||s&&!s.includes(t)||l&&ac(l,r,t)==0||this.disabledByLanguageId(o,t)?!1:this.checkTrigger(o,e,n)}):[]}addSource(e){let{name:t}=e;return this.names.includes(t)&&qG.warn(`Recreate source ${t}`),this.sourceMap.set(t,e),MG.Disposable.create(()=>{this.sourceMap.delete(t)})}removeSource(e){let t=typeof e=="string"?e:e.name;this.sourceMap.delete(t)}async refresh(e){for(let t of this.sources)(!e||t.name==e)&&typeof t.refresh=="function"&&await Promise.resolve(t.refresh())}toggleSource(e){if(!e)return;let t=this.getSource(e);!t||typeof t.toggle=="function"&&t.toggle()}sourceStats(){let e=[],t=this.sources;for(let r of t)e.push({name:r.name,priority:r.priority,triggerCharacters:r.triggerCharacters||[],shortcut:r.shortcut||"",filetypes:r.filetypes||[],filepath:r.filepath||"",type:r.sourceType==Ti.Native?"native":r.sourceType==Ti.Remote?"remote":"service",disabled:!r.enable});return e}onDocumentEnter(e){let{sources:t}=this;for(let r of t)!r.enable||typeof r.onEnter=="function"&&r.onEnter(e)}createSource(e){if(!e.name||!e.doComplete){console.error("name and doComplete required for createSource");return}let t=new hn(Object.assign({sourceType:Ti.Service},e));return this.addSource(t)}disabledByLanguageId(e,t){let r=b.env.disabledSources,n=r?r[t]:[];return Array.isArray(n)&&n.includes(e.name)}dispose(){J(this.disposables)}},st=new NG});function $G(i=0,e){for(let t=i;t=65&&i<=90}function jG(i,e){if(i==0)return!0;let t=e[i];if(!gh(t))return!1;let r=e[i-1];return!!(!gh(r)||BG(t)&&!BG(r))}function UG(i,e){if(e.length==0||i.length=i.length)return 0;let n=[],o=t[0],s=i.length,a=t.length==1;if(!gh(o)){for(let c=e;c{Kc()});var Pl,fw,sxe,pw,HG=I(()=>{Pl=E(G());Kc();Ct();WG();fw=W()("completion-complete"),sxe=500,pw=class{constructor(e,t,r,n,o,s){this.option=e;this.document=t;this.config=n;this.sources=o;this.nvim=s;this.results=[];this.completing=new Set;this._canceled=!1;this.tokenSources=new Map;this._onDidComplete=new Pl.Emitter;this.onDidComplete=this._onDidComplete.event;Object.defineProperty(this,"recentScores",{get:()=>r||{}})}get isCompleting(){return this.completing.size>0}get isCanceled(){return this._canceled}get isEmpty(){return this.results.length==0}get startcol(){return this.option.col||0}get input(){return this.option.input}get isIncomplete(){return this.results.findIndex(e=>e.isIncomplete)!==-1}async completeSource(e){let{col:t}=this.option,r=Object.assign({},this.option),n=this.config.timeout;n=Math.max(Math.min(n,15e3),500);try{if(typeof e.shouldComplete=="function"&&!await Promise.resolve(e.shouldComplete(r)))return null;let o=Date.now(),s=this.tokenSources.get(e.name);s&&s.cancel();let a=new Pl.CancellationTokenSource;this.tokenSources.set(e.name,a),await new Promise((l,u)=>{let{name:c}=e,f=setTimeout(()=>{this.nvim.command(`echohl WarningMsg| echom 'source ${e.name} timeout after ${n}ms'|echohl None`,!0),a.cancel()},n),p=!1,d=!1,h=!1,m=setTimeout(()=>{d||(h=!0,l(void 0))},sxe),w=()=>{d||(d=!0,v.dispose(),clearTimeout(m),clearTimeout(f),this.tokenSources.delete(c))},v=a.token.onCancellationRequested(()=>{v.dispose(),this.completing.delete(c),p=!0,w(),fw.debug(`Source "${c}" cancelled`),l(void 0)});this.completing.add(c),Promise.resolve(e.doComplete(r,a.token)).then(D=>{if(this.completing.delete(c),p)return;w();let x=Date.now()-o;if(fw.debug(`Source "${c}" takes ${x}ms`),D&&D.items&&D.items.length){if(D.priority=e.priority,D.source=c,h&&D.startcol&&D.startcol!=t)this.results=[D];else{let{results:S}=this,P=S.findIndex(A=>A.source==c);P!=-1?S.splice(P,1,D):S.push(D)}h&&this._onDidComplete.fire(),l(void 0)}else l(void 0)},D=>{this.completing.delete(c),w(),u(D)})})}catch(o){this.nvim.command(`echoerr 'Complete ${e.name} error: ${o.message.replace(/'/g,"''")}'`,!0),fw.error("Complete error:",e.name,o)}}async completeInComplete(e){let{results:t,document:r}=this;t.filter(f=>!f.isIncomplete).forEach(f=>{f.items.forEach(p=>delete p.user_data)});let s=t.filter(f=>f.isIncomplete).map(f=>f.source),{input:a,colnr:l,linenr:u}=this.option;Object.assign(this.option,{input:e,line:r.getline(u-1),colnr:l+(e.length-a.length),triggerCharacter:null,triggerForInComplete:!0});let c=this.sources.filter(f=>s.includes(f.name));return await Promise.all(c.map(f=>this.completeSource(f))),this.filterResults(e,Math.floor(Date.now()/1e3))}filterResults(e,t=0){let{results:r}=this;r.sort((h,m)=>h.source=="tabnine"?1:m.source=="tabnine"?-1:m.priority-h.priority);let n=Date.now(),{bufnr:o}=this.option,{snippetIndicator:s,removeDuplicateItems:a,fixInsertedWord:l,asciiCharactersOnly:u}=this.config,c=!l||t==0?"":this.getFollowPart();if(r.length==0)return[];let f=[],p=Vo(e),d=new Set;for(let h=0,m=r.length;h{let w=h.sortText,v=m.sortText,D=h.filterText,x=m.filterText;if(h.score!=m.score)return m.score-h.score;if(h.priority!=m.priority)return m.priority-h.priority;if(w&&v&&w!=v)return w{let{priority:s,source:a}=o,l=s<90,u=n.get(a)||0;return r&&l&&u==r||t&&!l&&u==t?!1:(n.set(a,u+1),!0)})}hasMatch(e){let{results:t}=this;if(!t)return!1;let r=Vo(e);for(let n=0,o=t.length;nVc(r,l.filterText||l.word))!==-1)return!0;return!1}async doComplete(){let e=this.option,{line:t,colnr:r,linenr:n,col:o}=this.option;if(this.config.localityBonus){let l=n-1;this.localBonus=this.document.getLocalifyBonus(Pl.Position.create(l,e.col-1),Pl.Position.create(l,r))}else this.localBonus=new Map;await Promise.all(this.sources.map(l=>this.completeSource(l)));let{results:s}=this;if(s.length==0)return[];let a=s.find(l=>l.startcol!=null&&l.startcol!=o);if(a){let{startcol:l}=a;e.col=l,e.input=er(t,l,r-1),this.results=[a]}return fw.info(`Results from: ${this.results.map(l=>l.source).join(",")}`),this.filterResults(e.input,Math.floor(Date.now()/1e3))}resolveCompletionItem(e){let{results:t}=this;if(!t)return null;try{if(e.user_data){let{source:r}=JSON.parse(e.user_data);return t.find(o=>o.source==r).items.find(o=>o.user_data==e.user_data)}for(let r of t){let n=r.items.find(o=>o.abbr==e.abbr&&o.info==e.info);if(n)return n}return null}catch(r){return null}}getFollowPart(){let{colnr:e,line:t}=this.option,r=td(t,e-1);return r==t.length?"":t.slice(r-t.length).match(/^\S?[\w-]*/)[0]}dispose(){if(!this._canceled){this._onDidComplete.dispose(),this._canceled=!0;for(let e of this.tokenSources.values())e.cancel();this.tokenSources.clear(),this.sources=[],this.results=[]}}}});var eJe,dw,zG=I(()=>{gC();eJe=W()("floating"),dw=class{constructor(e,t){this.nvim=e;this.isVim=t;this.winid=0;this.bufnr=0}async show(e,t,r,n){let{nvim:o}=this;e=e.filter(c=>c.content.trim().length>0);let{lines:s,codes:a,highlights:l}=Qg(e,{excludeImages:r.excludeImages});if(s.length==0){this.close();return}let u=await o.call("coc#float#create_pum_float",[this.winid,this.bufnr,s,{codes:a,highlights:l,maxWidth:r.maxPreviewWidth,pumbounding:t}]);if(this.isVim&&o.command("redraw",!0),!(!u||u.length==0)&&(this.winid=u[0],this.bufnr=u[1],n.isCancellationRequested)){this.close();return}}close(){let{winid:e,nvim:t}=this;this.winid=0,!!e&&(t.call("coc#float#close",[e],!0),this.isVim&&t.command("redraw",!0))}}});var hw,GG,Rl,axe,VG,ta,tP=I(()=>{hw=E(G());je();Dl();ye();Yi();ie();HG();zG();GG=E(zr());Ct();Gr();Rl=W()("completion"),axe=["abbr","menu","info","kind","icase","dup","empty","user_data"],VG=class{constructor(){this.activated=!1;this.disposables=[];this.complete=null;this.recentScores={};this.changedTick=0;this.insertCharTs=0;this.insertLeaveTs=0}init(){this.config=this.getCompleteConfig(),b.onDidChangeConfiguration(t=>{t.affectsConfiguration("suggest")&&(this.config=this.getCompleteConfig())},null,this.disposables),b.watchOption("completeopt",async(t,r)=>{if(b.env.completeOpt=r,!!this.isActivated&&this.config.autoTrigger==="always"){let o=(await this.nvim.call("execute",["verbose set completeopt"])).split(/\r?\n/);console.error(`Some plugin change completeopt during completion: ${o[o.length-1].trim()}!`)}},this.disposables),this.excludeImages=b.getConfiguration("coc.preferences").get("excludeImageLinksInMarkdownDocument"),this.floating=new dw(b.nvim,b.env.isVim),N.on(["InsertCharPre","MenuPopupChanged","TextChangedI","CursorMovedI","InsertLeave"],()=>{this.triggerTimer&&(clearTimeout(this.triggerTimer),this.triggerTimer=null)},this,this.disposables),N.on("InsertCharPre",this.onInsertCharPre,this,this.disposables),N.on("InsertLeave",this.onInsertLeave,this,this.disposables),N.on("InsertEnter",this.onInsertEnter,this,this.disposables),N.on("TextChangedP",this.onTextChangedP,this,this.disposables),N.on("TextChangedI",this.onTextChangedI,this,this.disposables);let e=(0,GG.default)(this.onPumChange.bind(this),20);this.disposables.push({dispose:()=>{e.clear()}}),N.on("CompleteDone",async t=>{this.popupEvent=null,!!this.activated&&(e.clear(),this.cancelResolve(),this.floating.close(),await this.onCompleteDone(t))},this,this.disposables),this.cancelResolve(),N.on("MenuPopupChanged",t=>{!this.activated||this.isCommandLine||rt(this.popupEvent,t)||(this.cancelResolve(),this.popupEvent=t,e())},this,this.disposables)}get nvim(){return b.nvim}get option(){return this.complete?this.complete.option:null}get selectedItem(){if(!this.popupEvent)return null;let{completed_item:e}=this.popupEvent;return Pg(e)?e:null}get isCommandLine(){var e;return(e=this.document)==null?void 0:e.uri.endsWith("%5BCommand%20Line%5D")}addRecent(e,t){!e||(this.recentScores[`${t}|${e}`]=Date.now())}get isActivated(){return this.activated}get document(){return this.option?b.getDocument(this.option.bufnr):null}getCompleteConfig(){let e=b.getConfiguration("suggest");function t(a,l){return e.get(a,l)}let r=t("keepCompleteopt",!1),n=t("autoTrigger","always");if(r&&n!="none"){let{completeOpt:a}=b;!a.includes("noinsert")&&!a.includes("noselect")&&(n="none")}let o=b.floatSupported&&t("floatEnable",!0),s=b.env.pumevent&&t("acceptSuggestionOnCommitCharacter",!1);return{autoTrigger:n,floatEnable:o,keepCompleteopt:r,defaultSortMethod:t("defaultSortMethod","length"),removeDuplicateItems:t("removeDuplicateItems",!1),disableMenuShortcut:t("disableMenuShortcut",!1),acceptSuggestionOnCommitCharacter:s,disableKind:t("disableKind",!1),disableMenu:t("disableMenu",!1),previewIsKeyword:t("previewIsKeyword","@,48-57,_192-255"),enablePreview:t("enablePreview",!1),enablePreselect:t("enablePreselect",!1),maxPreviewWidth:t("maxPreviewWidth",80),triggerCompletionWait:t("triggerCompletionWait",100),labelMaxLength:t("labelMaxLength",200),triggerAfterInsertEnter:t("triggerAfterInsertEnter",!1),noselect:t("noselect",!0),numberSelect:t("numberSelect",!1),maxItemCount:t("maxCompleteItemCount",50),timeout:t("timeout",500),minTriggerInputLength:t("minTriggerInputLength",1),snippetIndicator:t("snippetIndicator","~"),fixInsertedWord:t("fixInsertedWord",!0),localityBonus:t("localityBonus",!0),highPrioritySourceLimit:t("highPrioritySourceLimit",null),lowPrioritySourceLimit:t("lowPrioritySourceLimit",null),asciiCharactersOnly:t("asciiCharactersOnly",!1)}}async startCompletion(e){this.pretext=er(e.line,0,e.colnr-1);try{await this._doComplete(e)}catch(t){this.stop(),Rl.error("Complete error:",t.stack)}}async resumeCompletion(e=!1){let{document:t,complete:r}=this;if(!t||r.isCanceled||!r.results||r.results.length==0)return;let n=this.getResumeInput();if(n==this.input&&!e)return;if(!n||n.endsWith(" ")||!n.startsWith(r.input)){this.stop();return}this.input=n;let o=[];if(r.isIncomplete){await t.patchChange();let{changedtick:s}=t;if(o=await r.completeInComplete(n),r.isCanceled||t.changedtick!=s)return}else o=r.filterResults(n);if(!r.isCompleting&&o.length===0){this.stop();return}await this.showCompletion(r.option.col,o)}hasSelected(){return b.env.pumevent?this.selectedItem!=null:!this.config.noselect}async showCompletion(e,t){let{nvim:r,document:n,option:o}=this,{numberSelect:s,disableKind:a,labelMaxLength:l,disableMenuShortcut:u,disableMenu:c}=this.config,f=this.config.enablePreselect?t.findIndex(h=>h.preselect):-1;s&&o.input.length&&!/^\d/.test(o.input)&&(t=t.map((h,m)=>{let w=m+1;return m<9?Object.assign({},h,{abbr:h.abbr?`${w} ${h.abbr}`:`${w} ${h.word}`}):h}),r.call("coc#_map",[],!0)),this.changedTick=n.changedtick;let p=axe.slice();a&&(p=p.filter(h=>h!="kind")),c&&(p=p.filter(h=>h!="menu"));let d=t.map(h=>{let m={word:h.word,equal:1};for(let w of p)h.hasOwnProperty(w)&&(u&&w=="menu"?m[w]=h[w].replace(/\[.+\]$/,""):w=="abbr"&&h[w].length>l?m[w]=h[w].slice(0,l):m[w]=h[w]);return m});r.call("coc#_do_complete",[e,d,f],!0)}async _doComplete(e){let{source:t}=e,{nvim:r,config:n}=this,o=b.getDocument(e.bufnr);if(!o||!o.attached)return;e.filetype=o.filetype,this.input=e.input;let s=[];if(t==null)s=st.getCompleteSources(e);else{let u=st.getSource(t);u&&s.push(u)}if(!s.length||(await o.patchChange(),o.changedtick!=e.changedtick))return;let a=new pw(e,o,this.recentScores,n,s,r);this.start(a);let l=await this.complete.doComplete();if(!a.isCanceled){if(l.length==0&&!a.isCompleting){this.stop();return}a.onDidComplete(async()=>{if(this.selectedItem!=null)return;let u=this.getResumeInput();if(a.isCanceled||u==null)return;let{input:c}=this.option;if(u==c){let f=a.filterResults(u,Math.floor(Date.now()/1e3));await this.showCompletion(e.col,f)}else await this.resumeCompletion()}),l.length&&(this.getResumeInput()==e.input?await this.showCompletion(e.col,l):await this.resumeCompletion(!0))}}async onTextChangedP(e,t){let{option:r,document:n}=this,o=this.pretext=t.pre;if(!r||r.bufnr!=e||t.changedtick==this.changedTick)return;let s=this.latestInsert!=null;if(this.lastInsert=null,t.pre.match(/^\s*/)[0]!==r.line.match(/^\s*/)[0]){Rl.warn("Complete stopped by indent change."),this.stop(!1);return}!s||!o||(st.shouldTrigger(o,n.filetype,n.uri)?await this.triggerCompletion(n,o):await this.resumeCompletion())}async onTextChangedI(e,t){let{nvim:r,latestInsertChar:n,option:o}=this,s=this.pretext==t.pre,a=this.pretext=t.pre;this.lastInsert=null;let l=b.getDocument(e);if(!!l){if(!this.activated){if(!n)return;if(st.getTriggerSources(a,l.filetype,l.uri).length){await this.triggerCompletion(l,this.pretext);return}this.triggerTimer=setTimeout(async()=>{await this.triggerCompletion(l,a)},this.config.triggerCompletionWait);return}if(!(!o||e!=o.bufnr)){if(o.linenr!=t.lnum||o.col>=t.col-1){this.stop();return}if(s&&!n){this.stop(!1);return}if(a&&this.selectedItem&&this.config.acceptSuggestionOnCommitCharacter&&n){let u=this.getCompleteItem(this.selectedItem),c=a[a.length-1];if(st.shouldCommit(u,c)){let{linenr:f,col:p,line:d,colnr:h}=this.option;this.stop();let{word:m}=u,w=`${d.slice(0,p)}${m}${n}${d.slice(h-1)}`;await r.call("coc#util#setline",[f,w]);let v=p+m.length+2;await r.call("cursor",[f,v]),await l.patchChange();return}}st.shouldTrigger(a,l.filetype,l.uri)?await this.triggerCompletion(l,a):await this.resumeCompletion()}}}async triggerCompletion(e,t){if(!e||!e.attached){Rl.warn("Document not attached, suggest disabled.");return}if(!this.shouldTrigger(e,t))return;if(e.getVar("suggest_disable")){Rl.warn("Suggest disabled by b:coc_suggest_disable");return}await e.patchChange();let[n,o]=await this.nvim.eval('[get(b:,"coc_suggest_disable",0),coc#util#get_complete_option()]');if(n==1){Rl.warn("Suggest disabled by b:coc_suggest_disable");return}if(o.blacklist&&o.blacklist.includes(o.input)){Rl.warn("Suggest disabled by b:coc_suggest_blacklist",o.blacklist);return}t.length&&(o.triggerCharacter=t.slice(-1)),Rl.debug("trigger completion with",o),await this.startCompletion(o)}async onCompleteDone(e){let{document:t,isActivated:r}=this;if(!r||!t||!Pg(e))return;let n=Object.assign({},this.option),o=this.getCompleteItem(e);if(this.stop(),!o)return;let s=this.insertCharTs,a=this.insertLeaveTs,l=new hw.CancellationTokenSource;if(await st.doCompleteResolve(o,l.token),l.dispose(),this.addRecent(o.word,t.bufnr),await nt(50),this.insertCharTs!=s||this.insertLeaveTs!=a)return;let[u,c,f]=await this.nvim.eval("[pumvisible(),line('.'),strpart(getline('.'), 0, col('.') - 1)]");u||c!=n.linenr||this.activated||!f.endsWith(o.word)||(await t.patchChange(),await st.doCompleteDone(o,n))}async onInsertLeave(){this.insertLeaveTs=Date.now(),this.stop(!1)}async onInsertEnter(e){if(!this.config.triggerAfterInsertEnter||this.config.autoTrigger!=="always")return;let t=b.getDocument(e);if(!t)return;let r=await this.nvim.eval("strpart(getline('.'), 0, col('.') - 1)");!r||await this.triggerCompletion(t,r)}async onInsertCharPre(e){this.lastInsert={character:e,timestamp:Date.now()},this.insertCharTs=this.lastInsert.timestamp}get latestInsert(){let{lastInsert:e}=this;return!e||Date.now()-e.timestamp>500?null:e}get latestInsertChar(){let{latestInsert:e}=this;return e?e.character:""}shouldTrigger(e,t){let r=this.config.autoTrigger;if(r=="none")return!1;if(st.shouldTrigger(t,e.filetype,e.uri))return!0;if(r!=="always"||this.isActivated)return!1;let n=t.slice(-1);if(n&&(e.isWord(t.slice(-1))||n.codePointAt(0)>255)){let o=this.config.minTriggerInputLength;return o==1?!0:this.getInput(e,t).length>=o}return!1}async onPumChange(){if(!this.popupEvent)return;let{col:e,row:t,height:r,width:n,scrollbar:o}=this.popupEvent,s={col:e,row:t,height:r,width:n,scrollbar:o},a=this.getCompleteItem(this.selectedItem);if(!a){this.floating.close();return}let l=this.resolveTokenSource=new hw.CancellationTokenSource,{token:u}=l;if(await st.doCompleteResolve(a,u),this.resolveTokenSource==l&&(this.resolveTokenSource=null),l.dispose(),u.isCancellationRequested)return;let c=a.documentation;if(!c&&a.info){let{info:f}=a;c=[{filetype:/^[\w-\s.,\t]+$/.test(f)?"txt":this.document.filetype,content:f}]}if(!c||c.length==0)this.floating.close();else{if(this.config.floatEnable){let f=new hw.CancellationTokenSource;await this.floating.show(c,s,{maxPreviewWidth:this.config.maxPreviewWidth,excludeImages:this.excludeImages},f.token)}this.isActivated||this.floating.close()}}start(e){let{activated:t}=this;this.activated=!0,t&&this.complete.dispose(),this.complete=e,this.config.keepCompleteopt||this.nvim.command(`noa set completeopt=${this.completeOpt}`,!0)}cancelResolve(){this.resolveTokenSource&&(this.resolveTokenSource.cancel(),this.resolveTokenSource=null)}stop(e=!0){let{nvim:t}=this;!this.activated||(this.cancelResolve(),this.floating.close(),this.activated=!1,this.complete&&(this.complete.dispose(),this.complete=null),t.pauseNotification(),e&&t.call("coc#_hide",[],!0),this.config.numberSelect&&t.call("coc#_unmap",[],!0),this.config.keepCompleteopt||t.command(`noa set completeopt=${b.completeOpt}`,!0),t.command("let g:coc#_context = {'start': 0, 'preselect': -1,'candidates': []}",!0),t.resumeNotification(!1,!0))}getInput(e,t){let r="";for(let n=t.length-1;n>=0;n--){let o=n==0?null:t[n-1];if(!o||!e.isWord(o)){r=t.slice(n,t.length);break}}return r}getResumeInput(){let{option:e,pretext:t}=this;if(!e)return null;let r=Buffer.from(t,"utf8");if(r.length{Jo=E(G());Za();Kr();Uv();Ct();yJe=W()("snippets-snipet"),rP=class{constructor(e,t,r){this._snippetString=e;this.position=t;this._variableResolver=r;this._parser=new Ms}async init(){let e=this._parser.parse(this._snippetString,!0),{_variableResolver:t}=this;t&&await e.resolveVariables(t),this.tmSnippet=e,this.update()}adjustPosition(e,t){let{line:r,character:n}=this.position;this.position={line:r+t,character:n+e},this.update()}adjustTextEdit(e){let{range:t,newText:r}=e;if(Ke(this.range.start,t.end)<0||!r.includes(` +`)&&Ke(t.start,t.end)==0&&Ke(this.range.start,t.start)==0&&this._placeholders.findIndex(s=>Ke(s.range.start,t.start)==0)!==-1)return!1;let n=vC(this.range.start,e);return n.line==0&&n.character==0||this.adjustPosition(n.character,n.line),!0}get isPlainText(){return this._placeholders.length>1?!1:this._placeholders.every(e=>e.value=="")}get finalCount(){return this._placeholders.filter(e=>e.isFinalTabstop).length}toString(){return this.tmSnippet.toString()}get range(){let{position:e}=this,t=this.tmSnippet.toString(),n=tr.create("untitled:/1","snippet",0,t).positionAt(t.length),o=n.line==0?e.character+n.character:n.character;return Jo.Range.create(e,Jo.Position.create(e.line+n.line,o))}get firstPlaceholder(){let e=0;for(let t of this._placeholders)t.index!=0&&(e==0||t.indexe)&&(e=t.index);return this.getPlaceholder(e)}getPlaceholderById(e){return this._placeholders.find(t=>t.id==e)}getPlaceholder(e){let t=this._placeholders.filter(n=>n.index==e),r=t.filter(n=>!n.transform);return r.length?r[0]:t[0]}getPrevPlaceholder(e){if(e==0)return this.lastPlaceholder;let t=this.getPlaceholder(e-1);return t||this.getPrevPlaceholder(e-1)}getNextPlaceholder(e){let t=this._placeholders.map(o=>o.index),r=Math.max.apply(null,t);if(e>=r)return this.finalPlaceholder;let n=this.getPlaceholder(e+1);return n||this.getNextPlaceholder(e+1)}get finalPlaceholder(){return this._placeholders.find(e=>e.isFinalTabstop)}getPlaceholderByRange(e){return this._placeholders.find(t=>Jn(e,t.range))}insertSnippet(e,t,r){let{start:n}=e.range,o=Jo.Position.create(r.start.line-n.line,r.start.line==n.line?r.start.character-n.character:r.start.character),s=Jo.Position.create(r.end.line-n.line,r.end.line==n.line?r.end.character-n.character:r.end.character),a=Jo.Range.create(o,s),l=this.tmSnippet.insertSnippet(t,e.id,a);return this.update(),l}updatePlaceholder(e,t){let{start:r,end:n}=t.range,{range:o}=this,{value:s,id:a,index:l}=e,u=vj(e.range,s,t),c=0;if(!u.includes(` +`)){for(let d of this._placeholders)if(d.index==l&&d.id{let p=e.offset(c),d=n.positionAt(p),h={line:t+d.line,character:d.line==0?r+d.character:d.character},m;if(c instanceof Zn){let x=c.name;l.has(x)?m=l.get(x):(l.set(x,u),m=u,u=u+1)}else m=c.index;let w=c.toString(),v=w.split(/\r?\n/),D={range:Jo.Range.create(h,{line:h.line+v.length-1,character:v.length==1?h.character+w.length:v[v.length-1].length}),transform:c.transform!=null,line:h.line,id:f,index:m,value:w,isVariable:c instanceof Zn,isFinalTabstop:c.index===0};if(Object.defineProperty(D,"snippet",{enumerable:!1}),c instanceof Ii&&c.choice){let{options:x}=c.choice;x&&x.length&&(D.choice=x.map(S=>S.value))}return D})}}});var Ch,DJe,Eh,iP=I(()=>{Ch=E(require("path"));Te();DJe=W()("snippets-variable"),Eh=class{constructor(){this._variableToValue={};let e=new Date;Object.assign(this._variableToValue,{CURRENT_YEAR:e.getFullYear().toString(),CURRENT_YEAR_SHORT:e.getFullYear().toString().slice(-2),CURRENT_MONTH:(e.getMonth()+1).toString(),CURRENT_DATE:e.getDate().toString(),CURRENT_HOUR:e.getHours().toString(),CURRENT_MINUTE:e.getMinutes().toString(),CURRENT_SECOND:e.getSeconds().toString(),CURRENT_DAY_NAME:e.toLocaleString("en-US",{weekday:"long"}),CURRENT_DAY_NAME_SHORT:e.toLocaleString("en-US",{weekday:"short"}),CURRENT_MONTH_NAME:e.toLocaleString("en-US",{month:"long"}),CURRENT_MONTH_NAME_SHORT:e.toLocaleString("en-US",{month:"short"}),TM_FILENAME:null,TM_FILENAME_BASE:null,TM_DIRECTORY:null,TM_FILEPATH:null,YANK:null,TM_LINE_INDEX:null,TM_LINE_NUMBER:null,TM_CURRENT_LINE:null,TM_CURRENT_WORD:null,TM_SELECTED_TEXT:null,CLIPBOARD:null})}async resolveValue(e){let{nvim:t}=T;if(["TM_FILENAME","TM_FILENAME_BASE","TM_DIRECTORY","TM_FILEPATH"].includes(e)){let r=await t.eval('expand("%:p")');if(e=="TM_FILENAME")return Ch.default.basename(r);if(e=="TM_FILENAME_BASE")return Ch.default.basename(r,Ch.default.extname(r));if(e=="TM_DIRECTORY")return Ch.default.dirname(r);if(e=="TM_FILEPATH")return r}if(e=="YANK")return await t.call("getreg",['""']);if(e=="TM_LINE_INDEX")return(await t.call("line",["."])-1).toString();if(e=="TM_LINE_NUMBER")return(await t.call("line",["."])).toString();if(e=="TM_CURRENT_LINE")return await t.call("getline",["."]);if(e=="TM_CURRENT_WORD")return await t.eval("expand('')");if(e=="TM_SELECTED_TEXT")return await t.eval("get(g:,'coc_selected_text', '')");if(e=="CLIPBOARD")return await t.eval("@*")}async resolve(e){let t=e.name,r=this._variableToValue[t];if(r!=null)return r.toString();let n=await this.resolveValue(t);return n||(e.children&&e.children.length?e.toString():this._variableToValue.hasOwnProperty(t)?"":t)}}});function lxe(i,e,t){let r=i.split(/\r?\n/),n=t.insertSpaces?" ".repeat(t.tabSize):" ",o=t.tabSize||2;return r=r.map((s,a)=>{let l=s.match(/^\s*/)[0],u=l,c=l.startsWith(" ");return c&&t.insertSpaces?u=n.repeat(l.length):!c&&!t.insertSpaces&&(u=n.repeat(l.length/o)),(a==0||s.length==0?"":e)+u+s.slice(l.length)}),r.join(` +`)}var ra,ef,nP,JG=I(()=>{ra=E(G());tP();Kr();Ct();ie();Te();je();KG();iP();ef=W()("snippets-session"),nP=class{constructor(e,t){this.nvim=e;this.bufnr=t;this._isActive=!1;this._currId=0;this.applying=!1;this.preferComplete=!1;this._snippet=null;this._onCancelEvent=new ra.Emitter;this.onCancel=this._onCancelEvent.event;let r=b.getConfiguration("coc.preferences"),n=b.getConfiguration("suggest");this.preferComplete=r.get("preferCompleteThanJumpPlaceholder",n.get("preferCompleteThanJumpPlaceholder",!1))}async start(e,t=!0,r,n){let{document:o}=this;if(!o||!o.attached)return!1;if(N.fire("InsertSnippet",[]).logError(),!r){let h=await T.getCursorPosition();r=ra.Range.create(h,h)}let s=r.start,a=await b.getFormatOptions(this.document.uri);await o.patchChange(!0);let l=o.getline(s.line),u=l.match(/^\s*/)[0],c="";n===ra.InsertTextMode.asIs?c=e:c=lxe(e,u,a);let f=new Eh,p=new rP(c,s,f);await p.init();let d=ra.TextEdit.replace(r,p.toString());if(e.endsWith(` +`)&&l.slice(s.character).length&&(d.newText=d.newText+u,c=c+u),this.applying=!0,await o.applyEdits([d]),this.applying=!1,this._isActive){let h=this.findPlaceholder(r);if(h&&!h.isFinalTabstop){let m=this.snippet.insertSnippet(h,c,r),w=this.snippet.getPlaceholder(m);return this._currId=w.id,t&&await this.selectPlaceholder(w),!0}}if(p.isPlainText){this.deactivate();let h=p.finalPlaceholder;return await T.moveTo(h.range.start),!1}return this._snippet=p,this._currId=p.firstPlaceholder.id,t&&await this.selectPlaceholder(p.firstPlaceholder),this.activate(),!0}activate(){this._isActive||(this._isActive=!0,this.nvim.call("coc#snippet#enable",[],!0))}deactivate(){this._isActive&&(this._isActive=!1,this._snippet=null,this.nvim.call("coc#snippet#disable",[],!0),ef.debug("[SnippetManager::cancel]")),this._onCancelEvent.fire(void 0),this._onCancelEvent.dispose()}get isActive(){return this._isActive}async nextPlaceholder(){if(!this.isActive)return;await this.document.patchChange();let e=this.placeholder,t=this.snippet.getNextPlaceholder(e.index);await this.selectPlaceholder(t)}async previousPlaceholder(){if(!this.isActive)return;await this.document.patchChange();let e=this.placeholder,t=this.snippet.getPrevPlaceholder(e.index);await this.selectPlaceholder(t)}async synchronizeUpdatedPlaceholders(e){if(!this.isActive||!this.document||this.applying)return;let t={range:e.range,newText:e.text},{snippet:r}=this;if(r.adjustTextEdit(t))return;if(Ke(t.range.start,r.range.end)>0){if(!t.newText)return;ef.info("Content change after snippet, cancelling snippet session"),this.deactivate();return}let o=this.findPlaceholder(t.range);if(!o){ef.info("Change outside placeholder, cancelling snippet session"),this.deactivate();return}if(o.isFinalTabstop&&r.finalCount<=1){ef.info("Change final placeholder, cancelling snippet session"),this.deactivate();return}this._currId=o.id;let{edits:s,delta:a}=r.updatePlaceholder(o,t);!s.length||(this.applying=!0,await this.document.applyEdits(s),this.applying=!1,a&&await this.nvim.call("coc#util#move_cursor",a))}async selectCurrentPlaceholder(e=!0){let t=this.snippet.getPlaceholderById(this._currId);t&&await this.selectPlaceholder(t,e)}async selectPlaceholder(e,t=!0){let{nvim:r,document:n}=this;if(!n||!e)return;let{start:o,end:s}=e.range,a=s.character-o.character,l=me(n.getline(o.line).slice(0,o.character))+1;this._currId=e.id,e.choice?(await r.call("coc#snippet#show_choices",[o.line+1,l,a,e.choice]),t&&r.call("coc#util#do_autocmd",["CocJumpPlaceholder"],!0)):await this.select(e,t)}async select(e,t=!0){let{range:r,value:n,isFinalTabstop:o}=e,{document:s,nvim:a}=this,{start:l,end:u}=r,{textDocument:c}=s,f=c.offsetAt(u)-c.offsetAt(l),p=s.getline(l.line),d=p?me(p.slice(0,l.character)):0,h=s.getline(u.line),m=h?me(h.slice(0,u.character)):0;a.setVar("coc_last_placeholder",{current_text:n,start:{line:l.line,col:d},end:{line:u.line,col:m}},!0);let[w,v,D,x]=await a.eval("[&virtualedit, &selection, pumvisible(), mode()]"),S="";if(D&&this.preferComplete){let P=ta.hasSelected()?"":"\\";await a.eval(`feedkeys("${P}\\", 'in')`);return}x!="n"&&(S+="\\"),f==0?d==0||!x.startsWith("i")&&d`),x=="i"&&S=="\\a"&&(S=""),a.pauseNotification(),a.setOption("virtualedit","onemore",!0),a.call("cursor",[l.line+1,d+(S=="a"?0:1)],!0),S&&a.call("eval",[`feedkeys("${S}", 'in')`],!0),x=="i"&&a.call("coc#_cancel",[],!0),a.setOption("virtualedit",w,!0),o&&(this.snippet.finalCount==1?(ef.info("Jump to final placeholder, cancelling snippet session"),this.deactivate()):a.call("coc#snippet#disable",[],!0)),b.env.isVim&&a.command("redraw",!0),await a.resumeNotification(),t&&a.call("coc#util#do_autocmd",["CocJumpPlaceholder"],!0)}async getVirtualCol(e,t){let{nvim:r}=this;return await r.eval(`virtcol([${e}, ${t}])`)}async checkPosition(){if(!this.isActive)return;let e=await T.getCursorPosition();this.snippet&&gr(e,this.snippet.range)!=0&&(ef.info("Cursor insert out of range, cancelling snippet session"),this.deactivate())}findPlaceholder(e){if(!this.snippet)return null;let{placeholder:t}=this;return t&&Jn(e,t.range)?t:this.snippet.getPlaceholderByRange(e)||null}get placeholder(){return this.snippet?this.snippet.getPlaceholderById(this._currId):null}get snippet(){return this._snippet}get document(){return b.getDocument(this.bufnr)}}});var jJe,YG,ir,xl=I(()=>{je();ie();Te();Uv();JG();iP();jJe=W()("snippets-manager"),YG=class{constructor(){this.sessionMap=new Map;this.disposables=[];b.onDidChangeTextDocument(async e=>{let t=this.getSession(e.bufnr);t&&await t.synchronizeUpdatedPlaceholders(e.contentChanges[0])},null,this.disposables),b.onDidCloseTextDocument(e=>{let t=b.getDocument(e.uri);if(!t)return;let r=this.getSession(t.bufnr);r&&r.deactivate()},null,this.disposables),N.on("BufEnter",async e=>{let t=this.getSession(e);!this.statusItem||(t&&t.isActive?this.statusItem.show():this.statusItem.hide())},null,this.disposables),N.on("InsertEnter",async()=>{let{session:e}=this;!e||await e.checkPosition()},null,this.disposables)}init(){let e=b.getConfiguration("coc.preferences");this.statusItem=T.createStatusBarItem(0),this.statusItem.text=e.get("snippetStatusText","SNIP")}async insertSnippet(e,t=!0,r,n){let{bufnr:o}=b,s=this.getSession(o);s||(s=new nP(b.nvim,o),this.sessionMap.set(o,s),s.onCancel(()=>{this.sessionMap.delete(o),b.bufnr==o&&this.statusItem.hide()}));let a=await s.start(e,t,r,n);return a&&this.statusItem.show(),a}async selectCurrentPlaceholder(e=!0){let{session:t}=this;if(t)return await t.selectCurrentPlaceholder(e)}async nextPlaceholder(){let{session:e}=this;if(e)return await e.nextPlaceholder();b.nvim.call("coc#snippet#disable",[],!0),this.statusItem.hide()}async previousPlaceholder(){let{session:e}=this;if(e)return await e.previousPlaceholder();b.nvim.call("coc#snippet#disable",[],!0),this.statusItem.hide()}cancel(){let e=this.getSession(b.bufnr);if(e)return e.deactivate();b.nvim.call("coc#snippet#disable",[],!0),this.statusItem&&this.statusItem.hide()}get session(){let e=this.getSession(b.bufnr);return e&&e.isActive?e:null}isActived(e){let t=this.getSession(e);return t&&t.isActive}jumpable(){let{session:e}=this;if(!e)return!1;let t=e.placeholder;return!!(t&&!t.isFinalTabstop)}getSession(e){return this.sessionMap.get(e)}async resolveSnippet(e){let r=new Ms().parse(e,!0),n=new Eh;return await r.resolveVariables(n),r}dispose(){this.cancel();for(let e of this.disposables)e.dispose()}},ir=new YG});var mw,tYe,XG,ZG,be,$n=I(()=>{mw=E(G());Ze();el();xl();ye();ie();Te();tYe=W()("commands"),XG=class{constructor(e,t,r,n=!1){this.id=e;this.impl=t;this.thisArg=r;this.internal=n}execute(...e){let{impl:t,thisArg:r}=this;return t.apply(r,e||[])}dispose(){this.thisArg=null,this.impl=null}},ZG=class{constructor(){this.commands=new Map;this.titles=new Map;this.onCommandList=[]}init(e,t){this.mru=b.createMru("commands"),this.register({id:"vscode.open",execute:async r=>{e.call("coc#util#open_url",r.toString(),!0)}},!0),this.register({id:"workbench.action.reloadWindow",execute:async()=>{await e.command("edit")}},!0),this.register({id:"editor.action.insertSnippet",execute:async r=>(e.call("coc#_cancel",[],!0),await ir.insertSnippet(r.newText,!0,r.range))},!0),this.register({id:"editor.action.doCodeAction",execute:async r=>{await t.cocAction("doCodeAction",r)}},!0),this.register({id:"editor.action.triggerSuggest",execute:async()=>{await nt(60),e.call("coc#start",[],!0)}},!0),this.register({id:"editor.action.triggerParameterHints",execute:async()=>{await nt(60),await t.cocAction("showSignatureHelp")}},!0),this.register({id:"editor.action.addRanges",execute:async r=>{await t.cocAction("addRanges",r)}},!0),this.register({id:"editor.action.restart",execute:async()=>{await nt(30),e.command("CocRestart",!0)}},!0),this.register({id:"editor.action.showReferences",execute:async(r,n,o)=>{await b.showLocations(o)}},!0),this.register({id:"editor.action.rename",execute:async(r,n)=>{await b.jumpTo(r,n),await t.cocAction("rename")}},!0),this.register({id:"editor.action.format",execute:async()=>{await t.cocAction("format")}},!0),this.register({id:"workspace.diffDocument",execute:async()=>{let r=await b.document;!r||await e.call("coc#util#diff_content",[r.getLines()])}}),this.register({id:"workspace.clearWatchman",execute:async()=>{(await T.runTerminalCommand("watchman watch-del-all")).success&&T.showMessage("Cleared watchman watching directories.")}},!1,"run watch-del-all for watchman to free up memory."),this.register({id:"workspace.workspaceFolders",execute:async()=>{let n=b.workspaceFolders.map(o=>j.parse(o.uri).fsPath);await T.echoLines(n)}},!1,"show opened workspaceFolders."),this.register({id:"workspace.renameCurrentFile",execute:async()=>{await b.renameCurrent()}},!1,"change current filename to a new name and reload it."),this.register({id:"extensions.toggleAutoUpdate",execute:async()=>{let r=b.getConfiguration("coc.preferences");r.get("extensionUpdateCheck","daily")=="never"?(r.update("extensionUpdateCheck","daily",!0),T.showMessage("Extension auto update enabled.","more")):(r.update("extensionUpdateCheck","never",!0),T.showMessage("Extension auto update disabled.","more"))}},!1,"toggle auto update of extensions."),this.register({id:"workspace.diagnosticRelated",execute:()=>At.jumpRelated()},!1,"jump to related locations of current diagnostic."),this.register({id:"workspace.showOutput",execute:async r=>{if(r)T.showOutputChannel(r);else{let n=b.channelNames;if(n.length==0)return;if(n.length==1)T.showOutputChannel(n[0]);else{let o=await T.showQuickpick(n);if(o==-1)return;let s=n[o];T.showOutputChannel(s)}}}},!1,"open output buffer to show output from languageservers or extensions."),this.register({id:"document.echoFiletype",execute:async()=>{let r=await e.call("bufnr","%"),n=b.getDocument(r);!n||await T.echoLines([n.filetype])}},!1,"echo the mapped filetype of the current buffer"),this.register({id:"document.renameCurrentWord",execute:async()=>{let r=await e.call("bufnr","%"),n=b.getDocument(r);if(!n)return;let o=await t.cocAction("getWordEdit");if(!o){T.showMessage("Invalid position","warning");return}let s=[],{changes:a,documentChanges:l}=o;if(a){let u=a[n.uri];u&&(s=u.map(c=>c.range))}else if(l)for(let u of l)mw.TextDocumentEdit.is(u)&&u.textDocument.uri==n.uri&&(s=u.edits.map(c=>c.range));s.length&&await t.cocAction("addRanges",s)}},!1,"rename word under cursor in current buffer by use multiple cursors."),this.register({id:"document.jumpToNextSymbol",execute:async()=>{let r=await b.document;if(!r)return;let n=await t.cocAction("symbolRanges");if(!n)return;let{textDocument:o}=r,s=await T.getOffset();n.sort((a,l)=>a.start.line!=l.start.line?a.start.line-l.start.line:a.start.character-l.start.character);for(let a=0;a<=n.length-1;a++)if(o.offsetAt(n[a].start)>s){await T.moveTo(n[a].start);return}await T.moveTo(n[0].start)}},!1,"Jump to next symbol highlight position."),this.register({id:"document.jumpToPrevSymbol",execute:async()=>{let r=await b.document;if(!r)return;let n=await t.cocAction("symbolRanges");if(!n)return;let{textDocument:o}=r,s=await T.getOffset();n.sort((a,l)=>a.start.line!=l.start.line?a.start.line-l.start.line:a.start.character-l.start.character);for(let a=n.length-1;a>=0;a--)if(o.offsetAt(n[a].end){this.commands.delete(e)})}executeCommand(e,...t){let r=this.commands.get(e);if(!r)throw new Error(`Command: ${e} not found`);return Promise.resolve(r.execute.apply(r,t))}async addRecent(e){await this.mru.add(e),await b.nvim.command('silent! call repeat#set("\\(coc-command-repeat)", -1)')}async repeatCommand(){let t=(await this.mru.load())[0];t&&(await this.executeCommand(t),await b.nvim.command('silent! call repeat#set("\\(coc-command-repeat)", -1)'))}},be=new ZG});var sYe,_h,QG=I(()=>{Ro();Kr();sYe=W()("cursors-range"),_h=class{constructor(e,t,r,n,o){this.line=e;this.start=t;this.end=r;this.text=n;this.preCount=o;this.currStart=t,this.currEnd=r}add(e,t){let{text:r,preCount:n}=this,o=e==0?"":r.slice(0,e),s=r.slice(e);this.text=`${o}${t}${s}`,this.currStart=this.currStart+n*t.length,this.currEnd=this.currEnd+(n+1)*t.length}replace(e,t,r=""){let{text:n,preCount:o}=this,s=e==0?"":n.slice(0,e),a=n.slice(t);this.text=s+r+a;let l=t-e-r.length;this.currStart=this.currStart-o*l,this.currEnd=this.currEnd-(o+1)*l}get range(){return Oe.create(this.line,this.start,this.line,this.end)}get currRange(){return Oe.create(this.line,this.currStart,this.line,this.currEnd)}applyEdit(e){let{range:t,newText:r}=e,n=t.start.character,o=t.end.character;n==o?this.add(n-this.currStart,r):this.replace(n-this.currStart,o-this.currStart,r)}adjustFromEdit(e){let{range:t,newText:r}=e;if(Ke(t.start,Si.create(this.line,this.currEnd))>0)return;let n=r.split(` +`),o=n.length-(t.end.line-t.start.line+1);if(this.line=this.line+o,t.end.line==this.line){let s=t.start.line==t.end.line?t.end.character-t.start.character:t.end.character;n.length>1&&t.start.line==t.end.line&&(s=s+t.start.character);let a=0;n.length>1?a=n[n.length-1].length:t.start.line==t.end.line?a=r.length:a=t.start.character+r.length;let l=a-s;for(let u of["start","end","currStart","currEnd"])this[u]+=l}}sync(){this.start=this.currStart,this.end=this.currEnd}get textEdit(){return{range:this.range,newText:this.text}}}});function oP(i,e){let t=[];for(let r=e.start.line;r<=e.end.line;r++){let n=i.getline(r)||"",o=r==e.start.line?e.start.character:0,s=r==e.end.line?e.end.character:n.length;o!=s&&t.push(Th.Range.create(r,o,r,s))}return t}function eV(i,e){let{start:t,end:r}=e;t.line>r.line&&([t,r]=[r,t]);let n=t.character{Th=E(G())});var tf,rf,wYe,gw,rV=I(()=>{tf=E(Ju()),rf=E(G());Za();je();Kr();Te();ie();QG();aP();wYe=W()("cursors-session"),gw=class{constructor(e,t,r){this.nvim=e;this.doc=t;this.config=r;this._onDidCancel=new rf.Emitter;this.onDidCancel=this._onDidCancel.event;this.disposables=[];this.ranges=[];this.activated=!0;this.changing=!1;this.changed=!1;this.doc.forceSync(),this.textDocument=this.doc.textDocument,this.buffer.setVar("coc_cursors_activated",1,!0);let{cancelKey:n,nextKey:o,previousKey:s}=this.config;this.disposables.push(b.registerLocalKeymap("n",n,()=>{this.cancel()},!0)),this.disposables.push(b.registerLocalKeymap("n",o,async()=>{if(!this.activated)return;let a=this.ranges.map(u=>u.currRange),l=await T.getCursorPosition();for(let u of a)if(Ke(u.start,l)>0){await T.moveTo(u.start);return}a.length&&await T.moveTo(a[0].start)},!0)),this.disposables.push(b.registerLocalKeymap("n",s,async()=>{if(!this.activated)return;let a=this.ranges.map(u=>u.currRange);a.reverse();let l=await T.getCursorPosition();for(let u of a)if(Ke(u.end,l)<0){await T.moveTo(u.start);return}a.length&&await T.moveTo(a[a.length-1].start)},!0)),this.doc.onDocumentChange(this.onChange,this,this.disposables)}async onChange(e){if(!this.activated||this.ranges.length==0||this.changing)return;let t=e.contentChanges[0],{text:r,range:n}=t,o=this.ranges.some(l=>Gu(n,l.currRange)),s=this.ranges[0].currRange.start;if(r.endsWith(` +`)&&Ke(s,n.end)==0&&(o=!1),!o){this.ranges.forEach(l=>{l.adjustFromEdit({range:n,newText:r})}),this.doHighlights(),this.textDocument=this.doc.textDocument;return}this.changed=!0;let a=this.getTextRange(n,r);a?await this.applySingleEdit(a,{range:n,newText:r}):(this.applyComposedEdit(e.original,{range:n,newText:r}),this.activated&&(this.ranges.forEach(l=>{l.sync()}),this.textDocument=this.doc.textDocument))}doHighlights(){let{nvim:e,buffer:t,ranges:r}=this;t.clearNamespace("cursors");let n=r.map(o=>o.currRange);t.highlightRanges("cursors","CocCursorRange",n),e.command("redraw",!0)}addRanges(e){let{nvim:t,doc:r}=this;if(this.changed)return T.showMessage("Can't add ranges after range change."),!1;this.ranges=this.ranges.filter(a=>{let{currRange:l}=a;return!e.some(u=>tv(u,l))});let{textDocument:n}=r;for(let a of e){let{line:l}=a.start,u=new _h(l,a.start.character,a.end.character,n.getText(a),0);this.ranges.push(u)}this.ranges.sort((a,l)=>Ke(a.range.start,l.range.start));let o=0,s=-1;for(let a of this.ranges){let{line:l}=a;l!=s&&(o=0),a.preCount=o,o=o+1,s=l}return t.pauseNotification(),this.doHighlights(),t.resumeNotification(!1,!0),!0}cancel(){if(!this.activated)return;let{nvim:e}=this;this.activated=!1;let{cancelKey:t,nextKey:r,previousKey:n}=this.config;e.pauseNotification(),this.buffer.clearNamespace("cursors"),this.buffer.setVar("coc_cursors_activated",0,!0),e.command("redraw",!0),e.resumeNotification(!1,!0),this._onDidCancel.fire()}dispose(){if(!!this.doc){this._onDidCancel.dispose();for(let e of this.disposables)e.dispose();this.ranges=[],this.doc=null,this.textDocument=null}}get buffer(){return this.nvim.createBuffer(this.doc.bufnr)}getTextRange(e,t){let{ranges:r}=this;if(t.indexOf(` +`)!==-1||e.start.line!=e.end.line)return null;r.sort((n,o)=>n.line!=o.line?n.line-o.line:n.currRange.start.character-o.currRange.start.character);for(let n=0;n{s.add(s.text.length,r)});else{let s=t.start.character-e.currRange.start.character;n.forEach(a=>{a.add(Math.min(a.text.length,s),r)})}else{let o=t.end.character-t.start.character;if(e.currRange.end.character==t.end.character)if(e.currRange.start.character==t.start.character)if(r.includes(e.text)){let a=r.indexOf(e.text),l=a==0?"":r.slice(0,a),u=r.slice(a+e.text.length);l&&n.forEach(c=>c.add(0,l)),u&&n.forEach(c=>c.add(c.text.length,u))}else if(e.text.includes(r)){let a=e.text.indexOf(r),l=e.text.length-(a+r.length);a!=0&&n.forEach(u=>u.replace(0,a)),l>0&&n.forEach(u=>u.replace(u.text.length-l,u.text.length))}else this.cancel();else n.forEach(a=>{let l=a.text.length;a.replace(Math.max(0,l-o),l,r)});else{let a=t.start.character-e.currRange.start.character;n.forEach(l=>{let u=l.text.length;l.replace(a,Math.min(a+o,u),r)})}}}addRange(e,t){if(this.changed){T.showMessage("Can't add range after range change.");return}let{ranges:r}=this,n=r.findIndex(o=>Gu(o.range,e));if(n!==-1){r.splice(n,1);for(let o of r)o.line==e.start.line&&o.start>e.start.character&&(o.preCount=o.preCount-1)}else{let o=0,s=0,{line:a}=e.start;for(let u of r){if(u.line>a||u.line==a&&u.start>e.end.character)break;u.line==a&&o++,s++}let l=new _h(a,e.start.character,e.end.character,t,o);r.splice(s,0,l);for(let u of r)u.line==e.start.line&&u.start>e.start.character&&(u.preCount=u.preCount+1)}this.ranges.length==0?this.cancel():this.doHighlights()}async applySingleEdit(e,t){let{range:r,newText:n}=t,{doc:o}=this;if(this.adjustRanges(e,r,n),this.ranges.length==1){this.doHighlights();return}let s=this.ranges.map(d=>d.textEdit),l=tr.applyEdits(this.textDocument,s).split(` +`),u=new Set,c=[];for(let d of this.ranges)u.has(d.line)||(u.add(d.line),c.push([d.line,l[d.line]]));let{nvim:f}=this;this.changing=!0,await o.changeLines(c),this.changing=!1,this.activated&&(this.ranges.forEach(d=>{d.sync()}),this.textDocument=this.doc.textDocument),f.pauseNotification();let{cursor:p}=N;if(e.preCount>0&&p.bufnr==o.bufnr&&e.line+1==p.lnum){let d=e.preCount*(n.length-(r.end.character-r.start.character));f.call("cursor",[p.lnum,p.col+d],!0)}this.doHighlights(),f.resumeNotification(!1,!0)}applyComposedEdit(e,t){let{range:r,newText:n}=t,{ranges:o}=this,s=tr.create("file:///1","",0,e),a=[],l=(0,tf.default)(e,n),u=0;for(let c=0;cc.newText.includes(` +`)||c.range.start.line!=c.range.end.line)){this.cancel();return}if(a.length==o.length){let c;for(let f=0;f{Ro();je();Kr();Te();ie();rV();aP();RYe=W()("cursors"),vw=class{constructor(e){this.nvim=e;this.sessionsMap=new Map;this.disposables=[];this.loadConfig(),b.onDidChangeConfiguration(t=>{t.affectsConfiguration("cursors")&&this.loadConfig()},null,this.disposables),N.on("BufUnload",t=>{let r=this.getSession(t);!r||(r.dispose(),this.sessionsMap.delete(t))},null,this.disposables)}loadConfig(){let e=b.getConfiguration("cursors");this.config={nextKey:e.get("nextKey",""),previousKey:e.get("previousKey",""),cancelKey:e.get("cancelKey","")}}getSession(e){return this.sessionsMap.get(e)}async isActivated(){let e=await this.nvim.call("bufnr",["%"]);return this.sessionsMap.get(e)!=null}async select(e,t,r){let n=b.getDocument(e);if(!n||!n.attached){T.showMessage(`buffer ${e} not attached.`);return}let{nvim:o}=this,s=this.createSession(n),a=await T.getCursorPosition(),l;if(t=="operator"){await o.command(`normal! ${r=="line"?"'[":"`["}`);let u=await T.getCursorPosition();await o.command(`normal! ${r=="line"?"']":"`]"}`);let c=await T.getCursorPosition();await T.moveTo(a);let f=Ke(u,c);if(f==0)return;f>=0&&([u,c]=[c,u]);let p=n.getline(c.line);c.character=u.length?l=Oe.create(a.line,u.length-1,a.line,u.length):l=Oe.create(a.line,a.character,a.line,a.character+1),s.addRange(l,u.slice(l.start.character,l.end.character))}else if(t=="range"){await o.call("eval",'feedkeys("\\", "in")');let u=await b.getSelectedRange(r,n);if(!u||Ke(u.start,u.end)==0)return;let c=r==""?eV(n,u):oP(n,u);for(let f of c){let p=n.textDocument.getText(f);s.addRange(f,p)}}else{T.showMessage(`${t} not supported`,"error");return}(t=="word"||t=="position")&&await o.command(`silent! call repeat#set("\\(coc-cursors-${t})", -1)`)}createSession(e){let t=this.getSession(e.bufnr);return t||(t=new gw(this.nvim,e,this.config),this.sessionsMap.set(e.bufnr,t),t.onDidCancel(()=>{t.dispose(),this.sessionsMap.delete(e.bufnr)}),t)}async addRanges(e){let{nvim:t}=this,r=await t.call("bufnr",["%"]),n=b.getDocument(r);return!n||!n.attached?(T.showMessage("Document not attached","error"),!1):this.createSession(n).addRanges(e)}reset(){for(let e of this.sessionsMap.values())e.cancel();this.sessionsMap.clear()}dispose(){for(let e of this.sessionsMap.values())e.dispose();this.sessionsMap.clear();for(let e of this.disposables)e.dispose()}}});var oV=y((IYe,nV)=>{"use strict";var uxe="Function.prototype.bind called on incompatible ",lP=Array.prototype.slice,cxe=Object.prototype.toString,fxe="[object Function]";nV.exports=function(e){var t=this;if(typeof t!="function"||cxe.call(t)!==fxe)throw new TypeError(uxe+t);for(var r=lP.call(arguments,1),n,o=function(){if(this instanceof n){var c=t.apply(this,r.concat(lP.call(arguments)));return Object(c)===c?c:this}else return t.apply(e,r.concat(lP.call(arguments)))},s=Math.max(0,t.length-r.length),a=[],l=0;l{"use strict";var pxe=oV();sV.exports=Function.prototype.bind||pxe});var lV=y((OYe,aV)=>{"use strict";aV.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var e={},t=Symbol("test"),r=Object(t);if(typeof t=="string"||Object.prototype.toString.call(t)!=="[object Symbol]"||Object.prototype.toString.call(r)!=="[object Symbol]")return!1;var n=42;e[t]=n;for(t in e)return!1;if(typeof Object.keys=="function"&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(e).length!==0)return!1;var o=Object.getOwnPropertySymbols(e);if(o.length!==1||o[0]!==t||!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var s=Object.getOwnPropertyDescriptor(e,t);if(s.value!==n||s.enumerable!==!0)return!1}return!0}});var fo=y((AYe,cV)=>{"use strict";var uV=global.Symbol,dxe=lV();cV.exports=function(){return typeof uV!="function"||typeof Symbol!="function"||typeof uV("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:dxe()}});var Yo=y((LYe,fV)=>{"use strict";var hxe=ia();fV.exports=hxe.call(Function.call,Object.prototype.hasOwnProperty)});var Dw=y((MYe,mV)=>{"use strict";var Pe,Ph=SyntaxError,mxe=Function,nf=TypeError,uP=function(i){try{return Function('"use strict"; return ('+i+").constructor;")()}catch(e){}},kl=Object.getOwnPropertyDescriptor;if(kl)try{kl({},"")}catch(i){kl=null}var cP=function(){throw new nf},gxe=kl?function(){try{return arguments.callee,cP}catch(i){try{return kl(arguments,"callee").get}catch(e){return cP}}}():cP,of=fo()(),na=Object.getPrototypeOf||function(i){return i.__proto__},fP=uP("async function* () {}"),pP=fP?fP.prototype:Pe,pV=pP?pP.prototype:Pe,vxe=typeof Uint8Array=="undefined"?Pe:na(Uint8Array),Rh={"%AggregateError%":typeof AggregateError=="undefined"?Pe:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Pe:ArrayBuffer,"%ArrayIteratorPrototype%":of?na([][Symbol.iterator]()):Pe,"%AsyncFromSyncIteratorPrototype%":Pe,"%AsyncFunction%":uP("async function () {}"),"%AsyncGenerator%":pP,"%AsyncGeneratorFunction%":fP,"%AsyncIteratorPrototype%":pV?na(pV):Pe,"%Atomics%":typeof Atomics=="undefined"?Pe:Atomics,"%BigInt%":typeof BigInt=="undefined"?Pe:BigInt,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Pe:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array=="undefined"?Pe:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Pe:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Pe:FinalizationRegistry,"%Function%":mxe,"%GeneratorFunction%":uP("function* () {}"),"%Int8Array%":typeof Int8Array=="undefined"?Pe:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Pe:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Pe:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":of?na(na([][Symbol.iterator]())):Pe,"%JSON%":typeof JSON=="object"?JSON:Pe,"%Map%":typeof Map=="undefined"?Pe:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!of?Pe:na(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Pe:Promise,"%Proxy%":typeof Proxy=="undefined"?Pe:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect=="undefined"?Pe:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Pe:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!of?Pe:na(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Pe:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":of?na(""[Symbol.iterator]()):Pe,"%Symbol%":of?Symbol:Pe,"%SyntaxError%":Ph,"%ThrowTypeError%":gxe,"%TypedArray%":vxe,"%TypeError%":nf,"%Uint8Array%":typeof Uint8Array=="undefined"?Pe:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Pe:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Pe:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Pe:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap=="undefined"?Pe:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Pe:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Pe:WeakSet},dV={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},yw=ia(),bw=Yo(),yxe=yw.call(Function.call,Array.prototype.concat),bxe=yw.call(Function.apply,Array.prototype.splice),hV=yw.call(Function.call,String.prototype.replace),ww=yw.call(Function.call,String.prototype.slice),wxe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,Dxe=/\\(\\)?/g,xxe=function(e){var t=ww(e,0,1),r=ww(e,-1);if(t==="%"&&r!=="%")throw new Ph("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&t!=="%")throw new Ph("invalid intrinsic syntax, expected opening `%`");var n=[];return hV(e,wxe,function(o,s,a,l){n[n.length]=a?hV(l,Dxe,"$1"):s||o}),n},Sxe=function(e,t){var r=e,n;if(bw(dV,r)&&(n=dV[r],r="%"+n[0]+"%"),bw(Rh,r)){var o=Rh[r];if(typeof o=="undefined"&&!t)throw new nf("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new Ph("intrinsic "+e+" does not exist!")};mV.exports=function(e,t){if(typeof e!="string"||e.length===0)throw new nf("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof t!="boolean")throw new nf('"allowMissing" argument must be a boolean');var r=xxe(e),n=r.length>0?r[0]:"",o=Sxe("%"+n+"%",t),s=o.name,a=o.value,l=!1,u=o.alias;u&&(n=u[0],bxe(r,yxe([0,1],u)));for(var c=1,f=!0;c=r.length){var m=kl(a,p);f=!!m,f&&"get"in m&&!("originalValue"in m.get)?a=m.get:a=a[p]}else f=bw(a,p),a=a[p];f&&!l&&(Rh[s]=a)}}return a}});var hP=y((qYe,Sw)=>{"use strict";var dP=ia(),xw=Dw(),gV=xw("%Function.prototype.apply%"),vV=xw("%Function.prototype.call%"),yV=xw("%Reflect.apply%",!0)||dP.call(vV,gV),kh=xw("%Object.defineProperty%",!0);if(kh)try{kh({},"a",{value:1})}catch(i){kh=null}Sw.exports=function(){return yV(dP,vV,arguments)};var bV=function(){return yV(dP,gV,arguments)};kh?kh(Sw.exports,"apply",{value:bV}):Sw.exports.apply=bV});var mP=y((NYe,DV)=>{"use strict";var wV=Object.prototype.toString;DV.exports=function(e){var t=wV.call(e),r=t==="[object Arguments]";return r||(r=t!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&wV.call(e.callee)==="[object Function]"),r}});var kV=y(($Ye,RV)=>{"use strict";var xV;Object.keys||(Ih=Object.prototype.hasOwnProperty,gP=Object.prototype.toString,SV=mP(),vP=Object.prototype.propertyIsEnumerable,CV=!vP.call({toString:null},"toString"),EV=vP.call(function(){},"prototype"),Fh=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],Cw=function(i){var e=i.constructor;return e&&e.prototype===i},_V={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},TV=function(){if(typeof window=="undefined")return!1;for(var i in window)try{if(!_V["$"+i]&&Ih.call(window,i)&&window[i]!==null&&typeof window[i]=="object")try{Cw(window[i])}catch(e){return!0}}catch(e){return!0}return!1}(),PV=function(i){if(typeof window=="undefined"||!TV)return Cw(i);try{return Cw(i)}catch(e){return!1}},xV=function(e){var t=e!==null&&typeof e=="object",r=gP.call(e)==="[object Function]",n=SV(e),o=t&&gP.call(e)==="[object String]",s=[];if(!t&&!r&&!n)throw new TypeError("Object.keys called on a non-object");var a=EV&&r;if(o&&e.length>0&&!Ih.call(e,0))for(var l=0;l0)for(var u=0;u{"use strict";var Cxe=Array.prototype.slice,Exe=mP(),IV=Object.keys,Ew=IV?function(e){return IV(e)}:kV(),FV=Object.keys;Ew.shim=function(){if(Object.keys){var e=function(){var t=Object.keys(arguments);return t&&t.length===arguments.length}(1,2);e||(Object.keys=function(r){return Exe(r)?FV(Cxe.call(r)):FV(r)})}else Object.keys=Ew;return Object.keys||Ew};OV.exports=Ew});var Il=y((jYe,qV)=>{"use strict";var _xe=AV(),Txe=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",Pxe=Object.prototype.toString,Rxe=Array.prototype.concat,yP=Object.defineProperty,kxe=function(i){return typeof i=="function"&&Pxe.call(i)==="[object Function]"},Ixe=function(){var i={};try{yP(i,"x",{enumerable:!1,value:i});for(var e in i)return!1;return i.x===i}catch(t){return!1}},LV=yP&&Ixe(),Fxe=function(i,e,t,r){e in i&&(!kxe(r)||!r())||(LV?yP(i,e,{configurable:!0,enumerable:!1,value:t,writable:!0}):i[e]=t)},MV=function(i,e){var t=arguments.length>2?arguments[2]:{},r=_xe(e);Txe&&(r=Rxe.call(r,Object.getOwnPropertySymbols(e)));for(var n=0;n{"use strict";var Re,NV=SyntaxError,Oxe=Function,sf=TypeError,bP=function(i){try{return Function('"use strict"; return ('+i+").constructor;")()}catch(e){}},Fl=Object.getOwnPropertyDescriptor;if(Fl)try{Fl({},"")}catch(i){Fl=null}var wP=function(){throw new sf},Axe=Fl?function(){try{return arguments.callee,wP}catch(i){try{return Fl(arguments,"callee").get}catch(e){return wP}}}():wP,af=fo()(),oa=Object.getPrototypeOf||function(i){return i.__proto__},DP=bP("async function* () {}"),xP=DP?DP.prototype:Re,$V=xP?xP.prototype:Re,Lxe=typeof Uint8Array=="undefined"?Re:oa(Uint8Array),Oh={"%AggregateError%":typeof AggregateError=="undefined"?Re:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Re:ArrayBuffer,"%ArrayIteratorPrototype%":af?oa([][Symbol.iterator]()):Re,"%AsyncFromSyncIteratorPrototype%":Re,"%AsyncFunction%":bP("async function () {}"),"%AsyncGenerator%":xP,"%AsyncGeneratorFunction%":DP,"%AsyncIteratorPrototype%":$V?oa($V):Re,"%Atomics%":typeof Atomics=="undefined"?Re:Atomics,"%BigInt%":typeof BigInt=="undefined"?Re:BigInt,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Re:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%eval%":eval,"%EvalError%":EvalError,"%Float32Array%":typeof Float32Array=="undefined"?Re:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Re:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Re:FinalizationRegistry,"%Function%":Oxe,"%GeneratorFunction%":bP("function* () {}"),"%Int8Array%":typeof Int8Array=="undefined"?Re:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Re:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Re:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":af?oa(oa([][Symbol.iterator]())):Re,"%JSON%":typeof JSON=="object"?JSON:Re,"%Map%":typeof Map=="undefined"?Re:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!af?Re:oa(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Re:Promise,"%Proxy%":typeof Proxy=="undefined"?Re:Proxy,"%RangeError%":RangeError,"%ReferenceError%":ReferenceError,"%Reflect%":typeof Reflect=="undefined"?Re:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Re:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!af?Re:oa(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Re:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":af?oa(""[Symbol.iterator]()):Re,"%Symbol%":af?Symbol:Re,"%SyntaxError%":NV,"%ThrowTypeError%":Axe,"%TypedArray%":Lxe,"%TypeError%":sf,"%Uint8Array%":typeof Uint8Array=="undefined"?Re:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Re:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Re:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Re:Uint32Array,"%URIError%":URIError,"%WeakMap%":typeof WeakMap=="undefined"?Re:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Re:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Re:WeakSet},BV={"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},SP=ia(),_w=Yo(),Mxe=SP.call(Function.call,Array.prototype.concat),qxe=SP.call(Function.apply,Array.prototype.splice),jV=SP.call(Function.call,String.prototype.replace),Nxe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,$xe=/\\(\\)?/g,Bxe=function(e){var t=[];return jV(e,Nxe,function(r,n,o,s){t[t.length]=o?jV(s,$xe,"$1"):n||r}),t},jxe=function(e,t){var r=e,n;if(_w(BV,r)&&(n=BV[r],r="%"+n[0]+"%"),_w(Oh,r)){var o=Oh[r];if(typeof o=="undefined"&&!t)throw new sf("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:n,name:r,value:o}}throw new NV("intrinsic "+e+" does not exist!")};UV.exports=function(e,t){if(typeof e!="string"||e.length===0)throw new sf("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof t!="boolean")throw new sf('"allowMissing" argument must be a boolean');var r=Bxe(e),n=r.length>0?r[0]:"",o=jxe("%"+n+"%",t),s=o.name,a=o.value,l=!1,u=o.alias;u&&(n=u[0],qxe(r,Mxe([0,1],u)));for(var c=1,f=!0;c=r.length){var d=Fl(a,p);if(f=!!d,!t&&!(p in a))throw new sf("base intrinsic for "+e+" exists, but the property is not available.");f&&"get"in d&&!("originalValue"in d.get)?a=d.get:a=a[p]}else f=_w(a,p),a=a[p];f&&!l&&(Oh[s]=a)}}return a}});var EP=y((WYe,Pw)=>{"use strict";var CP=ia(),Tw=He(),WV=Tw("%Function.prototype.apply%"),HV=Tw("%Function.prototype.call%"),zV=Tw("%Reflect.apply%",!0)||CP.call(HV,WV),Ah=Tw("%Object.defineProperty%",!0);if(Ah)try{Ah({},"a",{value:1})}catch(i){Ah=null}Pw.exports=function(){return zV(CP,HV,arguments)};var GV=function(){return zV(CP,WV,arguments)};Ah?Ah(Pw.exports,"apply",{value:GV}):Pw.exports.apply=GV});var Ol=y((HYe,JV)=>{"use strict";var VV=He(),KV=EP(),Uxe=KV(VV("String.prototype.indexOf"));JV.exports=function(e,t){var r=VV(e,!!t);return typeof r=="function"&&Uxe(e,".prototype.")?KV(r):r}});var _P=y((zYe,YV)=>{"use strict";var Wxe=He(),Hxe=Ol(),zxe=Wxe("%Reflect.apply%",!0)||Hxe("%Function.prototype.apply%");YV.exports=function(e,t){var r=arguments.length>2?arguments[2]:[];return zxe(e,t,r)}});var ZV=y((GYe,XV)=>{XV.exports=require("util").inspect});var LP=y((VYe,sK)=>{var TP=typeof Map=="function"&&Map.prototype,PP=Object.getOwnPropertyDescriptor&&TP?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,Rw=TP&&PP&&typeof PP.get=="function"?PP.get:null,Gxe=TP&&Map.prototype.forEach,RP=typeof Set=="function"&&Set.prototype,kP=Object.getOwnPropertyDescriptor&&RP?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,kw=RP&&kP&&typeof kP.get=="function"?kP.get:null,Vxe=RP&&Set.prototype.forEach,Kxe=typeof WeakMap=="function"&&WeakMap.prototype,Lh=Kxe?WeakMap.prototype.has:null,Jxe=typeof WeakSet=="function"&&WeakSet.prototype,Mh=Jxe?WeakSet.prototype.has:null,Yxe=Boolean.prototype.valueOf,Xxe=Object.prototype.toString,Zxe=Function.prototype.toString,Qxe=String.prototype.match,e0e=typeof BigInt=="function"?BigInt.prototype.valueOf:null,QV=Object.getOwnPropertySymbols,t0e=typeof Symbol=="function"?Symbol.prototype.toString:null,r0e=Object.prototype.propertyIsEnumerable,IP=ZV().custom,FP=IP&&tK(IP)?IP:null;sK.exports=function i(e,t,r,n){var o=t||{};if(Al(o,"quoteStyle")&&o.quoteStyle!=="single"&&o.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Al(o,"maxStringLength")&&(typeof o.maxStringLength=="number"?o.maxStringLength<0&&o.maxStringLength!==Infinity:o.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var s=Al(o,"customInspect")?o.customInspect:!0;if(typeof s!="boolean")throw new TypeError('option "customInspect", if provided, must be `true` or `false`');if(Al(o,"indent")&&o.indent!==null&&o.indent!==" "&&!(parseInt(o.indent,10)===o.indent&&o.indent>0))throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`');if(typeof e=="undefined")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return iK(e,o);if(typeof e=="number")return e===0?Infinity/e>0?"0":"-0":String(e);if(typeof e=="bigint")return String(e)+"n";var a=typeof o.depth=="undefined"?5:o.depth;if(typeof r=="undefined"&&(r=0),r>=a&&a>0&&typeof e=="object")return OP(e)?"[Array]":"[Object]";var l=w0e(o,r);if(typeof n=="undefined")n=[];else if(rK(n,e)>=0)return"[Circular]";function u(P,A,R){if(A&&(n=n.slice(),n.push(A)),R){var M={depth:o.depth};return Al(o,"quoteStyle")&&(M.quoteStyle=o.quoteStyle),i(P,M,r+1,n)}return i(P,o,r+1,n)}if(typeof e=="function"){var c=p0e(e),f=Iw(e,u);return"[Function"+(c?": "+c:" (anonymous)")+"]"+(f.length>0?" { "+f.join(", ")+" }":"")}if(tK(e)){var p=t0e.call(e);return typeof e=="object"?qh(p):p}if(v0e(e)){for(var d="<"+String(e.nodeName).toLowerCase(),h=e.attributes||[],m=0;m",d}if(OP(e)){if(e.length===0)return"[]";var w=Iw(e,u);return l&&!b0e(w)?"["+AP(w,l)+"]":"[ "+w.join(", ")+" ]"}if(s0e(e)){var v=Iw(e,u);return v.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+v.join(", ")+" }"}if(typeof e=="object"&&s){if(FP&&typeof e[FP]=="function")return e[FP]();if(typeof e.inspect=="function")return e.inspect()}if(d0e(e)){var D=[];return Gxe.call(e,function(P,A){D.push(u(A,e,!0)+" => "+u(P,e))}),oK("Map",Rw.call(e),D,l)}if(m0e(e)){var x=[];return Vxe.call(e,function(P){x.push(u(P,e))}),oK("Set",kw.call(e),x,l)}if(h0e(e))return nK("WeakMap");if(g0e(e))return nK("WeakSet");if(l0e(e))return qh(u(Number(e)));if(u0e(e))return qh(u(e0e.call(e)));if(c0e(e))return qh(Yxe.call(e));if(a0e(e))return qh(u(String(e)));if(!n0e(e)&&!o0e(e)){var S=Iw(e,u);return S.length===0?"{}":l?"{"+AP(S,l)+"}":"{ "+S.join(", ")+" }"}return String(e)};function eK(i,e,t){var r=(t.quoteStyle||e)==="double"?'"':"'";return r+i+r}function i0e(i){return String(i).replace(/"/g,""")}function OP(i){return Xo(i)==="[object Array]"}function n0e(i){return Xo(i)==="[object Date]"}function o0e(i){return Xo(i)==="[object RegExp]"}function s0e(i){return Xo(i)==="[object Error]"}function tK(i){return Xo(i)==="[object Symbol]"}function a0e(i){return Xo(i)==="[object String]"}function l0e(i){return Xo(i)==="[object Number]"}function u0e(i){return Xo(i)==="[object BigInt]"}function c0e(i){return Xo(i)==="[object Boolean]"}var f0e=Object.prototype.hasOwnProperty||function(i){return i in this};function Al(i,e){return f0e.call(i,e)}function Xo(i){return Xxe.call(i)}function p0e(i){if(i.name)return i.name;var e=Qxe.call(Zxe.call(i),/^function\s*([\w$]+)/);return e?e[1]:null}function rK(i,e){if(i.indexOf)return i.indexOf(e);for(var t=0,r=i.length;te.maxStringLength){var t=i.length-e.maxStringLength,r="... "+t+" more character"+(t>1?"s":"");return iK(i.slice(0,e.maxStringLength),e)+r}var n=i.replace(/(['\\])/g,"\\$1").replace(/[\x00-\x1f]/g,y0e);return eK(n,"single",e)}function y0e(i){var e=i.charCodeAt(0),t={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return t?"\\"+t:"\\x"+(e<16?"0":"")+e.toString(16).toUpperCase()}function qh(i){return"Object("+i+")"}function nK(i){return i+" { ? }"}function oK(i,e,t,r){var n=r?AP(t,r):t.join(", ");return i+" ("+e+") {"+n+"}"}function b0e(i){for(var e=0;e=0)return!1;return!0}function w0e(i,e){var t;if(i.indent===" ")t=" ";else if(typeof i.indent=="number"&&i.indent>0)t=Array(i.indent+1).join(" ");else return null;return{base:t,prev:Array(e+1).join(t)}}function AP(i,e){if(i.length===0)return"";var t=` +`+e.prev+e.base;return t+i.join(","+t)+` +`+e.prev}function Iw(i,e){var t=OP(i),r=[];if(t){r.length=i.length;for(var n=0;n{"use strict";aK.exports=function(e){return typeof e=="string"||typeof e=="symbol"}});var uK=y((JYe,lK)=>{"use strict";lK.exports=function(e){if(e===null)return"Null";if(typeof e=="undefined")return"Undefined";if(typeof e=="function"||typeof e=="object")return"Object";if(typeof e=="number")return"Number";if(typeof e=="boolean")return"Boolean";if(typeof e=="string")return"String"}});var Nr=y((YYe,cK)=>{"use strict";var D0e=uK();cK.exports=function(e){return typeof e=="symbol"?"Symbol":typeof e=="bigint"?"BigInt":D0e(e)}});var Nh=y((XYe,pK)=>{"use strict";var x0e=He(),fK=x0e("%TypeError%"),S0e=LP(),C0e=lf(),E0e=Nr();pK.exports=function(e,t){if(E0e(e)!=="Object")throw new fK("Assertion failed: Type(O) is not Object");if(!C0e(t))throw new fK("Assertion failed: IsPropertyKey(P) is not true, got "+S0e(t));return e[t]}});var hK=y((ZYe,dK)=>{"use strict";var _0e=He(),T0e=_0e("%TypeError%");dK.exports=function(e,t){if(e==null)throw new T0e(t||"Cannot call method on "+e);return e}});var MP=y((QYe,mK)=>{"use strict";mK.exports=hK()});var vK=y((eXe,gK)=>{"use strict";var P0e=He(),R0e=P0e("%Object%"),k0e=MP();gK.exports=function(e){return k0e(e),R0e(e)}});var bK=y((tXe,yK)=>{"use strict";var I0e=He(),F0e=I0e("%TypeError%"),O0e=lf(),A0e=vK();yK.exports=function(e,t){if(!O0e(t))throw new F0e("Assertion failed: IsPropertyKey(P) is not true");var r=A0e(e);return r[t]}});var xK=y((rXe,DK)=>{"use strict";var wK=Function.prototype.toString,uf=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,qP,Fw;if(typeof uf=="function"&&typeof Object.defineProperty=="function")try{qP=Object.defineProperty({},"length",{get:function(){throw Fw}}),Fw={},uf(function(){throw 42},null,qP)}catch(i){i!==Fw&&(uf=null)}else uf=null;var L0e=/^\s*class\b/,NP=function(e){try{var t=wK.call(e);return L0e.test(t)}catch(r){return!1}},M0e=function(e){try{return NP(e)?!1:(wK.call(e),!0)}catch(t){return!1}},q0e=Object.prototype.toString,N0e="[object Function]",$0e="[object GeneratorFunction]",B0e=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";DK.exports=uf?function(e){if(!e||typeof e!="function"&&typeof e!="object")return!1;if(typeof e=="function"&&!e.prototype)return!0;try{uf(e,null,qP)}catch(t){if(t!==Fw)return!1}return!NP(e)}:function(e){if(!e||typeof e!="function"&&typeof e!="object")return!1;if(typeof e=="function"&&!e.prototype)return!0;if(B0e)return M0e(e);if(NP(e))return!1;var t=q0e.call(e);return t===N0e||t===$0e}});var Ow=y((iXe,SK)=>{"use strict";SK.exports=xK()});var _K=y((nXe,EK)=>{"use strict";var j0e=He(),CK=j0e("%TypeError%"),U0e=bK(),W0e=Ow(),H0e=lf();EK.exports=function(e,t){if(!H0e(t))throw new CK("Assertion failed: IsPropertyKey(P) is not true");var r=U0e(e,t);if(r!=null){if(!W0e(r))throw new CK(t+"is not a function");return r}}});var IK=y((oXe,kK)=>{"use strict";var z0e=fo()(),TK=z0e&&typeof Symbol.toStringTag=="symbol",PK,RK,$P,BP;TK&&(PK=Function.call.bind(Object.prototype.hasOwnProperty),RK=Function.call.bind(RegExp.prototype.exec),$P={},Aw=function(){throw $P},BP={toString:Aw,valueOf:Aw},typeof Symbol.toPrimitive=="symbol"&&(BP[Symbol.toPrimitive]=Aw));var Aw,G0e=Object.prototype.toString,V0e=Object.getOwnPropertyDescriptor,K0e="[object RegExp]";kK.exports=TK?function(e){if(!e||typeof e!="object")return!1;var t=V0e(e,"lastIndex"),r=t&&PK(t,"value");if(!r)return!1;try{RK(e,BP)}catch(n){return n===$P}}:function(e){return!e||typeof e!="object"&&typeof e!="function"?!1:G0e.call(e)===K0e}});var jP=y((sXe,FK)=>{"use strict";FK.exports=function(e){return!!e}});var LK=y((aXe,AK)=>{"use strict";var J0e=He(),OK=J0e("%Symbol.match%",!0),Y0e=IK(),X0e=jP();AK.exports=function(e){if(!e||typeof e!="object")return!1;if(OK){var t=e[OK];if(typeof t!="undefined")return X0e(t)}return Y0e(e)}});var Lw=y((lXe,qK)=>{"use strict";var MK=He(),Z0e=MK("%String%"),Q0e=MK("%TypeError%");qK.exports=function(e){if(typeof e=="symbol")throw new Q0e("Cannot convert a Symbol value to a string");return Z0e(e)}});var UP=y((uXe,BK)=>{"use strict";var NK=Dw(),$K=hP(),eSe=$K(NK("String.prototype.indexOf"));BK.exports=function(e,t){var r=NK(e,!!t);return typeof r=="function"&&eSe(e,".prototype.")>-1?$K(r):r}});var YP=y((cXe,WK)=>{"use strict";var ee,$h=TypeError,Ll=Object.getOwnPropertyDescriptor;if(Ll)try{Ll({},"")}catch(i){Ll=null}var WP=function(){throw new $h},tSe=Ll?function(){try{return arguments.callee,WP}catch(i){try{return Ll(arguments,"callee").get}catch(e){return WP}}}():WP,sa=fo()(),jn=Object.getPrototypeOf||function(i){return i.__proto__},Mw,HP=Mw?jn(Mw):ee,jK,zP=jK?jK.constructor:ee,Bh,GP=Bh?jn(Bh):ee,VP=Bh?Bh():ee,KP=typeof Uint8Array=="undefined"?ee:jn(Uint8Array),JP={"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?ee:ArrayBuffer,"%ArrayBufferPrototype%":typeof ArrayBuffer=="undefined"?ee:ArrayBuffer.prototype,"%ArrayIteratorPrototype%":sa?jn([][Symbol.iterator]()):ee,"%ArrayPrototype%":Array.prototype,"%ArrayProto_entries%":Array.prototype.entries,"%ArrayProto_forEach%":Array.prototype.forEach,"%ArrayProto_keys%":Array.prototype.keys,"%ArrayProto_values%":Array.prototype.values,"%AsyncFromSyncIteratorPrototype%":ee,"%AsyncFunction%":zP,"%AsyncFunctionPrototype%":zP?zP.prototype:ee,"%AsyncGenerator%":Bh?jn(VP):ee,"%AsyncGeneratorFunction%":GP,"%AsyncGeneratorPrototype%":GP?GP.prototype:ee,"%AsyncIteratorPrototype%":VP&&sa&&Symbol.asyncIterator?VP[Symbol.asyncIterator]():ee,"%Atomics%":typeof Atomics=="undefined"?ee:Atomics,"%Boolean%":Boolean,"%BooleanPrototype%":Boolean.prototype,"%DataView%":typeof DataView=="undefined"?ee:DataView,"%DataViewPrototype%":typeof DataView=="undefined"?ee:DataView.prototype,"%Date%":Date,"%DatePrototype%":Date.prototype,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Error,"%ErrorPrototype%":Error.prototype,"%eval%":eval,"%EvalError%":EvalError,"%EvalErrorPrototype%":EvalError.prototype,"%Float32Array%":typeof Float32Array=="undefined"?ee:Float32Array,"%Float32ArrayPrototype%":typeof Float32Array=="undefined"?ee:Float32Array.prototype,"%Float64Array%":typeof Float64Array=="undefined"?ee:Float64Array,"%Float64ArrayPrototype%":typeof Float64Array=="undefined"?ee:Float64Array.prototype,"%Function%":Function,"%FunctionPrototype%":Function.prototype,"%Generator%":Mw?jn(Mw()):ee,"%GeneratorFunction%":HP,"%GeneratorPrototype%":HP?HP.prototype:ee,"%Int8Array%":typeof Int8Array=="undefined"?ee:Int8Array,"%Int8ArrayPrototype%":typeof Int8Array=="undefined"?ee:Int8Array.prototype,"%Int16Array%":typeof Int16Array=="undefined"?ee:Int16Array,"%Int16ArrayPrototype%":typeof Int16Array=="undefined"?ee:Int8Array.prototype,"%Int32Array%":typeof Int32Array=="undefined"?ee:Int32Array,"%Int32ArrayPrototype%":typeof Int32Array=="undefined"?ee:Int32Array.prototype,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":sa?jn(jn([][Symbol.iterator]())):ee,"%JSON%":typeof JSON=="object"?JSON:ee,"%JSONParse%":typeof JSON=="object"?JSON.parse:ee,"%Map%":typeof Map=="undefined"?ee:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!sa?ee:jn(new Map()[Symbol.iterator]()),"%MapPrototype%":typeof Map=="undefined"?ee:Map.prototype,"%Math%":Math,"%Number%":Number,"%NumberPrototype%":Number.prototype,"%Object%":Object,"%ObjectPrototype%":Object.prototype,"%ObjProto_toString%":Object.prototype.toString,"%ObjProto_valueOf%":Object.prototype.valueOf,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?ee:Promise,"%PromisePrototype%":typeof Promise=="undefined"?ee:Promise.prototype,"%PromiseProto_then%":typeof Promise=="undefined"?ee:Promise.prototype.then,"%Promise_all%":typeof Promise=="undefined"?ee:Promise.all,"%Promise_reject%":typeof Promise=="undefined"?ee:Promise.reject,"%Promise_resolve%":typeof Promise=="undefined"?ee:Promise.resolve,"%Proxy%":typeof Proxy=="undefined"?ee:Proxy,"%RangeError%":RangeError,"%RangeErrorPrototype%":RangeError.prototype,"%ReferenceError%":ReferenceError,"%ReferenceErrorPrototype%":ReferenceError.prototype,"%Reflect%":typeof Reflect=="undefined"?ee:Reflect,"%RegExp%":RegExp,"%RegExpPrototype%":RegExp.prototype,"%Set%":typeof Set=="undefined"?ee:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!sa?ee:jn(new Set()[Symbol.iterator]()),"%SetPrototype%":typeof Set=="undefined"?ee:Set.prototype,"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?ee:SharedArrayBuffer,"%SharedArrayBufferPrototype%":typeof SharedArrayBuffer=="undefined"?ee:SharedArrayBuffer.prototype,"%String%":String,"%StringIteratorPrototype%":sa?jn(""[Symbol.iterator]()):ee,"%StringPrototype%":String.prototype,"%Symbol%":sa?Symbol:ee,"%SymbolPrototype%":sa?Symbol.prototype:ee,"%SyntaxError%":SyntaxError,"%SyntaxErrorPrototype%":SyntaxError.prototype,"%ThrowTypeError%":tSe,"%TypedArray%":KP,"%TypedArrayPrototype%":KP?KP.prototype:ee,"%TypeError%":$h,"%TypeErrorPrototype%":$h.prototype,"%Uint8Array%":typeof Uint8Array=="undefined"?ee:Uint8Array,"%Uint8ArrayPrototype%":typeof Uint8Array=="undefined"?ee:Uint8Array.prototype,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?ee:Uint8ClampedArray,"%Uint8ClampedArrayPrototype%":typeof Uint8ClampedArray=="undefined"?ee:Uint8ClampedArray.prototype,"%Uint16Array%":typeof Uint16Array=="undefined"?ee:Uint16Array,"%Uint16ArrayPrototype%":typeof Uint16Array=="undefined"?ee:Uint16Array.prototype,"%Uint32Array%":typeof Uint32Array=="undefined"?ee:Uint32Array,"%Uint32ArrayPrototype%":typeof Uint32Array=="undefined"?ee:Uint32Array.prototype,"%URIError%":URIError,"%URIErrorPrototype%":URIError.prototype,"%WeakMap%":typeof WeakMap=="undefined"?ee:WeakMap,"%WeakMapPrototype%":typeof WeakMap=="undefined"?ee:WeakMap.prototype,"%WeakSet%":typeof WeakSet=="undefined"?ee:WeakSet,"%WeakSetPrototype%":typeof WeakSet=="undefined"?ee:WeakSet.prototype},rSe=ia(),UK=rSe.call(Function.call,String.prototype.replace),iSe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,nSe=/\\(\\)?/g,oSe=function(e){var t=[];return UK(e,iSe,function(r,n,o,s){t[t.length]=o?UK(s,nSe,"$1"):n||r}),t},sSe=function(e,t){if(!(e in JP))throw new SyntaxError("intrinsic "+e+" does not exist!");if(typeof JP[e]=="undefined"&&!t)throw new $h("intrinsic "+e+" exists, but is not available. Please file an issue!");return JP[e]};WK.exports=function(e,t){if(typeof e!="string"||e.length===0)throw new TypeError("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof t!="boolean")throw new TypeError('"allowMissing" argument must be a boolean');for(var r=oSe(e),n=sSe("%"+(r.length>0?r[0]:"")+"%",t),o=1;o=r.length){var s=Ll(n,r[o]);if(!t&&!(r[o]in n))throw new $h("base intrinsic for "+e+" exists, but the property is not available.");n=s&&"get"in s&&!("originalValue"in s.get)?s.get:n[r[o]]}else n=n[r[o]];return n}});var KK=y((fXe,Nw)=>{"use strict";var XP=ia(),qw=YP(),HK=qw("%Function.prototype.apply%"),zK=qw("%Function.prototype.call%"),GK=qw("%Reflect.apply%",!0)||XP.call(zK,HK),jh=qw("%Object.defineProperty%",!0);if(jh)try{jh({},"a",{value:1})}catch(i){jh=null}Nw.exports=function(){return GK(XP,zK,arguments)};var VK=function(){return GK(XP,HK,arguments)};jh?jh(Nw.exports,"apply",{value:VK}):Nw.exports.apply=VK});var ZP=y((pXe,JK)=>{"use strict";var aSe=Object,lSe=TypeError;JK.exports=function(){if(this!=null&&this!==aSe(this))throw new lSe("RegExp.prototype.flags getter called on non-object");var e="";return this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.sticky&&(e+="y"),e}});var QP=y((dXe,YK)=>{"use strict";var uSe=ZP(),cSe=Il().supportsDescriptors,fSe=Object.getOwnPropertyDescriptor,pSe=TypeError;YK.exports=function(){if(!cSe)throw new pSe("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");if(/a/mig.flags==="gim"){var e=fSe(RegExp.prototype,"flags");if(e&&typeof e.get=="function"&&typeof/a/.dotAll=="boolean")return e.get}return uSe}});var QK=y((hXe,ZK)=>{"use strict";var dSe=Il().supportsDescriptors,hSe=QP(),mSe=Object.getOwnPropertyDescriptor,gSe=Object.defineProperty,vSe=TypeError,XK=Object.getPrototypeOf,ySe=/a/;ZK.exports=function(){if(!dSe||!XK)throw new vSe("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=hSe(),t=XK(ySe),r=mSe(t,"flags");return(!r||r.get!==e)&&gSe(t,"flags",{configurable:!0,enumerable:!1,get:e}),e}});var eR=y((mXe,rJ)=>{"use strict";var bSe=Il(),wSe=KK(),eJ=ZP(),DSe=QP(),xSe=QK(),tJ=wSe(eJ);bSe(tJ,{getPolyfill:DSe,implementation:eJ,shim:xSe});rJ.exports=tJ});var $w=y((gXe,iJ)=>{"use strict";iJ.exports=Number.isNaN||function(e){return e!==e}});var tR=y((vXe,oJ)=>{"use strict";var nJ=$w();oJ.exports=function(e,t){return e===t?e===0?1/e==1/t:!0:nJ(e)&&nJ(t)}});var rR=y((yXe,uJ)=>{"use strict";var SSe=He(),Bw=SSe("%TypeError%"),CSe=lf(),sJ=tR(),aJ=Nr(),lJ=function(){try{return delete[].length,!0}catch(i){return!1}}();uJ.exports=function(e,t,r,n){if(aJ(e)!=="Object")throw new Bw("Assertion failed: `O` must be an Object");if(!CSe(t))throw new Bw("Assertion failed: `P` must be a Property Key");if(aJ(n)!=="Boolean")throw new Bw("Assertion failed: `Throw` must be a Boolean");if(n){if(e[t]=r,lJ&&!sJ(e[t],r))throw new Bw("Attempted to assign to readonly property.");return!0}else try{return e[t]=r,lJ?sJ(e[t],r):!0}catch(o){return!1}}});var fJ=y((bXe,cJ)=>{"use strict";var ESe=He(),_Se=Yo(),TSe=ESe("%TypeError%");cJ.exports=function(e,t){if(e.Type(t)!=="Object")return!1;var r={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in t)if(_Se(t,n)&&!r[n])return!1;if(e.IsDataDescriptor(t)&&e.IsAccessorDescriptor(t))throw new TSe("Property Descriptors may not be both accessor and data descriptors");return!0}});var dJ=y((wXe,pJ)=>{"use strict";var PSe=He(),Uh=PSe("%Object.defineProperty%",!0);if(Uh)try{Uh({},"a",{value:1})}catch(i){Uh=null}var RSe=Ol(),kSe=RSe("Object.prototype.propertyIsEnumerable");pJ.exports=function(e,t,r,n,o,s){if(!Uh){if(!e(s)||!s["[[Configurable]]"]||!s["[[Writable]]"]||o in n&&kSe(n,o)!==!!s["[[Enumerable]]"])return!1;var a=s["[[Value]]"];return n[o]=a,t(n[o],a)}return Uh(n,o,r(s)),!0}});var Uw=y((DXe,gJ)=>{"use strict";var hJ=He(),mJ=hJ("%TypeError%"),ISe=hJ("%SyntaxError%"),jw=Yo(),FSe={"Property Descriptor":function(e,t){if(e(t)!=="Object")return!1;var r={"[[Configurable]]":!0,"[[Enumerable]]":!0,"[[Get]]":!0,"[[Set]]":!0,"[[Value]]":!0,"[[Writable]]":!0};for(var n in t)if(jw(t,n)&&!r[n])return!1;var o=jw(t,"[[Value]]"),s=jw(t,"[[Get]]")||jw(t,"[[Set]]");if(o&&s)throw new mJ("Property Descriptors may not be both accessor and data descriptors");return!0}};gJ.exports=function(e,t,r,n){var o=FSe[t];if(typeof o!="function")throw new ISe("unknown record type: "+t);if(!o(e,n))throw new mJ(r+" must be a "+t)}});var yJ=y((xXe,vJ)=>{"use strict";var OSe=Uw(),ASe=Nr();vJ.exports=function(e){if(typeof e=="undefined")return e;OSe(ASe,"Property Descriptor","Desc",e);var t={};return"[[Value]]"in e&&(t.value=e["[[Value]]"]),"[[Writable]]"in e&&(t.writable=e["[[Writable]]"]),"[[Get]]"in e&&(t.get=e["[[Get]]"]),"[[Set]]"in e&&(t.set=e["[[Set]]"]),"[[Enumerable]]"in e&&(t.enumerable=e["[[Enumerable]]"]),"[[Configurable]]"in e&&(t.configurable=e["[[Configurable]]"]),t}});var DJ=y((SXe,wJ)=>{"use strict";var bJ=Yo(),LSe=Uw(),MSe=Nr();wJ.exports=function(e){return!(typeof e=="undefined"||(LSe(MSe,"Property Descriptor","Desc",e),!bJ(e,"[[Get]]")&&!bJ(e,"[[Set]]")))}});var CJ=y((CXe,SJ)=>{"use strict";var xJ=Yo(),qSe=Uw(),NSe=Nr();SJ.exports=function(e){return!(typeof e=="undefined"||(qSe(NSe,"Property Descriptor","Desc",e),!xJ(e,"[[Value]]")&&!xJ(e,"[[Writable]]")))}});var TJ=y((EXe,_J)=>{"use strict";var po=Yo(),$Se=He(),Ww=$Se("%TypeError%"),BSe=Nr(),iR=jP(),EJ=Ow();_J.exports=function(e){if(BSe(e)!=="Object")throw new Ww("ToPropertyDescriptor requires an object");var t={};if(po(e,"enumerable")&&(t["[[Enumerable]]"]=iR(e.enumerable)),po(e,"configurable")&&(t["[[Configurable]]"]=iR(e.configurable)),po(e,"value")&&(t["[[Value]]"]=e.value),po(e,"writable")&&(t["[[Writable]]"]=iR(e.writable)),po(e,"get")){var r=e.get;if(typeof r!="undefined"&&!EJ(r))throw new Ww("getter must be a function");t["[[Get]]"]=r}if(po(e,"set")){var n=e.set;if(typeof n!="undefined"&&!EJ(n))throw new Ww("setter must be a function");t["[[Set]]"]=n}if((po(t,"[[Get]]")||po(t,"[[Set]]"))&&(po(t,"[[Value]]")||po(t,"[[Writable]]")))throw new Ww("Invalid property descriptor. Cannot both specify accessors and a value or writable attribute");return t}});var IJ=y((_Xe,kJ)=>{"use strict";var jSe=He(),nR=jSe("%TypeError%"),PJ=fJ(),USe=dJ(),WSe=yJ(),RJ=DJ(),oR=CJ(),HSe=lf(),zSe=tR(),GSe=TJ(),sR=Nr();kJ.exports=function(e,t,r){if(sR(e)!=="Object")throw new nR("Assertion failed: Type(O) is not Object");if(!HSe(t))throw new nR("Assertion failed: IsPropertyKey(P) is not true");var n=PJ({Type:sR,IsDataDescriptor:oR,IsAccessorDescriptor:RJ},r)?r:GSe(r);if(!PJ({Type:sR,IsDataDescriptor:oR,IsAccessorDescriptor:RJ},n))throw new nR("Assertion failed: Desc is not a valid Property Descriptor");return USe(oR,zSe,WSe,e,t,n)}});var OJ=y((TXe,uR)=>{"use strict";var VSe=He(),FJ=VSe("%Reflect.construct%",!0),Hw=IJ();try{Hw({},"",{"[[Get]]":function(){}})}catch(i){Hw=null}Hw&&FJ?(aR={},lR={},Hw(lR,"length",{"[[Get]]":function(){throw aR},"[[Enumerable]]":!0}),uR.exports=function(e){try{FJ(e,lR)}catch(t){return t===aR}}):uR.exports=function(e){return typeof e=="function"&&!!e.prototype};var aR,lR});var NJ=y((PXe,qJ)=>{"use strict";var AJ=He(),LJ=AJ("%Symbol.species%",!0),cR=AJ("%TypeError%"),KSe=OJ(),MJ=Nr();qJ.exports=function(e,t){if(MJ(e)!=="Object")throw new cR("Assertion failed: Type(O) is not Object");var r=e.constructor;if(typeof r=="undefined")return t;if(MJ(r)!=="Object")throw new cR("O.constructor is not an Object");var n=LJ?r[LJ]:void 0;if(n==null)return t;if(KSe(n))return n;throw new cR("no constructor found")}});var fR=y((RXe,BJ)=>{"use strict";var $J=He(),JSe=$J("%Math%"),YSe=$J("%Number%");BJ.exports=YSe.MAX_SAFE_INTEGER||JSe.pow(2,53)-1});var UJ=y((kXe,jJ)=>{"use strict";var XSe=He(),ZSe=XSe("%Math.abs%");jJ.exports=function(e){return ZSe(e)}});var HJ=y((IXe,WJ)=>{"use strict";var QSe=Math.floor;WJ.exports=function(e){return QSe(e)}});var GJ=y((FXe,zJ)=>{"use strict";zJ.exports=function(e){return+e}});var pR=y((OXe,VJ)=>{"use strict";var eCe=Number.isNaN||function(i){return i!==i};VJ.exports=Number.isFinite||function(i){return typeof i=="number"&&!eCe(i)&&i!==Infinity&&i!==-Infinity}});var JJ=y((AXe,KJ)=>{"use strict";KJ.exports=function(e){return e>=0?1:-1}});var XJ=y((LXe,YJ)=>{"use strict";var tCe=UJ(),rCe=HJ(),iCe=GJ(),nCe=$w(),oCe=pR(),sCe=JJ();YJ.exports=function(e){var t=iCe(e);return nCe(t)?0:t===0||!oCe(t)?t:sCe(t)*rCe(tCe(t))}});var QJ=y((MXe,ZJ)=>{"use strict";var aCe=He(),lCe=aCe("RegExp.prototype.test"),uCe=EP();ZJ.exports=function(e){return uCe(lCe,e)}});var tY=y((qXe,eY)=>{"use strict";eY.exports=function(e){return e===null||typeof e!="function"&&typeof e!="object"}});var iY=y((NXe,rY)=>{"use strict";rY.exports=function(e){return e===null||typeof e!="function"&&typeof e!="object"}});var aY=y(($Xe,sY)=>{"use strict";var nY=Function.prototype.toString,cCe=/^\s*class\b/,oY=function(e){try{var t=nY.call(e);return cCe.test(t)}catch(r){return!1}},fCe=function(e){try{return oY(e)?!1:(nY.call(e),!0)}catch(t){return!1}},pCe=Object.prototype.toString,dCe="[object Function]",hCe="[object GeneratorFunction]",mCe=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";sY.exports=function(e){if(!e||typeof e!="function"&&typeof e!="object")return!1;if(typeof e=="function"&&!e.prototype)return!0;if(mCe)return fCe(e);if(oY(e))return!1;var t=pCe.call(e);return t===dCe||t===hCe}});var uY=y((BXe,lY)=>{"use strict";var gCe=Date.prototype.getDay,vCe=function(e){try{return gCe.call(e),!0}catch(t){return!1}},yCe=Object.prototype.toString,bCe="[object Date]",wCe=typeof Symbol=="function"&&typeof Symbol.toStringTag=="symbol";lY.exports=function(e){return typeof e!="object"||e===null?!1:wCe?vCe(e):yCe.call(e)===bCe}});var dY=y((jXe,dR)=>{"use strict";var DCe=Object.prototype.toString,xCe=fo()();xCe?(cY=Symbol.prototype.toString,fY=/^Symbol\(.*\)$/,pY=function(e){return typeof e.valueOf()!="symbol"?!1:fY.test(cY.call(e))},dR.exports=function(e){if(typeof e=="symbol")return!0;if(DCe.call(e)!=="[object Symbol]")return!1;try{return pY(e)}catch(t){return!1}}):dR.exports=function(e){return!1};var cY,fY,pY});var vY=y((UXe,gY)=>{"use strict";var SCe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol",hR=iY(),hY=aY(),CCe=uY(),mY=dY(),ECe=function(e,t){if(typeof e=="undefined"||e===null)throw new TypeError("Cannot call method on "+e);if(typeof t!="string"||t!=="number"&&t!=="string")throw new TypeError('hint must be "string" or "number"');var r=t==="string"?["toString","valueOf"]:["valueOf","toString"],n,o,s;for(s=0;s1&&(arguments[1]===String?t="string":arguments[1]===Number&&(t="number"));var r;if(SCe&&(Symbol.toPrimitive?r=_Ce(e,Symbol.toPrimitive):mY(e)&&(r=Symbol.prototype.valueOf)),typeof r!="undefined"){var n=r.call(e,t);if(hR(n))return n;throw new TypeError("unable to convert exotic object to primitive")}return t==="default"&&(CCe(e)||mY(e))&&(t="string"),ECe(e,t==="default"?"number":t)}});var wY=y((WXe,bY)=>{"use strict";var yY=vY();bY.exports=function(e){return arguments.length>1?yY(e,arguments[1]):yY(e)}});var TY=y((HXe,_Y)=>{"use strict";var zw=He(),TCe=zw("%TypeError%"),DY=zw("%Number%"),PCe=zw("%RegExp%"),xY=zw("%parseInt%"),SY=Ol(),Gw=QJ(),RCe=tY(),CY=SY("String.prototype.slice"),kCe=Gw(/^0b[01]+$/i),ICe=Gw(/^0o[0-7]+$/i),FCe=Gw(/^[-+]0x[0-9a-f]+$/i),OCe=["\x85","\u200B","\uFFFE"].join(""),ACe=new PCe("["+OCe+"]","g"),LCe=Gw(ACe),EY=[` +\v\f\r \xA0\u1680\u180E\u2000\u2001\u2002\u2003`,"\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028","\u2029\uFEFF"].join(""),MCe=new RegExp("(^["+EY+"]+)|(["+EY+"]+$)","g"),qCe=SY("String.prototype.replace"),NCe=function(i){return qCe(i,MCe,"")},$Ce=wY();_Y.exports=function i(e){var t=RCe(e)?e:$Ce(e,DY);if(typeof t=="symbol")throw new TCe("Cannot convert a Symbol value to a number");if(typeof t=="string"){if(kCe(t))return i(xY(CY(t,2),2));if(ICe(t))return i(xY(CY(t,2),8));if(LCe(t)||FCe(t))return NaN;var r=NCe(t);if(r!==t)return i(r)}return DY(t)}});var RY=y((zXe,PY)=>{"use strict";var BCe=XJ(),jCe=TY();PY.exports=function(e){var t=jCe(e);return t!==0&&(t=BCe(t)),t===0?0:t}});var mR=y((GXe,IY)=>{"use strict";var kY=fR(),UCe=RY();IY.exports=function(e){var t=UCe(e);return t<=0?0:t>kY?kY:t}});var gR=y((VXe,FY)=>{"use strict";FY.exports=function(e){return typeof e=="number"&&e>=55296&&e<=56319}});var vR=y((KXe,OY)=>{"use strict";OY.exports=function(e){return typeof e=="number"&&e>=56320&&e<=57343}});var qY=y((JXe,MY)=>{"use strict";var AY=He(),WCe=AY("%TypeError%"),LY=AY("%String.fromCharCode%"),HCe=gR(),zCe=vR();MY.exports=function(e,t){if(!HCe(e)||!zCe(t))throw new WCe("Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code");return LY(e)+LY(t)}});var WY=y((YXe,UY)=>{"use strict";var GCe=He(),NY=GCe("%TypeError%"),$Y=Ol(),VCe=gR(),BY=vR(),KCe=Nr(),JCe=qY(),YCe=$Y("String.prototype.charAt"),jY=$Y("String.prototype.charCodeAt");UY.exports=function(e,t){if(KCe(e)!=="String")throw new NY("Assertion failed: `string` must be a String");var r=e.length;if(t<0||t>=r)throw new NY("Assertion failed: `position` must be >= 0, and < the length of `string`");var n=jY(e,t),o=YCe(e,t),s=VCe(n),a=BY(n);if(!s&&!a)return{"[[CodePoint]]":o,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!1};if(a||t+1===r)return{"[[CodePoint]]":o,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!0};var l=jY(e,t+1);return BY(l)?{"[[CodePoint]]":JCe(n,l),"[[CodeUnitCount]]":2,"[[IsUnpairedSurrogate]]":!1}:{"[[CodePoint]]":o,"[[CodeUnitCount]]":1,"[[IsUnpairedSurrogate]]":!0}}});var zY=y((XXe,HY)=>{"use strict";var XCe=He(),ZCe=XCe("%Math.abs%");HY.exports=function(e){return ZCe(e)}});var VY=y((ZXe,GY)=>{"use strict";var QCe=Math.floor;GY.exports=function(e){return QCe(e)}});var JY=y((QXe,KY)=>{"use strict";var eEe=zY(),tEe=VY(),rEe=$w(),iEe=pR();KY.exports=function(e){if(typeof e!="number"||rEe(e)||!iEe(e))return!1;var t=eEe(e);return tEe(t)===t}});var ZY=y((eZe,XY)=>{"use strict";var nEe=He(),oEe=WY(),sEe=JY(),YY=Nr(),aEe=fR(),yR=nEe("%TypeError%");XY.exports=function(e,t,r){if(YY(e)!=="String")throw new yR("Assertion failed: `S` must be a String");if(!sEe(t)||t<0||t>aEe)throw new yR("Assertion failed: `length` must be an integer >= 0 and <= 2**53");if(YY(r)!=="Boolean")throw new yR("Assertion failed: `unicode` must be a Boolean");if(!r)return t+1;var n=e.length;if(t+1>=n)return t+1;var o=oEe(e,t);return t+o["[[CodeUnitCount]]"]}});var eX=y((tZe,QY)=>{"use strict";var lEe=He(),uEe=lEe("%TypeError%"),cEe=Nr();QY.exports=function(e,t){if(cEe(t)!=="Boolean")throw new uEe("Assertion failed: Type(done) is not Boolean");return{value:e,done:t}}});var iX=y((rZe,rX)=>{"use strict";var fEe=He(),tX=fEe("%Array%"),pEe=!tX.isArray&&Ol()("Object.prototype.toString");rX.exports=tX.isArray||function(e){return pEe(e)==="[object Array]"}});var lX=y((iZe,aX)=>{"use strict";var bR=He(),nX=bR("%Object.create%",!0),oX=bR("%TypeError%"),sX=bR("%SyntaxError%"),dEe=iX(),hEe=Nr(),mEe=!({__proto__:null}instanceof Object);aX.exports=function(e){if(e!==null&&hEe(e)!=="Object")throw new oX("Assertion failed: `proto` must be null or an object");var t=arguments.length<2?[]:arguments[1];if(!dEe(t))throw new oX("Assertion failed: `additionalInternalSlotsList` must be an Array");if(t.length>0)throw new sX("es-abstract does not yet support internal slots");if(nX)return nX(e);if(mEe)return{__proto__:e};if(e===null)throw new sX("native Object.create support is required to create null objects");var r=function(){};return r.prototype=e,new r}});var cX=y((nZe,uX)=>{"use strict";var gEe=He(),wR=gEe("%TypeError%"),vEe=Ol()("RegExp.prototype.exec"),yEe=_P(),bEe=Nh(),wEe=Ow(),DR=Nr();uX.exports=function(e,t){if(DR(e)!=="Object")throw new wR("Assertion failed: `R` must be an Object");if(DR(t)!=="String")throw new wR("Assertion failed: `S` must be a String");var r=bEe(e,"exec");if(wEe(r)){var n=yEe(r,e,[t]);if(n===null||DR(n)==="Object")return n;throw new wR('"exec" method must return `null` or an Object')}return vEe(e,t)}});var pX=y((oZe,fX)=>{"use strict";var xR=Dw(),cf=UP(),DEe=LP(),xEe=xR("%TypeError%"),Vw=xR("%WeakMap%",!0),Kw=xR("%Map%",!0),SEe=cf("WeakMap.prototype.get",!0),CEe=cf("WeakMap.prototype.set",!0),EEe=cf("WeakMap.prototype.has",!0),_Ee=cf("Map.prototype.get",!0),TEe=cf("Map.prototype.set",!0),PEe=cf("Map.prototype.has",!0),SR=function(i,e){for(var t=i,r;(r=t.next)!==null;t=r)if(r.key===e)return t.next=r.next,r.next=i.next,i.next=r,r},REe=function(i,e){var t=SR(i,e);return t&&t.value},kEe=function(i,e,t){var r=SR(i,e);r?r.value=t:i.next={key:e,next:i.next,value:t}},IEe=function(i,e){return!!SR(i,e)};fX.exports=function(){var e,t,r,n={assert:function(o){if(!n.has(o))throw new xEe("Side channel does not contain "+DEe(o))},get:function(o){if(Vw&&o&&(typeof o=="object"||typeof o=="function")){if(e)return SEe(e,o)}else if(Kw){if(t)return _Ee(t,o)}else if(r)return REe(r,o)},has:function(o){if(Vw&&o&&(typeof o=="object"||typeof o=="function")){if(e)return EEe(e,o)}else if(Kw){if(t)return PEe(t,o)}else if(r)return IEe(r,o);return!1},set:function(o,s){Vw&&o&&(typeof o=="object"||typeof o=="function")?(e||(e=new Vw),CEe(e,o,s)):Kw?(t||(t=new Kw),TEe(t,o,s)):(r||(r={key:{},next:null}),kEe(r,o,s))}};return n}});var mX=y((sZe,hX)=>{"use strict";var FEe=YP(),OEe=Yo(),Wh=pX()(),aa=FEe("%TypeError%"),dX={assert:function(i,e){if(!i||typeof i!="object"&&typeof i!="function")throw new aa("`O` is not an object");if(typeof e!="string")throw new aa("`slot` must be a string");Wh.assert(i)},get:function(i,e){if(!i||typeof i!="object"&&typeof i!="function")throw new aa("`O` is not an object");if(typeof e!="string")throw new aa("`slot` must be a string");var t=Wh.get(i);return t&&t["$"+e]},has:function(i,e){if(!i||typeof i!="object"&&typeof i!="function")throw new aa("`O` is not an object");if(typeof e!="string")throw new aa("`slot` must be a string");var t=Wh.get(i);return!!t&&OEe(t,"$"+e)},set:function(i,e,t){if(!i||typeof i!="object"&&typeof i!="function")throw new aa("`O` is not an object");if(typeof e!="string")throw new aa("`slot` must be a string");var r=Wh.get(i);r||(r={},Wh.set(i,r)),r["$"+e]=t}};Object.freeze&&Object.freeze(dX);hX.exports=dX});var wX=y((aZe,bX)=>{"use strict";var gX=Il(),AEe=ZY(),Jw=eX(),vX=Nh(),LEe=He(),MEe=lX(),qEe=cX(),NEe=rR(),$Ee=mR(),BEe=Lw(),Yw=Nr(),jEe=fo()(),br=mX(),yX,Zo=function(e,t,r,n){if(Yw(t)!=="String")throw new TypeError("S must be a string");if(Yw(r)!=="Boolean")throw new TypeError("global must be a boolean");if(Yw(n)!=="Boolean")throw new TypeError("fullUnicode must be a boolean");br.set(this,"[[IteratingRegExp]]",e),br.set(this,"[[IteratedString]]",t),br.set(this,"[[Global]]",r),br.set(this,"[[Unicode]]",n),br.set(this,"[[Done]]",!1)},CR=LEe("%IteratorPrototype%",!0);CR&&(Zo.prototype=MEe(CR));gX(Zo.prototype,{next:function(){var e=this;if(Yw(e)!=="Object")throw new TypeError("receiver must be an object");if(!(e instanceof Zo)||!br.has(e,"[[IteratingRegExp]]")||!br.has(e,"[[IteratedString]]")||!br.has(e,"[[Global]]")||!br.has(e,"[[Unicode]]")||!br.has(e,"[[Done]]"))throw new TypeError('"this" value must be a RegExpStringIterator instance');if(br.get(e,"[[Done]]"))return Jw(yX,!0);var t=br.get(e,"[[IteratingRegExp]]"),r=br.get(e,"[[IteratedString]]"),n=br.get(e,"[[Global]]"),o=br.get(e,"[[Unicode]]"),s=qEe(t,r);if(s===null)return br.set(e,"[[Done]]",!0),Jw(yX,!0);if(n){var a=BEe(vX(s,"0"));if(a===""){var l=$Ee(vX(t,"lastIndex")),u=AEe(r,l,o);NEe(t,"lastIndex",u,!0)}return Jw(s,!1)}return br.set(e,"[[Done]]",!0),Jw(s,!1)}});jEe&&(ER=Object.defineProperty,Symbol.toStringTag&&(ER?ER(Zo.prototype,Symbol.toStringTag,{configurable:!0,enumerable:!1,value:"RegExp String Iterator",writable:!1}):Zo.prototype[Symbol.toStringTag]="RegExp String Iterator"),!CR&&Symbol.iterator&&(Xw={},Xw[Symbol.iterator]=Zo.prototype[Symbol.iterator]||function(){return this},_R={},_R[Symbol.iterator]=function(){return Zo.prototype[Symbol.iterator]!==Xw[Symbol.iterator]},gX(Zo.prototype,Xw,_R)));var ER,Xw,_R;bX.exports=Zo});var TX=y((lZe,_X)=>{"use strict";var DX=Nh(),UEe=rR(),WEe=NJ(),HEe=mR(),xX=Lw(),Zw=Nr(),zEe=eR(),GEe=wX(),SX=RegExp,VEe=function(e,t,r,n){if(Zw(t)!=="String")throw new TypeError('"S" value must be a String');if(Zw(r)!=="Boolean")throw new TypeError('"global" value must be a Boolean');if(Zw(n)!=="Boolean")throw new TypeError('"fullUnicode" value must be a Boolean');var o=new GEe(e,t,r,n);return o},KEe="flags"in RegExp.prototype,JEe=function(e,t){var r,n="flags"in t?DX(t,"flags"):xX(zEe(t));return KEe&&typeof n=="string"?r=new e(t,n):e===SX?r=new e(t.source,n):r=new e(t,n),{flags:n,matcher:r}},TR=function(e){var t=this;if(Zw(t)!=="Object")throw new TypeError('"this" value must be an Object');var r=xX(e),n=WEe(t,SX),o=JEe(n,t),s=o.flags,a=o.matcher,l=HEe(DX(t,"lastIndex"));UEe(a,"lastIndex",l,!0);var u=s.indexOf("g")>-1,c=s.indexOf("u")>-1;return VEe(a,r,u,c)},CX=Object.defineProperty,EX=Object.getOwnPropertyDescriptor;CX&&EX&&(PR=EX(TR,"name"),PR&&PR.configurable&&CX(TR,"name",{value:"[Symbol.matchAll]"}));var PR;_X.exports=TR});var RR=y((uZe,PX)=>{"use strict";var YEe=fo()(),XEe=TX();PX.exports=function(){return!YEe||typeof Symbol.matchAll!="symbol"||typeof RegExp.prototype[Symbol.matchAll]!="function"?XEe:RegExp.prototype[Symbol.matchAll]}});var kR=y((cZe,AX)=>{"use strict";var RX=_P(),ZEe=Nh(),QEe=_K(),kX=LK(),IX=Lw(),FX=MP(),e_e=UP(),t_e=fo()(),r_e=eR(),i_e=e_e("String.prototype.indexOf"),n_e=RR(),OX=function(e){var t=n_e();if(t_e&&typeof Symbol.matchAll=="symbol"){var r=QEe(e,Symbol.matchAll);return r===RegExp.prototype[Symbol.matchAll]&&r!==t?t:r}if(kX(e))return t};AX.exports=function(e){var t=FX(this);if(typeof e!="undefined"&&e!==null){var r=kX(e);if(r){var n="flags"in e?ZEe(e,"flags"):r_e(e);if(FX(n),i_e(IX(n),"g")<0)throw new TypeError("matchAll requires a global regular expression")}var o=OX(e);if(typeof o!="undefined")return RX(o,e,[t])}var s=IX(t),a=new RegExp(e,"g");return RX(OX(a),a,[s])}});var IR=y((fZe,LX)=>{"use strict";var o_e=kR();LX.exports=function(){if(String.prototype.matchAll)try{"".matchAll(RegExp.prototype)}catch(e){return String.prototype.matchAll}return o_e}});var $X=y((pZe,NX)=>{"use strict";var FR=Il(),s_e=fo()(),a_e=IR(),l_e=RR(),MX=Object.defineProperty,qX=Object.getOwnPropertyDescriptor;NX.exports=function(){var e=a_e();if(FR(String.prototype,{matchAll:e},{matchAll:function(){return String.prototype.matchAll!==e}}),s_e){var t=Symbol.matchAll||(Symbol.for?Symbol.for("Symbol.matchAll"):Symbol("Symbol.matchAll"));if(FR(Symbol,{matchAll:t},{matchAll:function(){return Symbol.matchAll!==t}}),MX&&qX){var r=qX(Symbol,t);(!r||r.configurable)&&MX(Symbol,t,{configurable:!1,enumerable:!1,value:t,writable:!1})}var n=l_e(),o={};o[t]=n;var s={};s[t]=function(){return RegExp.prototype[t]!==n},FR(RegExp.prototype,o,s)}return e}});var WX=y((dZe,UX)=>{"use strict";var u_e=hP(),c_e=Il(),BX=kR(),f_e=IR(),p_e=$X(),jX=u_e(BX);c_e(jX,{getPolyfill:f_e,implementation:BX,shim:p_e});UX.exports=jX});function zX(i,e){if(!e.length)return null;let t=e.length-1,r=e[t];if(r.text==i)return r;for(;t>=0;){let n=e[t];if(n.text==i)return n;t--}return null}function OR(i,e){let t=i.selectionRange,r=e.selectionRange;return t.start.liner.start.line?1:t.start.character-r.start.character}function AR(i,e,t){let{name:r,selectionRange:n,kind:o,children:s,range:a}=e,{start:l}=n;if(i.push({col:l.character+1,lnum:l.line+1,text:r,level:t,kind:uo(o),range:a,selectionRange:n}),s&&s.length){s.sort(OR);for(let u of s)AR(i,u,t+1)}}function GX(i,e){let t=i.location.range.start,r=e.location.range.start,n=t.line-r.line;return n==0?t.character-r.character:n}function d_e(i){return i&&!i.hasOwnProperty("location")}function LR(i){return d_e(i[0])}function VX(i){return!!(Qw.MarkupContent.is(i)&&i.kind==Qw.MarkupKind.Markdown)}function ff(i,e,t,r=!1){let n=e.trim();!n.length||(r&&t!=="markdown"&&(n="``` "+t+` +`+n+"\n```"),i.push({content:n,filetype:t}))}async function Je(i){let{changedtick:e}=i;await i.patchChange(),e!=i.changedtick&&await nt(50)}function Hh(i){let e=zh(i);return`${MR(e.red.toString(16))}${MR(e.green.toString(16))}${MR(e.blue.toString(16))}`}function MR(i){return i.length==1?`0${i}`:i}function zh(i){let{red:e,green:t,blue:r}=i;return{red:Math.round(e*255),green:Math.round(t*255),blue:Math.round(r*255)}}function KX(i){let e=[i.red,i.green,i.blue],t=[];for(let n=0;n{Qw=E(G());ye();Dh();HX=E(WX());HX.default.shim()});var pf,RZe,eD,JX=I(()=>{el();pf=E(G());$n();ie();Te();ht();la();RZe=W()("handler-codeActions"),eD=class{constructor(e,t){this.nvim=e;this.handler=t;t.addDisposable(be.registerCommand("editor.action.organizeImport",async r=>{await this.organizeImport(r)}))}async codeActionRange(e,t,r){let{doc:n}=await this.handler.getCurrentState();await Je(n);let o=n.getline(t-1),s=pf.Range.create(e-1,0,t-1,o.length),a=await this.getCodeActions(n,s,r?[r]:null);if(!a||a.length==0){T.showMessage(`No${r?" "+r:""} code action available`,"warning");return}let l=await T.showMenuPicker(a.map(c=>c.title),"Choose action"),u=a[l];u&&await this.applyCodeAction(u)}async organizeImport(e){e||(e=await this.nvim.call("bufnr",["%"]));let t=b.getDocument(e);if(!t||!t.attached)throw new Error(`buffer ${e} not attached`);await Je(t);let r=await this.getCodeActions(t,void 0,[pf.CodeActionKind.SourceOrganizeImports]);if(r&&r.length){await this.applyCodeAction(r[0]);return}throw new Error("Organize import action not found.")}async getCodeActions(e,t,r){t=t||pf.Range.create(0,0,e.lineCount,0);let o={diagnostics:At.getDiagnosticsInRange(e.textDocument,t)};r&&Array.isArray(r)&&(o.only=r);let s=await this.handler.withRequestToken("code action",a=>B.getCodeActions(e.textDocument,t,o,a));return!s||s.length==0?[]:(s=s.filter(a=>!a.disabled),s.sort((a,l)=>a.isPreferred&&!l.isPreferred?-1:l.isPreferred&&!a.isPreferred?1:0),s)}get floatActions(){return b.floatSupported?b.getConfiguration("coc.preferences").get("floatActions",!0):!1}async doCodeAction(e,t){let{doc:r}=await this.handler.getCurrentState(),n;e&&(n=await b.getSelectedRange(e,r)),await Je(r);let o=await this.getCodeActions(r,n,Array.isArray(t)?t:null);if(t&&(typeof t=="string"?o=o.filter(l=>l.title==t||l.command&&l.command.title==t):Array.isArray(t)&&(o=o.filter(l=>t.some(u=>l.kind&&l.kind.startsWith(u)))),o.length==1)){await this.applyCodeAction(o[0]);return}if(!o||o.length==0){T.showMessage(`No${t?" "+t:""} code action available`,"warning");return}let s=this.floatActions?await T.showMenuPicker(o.map(l=>l.title),"Choose action"):await T.showQuickpick(o.map(l=>l.title)),a=o[s];a&&await this.applyCodeAction(a)}async getCurrentCodeActions(e,t){let{doc:r}=await this.handler.getCurrentState(),n;return e&&(n=await b.getSelectedRange(e,r)),await this.getCodeActions(r,n,t)}async doQuickfix(){let e=await this.getCurrentCodeActions("line",[pf.CodeActionKind.QuickFix]);if(!e||e.length==0)throw new Error("No quickfix action available");await this.applyCodeAction(e[0]),this.nvim.command('silent! call repeat#set("\\(coc-fix-current)", -1)',!0)}async applyCodeAction(e){if(e.disabled)throw new Error(`Action "${e.title}" is disabled: ${e.disabled.reason}`);e=await this.handler.withRequestToken("resolve codeAction",n=>B.resolveCodeAction(e,n));let{edit:t,command:r}=e;if(t&&await b.applyEdit(t),r)if(be.has(r.command))be.execute(r);else throw new Error(`Command not registered: ${r.command}`)}}});var qR,NR,h_e,tD,YX=I(()=>{qR=E(zr()),NR=E(G());ht();Te();ie();$n();h_e=W()("codelens-buffer"),tD=class{constructor(e,t,r){this.nvim=e;this.bufnr=t;this.config=r;this._disposed=!1;this._fetching=!1;this.fetchCodelenses=(0,qR.default)(()=>{this._fetchCodeLenses().logError()},global.hasOwnProperty("__TEST__")?10:100),this.resolveCodeLens=(0,qR.default)(()=>{this._resolveCodeLenses().logError()},global.hasOwnProperty("__TEST__")?10:200),this.forceFetch().logError()}currentCodeLens(){var e;return(e=this.codeLenses)==null?void 0:e.codeLenses}async forceFetch(){this.fetchCodelenses.clear(),await this._fetchCodeLenses()}get textDocument(){var e;return(e=b.getDocument(this.bufnr))==null?void 0:e.textDocument}get hasProvider(){let{textDocument:e}=this;return e?B.hasProvider("codeLens",e):!1}async _fetchCodeLenses(){if(!this.config.enabled||!this.hasProvider||this._fetching)return;let{textDocument:e}=this,t=e.version,r=this.codeLenses||{};if(r.codeLenses&&!r.hasError&&t==this.codeLenses.version){await this._resolveCodeLenses(!0)||this.clear();return}this.cancel();let o=(this.tokenSource=new NR.CancellationTokenSource).token;this._fetching=!0;let s=await B.getCodeLens(e,o);if(this._fetching=!1,this.tokenSource=void 0,!o.isCancellationRequested&&(this.resolveCodeLens.clear(),Array.isArray(s))){let a=s.some(u=>u==null);this.codeLenses={version:t,codeLenses:s.filter(u=>u!=null),hasError:a},await this._resolveCodeLenses(!0)||this.clear()}}async _resolveCodeLenses(e=!1){if(!this.config.enabled||!this.codeLenses||this._disposed)return!1;let{codeLenses:t,version:r}=this.codeLenses,[n,o,s]=await this.nvim.eval("[bufnr('%'),line('w0'),line('w$')]");if(!this.textDocument||this.textDocument.version!=r||n!=this.bufnr||(t=t.filter(f=>{let p=f.range.start.line+1;return p>=o&&p<=s}),e||(t=t.filter(f=>f.command==null)),!t.length))return!1;let a=new NR.CancellationTokenSource,l=a.token,u=setTimeout(()=>{a.cancel()},1e3);if(await Promise.all(t.map(f=>B.resolveCodeLens(f,l))),clearTimeout(u),this.tokenSource=void 0,l.isCancellationRequested||this._disposed)return!1;this.srcId=await this.nvim.createNamespace("coc-codelens"),this.nvim.pauseNotification(),e&&this.clear(),this.setVirtualText(t);let c=await this.nvim.resumeNotification();return Array.isArray(c)&&c[1]!=null?(h_e.error("Error on resolve codeLens",c[1][2]),!1):!0}setVirtualText(e){if(e.length==0)return;let t=new Map;for(let r of e){let{range:n,command:o}=r;if(!o)continue;let{line:s}=n.start;t.has(s)?t.get(s).push(r):t.set(s,[r])}for(let r of t.keys()){let o=t.get(r).map(l=>l.command);o=o.filter(l=>l&&l.title);let s=[],a=o.length;for(let l=0;l=0;a--)if(r.has(a)){n=r.get(a);break}if(!n){T.showMessage("No codeLenses available","warning");return}let o=n.map(a=>a.command);if(o=o.filter(a=>a.command!=null&&a.command!=""),o.length==0)T.showMessage("CodeLenses command not found","warning");else if(o.length==1)be.execute(o[0]);else{let a=await T.showMenuPicker(o.map(l=>l.title));if(a==-1)return;be.execute(o[a])}}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource.dispose(),this.tokenSource=null)}onChange(){!this.config.enabled||(this.cancel(),this.resolveCodeLens.clear())}dispose(){this._disposed=!0,this.codeLenses=void 0,this.cancel(),this.fetchCodelenses.clear(),this.resolveCodeLens.clear()}}});var UZe,rD,XX=I(()=>{je();ye();ie();YX();UZe=W()("codelens"),rD=class{constructor(e){this.nvim=e;this.disposables=[];this.setConfiguration(),b.onDidChangeConfiguration(t=>{this.setConfiguration(t)}),this.buffers=b.registerBufferSync(t=>{if(t.buftype=="")return new tD(e,t.bufnr,this.config)}),this.config.enabled&&this.listen()}listen(){N.on("ready",()=>{this.checkProvider()},null,this.disposables),N.on("CursorMoved",e=>{let t=this.buffers.getItem(e);t&&t.resolveCodeLens()},null,this.disposables),N.on("CursorHold",async()=>{for(let e of this.buffers.items)await e.forceFetch()},this,this.disposables)}checkProvider(){for(let e of this.buffers.items)e.hasProvider&&e.fetchCodelenses()}setConfiguration(e){if(e&&!e.affectsConfiguration("codeLens"))return;let t=b.getConfiguration("codeLens"),r=this.nvim.hasFunction("nvim_buf_set_virtual_text")&&t.get("enable",!1);if(e&&r!=this.config.enabled){r?this.listen():J(this.disposables);for(let n of this.buffers.items)r?n.forceFetch().logError():n.clear()}this.config=Object.assign(this.config||{},{enabled:r,separator:t.get("separator","\u2023"),subseparator:t.get("subseparator"," ")})}async doAction(){let[e,t]=await this.nvim.eval('[bufnr("%"),line(".")-1]'),r=this.buffers.getItem(e);await(r==null?void 0:r.doAction(t))}dispose(){this.buffers.dispose(),J(this.disposables)}}});var ZX,QX,eZ,iD,tZ=I(()=>{ZX=E(zr()),QX=E(G());ht();gd();Gr();Kr();ie();la();eZ=W()("colors-buffer"),iD=class{constructor(e,t,r,n){this.nvim=e;this.bufnr=t;this.enabled=r;this.usedColors=n;this._colors=[];this.highlight=(0,ZX.default)(()=>{this.doHighlight().catch(o=>{eZ.error("Error on color highlight:",o.stack)})},global.hasOwnProperty("__TEST__")?10:500)}onChange(){this.cancel(),this.highlight()}get buffer(){return this.nvim.createBuffer(this.bufnr)}get colors(){return this._colors}hasColor(){return this._colors.length>0}setState(e){this.enabled=e,e?this.highlight():this.clearHighlight()}async doHighlight(){let e=b.getDocument(this.bufnr);if(!(!e||!this.enabled))try{this.tokenSource=new QX.CancellationTokenSource;let{token:t}=this.tokenSource;if(this.version&&e.version==this.version)return;let{version:r}=e,n;if(n=await B.provideDocumentColors(e.textDocument,t),n=n||[],t.isCancellationRequested)return;this.version=r,await this.addHighlight(n,t)}catch(t){eZ.error("Error on highlight:",t)}}async addHighlight(e,t){if(e=e||[],rt(this._colors,e))return;let{nvim:r}=this;this._colors=e;let n=BU(e,100);r.pauseNotification(),this.buffer.clearNamespace("color"),this.defineColors(e),r.resumeNotification(!1,!0);for(let o of n){if(t.isCancellationRequested){this._colors=[];return}r.pauseNotification();let s=this.getColorRanges(o);for(let a of s)this.highlightColor(a.ranges,a.color);r.resumeNotification(!1,!0)}b.isVim&&this.nvim.command("redraw",!0)}highlightColor(e,t){let{red:r,green:n,blue:o}=zh(t),s=`BG${Hh(t)}`;this.buffer.highlightRanges("color",s,e)}defineColors(e){for(let t of e){let r=Hh(t.color);this.usedColors.has(r)||(this.nvim.command(`hi BG${r} guibg=#${r} guifg=#${KX(t.color)?"ffffff":"000000"}`,!0),this.usedColors.add(r))}}getColorRanges(e){let t=[];for(let r of e){let{color:n,range:o}=r,s=t.findIndex(a=>rt(zh(a.color),zh(n)));s==-1?t.push({color:n,ranges:[o]}):t[s].ranges.push(o)}return t}clearHighlight(){this.highlight.clear(),this._colors=[],this.version=null,this.buffer.clearNamespace("color")}hasColorAtPosition(e){let{colors:t}=this;return t.some(r=>gr(e,r.range)==0)}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}dispose(){this.highlight.clear(),this.cancel()}}});var rZ,pQe,nD,iZ=I(()=>{rZ=E(G());Ko();ht();ye();Te();ie();la();tZ();pQe=W()("colors"),nD=class{constructor(e){this.nvim=e;this._enabled=!0;this.disposables=[];let t=b.getConfiguration("coc.preferences");this._enabled=t.get("colorSupport",!0),b.isVim&&!b.env.textprop&&(this._enabled=!1);let r=new Set;this.highlighters=b.registerBufferSync(n=>{let o=new iD(this.nvim,n.bufnr,this._enabled,r);return o.highlight(),o}),we.onDidActiveExtension(()=>{this.highlightAll()},null,this.disposables),b.onDidChangeConfiguration(async n=>{if(!(b.isVim&&!b.env.textprop)&&n.affectsConfiguration("coc.preferences.colorSupport")){let s=b.getConfiguration("coc.preferences").get("colorSupport",!0);if(s!=this._enabled){this._enabled=s;for(let a of this.highlighters.items)a.setState(s)}}},null,this.disposables)}async pickPresentation(){let e=await this.currentColorInformation();if(!e)return T.showMessage("Color not found at current position","warning");let t=await b.document,r=new rZ.CancellationTokenSource,n=await B.provideColorPresentations(e,t.textDocument,r.token);if(!n||n.length==0)return;let o=await T.showMenuPicker(n.map(c=>c.label),"choose color:");if(o==-1)return;let s=n[o],{textEdit:a,additionalTextEdits:l,label:u}=s;a||(a={range:e.range,newText:u}),await t.applyEdits([a]),l&&await t.applyEdits(l)}async pickColor(){let e=await this.currentColorInformation();if(!e)return T.showMessage("Color not found at current position","warning");let{color:t}=e,r=[(t.red*255).toFixed(0),(t.green*255).toFixed(0),(t.blue*255).toFixed(0)],n=await this.nvim.call("coc#util#pick_color",[r]);if(n===!1)return;if(!n||n.length!=3){T.showMessage("Failed to get color","warning");return}let o=Hh({red:n[0]/65535,green:n[1]/65535,blue:n[2]/65535,alpha:1});await(await b.document).applyEdits([{range:e.range,newText:`#${o}`}])}get enabled(){return this._enabled}clearHighlight(e){let t=this.highlighters.getItem(e);!t||t.clearHighlight()}hasColor(e){let t=this.highlighters.getItem(e);return t?t.hasColor():!1}hasColorAtPosition(e,t){let r=this.highlighters.getItem(e);return r?r.hasColorAtPosition(t):!1}highlightAll(){for(let e of this.highlighters.items)e.highlight()}async doHighlight(e){let t=this.highlighters.getItem(e);!t||await t.doHighlight()}async currentColorInformation(){let e=await this.nvim.call("bufnr","%"),t=this.highlighters.getItem(e);if(!t)return null;let r=await T.getCursorPosition();for(let n of t.colors){let{range:o}=n,{start:s,end:a}=o;if(r.line==s.line&&r.character>=s.character&&r.character<=a.character)return n}return null}dispose(){this.highlighters.dispose(),J(this.disposables)}}});var ho,oD,nZ,sD,oZ=I(()=>{ho=E(G());je();ht();xl();Kr();Ct();Te();ie();la();oD=W()("handler-format"),nZ=new Map([["<",">"],[">","<"],["{","}"],["[","]"],["(",")"]]),sD=class{constructor(e,t){this.nvim=e;this.handler=t;this.loadPreferences(),t.addDisposable(b.onDidChangeConfiguration(this.loadPreferences,this)),t.addDisposable(b.onWillSaveTextDocument(a=>{let{languageId:l}=a.document,u=this.preferences.formatOnSaveFiletypes;if(u.includes(l)||u.includes("*")){let c=async()=>{if(!B.hasFormatProvider(a.document)){oD.warn(`Format provider not found for ${a.document.uri}`);return}let f=await b.getFormatOptions(a.document.uri),p=new ho.CancellationTokenSource,d=setTimeout(()=>{oD.warn(`Onsave format ${a.document.uri} timeout after 0.5s`),p.cancel()},500),h=await B.provideDocumentFormattingEdits(a.document,f,p.token);return clearTimeout(d),!h&&!p.token.isCancellationRequested&&oD.want(`Onsave format ${a.document.uri} get undefined result.`),h};a.waitUntil(c())}})),t.addDisposable(N.on("Enter",async a=>{let{bracketEnterImprove:l}=this.preferences;if(await this.tryFormatOnType(` +`,a),l){let u=await e.call("line",".")-1,c=b.getDocument(a);if(!c)return;await c.patchChange();let f=c.getline(u-1),p=c.getline(u),d=f[f.length-1];if(d&&nZ.has(d)){let h=p.trim()[0];if(h&&nZ.get(d)==h){let m=[],w=await b.getFormatOptions(c.uri),v=w.insertSpaces?" ".repeat(w.tabSize):" ",D=p.match(/^\s*/)[0],x=ho.Position.create(u-1,f.length);if(c.filetype=="vim"){let S=` +`+D+v;m.push({range:ho.Range.create(u,D.length,u,D.length),newText:" \\ "}),S=S+"\\ ",m.push({range:ho.Range.create(x,x),newText:S}),await c.applyEdits(m),await T.moveTo(ho.Position.create(u,S.length-1))}else await e.eval(`feedkeys("\\O", 'in')`)}}}}));let r,n;t.addDisposable(N.on("InsertCharPre",async()=>{n=Date.now()})),t.addDisposable(N.on("TextChangedI",async(a,l)=>{if(r=Date.now(),!n||r-n>300)return;n=null;let u=b.getDocument(a);if(!u)return;let c=l.pre[l.pre.length-1];!c||!B.hasProvider("onTypeEdit",u.textDocument)||await this.tryFormatOnType(c,a)}));let o,s;t.addDisposable(N.on("InsertEnter",a=>{o=a,s=Date.now()})),t.addDisposable(N.on("TextChangedI",async(a,l)=>{!this.preferences.formatOnType&&!/^\s*$/.test(l.pre)||o!=a||!s||Date.now()-s>30||await this.tryFormatOnType(` +`,a,!0)}))}loadPreferences(e){if(!e||e.affectsConfiguration("coc.preferences")){let t=b.getConfiguration("coc.preferences");this.preferences={formatOnType:t.get("formatOnType",!1),formatOnSaveFiletypes:t.get("formatOnSaveFiletypes",[]),formatOnTypeFiletypes:t.get("formatOnTypeFiletypes",[]),bracketEnterImprove:t.get("bracketEnterImprove",!0)}}}async tryFormatOnType(e,t,r=!1){if(!e||sj(e)||!this.preferences.formatOnType||ir.getSession(t)!=null)return;let n=b.getDocument(t);if(!n||!n.attached||n.isCommandLine)return;let o=this.preferences.formatOnTypeFiletypes;if(o.length&&!o.includes(n.filetype)&&!o.includes("*"))return;if(!B.hasProvider("formatOnType",n.textDocument)){oD.warn(`Format on type provider not found for buffer: ${n.bufnr}`);return}if(!B.canFormatOnType(e,n.textDocument))return;let s,a=await this.handler.withRequestToken("Format on type",async c=>{s=await T.getCursorPosition();let f=n.getline(s.line-1);if(r&&/^\s*$/.test(f))return;let p=r?{line:s.line-1,character:f.length}:s;return await Je(n),await B.provideDocumentOnTypeEdits(e,n.textDocument,p,c)});if(!a||!a.length)return;let l=Vu(s,a);await n.applyEdits(a);let u=l?ho.Position.create(s.line+l.line,s.character+l.character):null;u&&!r&&await T.moveTo(u)}async formatCurrentBuffer(){let{doc:e}=await this.handler.getCurrentState();return await this.documentFormat(e)}async formatCurrentRange(e){let{doc:t}=await this.handler.getCurrentState();return await this.documentRangeFormat(t,e)}async documentFormat(e){if(await Je(e),!B.hasFormatProvider(e.textDocument))throw new Error(`Format provider not found for buffer: ${e.bufnr}`);let t=await b.getFormatOptions(e.uri),r=await this.handler.withRequestToken("format",n=>B.provideDocumentFormattingEdits(e.textDocument,t,n));return r&&r.length>0?(await e.applyEdits(r),!0):!1}async documentRangeFormat(e,t){this.handler.checkProvier("formatRange",e.textDocument),await Je(e);let r;if(t){if(r=await b.getSelectedRange(t,e),!r)return-1}else{let[s,a,l]=await this.nvim.eval("[v:lnum,v:count,mode()]");if(a==0||l=="i"||l=="R")return-1;r=ho.Range.create(s-1,0,s-1+a,0)}let n=await b.getFormatOptions(e.uri),o=await this.handler.withRequestToken("Format range",s=>B.provideDocumentRangeFormattingEdits(e.textDocument,r,n,s));return o&&o.length>0?(await e.applyEdits(o),0):-1}}});var Gh,m_e,aD,sZ=I(()=>{Gh=E(G());je();ht();ye();Te();ie();m_e=W()("documentHighlight"),aD=class{constructor(e){this.nvim=e;this.disposables=[];this.highlights=new Map;N.on(["TextChanged","TextChangedI","CursorMoved","CursorMovedI"],()=>{this.cancel(),this.clearHighlights()},null,this.disposables)}clearHighlights(){if(this.highlights.size==0)return;let{nvim:e}=b;for(let t of this.highlights.keys())e.createWindow(t).clearMatchGroup("^CocHighlight");this.highlights.clear()}async highlight(){let{nvim:e}=this;this.cancel();let[t,r,n]=await e.eval("[bufnr('%'),win_getid(),get(b:,'coc_cursors_activated',0)]"),o=b.getDocument(t);if(!o||!o.attached||!B.hasProvider("documentHighlight",o.textDocument)||n)return;let s=await T.getCursorPosition(),a=await this.getHighlights(o,s);if(!a)return;let l={};for(let f of a){if(!f.range)continue;let p=f.kind==Gh.DocumentHighlightKind.Text?"CocHighlightText":f.kind==Gh.DocumentHighlightKind.Read?"CocHighlightRead":"CocHighlightWrite";l[p]=l[p]||[],l[p].push(f.range)}let u=e.createWindow(r);e.pauseNotification(),u.clearMatchGroup("^CocHighlight");for(let f of Object.keys(l))u.highlightRanges(f,l[f],-1,!0);b.isVim&&e.command("redraw",!0);let c=this.nvim.resumeNotification();Array.isArray(c)&&c[1]!=null?m_e.error("Error on highlight",c[1][2]):this.highlights.set(r,a)}hasHighlights(e){return this.highlights.get(e)!=null}async getHighlights(e,t){if(!e||!e.attached||e.isCommandLine)return null;let n=e.getline(t.line)[t.character];if(!n||!e.isWord(n))return null;try{this.tokenSource=new Gh.CancellationTokenSource,e.forceSync();let{token:o}=this.tokenSource,s=await B.getDocumentHighLight(e.textDocument,t,o);return this.tokenSource=null,o.isCancellationRequested?null:s}catch(o){return null}}cancel(){this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource.dispose(),this.tokenSource=null)}dispose(){this.highlights.clear(),this.cancel(),J(this.disposables)}}});function b_e(i){if(i.length<2)return;let e=i.length;if(!i[e-1].startsWith("-")&&!i[e-2].startsWith("-"))return i[e-1]}var aZ,lZ,$R,uZ,g_e,v_e,y_e,cZ,lD,fZ=I(()=>{_s();aZ=E(require("child_process")),lZ=E(require("events")),$R=E(require("path")),uZ=E(require("readline"));Ro();ah();Hu();Te();g_e=W()("handler-search"),v_e=["--color","ansi","--colors","path:fg:black","--colors","line:fg:green","--colors","match:fg:red","--no-messages","--heading","-n"],y_e="",cZ=class extends lZ.EventEmitter{start(e,t,r){this.process=(0,aZ.spawn)(e,t,{cwd:r}),this.process.on("error",c=>{this.emit("error",c.message)});let n=uZ.default.createInterface(this.process.stdout),o,s,a=[],l=[],u=!0;n.on("line",c=>{if(c.includes(y_e)){let f=rd(c);if(f[0].foreground=="black"){s={filepath:$R.default.join(r,f[0].text),ranges:[]};return}if(f[0].foreground=="green"){let d=parseInt(f[0].text,10)-1,h=f[0].text.length+1;u&&(o=d,u=!1);let m="";for(let v of f){if(v.foreground=="red"){let D=d-o,x=m.length-h;l.push(Oe.create(D,x,D,x+v.text.length))}m+=v.text}let w=m.slice(h);a.push(w)}}else{let f=c.trim().length==0;if(s&&(f||c.trim()=="--")){let p={lines:a,highlights:l,start:o,end:o+a.length};s.ranges.push(p)}f&&(this.emit("item",s),s=null),a=[],l=[],u=!0}}),n.on("close",()=>{if(s){if(a.length){let c={lines:a,highlights:l,start:o,end:o+a.length};s.ranges.push(c)}this.emit("item",s)}a=l=s=null,this.emit("end")})}dispose(){this.process&&this.process.kill()}},lD=class{constructor(e,t="rg"){this.nvim=e;this.cmd=t}run(e,t,r){let{nvim:n,cmd:o}=this,{afterContext:s,beforeContext:a}=r.config,l=["-A",s.toString(),"-B",a.toString()].concat(v_e,e),u=b_e(e);u&&l.pop(),l.push("--",u?$R.default.isAbsolute(u)?u:`./${u.replace(/^\.\//,"")}`:"./"),this.task=new cZ,this.task.start(o,l,t);let c=new kr,f=0,p=0,d=Date.now(),h=[],m=async()=>{if(h.length==0)return;let w=h.slice();h=[];let v=await c.acquire();try{await r.addFileItems(w)}catch(D){g_e.error(D)}v()};return new Promise((w,v)=>{let D=setInterval(m,300);this.task.on("item",async x=>{f++,p=p+x.ranges.reduce((S,P)=>S+P.highlights.length,0),h.push(x)}),this.task.on("error",x=>{clearInterval(D),T.showMessage(`Error on command "${o}": ${x}`,"error"),this.task=null,v(new Error(x))}),this.task.on("end",async()=>{clearInterval(D);try{await m(),(await c.acquire())(),this.task.removeAllListeners(),this.task=null;let S=r.buffer;if(S){if(n.pauseNotification(),f==0)S.setLines(["No match found"],{start:1,end:2,strictIndexing:!1},!0),S.addHighlight({line:1,srcId:-1,colEnd:-1,colStart:0,hlGroup:"Error"}).logError(),S.setOption("modified",!1,!0);else{let P=new no;P.addText("Files","MoreMsg"),P.addText(": "),P.addText(`${f} `,"Number"),P.addText("Matches","MoreMsg"),P.addText(": "),P.addText(`${p} `,"Number"),P.addText("Duration","MoreMsg"),P.addText(": "),P.addText(`${Date.now()-d}ms`,"Number"),P.render(S,1,2)}S.setOption("modified",!1,!0),await n.resumeNotification(!1,!0)}}catch(x){v(x);return}w()})})}}});function w_e(i,e){let{start:t,end:r}=i;return uD.Range.create(t.line-e,t.character,r.line-e,r.character)}var df,Vh,uD,pZ,hf,cD,dZ=I(()=>{df=E(Ju()),Vh=E(require("path")),uD=E(G());Za();Ze();$n();ah();ye();Vt();_s();Gr();Ct();Te();ie();pZ=W()("handler-refactorBuffer"),hf="\u3000",cD=class{constructor(e,t,r,n,o){this.bufnr=e;this.srcId=t;this.nvim=r;this.config=n;this.opts=o;this.mutex=new kr;this._disposed=!1;this.disposables=[];this._fileItems=[];this.matchIds=new Set;this.changing=!1;this.disposables.push(b.registerLocalKeymap("n","",this.splitOpen.bind(this),!0)),b.onDidChangeTextDocument(this.onDocumentChange,this,this.disposables)}get fileItems(){return this._fileItems}onChange(e){if(this.changing)return;let t=this.document,{nvim:r,_fileItems:n}=this;if(!n.length)return;let o=e.contentChanges[0];if(!("range"in o))return;let{original:s}=e;if(o.range.end.line<2)return;t.buffer.setOption("modified",!0,!0);let{range:a,text:l}=o,c=l.split(` +`).length-(a.end.line-a.start.line)-1;if(c==0)return;let f=[];if(l.includes("\u3000")){let d=a.start.line,h=(0,df.default)(s,l),m=0,w=tr.create("file:///1","",0,s);for(let v=0;vw.lnumv+D.delta,0);h.lnum=h.lnum+w,p=!0}}!p||(r.pauseNotification(),this.highlightLineNr(),r.resumeNotification().then(d=>{Array.isArray(d)&&d[1]!=null&&pZ.error("Error on highlightLineNr:",d[1])}).logError())}async onDocumentChange(e){if(e.bufnr==this.bufnr||this.changing)return;let{uri:t}=e.textDocument,{range:r,text:n}=e.contentChanges[0],o=j.parse(t).fsPath,s=this._fileItems.find(u=>u.filepath==o);if(!s)return;let a=n.split(` +`).length-(r.end.line-r.start.line)-1,l=[];for(let u=0;u=c.end))if(r.end.lineu.ranges&&u.ranges.length>0),l.length&&(this.changing=!0,await this.document.applyEdits(l),this.changing=!1),this.nvim.pauseNotification(),this.highlightLineNr(),this.buffer.setOption("modified",!1,!0),await this.nvim.resumeNotification()}async getFileChanges(){if(this._disposed)return[];let e=[],t=await this.buffer.lines;t.push(hf);let r=[],n,o;for(let s=0;s1){let l=a.match(/^\u3000(.*)/);l&&(n=this.getAbsolutePath(l[1].replace(/\s+$/,"")),o=s+1,r=[])}}else r.push(a)}return e}async splitOpen(){let{nvim:e}=this,r=await e.createWindow(this.opts.fromWinid).valid,n=await e.eval('getline(1,line("."))'),o=n.length;for(let s=0;sd.filepath==f.filepath);p?p.ranges.push(...f.ranges):this._fileItems.push(f)}let o=r.lineCount,s=new no,a=[];for(let f of e)for(let p of f.ranges){s.addLine(hf),s.addLine(hf),p.lnum=o+s.length,s.addText(`${pt(t,f.filepath)?Vh.default.relative(t,f.filepath):f.filepath}`);let d=String(p.start+1).length+String(p.end).length+4;this.srcId||s.addText(" ".repeat(d));let h=0-s.length-o;p.highlights&&a.push(...p.highlights.map(w=>w_e(w,h)));let{lines:m}=p;m||(m=await this.getLines(f.filepath,p.start,p.end),p.lines=m),s.addLines(m)}let{nvim:l,buffer:u}=this;if(this.changing=!0,l.pauseNotification(),s.render(u,o),this.highlightLineNr(),u.setOption("modified",!1,!0),u.setOption("undolevels",1e3,!0),o==2&&a.length){let f=a[0].start;l.call("coc#util#jumpTo",[f.line,f.character],!0)}b.isVim&&l.command("redraw",!0);let[,c]=await l.resumeNotification();if(c)throw new Error(c[2]);await r.patchChange(),this.changing=!1,await be.executeCommand("editor.action.addRanges",a)}catch(o){this.changing=!1,pZ.error("Error on add file item:",o)}n()}async save(){let{nvim:e}=this,t=this.document,{buffer:r}=t;await t.patchChange();let n=await this.getFileChanges();if(!n)return;n.sort((l,u)=>l.lnum-u.lnum);let o=[],s=new Map;for(let l=0;lm.filepath==c),h=d?d.ranges.find(m=>m.lnum==f):null;if(!h||rt(h.lines,u.lines)){o.push(l),p&&h&&(h.start=h.start+p,h.end=h.end+p);continue}if(u.start=h.start,u.end=h.end,p!=0&&(h.start=h.start+p),u.lines.length!=h.lines.length){let w=u.lines.length-h.lines.length+p;s.set(c,w),h.end=h.end+w}else h.end=h.end+p;h.lines=u.lines}if(o.length&&(n=n.filter((l,u)=>!o.includes(u))),n.length==0)return T.showMessage("No change.","more"),await r.setOption("modified",!1),!1;let a={};for(let l of n){let u=j.file(l.filepath).toString(),c=a[u]||[];c.push({range:uD.Range.create(l.start,0,l.end,0),newText:l.lines.join(` +`)+` +`}),a[u]=c}return this.changing=!0,await b.applyEdit({changes:a}),this.changing=!1,e.pauseNotification(),r.setOption("modified",!1,!0),this.config.saveToFile&&e.command("silent noa wa",!0),this.highlightLineNr(),await e.resumeNotification(),!0}getFileRange(e){for(let t of this._fileItems)for(let r of t.ranges)if(r.lnum==e)return r;return null}getLinesRange(e){for(let t of this._fileItems)for(let r of t.ranges)if(r.lnum==e)return[r.start,r.end];return null}async getLines(e,t,r){let n=j.file(e).toString(),o=b.getDocument(n);return o?o.getLines(t,r):await RU(e,t,r-1)}getAbsolutePath(e){return Vh.default.isAbsolute(e)?e:Vh.default.join(this.opts.cwd,e)}getFileRangeRange(e,t=!0){let{document:r}=this;if(!r)return null;let{lnum:n}=e;if(!r.getline(n-1).startsWith("\u3000"))return null;let s=t?n:n-1,a=r.lineCount;for(let l=n;l{mf=E(G());Ze();ht();ye();Vt();Te();ie();la();fZ();dZ();D_e=W()("handler-refactor"),x_e="__coc_refactor__",S_e=0,fD=class{constructor(e,t){this.nvim=e;this.handler=t;this.buffers=new Map;this.disposables=[];this._onCreate=new mf.Emitter;this.onCreate=this._onCreate.event;b.isNvim&&this.nvim.hasFunction("nvim_buf_set_virtual_text")&&(this.srcId=b.createNameSpace("coc-refactor")),this.setConfiguration(),b.onDidChangeConfiguration(this.setConfiguration,this,this.disposables),b.onDidCloseTextDocument(r=>{let n=this.buffers.get(r.bufnr);n&&(n.dispose(),this.buffers.delete(r.bufnr))},null,this.disposables),b.onDidChangeTextDocument(r=>{let n=this.buffers.get(r.bufnr);n&&n.onChange(r)},null,this.disposables)}setConfiguration(e){if(e&&!e.affectsConfiguration("refactor"))return;let t=b.getConfiguration("refactor");this.config=Object.assign(this.config||{},{afterContext:t.get("afterContext",3),beforeContext:t.get("beforeContext",3),openCommand:t.get("openCommand","edit"),saveToFile:t.get("saveToFile",!0)})}async doRefactor(){let{doc:e,position:t}=await this.handler.getCurrentState();if(!B.hasProvider("rename",e.textDocument))throw new Error("Rename provider not found for current buffer");await Je(e);let r=await this.handler.withRequestToken("refactor",async n=>{let o=await B.prepareRename(e.textDocument,t,n);if(n.isCancellationRequested)return null;if(o===!1)throw new Error("Provider returns null on prepare, unable to rename at current position");let s=await B.provideRenameEdits(e.textDocument,t,"NewName",n);if(n.isCancellationRequested)return null;if(!s)throw new Error("Provider returns null for rename edits.");return s});r&&await this.fromWorkspaceEdit(r,e.filetype)}async search(e){let t=await this.createRefactorBuffer();if(!t)return;let r=await this.nvim.call("getcwd",[]);await new lD(this.nvim).run(e,r,t)}async save(e){let t=this.buffers.get(e);if(t)return await t.save()}getBuffer(e){return this.buffers.get(e)}async createRefactorBuffer(e){let{nvim:t}=this,[r,n]=await t.eval("[win_getid(),getcwd()]"),{openCommand:o}=this.config;t.pauseNotification(),t.command(`${o} ${x_e}${S_e++}`,!0),t.command("setl buftype=acwrite nobuflisted bufhidden=wipe nofen wrap conceallevel=2 concealcursor=n",!0),t.command("setl undolevels=-1 nolist nospell noswapfile foldmethod=expr foldexpr=coc#util#refactor_foldlevel(v:lnum)",!0),t.command("setl foldtext=coc#util#refactor_fold_text(v:foldstart)",!0),t.call("setline",[1,["Save current buffer to make changes",hf]],!0),t.call("matchadd",["Comment","\\%1l"],!0),t.call("matchadd",["Conceal","^\\%u3000"],!0),t.call("matchadd",["Label","^\\%u3000\\zs\\S\\+"],!0),t.command("setl nomod",!0),e&&t.command(`runtime! syntax/${e}.vim`,!0),t.call("coc#util#do_autocmd",["CocRefactorOpen"],!0);let[,s]=await t.resumeNotification();if(s){D_e.error(s),T.showMessage(`Error on open refactor window: ${s}`,"error");return}let[a,l]=await t.eval('[bufnr("%"),win_getid()]'),u={fromWinid:r,winid:l,cwd:n};await b.document;let c=new cD(a,this.srcId,this.nvim,this.config,u);return this.buffers.set(a,c),c}async fromLines(e){let t=await this.createRefactorBuffer();return t&&await t.buffer.setLines(e,{start:0,end:-1,strictIndexing:!1}),t}async fromLocations(e,t){if(!e||e.length==0)return null;let r={},n={changes:r};for(let o of e){let s=r[o.uri]||[];s.push({range:o.range,newText:""}),r[o.uri]=s}return await this.fromWorkspaceEdit(n,t)}async fromWorkspaceEdit(e,t){if(!e||C_e(e))return;let r=[],{beforeContext:n,afterContext:o}=this.config,{changes:s,documentChanges:a}=e;if(!s){s={};for(let u of a||[])if(mf.TextDocumentEdit.is(u)){let{textDocument:c,edits:f}=u;c.uri.startsWith("file:")&&(s[c.uri]=f)}}for(let u of Object.keys(s)){let c=await this.getLineCount(u),f=s[u],p=[],d=null,h=null,m=[];f.sort((w,v)=>w.range.start.line-v.range.start.line);for(let w of f){let{line:v}=w.range.start,D=Math.max(0,v-n);d!=null&&D{gZ=E(zr()),gf=E(G());ht();ie();vZ=W()("semanticTokens-buffer"),E_e="CocSem_",yZ=class{constructor(e,t){this.resultId=e;this.tokens=t}},pD=class{constructor(e,t,r){this.nvim=e;this.bufnr=t;this.enabled=r;this.namespace="semanticTokens";this.previousResults=new Map;this.highlight=(0,gZ.default)(()=>{this.doHighlight().catch(n=>{vZ.error("Error on semanticTokens highlight:",n.stack)})},global.hasOwnProperty("__TEST__")?10:5e3)}onChange(){this.cancel(),this.highlight()}get buffer(){return this.nvim.createBuffer(this.bufnr)}setState(e){this.enabled=e,e?this.highlight():this.clearHighlight()}async doHighlight(){let e=b.getDocument(this.bufnr);if(!(!e||!this.enabled)&&!(this.version&&e.version==this.version))try{let{nvim:t}=this,r=await this.getHighlights(e);if(!r.length)return;let n=await this.vimGetCurrentHighlights(e),{highlights:o,lines:s}=this.calculateHighlightUpdates(n,r);for(let l of s)this.buffer.clearNamespace(this.namespace,l,l+1);if(!o.length)return;let a={};for(let l of o){let u=gf.Range.create(l.line,l.startCharacter,l.line,l.endCharacter);a[l.group]=a[l.group]||[],a[l.group].push(u)}t.pauseNotification();for(let l of Object.keys(a))this.buffer.highlightRanges(this.namespace,l,a[l]);t.resumeNotification(!1,!0),b.isVim&&t.command("redraw",!0)}catch(t){vZ.error("Error on semanticTokens highlight:",t)}}async vimGetCurrentHighlights(e){return await this.nvim.call("coc#highlight#get_highlights",[e.bufnr,this.namespace])}calculateHighlightUpdates(e,t){let r=Intl.Collator("en").compare;function n(c,f){return c.line-f.line||c.startCharacter-f.startCharacter||c.endCharacter-f.endCharacter||r(c.group,f.group)}e=e.slice().sort(n),t=t.slice().sort(n);let o=new Map;for(let c of e)o.has(c.line)||o.set(c.line,[]),o.get(c.line).push(c);let s=new Map;for(let c of t)s.has(c.line)||s.set(c.line,[]),s.get(c.line).push(c);let a=Math.max((e[e.length-1]||{line:0}).line,(t[t.length-1]||{line:0}).line),l=new Set;for(let c=0;c<=a;c++){let f=o.has(c),p=s.has(c);if(f!==p){l.add(c);continue}else if(!f&&!p)continue;let d=o.get(c),h=s.get(c);if(d.length!==h.length){l.add(c);continue}for(let m=0;m{h.deleteCount>0?u.splice(h.start,h.deleteCount):u.splice(h.start,0,...h.data)})),this.previousResults.set(this.bufnr,new yZ(l.resultId,u));let c=[];for(let h=0;h{Ko();ye();ie();bZ();Iet=W()("semanticTokens"),dD=class{constructor(e){this.nvim=e;this._enabled=!0;this.disposables=[];let t=b.getConfiguration("coc.preferences");this._enabled=t.get("semanticTokensHighlights",!0),b.isVim&&!b.env.textprop&&(this._enabled=!1),this.highlighters=b.registerBufferSync(r=>{let n=new pD(this.nvim,r.bufnr,this._enabled);return n.highlight(),n}),we.onDidActiveExtension(()=>{this.highlightAll()},null,this.disposables),b.onDidChangeConfiguration(async r=>{if(!(b.isVim&&!b.env.textprop)&&r.affectsConfiguration("coc.preferences.semanticTokensHighlights")){let o=b.getConfiguration("coc.preferences").get("semanticTokensHighlights",!0);if(o!=this._enabled){this._enabled=o;for(let s of this.highlighters.items)s.setState(o)}}},null,this.disposables)}get enabled(){return this._enabled}clearHighlight(e){let t=this.highlighters.getItem(e);!t||t.clearHighlight()}highlightAll(){for(let e of this.highlighters.items)e.highlight()}async doHighlight(e){let t=this.highlighters.getItem(e);!t||await t.doHighlight()}async getHighlights(e){let t=this.highlighters.getItem(e);if(!t)return[];let r=b.getDocument(e);return await t.getHighlights(r,!0)}dispose(){this.highlighters.dispose(),J(this.disposables)}}});function DZ(i){return!!(Un.MarkupContent.is(i)&&i.kind==Un.MarkupKind.Markdown)}var Un,Uet,hD,xZ=I(()=>{zu();xl();Un=E(G());ie();je();Ct();ht();ye();Uet=W()("handler-signature"),hD=class{constructor(e){this.nvim=e;this.disposables=[];this.signatureFactory=new tn(e),this.loadConfiguration(),this.disposables.push(this.signatureFactory),b.onDidChangeConfiguration(this.loadConfiguration,this,this.disposables),N.on("CursorMovedI",async(r,n)=>{if(!this.signaturePosition)return;let o=b.getDocument(r);if(!o)return;let{line:s,character:a}=this.signaturePosition;if(n[0]-1==s){let l=o.getline(n[0]-1),u=me(l.slice(0,a))+1;if(n[1]>=u)return}this.signatureFactory.close()},null,this.disposables),N.on(["InsertLeave","BufEnter"],()=>{var r;(r=this.tokenSource)==null||r.cancel(),this.signatureFactory.close()},null,this.disposables),N.on(["TextChangedI","TextChangedP"],async()=>{this.config.hideOnChange&&this.signatureFactory.close()},null,this.disposables);let t;N.on("InsertCharPre",async()=>{t=Date.now()},null,this.disposables),N.on("TextChangedI",async(r,n)=>{if(!this.config.trigger||!t||Date.now()-t>300)return;t=null;let o=b.getDocument(r);if(!o||o.isCommandLine||!o.attached)return;let s=n.pre[n.pre.length-1];!s||B.shouldTriggerSignatureHelp(o.textDocument,s)&&await this.triggerSignatureHelp(o,{line:n.lnum-1,character:n.pre.length},!1)},null,this.disposables)}loadConfiguration(e){if(!e||e.affectsConfiguration("signature")){let t=b.getConfiguration("signature"),r=t.get("target","float");r=="float"&&!b.floatSupported&&(r="echo"),this.config={target:r,trigger:t.get("enable",!0),wait:Math.max(t.get("triggerSignatureWait",500),200),maxWindowHeight:t.get("maxWindowHeight",80),maxWindowWidth:t.get("maxWindowWidth",80),preferAbove:t.get("preferShownAbove",!0),hideOnChange:t.get("hideOnTextChange",!1)}}}async triggerSignatureHelp(e,t,r=!0){var p;(p=this.tokenSource)==null||p.cancel();let n=this.tokenSource=new Un.CancellationTokenSource,o=n.token;o.onCancellationRequested(()=>{n.dispose(),this.tokenSource=void 0});let{target:s}=this.config,a=this.timer=setTimeout(()=>{n.cancel()},this.config.wait),{changedtick:l}=e;if(await e.patchChange(),l!=e.changedtick&&await nt(30),o.isCancellationRequested)return!1;let u=await B.getSignatureHelp(e.textDocument,t,o,{isRetrigger:!1,triggerKind:r?Un.SignatureHelpTriggerKind.Invoked:Un.SignatureHelpTriggerKind.TriggerCharacter});if(clearTimeout(a),o.isCancellationRequested)return!1;if(!u||u.signatures.length==0)return this.signatureFactory.close(),!1;let{activeSignature:c,signatures:f}=u;if(c){let[d]=f.splice(c,1);d&&f.unshift(d)}s=="echo"?this.echoSignature(u):await this.showSignatureHelp(e,t,u)}async showSignatureHelp(e,t,r){let{signatures:n,activeParameter:o}=r,s=0,a=null,l=n.reduce((h,m,w)=>{var x;let v=null,D=m.label.indexOf("(");if(w==0&&o!=null){let S=(x=m.parameters)==null?void 0:x[o];if(S){let P=m.label.slice(D==-1?0:D);if(a=S.documentation,typeof S.label=="string"){let A=P.slice(0),R=A.match(new RegExp("\\b"+S.label.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b")),M=R?R.index:A.indexOf(S.label);M!=-1&&(v=[M+D,M+S.label.length+D])}else v=S.label}}if(v==null&&(v=[D+1,D+1]),s==0&&(s=v[0]+1),h.push({content:m.label,filetype:e.filetype,active:v}),a){let S=typeof a=="string"?a:a.value;S.trim().length&&h.push({content:S,filetype:DZ(m.documentation)?"markdown":"txt"})}if(w==0&&m.documentation){let{documentation:S}=m,P=typeof S=="string"?S:S.value;P.trim().length&&h.push({content:P,filetype:DZ(m.documentation)?"markdown":"txt"})}return h},[]),u=ir.getSession(e.bufnr);if(u&&u.isActive){let{value:h}=u.placeholder;h.includes(` +`)||(s+=h.length),this.signaturePosition=Un.Position.create(t.line,t.character-h.length)}else this.signaturePosition=t;let{preferAbove:c,maxWindowHeight:f,maxWindowWidth:p}=this.config,d=b.getConfiguration("coc.preferences").get("excludeImageLinksInMarkdownDocument");await this.signatureFactory.show(l,{maxWidth:p,maxHeight:f,preferTop:c,autoHide:!1,offsetX:s,modes:["i","ic","s"],excludeImages:d})}echoSignature(e){var s;let{signatures:t,activeParameter:r}=e,n=b.env.columns;t=t.slice(0,b.env.cmdheight);let o=[];for(let a of t){let l=[],{label:u}=a;u=u.replace(/\n/g," "),u.length>=n-16&&(u=u.slice(0,n-16)+"...");let c=u.indexOf("(");if(c==-1)l=[{text:u,type:"Normal"}];else{l.push({text:u.slice(0,c),type:"Label"});let f=u.slice(c);if(o.length==0&&r!=null){let p=(s=a.parameters)==null?void 0:s[r];if(p){let d,h;if(typeof p.label=="string"){let m=f.slice(0),w=m.match(new RegExp("\\b"+p.label.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")+"\\b")),v=w?w.index:m.indexOf(p.label);v==-1?l.push({text:f,type:"Normal"}):(d=v,h=v+p.label.length)}else[d,h]=p.label,d=d-c,h=h-c;d!=null&&h!=null&&(l.push({text:f.slice(0,d),type:"Normal"}),l.push({text:f.slice(d,h),type:"MoreMsg"}),l.push({text:f.slice(h),type:"Normal"}))}}else l.push({text:f,type:"Normal"})}o.push(l)}this.nvim.callTimer("coc#util#echo_signatures",[o],!0)}dispose(){J(this.disposables),this.timer&&clearTimeout(this.timer)}}});var SZ,Qo,mD,CZ,EZ=I(()=>{SZ=E(zr()),Qo=E(G());je();ht();Dh();ye();Gr();Kr();Te();ie();la();mD=class{constructor(e,t){this.nvim=e;this.handler=t;this.disposables=[];this.buffers=b.registerBufferSync(r=>{if(r.buftype!="")return;let n=new CZ(r.bufnr);return n.onDidUpdate(async o=>{await N.fire("SymbolsUpdate",[n.bufnr,o])}),n}),N.on("CursorHold",async r=>{!this.functionUpdate||this.buffers.getItem(r)==null||await this.getCurrentFunctionSymbol(r)},null,this.disposables),N.on("InsertEnter",r=>{let n=this.buffers.getItem(r);n&&n.cancel()},null,this.disposables)}get functionUpdate(){return b.getConfiguration("coc.preferences").get("currentFunctionSymbolAutoUpdate",!1)}get labels(){return b.getConfiguration("suggest").get("completionItemKindLabels",{})}async getDocumentSymbols(e){let t=this.buffers.getItem(e);return t==null?void 0:t.getSymbols()}async getCurrentFunctionSymbol(e){e||(e=await this.nvim.call("bufnr",["%"]));let t=b.getDocument(e);if(!t||!t.attached||!B.hasProvider("documentSymbol",t.textDocument))return;let r=await T.getCursorPosition(),n=await this.getDocumentSymbols(e),o=this.nvim.createBuffer(e);if(!n||n.length===0)return o.setVar("coc_current_function","",!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0),"";n=n.filter(a=>["Class","Method","Function","Struct"].includes(a.kind));let s="";for(let a of n.reverse())if(a.range&&gr(r,a.range)==0&&!a.text.endsWith(") callback")){s=a.text;let l=this.labels[a.kind.toLowerCase()];l&&(s=`${l} ${s}`);break}return this.functionUpdate&&(o.setVar("coc_current_function",s,!0),this.nvim.call("coc#util#do_autocmd",["CocStatusChange"],!0)),s}async selectSymbolRange(e,t,r){let{doc:n}=await this.handler.getCurrentState();this.handler.checkProvier("documentSymbol",n.textDocument);let o;if(t)o=await b.getSelectedRange(t,n);else{let l=await T.getCursorPosition();o=Qo.Range.create(l,l)}let s=await this.getDocumentSymbols(n.bufnr);if(!s||s.length===0){T.showMessage("No symbols found","warning");return}s=s.filter(l=>r.includes(l.kind));let a;for(let l of s.reverse())if(l.range&&!rt(l.range,o)&&Jn(o,l.range)){a=l.range;break}if(e&&a){let{start:l,end:u}=a,c=n.getline(l.line+1),f=n.getline(u.line-1);a=Qo.Range.create(l.line+1,c.match(/^\s*/)[0].length,u.line-1,f.length)}a?await b.selectRange(a):["v","V",""].includes(t)&&await this.nvim.command("normal! gv")}dispose(){this.buffers.dispose(),J(this.disposables)}},CZ=class{constructor(e){this.bufnr=e;this.disposables=[];this.autoUpdate=!1;this.symbols=[];this._onDidUpdate=new Qo.Emitter;this.onDidUpdate=this._onDidUpdate.event;this.fetchSymbols=(0,SZ.default)(()=>{this._fetchSymbols().logError()},global.hasOwnProperty("__TEST__")?10:500)}async getSymbols(){let e=b.getDocument(this.bufnr);return e?(e.forceSync(),this.autoUpdate=!0,e.version==this.version?this.symbols:(this.cancel(),await this._fetchSymbols(),this.symbols)):[]}onChange(){this.cancel()}get textDocument(){var e;return(e=b.getDocument(this.bufnr))==null?void 0:e.textDocument}async _fetchSymbols(){let{textDocument:e}=this;if(!e||e.version==this.version)return;let{version:t}=e,r=this.tokenSource=new Qo.CancellationTokenSource,{token:n}=r,o=await B.getDocumentSymbol(e,n);if(this.tokenSource=void 0,o==null||n.isCancellationRequested)return;let s=0,a=[],l=null;if(LR(o))o.sort(OR),o.forEach(u=>AR(a,u,s));else{o.sort(GX);for(let u of o){let{name:c,kind:f,location:p,containerName:d}=u;if(!d||!l)s=0;else if(l.containerName==d)s=l.level||0;else{let w=zX(d,a);s=w?w.level+1:0}let{start:h}=p.range,m={col:h.character+1,lnum:h.line+1,text:c,level:s,kind:uo(f),range:p.range,containerName:d};a.push(m),l=m}}this.version=t,this.symbols=a,LR(o)?this._onDidUpdate.fire(o):this._onDidUpdate.fire(o.map(u=>Qo.DocumentSymbol.create(u.name,"",u.kind,u.location.range,u.location.range)))}cancel(){this.fetchSymbols.clear(),this.tokenSource&&(this.tokenSource.cancel(),this.tokenSource=null)}dispose(){this.cancel(),this.symbols=void 0,this._onDidUpdate.dispose(),J(this.disposables)}}});var ft,_Z,gD,TZ=I(()=>{ft=E(G());Ze();$n();je();ht();rw();zu();mh();ye();Gr();Kr();Te();ie();JX();XX();iZ();oZ();la();sZ();mZ();wZ();xZ();EZ();_Z=W()("Handler"),gD=class{constructor(e){this.nvim=e;this.documentLines=[];this.selectionRange=null;this.disposables=[];this.getPreferences(),this.requestStatusItem=T.createStatusBarItem(0,{progress:!0}),b.onDidChangeConfiguration(()=>{this.getPreferences()}),this.codeActions=new eD(e,this),this.format=new sD(e,this),this.refactor=new fD(e,this),this.symbols=new mD(e,this),this.hoverFactory=new tn(e),this.signature=new hD(e),this.codeLens=new rD(e),this.colors=new nD(e),this.documentHighlighter=new aD(e),this.semanticHighlighter=new dD(e),N.on(["CursorMoved","CursorMovedI","InsertEnter","InsertSnippet","InsertLeave"],()=>{this.requestTokenSource&&this.requestTokenSource.cancel()},null,this.disposables);let t={onDidChange:null,provideTextDocumentContent:async()=>(e.pauseNotification(),e.command("setlocal conceallevel=2 nospell nofoldenable wrap",!0),e.command("setlocal bufhidden=wipe nobuflisted",!0),e.command("setfiletype markdown",!0),e.command(`if winnr('j') != winnr('k') | exe "normal! z${Math.min(this.documentLines.length,this.preferences.previewMaxHeight)}\\ | endif"`,!0),await e.resumeNotification(),this.documentLines.join(` +`))};this.disposables.push(b.registerTextDocumentContentProvider("coc",t)),this.disposables.push(be.registerCommand("editor.action.pickColor",()=>this.pickColor())),be.titles.set("editor.action.pickColor","pick color from system color picker when possible."),this.disposables.push(be.registerCommand("editor.action.colorPresentation",()=>this.pickPresentation())),be.titles.set("editor.action.colorPresentation","change color presentation."),be.titles.set("editor.action.organizeImport","run organize import code action.")}checkProvier(e,t){if(!B.hasProvider(e,t))throw new Error(`${e} provider not found for current buffer, your language server doesn't support it.`)}async withRequestToken(e,t,r){this.requestTokenSource&&(this.requestTokenSource.cancel(),this.requestTokenSource.dispose()),this.requestTimer&&clearTimeout(this.requestTimer);let n=this.requestStatusItem;this.requestTokenSource=new ft.CancellationTokenSource;let{token:o}=this.requestTokenSource;o.onCancellationRequested(()=>{n.text=`${e} request canceled`,n.isProgress=!1,this.requestTimer=setTimeout(()=>{n.hide()},500)}),n.isProgress=!0,n.text=`requesting ${e}`,n.show();let s;try{s=await Promise.resolve(t(o))}catch(a){T.showMessage(a.message,"error"),_Z.error(`Error on ${e}`,a)}return this.requestTokenSource&&(this.requestTokenSource.dispose(),this.requestTokenSource=void 0),o.isCancellationRequested?null:(n.hide(),r&&(!s||Array.isArray(s)&&s.length==0)?(T.showMessage(`${e} not found`,"warning"),null):s)}async hasProvider(e){let t=await this.nvim.call("bufnr","%"),r=b.getDocument(t);return r?B.hasProvider(e,r.textDocument):!1}async onHover(e){let{doc:t,position:r,winid:n}=await this.getCurrentState();this.checkProvier("hover",t.textDocument),this.hoverFactory.close(),await Je(t);let o=await this.withRequestToken("hover",a=>B.getHover(t.textDocument,r,a),!0);if(o==null)return!1;let s=o.find(a=>ft.Range.is(a.range));if(s==null?void 0:s.range){let a=this.nvim.createWindow(n),l=await a.highlightRanges("CocHoverRange",[s.range],99);setTimeout(()=>{l.length&&a.clearMatches(l),b.isVim&&this.nvim.command("redraw",!0)},500)}return await this.previewHover(o,e),!0}async getHover(){let e=[],{doc:t,position:r}=await this.getCurrentState();this.checkProvier("hover",t.textDocument),await Je(t);let n=new ft.CancellationTokenSource,o=await B.getHover(t.textDocument,r,n.token);if(Array.isArray(o))for(let s of o){let{contents:a}=s;Array.isArray(a)?a.forEach(l=>{e.push(typeof l=="string"?l:l.value)}):ft.MarkupContent.is(a)?e.push(a.value):e.push(typeof a=="string"?a:a.value)}return e=e.filter(s=>s!=null&&s.length>0),e}async gotoDefinition(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("definition",t.textDocument),await Je(t);let n=await this.withRequestToken("definition",o=>B.getDefinition(t.textDocument,r,o),!0);return n==null?!1:(await this.handleLocations(n,e),!0)}async definitions(){let{doc:e,position:t}=await this.getCurrentState();if(!B.hasProvider("reference",e.textDocument))return[];await Je(e);let r=new ft.CancellationTokenSource;return B.getDefinition(e.textDocument,t,r.token)}async gotoDeclaration(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("declaration",t.textDocument),await Je(t);let n=await this.withRequestToken("declaration",o=>B.getDeclaration(t.textDocument,r,o),!0);return n==null?!1:(await this.handleLocations(n,e),!0)}async declarations(){let{doc:e,position:t}=await this.getCurrentState();if(!B.hasProvider("declaration",e.textDocument))return[];await Je(e);let r=new ft.CancellationTokenSource;return B.getDeclaration(e.textDocument,t,r.token)}async gotoTypeDefinition(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("typeDefinition",t.textDocument),await Je(t);let n=await this.withRequestToken("type definition",o=>B.getTypeDefinition(t.textDocument,r,o),!0);return n==null?!1:(await this.handleLocations(n,e),!0)}async typeDefinitions(){let{doc:e,position:t}=await this.getCurrentState();if(!B.hasProvider("typeDefinition",e.textDocument))return[];await Je(e);let r=new ft.CancellationTokenSource;return B.getTypeDefinition(e.textDocument,t,r.token)}async gotoImplementation(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("implementation",t.textDocument),await Je(t);let n=await this.withRequestToken("implementation",o=>B.getImplementation(t.textDocument,r,o),!0);return n==null?!1:(await this.handleLocations(n,e),!0)}async implementations(){let{doc:e,position:t}=await this.getCurrentState();if(!B.hasProvider("implementation",e.textDocument))return[];await Je(e);let r=new ft.CancellationTokenSource;return B.getImplementation(e.textDocument,t,r.token)}async gotoReferences(e,t=!0){let{doc:r,position:n}=await this.getCurrentState();this.checkProvier("reference",r.textDocument),await Je(r);let o=await this.withRequestToken("references",s=>B.getReferences(r.textDocument,{includeDeclaration:t},n,s),!0);return o==null?!1:(await this.handleLocations(o,e),!0)}async references(){let{doc:e,position:t}=await this.getCurrentState();if(!B.hasProvider("reference",e.textDocument))return[];await Je(e);let r=new ft.CancellationTokenSource;return B.getReferences(e.textDocument,{includeDeclaration:!0},t,r.token)}async getWordEdit(){let{doc:e,position:t}=await this.getCurrentState(),r=e.getWordRangeAtPosition(t);if(!r||Ja(r))return null;let n=e.textDocument.getText(r);if(B.hasProvider("rename",e.textDocument)){await Je(e);let s=new ft.CancellationTokenSource;if(await B.prepareRename(e.textDocument,t,s.token)===!1)return null;let l=await B.provideRenameEdits(e.textDocument,t,n,s.token);if(l)return l}T.showMessage("Rename provider not found, extract word ranges from current buffer","more");let o=e.getSymbolRanges(n);return{changes:{[e.uri]:o.map(s=>({range:s,newText:n}))}}}async rename(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("rename",t.textDocument),await Je(t);let n=this.requestStatusItem;try{let o=new ft.CancellationTokenSource().token,s=await B.prepareRename(t.textDocument,r,o);if(s===!1)return n.hide(),T.showMessage("Invalid position for rename","warning"),!1;if(o.isCancellationRequested)return!1;let a;if(e||(ft.Range.is(s)?(a=t.textDocument.getText(s),await T.moveTo(s.start)):s&&typeof s.placeholder=="string"?a=s.placeholder:a=await this.nvim.eval('expand("")'),e=await T.requestInput("New name",a)),!e)return n.hide(),!1;let l=await B.provideRenameEdits(t.textDocument,r,e,o);return o.isCancellationRequested?!1:(n.hide(),l?(await b.applyEdit(l),b.isVim&&this.nvim.command("redraw",!0),!0):(T.showMessage("Invalid position for rename","warning"),!1))}catch(o){return n.hide(),T.showMessage(`Error on rename: ${o.message}`,"error"),_Z.error(o),!1}}async getCallHierarchy(e){let{doc:t,position:r}=await this.getCurrentState();this.checkProvier("callHierarchy",t.textDocument),await Je(t);let n=await this.withRequestToken("Prepare Call hierarchy",l=>B.prepareCallHierarchy(t.textDocument,r,l),!1);if(!n)return!1;let o=[],s=Array.isArray(n)?n[0]:n;if(e==="incoming"){let l=await this.withRequestToken("incoming calls",u=>B.provideIncomingCalls(s,u),!0);if(!l)return;for(let u of l)o.push(u.from)}else{let l=await this.withRequestToken("outgoing calls",u=>B.provideOutgoingCalls(s,u),!0);if(!l)return;for(let u of l)o.push(u.to)}if(!o)return!1;let a=[];for(let l of o)a.push({uri:l.uri,range:l.range});return await this.handleLocations(a),!0}async getTagList(){let{doc:e,position:t}=await this.getCurrentState(),r=await this.nvim.call("expand","");if(!r||!B.hasProvider("definition",e.textDocument))return null;let n=new ft.CancellationTokenSource,o=await B.getDefinition(e.textDocument,t,n.token);return!o||!o.length?null:o.map(s=>{let a=j.parse(s.uri),l=a.scheme=="file"?a.fsPath:a.toString();return{name:r,cmd:`keepjumps ${s.range.start.line+1} | normal ${s.range.start.character+1}|`,filename:l}})}async runCommand(e,...t){if(e){await N.fire("Command",[e]);let r=await be.executeCommand(e,...t);return t.length==0&&await be.addRecent(e),r}else await yr.start(["commands"])}async doCodeLensAction(){await this.codeLens.doAction()}async fold(e){let{doc:t,winid:r}=await this.getCurrentState();this.checkProvier("foldingRange",t.textDocument),await Je(t);let n=this.nvim.createWindow(r),[o,s]=await this.nvim.eval("[&foldmethod,&foldlevel]");if(o!="manual")return T.showMessage("foldmethod option should be manual!","warning"),!1;let a=await this.withRequestToken("folding range",l=>B.provideFoldingRanges(t.textDocument,{},l),!0);if(!a)return!1;if(e&&(a=a.filter(l=>l.kind==e)),a.length){a.sort((l,u)=>u.startLine-l.startLine),this.nvim.pauseNotification(),this.nvim.command("normal! zE",!0);for(let l of a){let{startLine:u,endLine:c}=l,f=`${u+1}, ${c+1}fold`;this.nvim.command(f,!0)}return n.setOption("foldenable",!0,!0),n.setOption("foldlevel",s,!0),b.isVim&&this.nvim.command("redraw",!0),await this.nvim.resumeNotification(),!0}return!1}async pickColor(){let{doc:e}=await this.getCurrentState();this.checkProvier("documentColor",e.textDocument),await this.colors.pickColor()}async pickPresentation(){let{doc:e}=await this.getCurrentState();this.checkProvier("documentColor",e.textDocument),await this.colors.pickPresentation()}async highlight(){await this.documentHighlighter.highlight()}async semanticHighlights(){let{doc:e}=await this.getCurrentState();!B.hasProvider("semanticTokens",e.textDocument)||(await Je(e),await this.semanticHighlighter.doHighlight(e.bufnr))}async getSemanticHighlights(){let{doc:e}=await this.getCurrentState();if(!!B.hasProvider("semanticTokens",e.textDocument))return await Je(e),await this.semanticHighlighter.getHighlights(e.bufnr)}async getSymbolsRanges(){let{doc:e,position:t}=await this.getCurrentState();this.checkProvier("documentHighlight",e.textDocument);let r=await this.documentHighlighter.getHighlights(e,t);return r?r.map(n=>n.range):null}async links(){let{doc:e}=await this.getCurrentState();this.checkProvier("documentLink",e.textDocument);let t=await this.withRequestToken("links",n=>B.getDocumentLinks(e.textDocument,n));t=t||[];let r=[];for(let n of t)n.target||(n=await B.resolveDocumentLink(n)),r.push(n);return t}async openLink(){let{doc:e,position:t}=await this.getCurrentState();this.checkProvier("documentLink",e.textDocument);let r=await this.withRequestToken("links",n=>B.getDocumentLinks(e.textDocument,n));if(!r||r.length==0)return!1;for(let n of r)if(gr(t,n.range)==0){let{target:o}=n;return o||(n=await B.resolveDocumentLink(n),o=n.target),o?(await b.openResource(o),!0):!1}return!1}async getCommands(){let e=be.commandList,t=[],{titles:r}=be;for(let n of e)t.push({id:n.id,title:r.get(n.id)||""});return t}async showSignatureHelp(){let{doc:e,position:t}=await this.getCurrentState();return B.hasProvider("signature",e.textDocument)?await this.signature.triggerSignatureHelp(e,t):!1}async findLocations(e,t,r,n){let{doc:o,position:s}=await this.getCurrentState();r=r||{},Object.assign(r,{textDocument:{uri:o.uri},position:s});let a=await qr.sendRequest(e,t,r);a=a||[];let l=[];if(Array.isArray(a))l=a;else if(a.hasOwnProperty("location")&&a.hasOwnProperty("children")){let u=c=>{if(l.push(c.location),c.children&&c.children.length)for(let f of c.children)u(f)};u(a)}await this.handleLocations(l,n)}async handleLocations(e,t){if(!e)return;let n=(Array.isArray(e)?e:[e]).length;if(n!=0)if(n==1&&t!==!1){let o=e[0];if(ft.LocationLink.is(e[0])){let l=e[0];o=ft.Location.create(l.targetUri,l.targetRange)}let{uri:s,range:a}=o;await b.jumpTo(s,a.start,t)}else await b.showLocations(e)}async getSelectionRanges(){let{doc:e,position:t}=await this.getCurrentState();this.checkProvier("selectionRange",e.textDocument),await Je(e);let r=await this.withRequestToken("selection ranges",n=>B.getSelectionRanges(e.textDocument,[t],n));return r&&r.length?r:null}async selectRange(e,t){let{nvim:r}=this,{doc:n}=await this.getCurrentState();this.checkProvier("selectionRange",n.textDocument);let o=[];if(!t&&(!this.selectionRange||!e))return;if(e){let u=await b.getSelectedRange(e,n);o.push(u.start,u.end)}else{let u=await T.getCursorPosition();o.push(u)}if(!t){let u=ft.Range.create(o[0],o[1]),{selectionRange:c}=this;for(;c&&c.parent&&!rt(c.parent.range,u);)c=c.parent;c&&c.parent&&await b.selectRange(c.range);return}await Je(n);let s=await this.withRequestToken("selection ranges",u=>B.getSelectionRanges(n.textDocument,o,u));if(!s||s.length==0)return;await r.eval("mode()")!="n"&&await r.eval(`feedkeys("\\", 'in')`);let l;if(s.length==1)l=s[0];else if(o.length>1){let u=ft.Range.create(o[0],o[1]);for(l=s[0];l;){if(rt(u,l.range)){l=l.parent;continue}if(gr(o[1],l.range)==0)break;l=l.parent}}!l||(this.selectionRange=s[0],await b.selectRange(l.range))}async previewHover(e,t){let r=[],n=b.getConfiguration("hover");t||(t=this.preferences.hoverTarget||n.get("target","float"),t=="float"&&!b.floatSupported&&(t="preview"));let o=t==="preview";for(let a of e){let{contents:l}=a;if(Array.isArray(l))for(let u of l)typeof u=="string"?ff(r,u,"markdown",o):ff(r,u.value,u.language,o);else ft.MarkedString.is(l)?typeof l=="string"?ff(r,l,"markdown",o):ff(r,l.value,l.language,o):ft.MarkupContent.is(l)&&ff(r,l.value,VX(l)?"markdown":"txt",o)}if(t=="float"){let a={modes:["n"]};a.maxWidth=n.get("floatMaxWidth",80),a.maxHeight=n.get("floatMaxHeight",void 0),a.autoHide=n.get("autoHide",!0),a.excludeImages=b.getConfiguration("coc.preferences").get("excludeImageLinksInMarkdownDocument",!0),await this.hoverFactory.show(r,a);return}let s=r.reduce((a,l)=>{let u=l.content.split(/\r?\n/);return a.length>0&&a.push(""),a.push(...u),a},[]);if(t=="echo"){let a=s.join(` +`).trim();a.length&&await this.nvim.call("coc#util#echo_hover",a)}else this.documentLines=s,await this.nvim.command("noswapfile pedit coc://document")}getPreferences(){let e=b.getConfiguration("coc.preferences"),t=e.get("hoverTarget",void 0);this.preferences={hoverTarget:t,previewMaxHeight:e.get("previewMaxHeight",12),previewAutoClose:e.get("previewAutoClose",!1),floatActions:e.get("floatActions",!0)}}async getCurrentState(){let{nvim:e}=this,[t,[r,n],o]=await e.eval("[bufnr('%'),coc#util#cursor(),win_getid()]"),s=b.getDocument(t);if(!s||!s.attached)throw new Error(`current buffer ${t} not attached`);return{doc:s,position:ft.Position.create(r,n),winid:o}}addDisposable(e){this.disposables.push(e)}dispose(){this.requestTimer&&(clearTimeout(this.requestTimer),this.requestTimer=void 0),this.refactor.dispose(),this.signature.dispose(),this.symbols.dispose(),this.hoverFactory.dispose(),this.colors.dispose(),this.documentHighlighter.dispose(),this.semanticHighlighter.dispose(),J(this.disposables)}}});var PZ,RZ,BR,Kh,Ml,vD,kZ=I(()=>{PZ=E(require("events")),RZ=E(require("path")),BR=E(require("fs")),Kh=E(G());Ze();$n();tP();iV();el();Ko();TZ();ht();rw();mh();xl();Dl();Pi();ye();ie();Te();je();Ml=W()("plugin"),vD=class extends PZ.EventEmitter{constructor(e){super();this.nvim=e;this._ready=!1;this.actions=new Map;Object.defineProperty(b,"nvim",{get:()=>this.nvim}),this.cursors=new vw(e),this.addAction("hasProvider",r=>this.handler.hasProvider(r)),this.addAction("getTagList",async()=>await this.handler.getTagList()),this.addAction("hasSelected",()=>ta.hasSelected()),this.addAction("listNames",()=>yr.names),this.addAction("listDescriptions",()=>yr.descriptions),this.addAction("listLoadItems",async r=>await yr.loadItems(r)),this.addAction("search",(...r)=>this.handler.refactor.search(r)),this.addAction("cursorsSelect",(r,n,o)=>this.cursors.select(r,n,o)),this.addAction("fillDiagnostics",r=>At.setLocationlist(r)),this.addAction("getConfig",async r=>{let n=await b.document;return b.getConfiguration(r,n?n.uri:void 0)}),this.addAction("rootPatterns",r=>{let n=b.getDocument(r);return n?{buffer:b.getRootPatterns(n,Ei.Buffer),server:b.getRootPatterns(n,Ei.LanguageServer),global:b.getRootPatterns(n,Ei.Global)}:null}),this.addAction("installExtensions",async(...r)=>{await we.installExtensions(r)}),this.addAction("saveRefactor",async r=>{await this.handler.refactor.save(r)}),this.addAction("updateExtensions",async r=>{await we.updateExtensions(r)}),this.addAction("commandList",()=>be.commandList.map(r=>r.id)),this.addAction("openList",async(...r)=>{await this.ready,await yr.start(r)}),this.addAction("selectSymbolRange",(r,n,o)=>this.handler.symbols.selectSymbolRange(r,n,o)),this.addAction("listResume",r=>yr.resume(r)),this.addAction("listCancel",()=>yr.cancel(!0)),this.addAction("listPrev",r=>yr.previous(r)),this.addAction("listNext",r=>yr.next(r)),this.addAction("listFirst",r=>yr.first(r)),this.addAction("listLast",r=>yr.last(r)),this.addAction("sendRequest",(r,n,o)=>qr.sendRequest(r,n,o)),this.addAction("sendNotification",(r,n,o)=>qr.sendNotification(r,n,o)),this.addAction("registNotification",(r,n)=>qr.registNotification(r,n)),this.addAction("doAutocmd",async(r,...n)=>{let o=b.autocmds.get(r);if(o)try{await Promise.resolve(o.callback.apply(o.thisArg,n))}catch(s){Ml.error(`Error on autocmd ${o.event}`,s),T.showMessage(`Error on autocmd ${o.event}: ${s.message}`)}}),this.addAction("updateConfig",(r,n)=>{b.configurations.updateUserConfig({[r]:n})}),this.addAction("snippetNext",async()=>(await ir.nextPlaceholder(),"")),this.addAction("snippetPrev",async()=>(await ir.previousPlaceholder(),"")),this.addAction("snippetCancel",()=>{ir.cancel()}),this.addAction("openLocalConfig",async()=>{await T.openLocalConfig()}),this.addAction("openLog",async()=>{let r=Ml.getLogFile();await b.jumpTo(j.file(r).toString())}),this.addAction("attach",()=>b.attach()),this.addAction("detach",()=>b.detach()),this.addAction("doKeymap",async(r,n="",o)=>{let s=b.keymaps.get(r);if(!s)return Ml.error(`keymap for ${r} not found`),this.nvim.command(`silent! unmap ${o.startsWith("{")&&o.endsWith("}")?`<${o.slice(1,-1)}>`:o}`,!0),n;let[a,l]=s,u=await Promise.resolve(a());return l&&await e.command(`silent! call repeat#set("\\(coc-${r})", -1)`),u!=null?u:n}),this.addAction("registExtensions",async(...r)=>{for(let n of r)await we.loadExtension(n)}),this.addAction("snippetCheck",async(r,n)=>{if(r&&!we.has("coc-snippets"))return console.error("coc-snippets required for check expand status!"),!1;if(n&&ir.jumpable())return!0;if(r){let o=we.getExtensionApi("coc-snippets");if(o&&o.hasOwnProperty("expandable")&&await Promise.resolve(o.expandable()))return!0}return!1}),this.addAction("showInfo",async()=>{this.infoChannel?this.infoChannel.clear():this.infoChannel=T.createOutputChannel("info");let r=this.infoChannel;r.appendLine("## versions"),r.appendLine("");let o=(await this.nvim.call("execute",["version"])).trim().split(/\r?\n/,2)[0].replace(/\(.*\)/,"").trim();r.appendLine("vim version: "+o+`${b.isVim?" "+b.env.version:""}`),r.appendLine("node version: "+process.version),r.appendLine("coc.nvim version: "+this.version),r.appendLine("coc.nvim directory: "+RZ.default.dirname(__dirname)),r.appendLine("term: "+(process.env.TERM_PROGRAM||process.env.TERM)),r.appendLine("platform: "+process.platform),r.appendLine(""),r.appendLine("## Log of coc.nvim"),r.appendLine("");let s=Ml.getLogFile();if(BR.default.existsSync(s)){let a=BR.default.readFileSync(s,{encoding:"utf8"});r.appendLine(a)}r.show()}),this.addAction("findLocations",(r,n,o,s)=>this.handler.findLocations(r,n,o,s)),this.addAction("links",()=>this.handler.links()),this.addAction("openLink",()=>this.handler.openLink()),this.addAction("pickColor",()=>this.handler.pickColor()),this.addAction("colorPresentation",()=>this.handler.pickPresentation()),this.addAction("highlight",async()=>{await this.handler.highlight()}),this.addAction("fold",r=>this.handler.fold(r)),this.addAction("startCompletion",async r=>{await ta.startCompletion(r)}),this.addAction("stopCompletion",()=>{ta.stop(!1)}),this.addAction("sourceStat",()=>st.sourceStats()),this.addAction("refreshSource",async r=>{await st.refresh(r)}),this.addAction("toggleSource",r=>{st.toggleSource(r)}),this.addAction("diagnosticRefresh",async r=>{At.refresh(r)}),this.addAction("diagnosticInfo",async()=>{await At.echoMessage()}),this.addAction("diagnosticToggle",()=>{At.toggleDiagnostic()}),this.addAction("diagnosticToggleBuffer",async r=>{r||(r=await e.call("bufnr",["%"])),At.toggleDiagnosticBuffer(r)}),this.addAction("diagnosticNext",async r=>{await At.jumpNext(r)}),this.addAction("diagnosticPrevious",async r=>{await At.jumpPrevious(r)}),this.addAction("diagnosticPreview",async()=>{await At.preview()}),this.addAction("diagnosticList",()=>At.getDiagnosticList()),this.addAction("jumpDefinition",r=>this.handler.gotoDefinition(r)),this.addAction("definitions",()=>this.handler.definitions()),this.addAction("jumpDeclaration",r=>this.handler.gotoDeclaration(r)),this.addAction("declarations",()=>this.handler.declarations()),this.addAction("jumpImplementation",r=>this.handler.gotoImplementation(r)),this.addAction("implementations",()=>this.handler.implementations()),this.addAction("jumpTypeDefinition",r=>this.handler.gotoTypeDefinition(r)),this.addAction("typeDefinitions",()=>this.handler.typeDefinitions()),this.addAction("jumpReferences",r=>this.handler.gotoReferences(r)),this.addAction("references",()=>this.handler.references()),this.addAction("jumpUsed",r=>this.handler.gotoReferences(r,!1)),this.addAction("doHover",r=>this.handler.onHover(r)),this.addAction("getHover",()=>this.handler.getHover()),this.addAction("showSignatureHelp",()=>this.handler.showSignatureHelp()),this.addAction("documentSymbols",async r=>(r||(r=(await b.document).bufnr),await this.handler.symbols.getDocumentSymbols(r))),this.addAction("ensureDocument",async()=>{let r=await b.document;return r&&r.attached}),this.addAction("symbolRanges",()=>this.handler.getSymbolsRanges()),this.addAction("selectionRanges",()=>this.handler.getSelectionRanges()),this.addAction("rangeSelect",(r,n)=>this.handler.selectRange(r,n)),this.addAction("rename",r=>this.handler.rename(r)),this.addAction("getWorkspaceSymbols",async r=>{let n=new Kh.CancellationTokenSource;return await B.getWorkspaceSymbols(r,n.token)}),this.addAction("formatSelected",r=>this.handler.format.formatCurrentRange(r)),this.addAction("format",()=>this.handler.format.formatCurrentBuffer()),this.addAction("commands",()=>this.handler.getCommands()),this.addAction("services",()=>qr.getServiceStats()),this.addAction("toggleService",r=>qr.toggle(r)),this.addAction("codeAction",(r,n)=>this.handler.codeActions.doCodeAction(r,n)),this.addAction("organizeImport",()=>this.handler.codeActions.organizeImport()),this.addAction("fixAll",()=>this.handler.codeActions.doCodeAction(null,[Kh.CodeActionKind.SourceFixAll]));let t=[];this.addAction("doCodeAction",r=>{if(r.index==null)throw new Error("index should exists with codeAction");let n=t[r.index];if(!n)throw new Error(`invalid codeAction index: ${r.index}`);return this.handler.codeActions.applyCodeAction(n)}),this.addAction("codeActions",async(r,n)=>(t=await this.handler.codeActions.getCurrentCodeActions(r,n),t.map((o,s)=>Object.assign({index:s},o)))),this.addAction("quickfixes",async r=>(t=await this.handler.codeActions.getCurrentCodeActions(r,[Kh.CodeActionKind.QuickFix]),t.map((n,o)=>Object.assign({index:o},n)))),this.addAction("codeLensAction",()=>this.handler.doCodeLensAction()),this.addAction("runCommand",(...r)=>this.handler.runCommand(...r)),this.addAction("doQuickfix",()=>this.handler.codeActions.doQuickfix()),this.addAction("refactor",()=>this.handler.refactor.doRefactor()),this.addAction("repeatCommand",()=>be.repeatCommand()),this.addAction("extensionStats",()=>we.getExtensionStates()),this.addAction("loadedExtensions",()=>we.loadedExtensions()),this.addAction("watchExtension",r=>we.watchExtension(r)),this.addAction("activeExtension",r=>we.activate(r)),this.addAction("deactivateExtension",r=>we.deactivate(r)),this.addAction("reloadExtension",r=>we.reloadExtension(r)),this.addAction("toggleExtension",r=>we.toggleExtension(r)),this.addAction("uninstallExtension",(...r)=>we.uninstallExtension(r)),this.addAction("getCurrentFunctionSymbol",()=>this.handler.symbols.getCurrentFunctionSymbol()),this.addAction("getWordEdit",()=>this.handler.getWordEdit()),this.addAction("addRanges",async r=>{await this.cursors.addRanges(r)}),this.addAction("currentWorkspacePath",()=>b.rootPath),this.addAction("addCommand",r=>{this.addCommand(r)}),this.addAction("selectCurrentPlaceholder",r=>ir.selectCurrentPlaceholder(!!r)),this.addAction("codeActionRange",(r,n,o)=>this.handler.codeActions.codeActionRange(r,n,o)),b.onDidChangeWorkspaceFolders(()=>{e.setVar("WorkspaceFolders",b.folderPaths,!0)}),this.addAction("incomingCalls",()=>this.handler.getCallHierarchy("incoming")),this.addAction("outgoingCalls",()=>this.handler.getCallHierarchy("outgoing")),this.addAction("semanticHighlight",()=>this.handler.semanticHighlights()),this.addAction("showSemanticHighlightInfo",async()=>{let r=await this.handler.getSemanticHighlights();if(!r){T.showMessage("Failed to fetch semantic highlights","warning");return}this.semanticChannel?this.semanticChannel.clear():this.semanticChannel=T.createOutputChannel("semanticHighlightInfo");let n=this.semanticChannel;n.appendLine(`## Semantic highlighting for current buffer +`),n.appendLine(`The number of semantic tokens: ${r.length}`),n.appendLine(`List of all semantic highlight groups: +`);let o=[...new Set(r.map(({group:l})=>l))];for(let l of o)n.appendLine(`- ${l}`);let s=await b.document,a=B.getLegend(s.textDocument);n.appendLine(` +## type tokens that current Language Server supported: +`);for(let l of a.tokenTypes)n.appendLine(`- CocSem_${l}`);n.show()}),be.init(e,this)}addAction(e,t){if(this.actions.has(e))throw new Error(`Action ${e} already exists`);this.actions.set(e,t)}addCommand(e){let t=`vim.${e.id}`;be.registerCommand(t,async()=>{await this.nvim.command(e.cmd)}),e.title&&be.titles.set(t,e.title)}async init(){let{nvim:e}=this,t=Date.now();try{await we.init(),await b.init(),B.init();for(let r of b.env.vimCommands)this.addCommand(r);ir.init(),ta.init(),At.init(),yr.init(e),e.setVar("coc_workspace_initialized",1,!0),e.setVar("WorkspaceFolders",b.folderPaths,!0),st.init(),this.handler=new gD(e),qr.init(),await we.activateExtensions(),b.setupDynamicAutocmd(!0),e.setVar("coc_service_initialized",1,!0),e.call("coc#util#do_autocmd",["CocNvimInit"],!0),this._ready=!0,await N.fire("ready",[]),Ml.info(`coc.nvim ${this.version} initialized with node: ${process.version} after ${Date.now()-t}ms`),this.emit("ready")}catch(r){console.error(`Error on initialize: ${r.stack}`),Ml.error(r.stack)}b.onDidOpenTextDocument(async r=>{!r.uri.endsWith(Tn)||we.has("coc-json")||T.showMessage("Run :CocInstall coc-json for json intellisense","more")})}get isReady(){return this._ready}get ready(){return this._ready?Promise.resolve():new Promise(e=>{this.once("ready",()=>{e()})})}get version(){return b.version+"-131f6b267f"}hasAction(e){return this.actions.has(e)}async cocAction(e,...t){let r=this.actions.get(e);if(!r)throw new Error(`Action "${e}" not exists`);let n=Date.now(),o=await Promise.resolve(r.apply(null,t)),s=Date.now()-n;return s>500&&Ml.warn(`Slow action "${e}" cost ${s}ms`),o}getHandler(){return this.handler}dispose(){this.removeAllListeners(),we.dispose(),yr.dispose(),b.dispose(),T.dispose(),st.dispose(),qr.stopAll(),qr.dispose(),this.handler&&this.handler.dispose(),ir.dispose(),be.dispose(),ta.dispose(),At.dispose()}}});var AZ={};os(AZ,{default:()=>T_e});var IZ,FZ,OZ,es,__e,T_e,LZ=I(()=>{IZ=E(l0()),FZ=E(sx());je();kZ();OZ=E(Gp());Yi();Ze();wE();es=W()("attach"),__e=global.hasOwnProperty("__TEST__"),T_e=(i,e=!0)=>{let t=(0,IZ.attach)(i,FZ.default.getLogger("node-client"),e);global.hasOwnProperty("__TEST__")||t.call("coc#util#path_replace_patterns").then(s=>{if(zt(s)){let a=j.file;j.file=l=>(l=l.replace(/\\/g,"/"),Object.keys(s).forEach(u=>l=l.replace(new RegExp("^"+u),s[u])),a(l))}}).logError(),t.setVar("coc_process_pid",process.pid,!0);let r=new vD(t),n=!1,o=!1;return t.on("notification",async(s,a)=>{switch(s){case"VimEnter":{!o&&n&&(o=!0,await r.init());break}case"TaskExit":case"TaskStderr":case"TaskStdout":case"GlobalChange":case"PromptInsert":case"InputChar":case"MenuInput":case"OptionSet":case"FloatBtnClick":await N.fire(s,a);break;case"CocAutocmd":es.trace("Notification autocmd:",...a),await N.fire(a[0],a.slice(1));break;default:{if(!r.hasAction(s)){if(global.hasOwnProperty("__TEST__"))return;console.error(`action "${s}" not exists`);return}try{r.isReady?es.info("receive notification:",s,a):es.warn(`Plugin not ready when received "${s}"`,a),await r.ready,await r.cocAction(s,...a)}catch(u){console.error(`Error on "${s}": ${u.message||u.toString()}`),es.error("Notification error:",s,a,u)}}}}),t.on("request",async(s,a,l)=>{if(s=="redraw"){l.send();return}let u=setTimeout(()=>{es.error("Request cost more than 3s",s,a)},3e3);try{if(s=="CocAutocmd")es.trace("Request autocmd:",...a),await N.fire(a[0],a.slice(1)),l.send(void 0);else{if(!r.isReady){es.warn(`Plugin not ready on request "${s}"`,a),l.send("Plugin not ready",!0);return}es.info("Request action:",s,a);let c=await r.cocAction(s,...a);l.send(c)}clearTimeout(u)}catch(c){clearTimeout(u),l.send(c.message||c.toString(),!0),es.error("Request error:",s,a,c)}}),t.channelId.then(async s=>{n=!0,__e&&t.command(`let g:coc_node_channel_id = ${s}`,!0);let{major:a,minor:l,patch:u}=OZ.default.parse(qv);t.setClientInfo("coc",{major:a,minor:l,patch:u},"remote",{},{}),await t.getVvar("vim_did_enter")&&!o&&(o=!0,await r.init())}).catch(s=>{console.error(`Channel create error: ${s.message}`)}),r}});$m();Object.defineProperty(console,"log",{value(){jR.info(...arguments)}});var jR=W()("server"),P_e=(LZ(),AZ).default;P_e({reader:process.stdin,writer:process.stdout});process.on("uncaughtException",function(i){let e="Uncaught exception: "+i.message;console.error(e),jR.error("uncaughtException",i.stack)});process.on("unhandledRejection",function(i,e){i instanceof Error?console.error("UnhandledRejection: "+i.message+` +`+i.stack):console.error("UnhandledRejection: "+i),jR.error("unhandledRejection ",e,i)}); +/*! + * @description Recursive object extending + * @author Viacheslav Lotsmanov + * @license MIT + * + * The MIT License (MIT) + * + * Copyright (c) 2013-2018 Viacheslav Lotsmanov + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + * the Software, and to permit persons to whom the Software is furnished to do so, + * subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +/*! + * ISC License + * + * Copyright (c) 2018, Andrea Giammarchi, @WebReflection + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE + * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ +/*! + * bytes + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015 Jed Watson + * MIT Licensed + */ +/*! + * content-disposition + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +/** + * event-lite.js - Light-weight EventEmitter (less than 1KB when gzipped) + * + * @copyright Yusuke Kawasaki + * @license MIT + * @constructor + * @see https://github.com/kawanet/event-lite + * @see http://kawanet.github.io/event-lite/EventLite.html + * @example + * var EventLite = require("event-lite"); + * + * function MyClass() {...} // your class + * + * EventLite.mixin(MyClass.prototype); // import event methods + * + * var obj = new MyClass(); + * obj.on("foo", function() {...}); // add event listener + * obj.once("bar", function() {...}); // add one-time event listener + * obj.emit("foo"); // dispatch event + * obj.emit("bar"); // dispatch another event + * obj.off("foo"); // remove event listener + */ diff --git a/etc/soft/nvim/+plugins/coc.nvim/data/schema.json b/etc/soft/nvim/+plugins/coc.nvim/data/schema.json new file mode 100644 index 0000000..c9ccdd0 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/data/schema.json @@ -0,0 +1,1273 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "description": "Configuration file for coc.nvim", + "additionalProperties": false, + "definitions": { + "languageServerBase": { + "type": "object", + "properties": { + "enable": { + "type": "boolean", + "default": true + }, + "cwd": { + "type": "string", + "default": "", + "description": "Working directory of languageserver, absolute path or relative to workspace folder, use workspace root by default" + }, + "disableDynamicRegister": { + "type": "boolean", + "default": false, + "description": "Disable dynamic registerCapability feature for this languageserver to avoid duplicated feature regstration." + }, + "disableWorkspaceFolders": { + "type": "boolean", + "default": false, + "description": "Disable workspaceFolders feature for this languageserver." + }, + "disableSnippetCompletion": { + "type": "boolean", + "default": false, + "description": "Disable completion snippet feature for this languageserver, the languageserver may not respect it." + }, + "disableDiagnostics": { + "type": "boolean", + "default": false, + "description": "Disable handle diagnostics for this languageserver." + }, + "disableCompletion": { + "type": "boolean", + "default": false, + "description": "Disable completion feature for this languageserver." + }, + "formatterPriority": { + "type": "number", + "default": 0, + "description": "Priority of this languageserver's fomatter." + }, + "env": { + "type": "object", + "default": null, + "description": "Environment variables for child process." + }, + "stdioEncoding": { + "type": "string", + "default": "utf8", + "description": "Encoding used for stdio of child process." + }, + "rootPatterns": { + "type": "array", + "default": [], + "description": "Root patterns used to resolve rootPath from current file, default to workspace root", + "items": { + "type": "string" + } + }, + "requireRootPattern": { + "type": "boolean", + "default": false, + "description": "If true, doesn't start server when root pattern not found." + }, + "ignoredRootPaths": { + "type": "array", + "default": [], + "description": "Absolute root paths that language server should not use as rootPath, higher priority than rootPatterns.", + "items": { + "type": "string" + } + }, + "filetypes": { + "type": "array", + "default": [], + "description": "Supported filetypes, add * in array for all filetypes.", + "items": { + "type": "string" + } + }, + "additionalSchemes": { + "type": "array", + "default": [], + "description": "Additional uri schemes, default schemes including file & untitled.", + "items": { + "type": "string" + } + }, + "revealOutputChannelOn": { + "type": "string", + "default": "never", + "description": "Configure message level to show the output channel buffer", + "enum": ["info", "warn", "error", "never"] + }, + "progressOnInitialization": { + "type": "boolean", + "default": true, + "description": "Enable progress report on languageserver initialize." + }, + "initializationOptions": { + "type": "object", + "default": {}, + "description": "initializationOptions passed to languageserver" + }, + "settings": { + "type": "object", + "default": {}, + "description": "Settings of languageserver" + }, + "trace.server": { + "type": "string", + "default": "off", + "enum": ["off", "messages", "verbose"], + "description": "Trace level of communication between server and client" + } + } + }, + "languageServerSocket": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/languageServerBase" }], + "required": ["port", "filetypes"], + "additionalProperties": false, + "properties": { + "port": { + "type": "integer", + "description": "Port number of socket server" + }, + "host": { + "type": "string", + "default": "127.0.0.1", + "description": "Host of server" + }, + "disableWorkspaceFolders": {}, + "disableSnippetCompletion": {}, + "disableDynamicRegister": {}, + "disableDiagnostics": {}, + "disableCompletion": {}, + "formatterPriority": {}, + "enable": {}, + "rootPatterns": {}, + "requireRootPattern": {}, + "ignoredRootPaths": {}, + "filetypes": {}, + "additionalSchemes": {}, + "revealOutputChannelOn": {}, + "progressOnInitialization": {}, + "initializationOptions": {}, + "settings": {}, + "stdioEncoding": {}, + "trace.server": {} + } + }, + "languageServerModule": { + "type": "object", + "allOf": [{ "$ref": "#/definitions/languageServerBase" }], + "required": ["module", "filetypes"], + "additionalProperties": false, + "properties": { + "module": { + "type": "string", + "default": "", + "description": "Absolute path of javascript file, should works in IPC mode" + }, + "args": { + "type": "array", + "default": [], + "description": "Extra arguments of module", + "items": { + "type": "string" + } + }, + "runtime": { + "type": "string", + "default": "", + "description": "Absolute path of node runtime." + }, + "execArgv": { + "type": "array", + "default": [], + "description": "Argv passed to node when using module, normally used for debugging, ex: [\"--nolazy\", \"--inspect-brk=6045\"]", + "items": { + "type": "string" + } + }, + "transport": { + "type": "string", + "default": "ipc", + "description": "Transport kind used by server, could be 'ipc', 'stdio', 'socket' and 'pipe'", + "enum": ["ipc", "stdio", "socket", "pipe"] + }, + "transportPort": { + "type": "integer", + "description": "Port number used when transport is 'socket'" + }, + "cwd": {}, + "env": {}, + "enable": {}, + "disableDynamicRegister": {}, + "disableWorkspaceFolders": {}, + "disableSnippetCompletion": {}, + "disableDiagnostics": {}, + "disableCompletion": {}, + "formatterPriority": {}, + "rootPatterns": {}, + "requireRootPattern": {}, + "ignoredRootPaths": {}, + "filetypes": {}, + "additionalSchemes": {}, + "revealOutputChannelOn": {}, + "progressOnInitialization": {}, + "initializationOptions": {}, + "stdioEncoding": {}, + "settings": {}, + "trace.server": {} + } + }, + "languageServerCommand": { + "type": "object", + "required": ["command", "filetypes"], + "allOf": [{ "$ref": "#/definitions/languageServerBase" }], + "additionalProperties": false, + "properties": { + "command": { + "type": "string", + "default": "", + "description": "Executable in $PATH to start languageserver, should not used with module" + }, + "args": { + "type": "array", + "default": [], + "description": "Arguments of command", + "items": { + "type": "string" + } + }, + "detached": { + "type": "boolean", + "default": false, + "description": "Detach the languageserver process" + }, + "shell": { + "type": "boolean", + "default": false, + "description": "Use shell for process" + }, + "cwd": {}, + "env": {}, + "enable": {}, + "disableDynamicRegister": {}, + "disableWorkspaceFolders": {}, + "disableSnippetCompletion": {}, + "disableDiagnostics": {}, + "disableCompletion": {}, + "formatterPriority": {}, + "rootPatterns": {}, + "requireRootPattern": {}, + "ignoredRootPaths": {}, + "filetypes": {}, + "additionalSchemes": {}, + "revealOutputChannelOn": {}, + "progressOnInitialization": {}, + "initializationOptions": {}, + "stdioEncoding": {}, + "settings": {}, + "trace.server": {} + } + } + }, + "properties": { + "http.proxy": { + "type": "string", + "default": "", + "pattern": "^https?://([^:]*(:[^@]*)?@)?([^:]+|\\[[:0-9a-fA-F]+\\])(:\\d+)?/?$|^$", + "description": "The proxy setting to use. If not set, will be inherited from the `http_proxy` and `https_proxy` environment variables." + }, + "http.proxyStrictSSL": { + "type": "boolean", + "description": "Controls whether the proxy server certificate should be verified against the list of supplied CAs", + "default": true + }, + "http.proxyAuthorization": { + "type": ["null", "string"], + "description": "The value to send as the `Proxy-Authorization` header for every network request.", + "default": null + }, + "http.proxyCA": { + "type": "string", + "description": "CA (file) to use as Certificate Authority", + "default": null + }, + "npm.binPath": { + "type": "string", + "default": "npm", + "description": "Command or absolute path to npm or yarn." + }, + "suggest.enablePreselect": { + "type": "boolean", + "description": "Enable preselect feature of LSP, only works on neovim", + "default": false + }, + "suggest.maxPreviewWidth": { + "type": "number", + "default": 80, + "description": "Maximum width of floating preview window." + }, + "suggest.enablePreview": { + "type": "boolean", + "description": "Add preview option to completeopt, default: false.", + "default": false + }, + "suggest.floatEnable": { + "type": "boolean", + "description": "Enable floating window for documentation when possible.", + "default": true + }, + "suggest.labelMaxLength": { + "type": "number", + "description": "Max length of abbr that shown as label of complete item.", + "default": 200 + }, + "suggest.detailMaxLength": { + "type": "number", + "description": "Max length of detail that should be shown in popup menu.", + "default": 100 + }, + "suggest.detailField": { + "type": "string", + "default": "preview", + "description": "Where to show the detail text of CompleteItem from LS.", + "enum": ["abbr", "menu", "preview"] + }, + "suggest.autoTrigger": { + "type": "string", + "default": "always", + "description": "How should completion be triggered", + "enum": ["always", "trigger", "none"] + }, + "suggest.languageSourcePriority": { + "type": "number", + "default": 99, + "description": "Priority of language sources." + }, + "suggest.numberSelect": { + "type": "boolean", + "description": "Input number to select complete item, works on neovim >= 0.4.0 only.", + "default": false + }, + "suggest.disableKind": { + "type": "boolean", + "description": "Remove kind field from vim complete item.", + "default": false + }, + "suggest.disableMenu": { + "type": "boolean", + "description": "Remove menu field from vim complete item.", + "default": false + }, + "suggest.disableMenuShortcut": { + "type": "boolean", + "description": "Disable shortcut of completion source in menu.", + "default": false + }, + "suggest.snippetIndicator": { + "type": "string", + "default": "~", + "description": "The character used in abbr of complete item to indicate the item could be expand as snippet." + }, + "suggest.maxCompleteItemCount": { + "type": "number", + "default": 50, + "description": "Maximum number of complete items shown in vim" + }, + "suggest.preferCompleteThanJumpPlaceholder": { + "type": "boolean", + "description": "Confirm completion instead of jump to next placeholder when completion is activated.", + "default": false + }, + "suggest.fixInsertedWord": { + "type": "boolean", + "description": "Make inserted word replace word characters after cursor position.", + "default": true + }, + "suggest.localityBonus": { + "type": "boolean", + "description": "Boost suggestions that appear closer to the cursor position.", + "default": true + }, + "suggest.triggerAfterInsertEnter": { + "type": "boolean", + "description": "Trigger completion after InsertEnter, auto trigger should be 'always' to enable this option", + "default": false + }, + "suggest.timeout": { + "type": "integer", + "default": 5000, + "minimum": 500, + "maximum": 15000, + "description": "Timeout for completion, in miliseconds." + }, + "suggest.minTriggerInputLength": { + "type": "number", + "default": 1, + "description": "Mininal input length for trigger completion, default 1" + }, + "suggest.triggerCompletionWait": { + "type": "integer", + "default": 100, + "minimum": 30, + "maximum": 500, + "description": "Wait time between text change and completion start, cancel completion when text changed during wait." + }, + "suggest.echodocSupport": { + "type": "boolean", + "default": false, + "description": "When enabled, add function signature to user_data.signature to support echodoc.vim" + }, + "suggest.acceptSuggestionOnCommitCharacter": { + "type": "boolean", + "default": false, + "description": "Controls whether suggestions should be accepted on commit characters. For example, in JavaScript, the semi-colon (`;`) can be a commit character that accepts a suggestion and types that character. Requires CompleteChanged event to work." + }, + "suggest.noselect": { + "type": "boolean", + "description": "Not make vim select first item on completion start", + "default": true + }, + "suggest.keepCompleteopt": { + "type": "boolean", + "description": "When enabled, completeopt is not overridden, auto completion will be disabled if completeopt doesn't have noinsert and noselect.", + "default": false + }, + "suggest.lowPrioritySourceLimit": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Max items count for source priority lower than 90." + }, + "suggest.highPrioritySourceLimit": { + "type": "integer", + "minimum": 1, + "maximum": 100, + "description": "Max items count for source priority bigger than or equal to 90." + }, + "suggest.removeDuplicateItems": { + "type": "boolean", + "description": "Remove completion items with duplicated word for all sources, snippet items are excluded.", + "default": false + }, + "suggest.defaultSortMethod": { + "type": "string", + "description": "Default sorting behavior for suggested completion items.", + "default": "length", + "enum": ["length", "alphabetical", "none"] + }, + "suggest.snippetsSupport": { + "type": "boolean", + "description": "Set to false to disable snippets support of completion.", + "default": true + }, + "suggest.completionItemKindLabels": { + "type": "object", + "default": {}, + "description": "Set custom labels to completion items' kinds.", + "properties": { + "text": { "type": "string" }, + "method": { "type": "string" }, + "function": { "type": "string" }, + "constructor": { "type": "string" }, + "field": { "type": "string" }, + "variable": { "type": "string" }, + "class": { "type": "string" }, + "interface": { "type": "string" }, + "module": { "type": "string" }, + "property": { "type": "string" }, + "unit": { "type": "string" }, + "value": { "type": "string" }, + "enum": { "type": "string" }, + "keyword": { "type": "string" }, + "snippet": { "type": "string" }, + "color": { "type": "string" }, + "file": { "type": "string" }, + "reference": { "type": "string" }, + "folder": { "type": "string" }, + "enumMember": { "type": "string" }, + "constant": { "type": "string" }, + "struct": { "type": "string" }, + "event": { "type": "string" }, + "operator": { "type": "string" }, + "typeParameter": { "type": "string" }, + "default": { "type": "string" } + }, + "additionalProperties": false + }, + "suggest.invalidInsertCharacters": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Invalid character for strip valid word when inserting text of complete item.", + "default": [" ", "(", "<", "{", "[", "\r", "\n"] + }, + "suggest.asciiCharactersOnly": { + "type": "boolean", + "description": "Suggest ASCII characters only", + "default": false + }, + "diagnostic.enable": { + "type": "boolean", + "description": "Set to false to disable diagnostic display", + "default": true + }, + "diagnostic.autoRefresh": { + "type": "boolean", + "description": "Enable automatically refresh diagnostics, use diagnosticRefresh action when it's disabled.", + "default": true + }, + "diagnostic.level": { + "type": "string", + "description": "Used for filter diagnostics by diagnostic severity.", + "default": "hint", + "enum": ["hint", "information", "warning", "error"] + }, + "diagnostic.locationlistUpdate": { + "type": "boolean", + "description": "Update locationlist on diagnostics change, only works with locationlist opened by :CocDiagnostics command and first window of associated buffer.", + "default": true + }, + "diagnostic.checkCurrentLine": { + "type": "boolean", + "description": "When enabled, show all diagnostics of current line if there are none at the current position.", + "default": false + }, + "diagnostic.messageTarget": { + "type": "string", + "description": "Diagnostic message target.", + "default": "float", + "enum": ["echo", "float"] + }, + "diagnostic.messageDelay": { + "type": "number", + "description": "How long to wait (in milliseconds) before displaying the diagnostic message with echo or float", + "default": 200 + }, + "diagnostic.refreshOnInsertMode": { + "type": "boolean", + "description": "Enable diagnostic refresh on insert mode, default false.", + "default": false + }, + "diagnostic.displayByAle": { + "type": "boolean", + "description": "Use Ale for display diagnostics in vim, will disable coc for display diagnostics, restart required on change.", + "default": false + }, + "diagnostic.virtualText": { + "type": "boolean", + "description": "Use NeoVim virtual text to display diagnostics", + "default": false + }, + "diagnostic.virtualTextCurrentLineOnly": { + "type": "boolean", + "description": "Only show virtualText diagnostic on current cursor line", + "default": true + }, + "diagnostic.virtualTextPrefix": { + "type": "string", + "description": "The prefix added virtual text diagnostics", + "default": " " + }, + "diagnostic.virtualTextLines": { + "type": "number", + "description": "The number of non empty lines from a diagnostic to display", + "default": 3 + }, + "diagnostic.virtualTextLineSeparator": { + "type": "string", + "description": "The text that will mark a line end from the diagnostic message", + "default": " \\ " + }, + "diagnostic.enableSign": { + "type": "boolean", + "default": true, + "description": "Enable signs for diagnostics." + }, + "diagnostic.enableHighlightLineNumber": { + "type": "boolean", + "default": true, + "description": "Enable highlighting line numbers for diagnostics, only works with neovim and diagnostic.enableSign is true." + }, + "diagnostic.enableMessage": { + "type": "string", + "default": "always", + "description": "When to enable show messages of diagnostics.", + "enum": ["always", "jump", "never"] + }, + "diagnostic.highlightOffset": { + "type": "number", + "description": "Offset number of buffer.addHighlight, neovim only.", + "default": 1000 + }, + "diagnostic.signPriority": { + "type": "number", + "description": "Priority of diagnostic signs, default to 10", + "default": 10 + }, + "diagnostic.errorSign": { + "type": "string", + "description": "Text of error sign", + "default": ">>" + }, + "diagnostic.warningSign": { + "type": "string", + "description": "Text of warning sign", + "default": "⚠" + }, + "diagnostic.infoSign": { + "type": "string", + "description": "Text of info sign", + "default": ">>" + }, + "diagnostic.hintSign": { + "type": "string", + "description": "Text of hint sign", + "default": ">>" + }, + "diagnostic.maxWindowHeight": { + "type": "number", + "description": "Maximum height of diagnostics floating window.", + "default": 8 + }, + "diagnostic.maxWindowWidth": { + "type": "number", + "description": "Maximum width of diagnostics floating window.", + "default": 80 + }, + "diagnostic.filetypeMap": { + "type": "object", + "description": "A map between buffer filetype and the filetype assigned to diagnostics. To syntax highlight diagnostics withs their parent buffer type use `\"default\": \"bufferType\"`", + "default": {} + }, + "diagnostic.format": { + "type": "string", + "description": "Define the diagnostic format that shown in float window or echoed, available parts: source, code, severity, message", + "default": "[%source%code] [%severity] %message" + }, + "diagnostic.separateRelatedInformationAsDiagnostics": { + "type": "boolean", + "default": false, + "description": "Separate related information as diagnostics" + }, + "diagnostic.showUnused": { + "type": "boolean", + "default": true, + "description": "Show unused variables" + }, + "diagnostic.showDeprecated": { + "type": "boolean", + "default": true, + "description": "Show deprecated variables" + }, + "signature.enable": { + "type": "boolean", + "description": "Enable signature help when trigger character typed, require restart service on change.", + "default": true + }, + "signature.triggerSignatureWait": { + "type": "integer", + "default": 500, + "minimum": 200, + "maximum": 1000, + "description": "Timeout for trigger signature help, in miliseconds." + }, + "signature.target": { + "type": "string", + "description": "Target of signature help, use float when possible by default.", + "default": "float", + "enum": ["float", "echo"] + }, + "signature.maxWindowWidth": { + "type": "integer", + "default": 80, + "description": "Maximum width of signature float window (or popup on vim8)." + }, + "signature.maxWindowHeight": { + "type": "number", + "description": "Maximum height of signature float window (or popup on vim8).", + "minimum": 3, + "default": 8 + }, + "signature.preferShownAbove": { + "type": "boolean", + "description": "Show signature help float window above cursor when possible, require restart service on change.", + "default": true + }, + "signature.hideOnTextChange": { + "type": "boolean", + "description": "Hide signature float window when text changed on insert mode.", + "default": false + }, + "codeLens.enable": { + "type": "boolean", + "description": "Enable codeLens feature, require neovim with set virtual text feature.", + "default": false + }, + "codeLens.separator": { + "type": "string", + "description": "Separator text for codeLens in virtual text", + "default": "‣" + }, + "codeLens.subseparator": { + "type": "string", + "description": "Subseparator between codeLenses in virtual text", + "default": " " + }, + "refactor.openCommand": { + "type": "string", + "description": "Open command for refactor window.", + "default": "vsplit" + }, + "refactor.saveToFile": { + "type": "boolean", + "description": "Save to file when write refactor buffer with ':noa wa' command, set to false if you want save buffer by yourself.", + "default": true + }, + "refactor.beforeContext": { + "type": "number", + "default": 3, + "description": "Print num lines of leading context before each match." + }, + "refactor.afterContext": { + "type": "number", + "default": 3, + "description": "Print num lines of trailing context after each match." + }, + "hover.target": { + "type": "string", + "description": "Target to show hover information, default is floating window when possible.", + "enum": ["preview", "echo", "float"] + }, + "hover.floatMaxWidth": { + "type": "number", + "default": 80, + "description": "Maximum width of hover float window, not bigger than 80." + }, + "hover.floatMaxHeight": { + "type": "number", + "description": "Maximum width of hover float window, not bigger than 80." + }, + "hover.autoHide": { + "type": "boolean", + "default": true, + "description": "Automatically hide hover float window on CursorMove or InsertEnter." + }, + "dialog.maxHeight": { + "type": "number", + "default": 20, + "description": "Maximum height of dialog window." + }, + "dialog.maxWidth": { + "type": "number", + "default": 80, + "description": "Maximum width of dialog window." + }, + "dialog.confirmKey": { + "type": "string", + "default": "", + "description": "Confirm key for confirm selection used by menu and picker, you can always use to cancel." + }, + "dialog.pickerButtons": { + "type": "boolean", + "default": true, + "description": "Show buttons for picker dialog window/popup." + }, + "dialog.pickerButtonShortcut": { + "type": "boolean", + "default": true, + "description": "Show shortcut in buttons of picker dialog window/popup, used when dialog.pickerButtons is true." + }, + "dialog.floatHighlight": { + "type": ["string", "null"], + "default": null, + "description": "Highlight group for dialog window/popup, default to 'CocFloating'" + }, + "dialog.floatBorderHighlight": { + "type": ["string", "null"], + "default": null, + "description": "Highlight group for border of dialog window/popup, default to 'CocFloating'" + }, + "notification.marginTop": { + "type": "number", + "default": 1, + "description": "Margin top for notification dialog." + }, + "notification.marginRight": { + "type": "number", + "default": 1, + "description": "Margin right for notification dialog." + }, + "notification.maxWidth": { + "type": "number", + "default": 60, + "description": "Maximum content width of notification dialog." + }, + "notification.maxHeight": { + "type": "number", + "default": 10, + "description": "Maximum content height of notification dialog." + }, + "notification.highlightGroup": { + "type": "string", + "default": "CocFloating", + "description": "Highlight group of notification dialog." + }, + "notification.minProgressWidth": { + "type": "number", + "default": 30, + "description": "Minimum width of progress notification." + }, + "workspace.ignoredFiletypes": { + "type": "array", + "default": ["markdown", "log", "txt", "help"], + "description": "Filetypes that should be ignored for resolve workspace folder.", + "items": { + "type": "string" + } + }, + "workspace.bottomUpFiletypes": { + "type": "array", + "default": [], + "description": "Filetypes that should have workspace folder should resolved from base directory of file.", + "items": { + "type": "string" + } + }, + "workspace.workspaceFolderCheckCwd": { + "type": "boolean", + "default": true, + "description": "Whether the cwd directory should be checked first when resolving workspace folder." + }, + "list.indicator": { + "type": "string", + "default": ">", + "description": "The character used as first character in prompt line" + }, + "list.alignColumns": { + "type": "boolean", + "default": false, + "description": "Whether to align lists in columns, default: `false`" + }, + "list.interactiveDebounceTime": { + "type": "number", + "default": 100, + "description": "Debouce time for input change on interactive mode." + }, + "list.height": { + "type": "number", + "default": 10, + "description": "Height of split list window." + }, + "list.statusLineSegments": { + "type": ["array", "null"], + "default": [ + "%#CocListMode#-- %{get(b:list_status, \"mode\", \"\")} --%*", + "%{get(b:list_status, \"loading\", \"\")}", + "%{get(b:list_status, \"args\", \"\")}", + "(%L/%{get(b:list_status, \"total\", \"\")})", + "%=", + "%#CocListPath# %{get(b:list_status, \"cwd\", \"\")} %l/%L%*" + ], + "items": { + "types": "string" + }, + "description": "An array of statusline segments that will be used to draw the status line for list windows." + }, + "list.signOffset": { + "type": "number", + "default": 900, + "description": "Sign offset of list, should be different from other plugins." + }, + "list.selectedSignText": { + "type": "string", + "default": "*", + "description": "Sign text for selected lines." + }, + "list.extendedSearchMode": { + "type": "boolean", + "default": true, + "description": "Enable extended search mode which allows multiple search patterns delimited by spaces." + }, + "list.limitLines": { + "type": "number", + "default": 30000, + "description": "Limit lines for list buffer." + }, + "list.maxPreviewHeight": { + "type": "number", + "default": 12, + "description": "Max height for preview window of list." + }, + "list.previewSplitRight": { + "type": "boolean", + "default": false, + "description": "Use vsplit for preview window." + }, + "list.matchHighlightGroup": { + "type": "string", + "default": "Search", + "description": "Highlight group used for matched texts in list window." + }, + "list.previewHighlightGroup": { + "type": "string", + "default": "Search", + "description": "Highlight group used for highlight the range in preview window." + }, + "list.nextKeymap": { + "type": "string", + "default": "", + "description": "Key used for select next line on insert mode." + }, + "list.previousKeymap": { + "type": "string", + "default": "", + "description": "Key used for select previous line on insert mode." + }, + "list.normalMappings": { + "type": "object", + "default": {}, + "description": "Custom keymappings on normal mode." + }, + "list.insertMappings": { + "type": "object", + "default": {}, + "description": "Custom keymappings on insert mode." + }, + "list.source.diagnostics.includeCode": { + "type": "boolean", + "description": "Whether to show the diagnostic code in the list.", + "default": true + }, + "list.source.diagnostics.pathFormat": { + "type": "string", + "description": "Decide how the filepath is shown in the list.", + "enum": ["full", "short", "filename", "hidden"], + "default": "full" + }, + "list.source.symbols.excludes": { + "type": "array", + "default": [], + "description": "Patterns of minimatch for filepath to execlude from symbols list.", + "items": { + "type": "string" + } + }, + "list.source.outline.ctagsFilestypes": { + "type": "array", + "default": [], + "description": "Filetypes that should use ctags for outline instead of language server.", + "items": { + "type": "string" + } + }, + "cursors.cancelKey": { + "type": "string", + "default": "", + "description": "Key used for cancel cursors session." + }, + "cursors.nextKey": { + "type": "string", + "default": "", + "description": "Key used for jump to next cursors position. " + }, + "cursors.previousKey": { + "type": "string", + "default": "", + "description": "Key used for jump to previous cursors position." + }, + "coc.preferences.enableMessageDialog": { + "type": "boolean", + "default": false, + "description": "Enable messages shown in notification dialog." + }, + "coc.preferences.maxFileSize": { + "type": "string", + "default": "10MB", + "description": "Maximum file size in bytes that coc.nvim should handle, default '10MB'" + }, + "coc.preferences.promptWorkspaceEdit": { + "type": "boolean", + "description": "Prompt confirm from user when apply workspace edit for unloaded files.", + "default": true + }, + "coc.preferences.listOfWorkspaceEdit": { + "type": "string", + "default": "quickfix", + "description": "List should contains changed locations after workspace edit, default to vim's quickfix", + "enum": ["quickfix", "location", "none"] + }, + "coc.preferences.useQuickfixForLocations": { + "type": "boolean", + "description": "Use vim's quickfix list for jump locations,\n need restart on change.", + "default": false + }, + "coc.preferences.extensionUpdateCheck": { + "type": "string", + "default": "never", + "description": "Interval for check extension update, could be daily, weekly, never", + "enum": ["daily", "weekly", "never"] + }, + "coc.preferences.snippetStatusText": { + "type": "string", + "default": "SNIP", + "description": "Text shown in statusline to indicate snippet session is activated." + }, + "coc.preferences.colorSupport": { + "type": "boolean", + "description": "Enable color highlight if language server support it.", + "default": true + }, + "coc.preferences.semanticTokensHighlights": { + "type": "boolean", + "description": "Enable semanticTokens highlight if language server support it.", + "default": true + }, + "coc.preferences.previewAutoClose": { + "type": "boolean", + "description": "Auto close preview window on cursor move.", + "default": true + }, + "coc.preferences.previewMaxHeight": { + "type": "number", + "default": 12, + "description": "Max height of preview window for hover." + }, + "coc.preferences.currentFunctionSymbolAutoUpdate": { + "type": "boolean", + "description": "Automatically update the value of b:coc_current_function on CursorHold event", + "default": false + }, + "coc.preferences.formatOnSaveFiletypes": { + "type": "array", + "default": [], + "description": "Filetypes that should run format on save.", + "items": { + "type": "string" + } + }, + "coc.preferences.enableFloatHighlight": { + "type": "boolean", + "description": "Enable highlight for floating window.", + "default": true + }, + "coc.preferences.rootPatterns": { + "type": "array", + "default": [".git", ".hg", ".projections.json"], + "description": "Root patterns to resolve workspaceFolder from parent folders of opened files, resolved from up to down.", + "items": { + "type": "string" + } + }, + "coc.preferences.watchmanPath": { + "type": "string", + "description": "executable path for https://facebook.github.io/watchman/, detected from $PATH by default", + "default": null + }, + "coc.preferences.jumpCommand": { + "anyOf": [ + { + "type": "string", + "enum": [ + "edit", + "split", + "vsplit", + "tabe", + "drop", + "tab drop", + "pedit" + ] + }, + { "type": "string", "minimum": 1 } + ], + "description": "Command used for location jump, like goto definition, goto references etc. Can be also a custom command that gives file as an argument.", + "default": "edit" + }, + "coc.preferences.messageLevel": { + "type": "string", + "description": "Message level for filter echoed messages, could be 'more', 'warning' and 'error'", + "default": "more", + "enum": ["more", "warning", "error"] + }, + "coc.preferences.bracketEnterImprove": { + "type": "boolean", + "description": "Improve enter inside bracket `<> {} [] ()` by add new empty line below and place cursor to it. Works with `coc#on_enter()`", + "default": true + }, + "coc.preferences.formatOnType": { + "type": "boolean", + "description": "Set to true to enable format on type", + "default": false + }, + "coc.preferences.formatOnTypeFiletypes": { + "type": "array", + "default": [], + "description": "Filetypes that should run format on typing. Only take effect when `coc.preferences.formatOnType` set `true`", + "items": { + "type": "string" + } + }, + "coc.preferences.highlightTimeout": { + "type": "integer", + "default": 500, + "minimum": 200, + "maximum": 5000, + "description": "Highlight timeout for buffer in floating window." + }, + "coc.preferences.floatActions": { + "type": "boolean", + "description": "Set to false to disable float/popup support for actions menu, won't work on vim without float or popup window support.", + "default": true + }, + "coc.preferences.promptInput": { + "type": "boolean", + "description": "Use prompt buffer in float window for user input.", + "default": true + }, + "coc.preferences.enableMarkdown": { + "type": "boolean", + "description": "Tell the language server that markdown text format is supported, note that markdown text may not rendered as expected.", + "default": true + }, + "coc.preferences.excludeImageLinksInMarkdownDocument": { + "type": "boolean", + "description": "Exclude image links from document markdown text", + "default": true + }, + "coc.preferences.silentAutoupdate": { + "type": "boolean", + "description": "Not open split window with update status when performing auto update.", + "default": true + }, + "coc.preferences.willSaveHandlerTimeout": { + "type": "integer", + "default": 500, + "minimum": 200, + "maximum": 5000, + "description": "Will save handler timeout" + }, + "coc.source.around.enable": { + "type": "boolean", + "default": true + }, + "coc.source.around.firstMatch": { + "type": "boolean", + "description": "Filter complete items by first letter strict match.", + "default": true + }, + "coc.source.around.shortcut": { + "type": "string", + "default": "A" + }, + "coc.source.around.priority": { + "type": "integer", + "default": 1 + }, + "coc.source.around.disableSyntaxes": { + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "coc.source.buffer.enable": { + "type": "boolean", + "default": true + }, + "coc.source.buffer.shortcut": { + "type": "string", + "default": "B" + }, + "coc.source.buffer.priority": { + "type": "integer", + "default": 1 + }, + "coc.source.buffer.firstMatch": { + "type": "boolean", + "description": "Filter complete items by first letter strict match.", + "default": true + }, + "coc.source.buffer.ignoreGitignore": { + "type": "boolean", + "default": true, + "description": "Ignore git ignored files for buffer words" + }, + "coc.source.buffer.disableSyntaxes": { + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "coc.source.file.enable": { + "type": "boolean", + "default": true + }, + "coc.source.file.shortcut": { + "type": "string", + "default": "F" + }, + "coc.source.file.priority": { + "type": "integer", + "default": 10 + }, + "coc.source.file.disableSyntaxes": { + "type": "array", + "default": [], + "items": { + "type": "string" + } + }, + "coc.source.file.triggerCharacters": { + "type": "array", + "default": ["/"], + "items": { + "type": "string" + } + }, + "coc.source.file.trimSameExts": { + "type": "array", + "default": [".ts", ".js"], + "description": "Trim same extension on file completion", + "items": { + "type": "string" + } + }, + "coc.source.file.ignoreHidden": { + "type": "boolean", + "default": true, + "description": "Ignore completion for hidden files" + }, + "coc.source.file.ignorePatterns": { + "type": "array", + "default": [], + "description": "Ignore patterns of matcher", + "items": { + "type": "string" + } + }, + "languageserver": { + "type": "object", + "default": {}, + "description": "Dictionary of languageservers, key is used as id of languageserver.", + "patternProperties": { + "^[_a-zA-Z]+$": { + "oneOf": [ + { + "$ref": "#/definitions/languageServerModule" + }, + { + "$ref": "#/definitions/languageServerCommand" + }, + { + "$ref": "#/definitions/languageServerSocket" + } + ] + } + } + } + } +} diff --git a/etc/soft/nvim/+plugins/coc.nvim/doc/coc.txt b/etc/soft/nvim/+plugins/coc.nvim/doc/coc.txt new file mode 100644 index 0000000..72e2cf9 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/doc/coc.txt @@ -0,0 +1,3383 @@ +*coc-nvim.txt* LSP support for Vim & Neovim. + +Version: 0.0.80 +Author: Qiming Zhao +License: MIT license + +CONTENTS *coc-contents* + +Introduction |coc-introduction| +Requirements |coc-requirements| +Installation |coc-installation| +Configuration |coc-configuration| +Completion |coc-completion| +Interface |coc-interface| + Key mappings |coc-key-mappings| + Variables |coc-variables| + Functions |coc-functions| + Commands |coc-commands| + Autocmds |coc-autocmds| + Highlights |coc-highlights| +List |coc-list| + List command |coc-list-command| + List command options |coc-list-options| + List configuration |coc-list-configuration| + List mappings |coc-list-mappings| + list sources |coc-list-sources| + Location |coc-list-location| + Extensions |coc-list-extensions| + Diagnostics |coc-list-diagnostics| + Outline |coc-list-outline| + Symbols |coc-list-symbols| + Services |coc-list-services| + Commands |coc-list-commands| + Links |coc-list-links| + Sources |coc-list-completion-sources| + Lists |coc-list-lists| +Dialog |coc-dialog| + Dialog basic |coc-dialog-basic| + Dialog confirm |coc-dialog-confirm| + Dialog input |coc-dialog-input| + Dialog menu |coc-dialog-menu| + Dialog picker |coc-dialog-picker| +Statusline support |coc-status| + Manual |coc-status-manual| + Airline |coc-status-airline| + Lightline |coc-status-lightline| +FAQ |coc-faq| +Changelog |coc-changelog| + +============================================================================== +INTRODUCTION *coc-introduction* + +Coc.nvim enhances your (Neo)Vim to match the user experience provided by +VSCode through a rich plugin (or extension) ecosystem and support for Language +Server Protocol. + +Some of its key features include:~ + +- APIs compatible with both Vim8 and Neovim. +- Loading VSCode-like extensions. +- Configuring coc.nvim and its extensions with a JSON configuration file. +- Configuring Language Servers implemented according to Language Server Protocol (LSP). + +It's designed to have an as good as possible integration with other Vim plugins. + +Note: This plugin doesn't come with any support for any specific language. You +will need to install a coc extension or set up a languageserver for LSP features. + +Note: This plugin doesn't change any of your existing key-mappings. You will +need to create key-mappings by yourself. + +Note: automatic completion plugins can't play nicely together, you can disable +automatic completion of coc.nvim by use `"suggest.autoTrigger": "none"` (or +`"suggest.autoTrigger": "trigger"`) in your settings file. + +============================================================================== +REQUIREMENTS *coc-requirements* + +Neovim >= 0.3.2 or Vim >= 8.0.1453. + +NodeJS https://nodejs.org/ >= 12.12.0. + +Yarn https://yarnpkg.com/ required to build coc.nvim from typescript source +code. + +============================================================================== +INSTALLATION *coc-installation* + +If you're using [vim-plug](https://github.com/junegunn/vim-plug), add this to +your `init.vim` or `.vimrc`: > + + Plug 'neoclide/coc.nvim' +< +And run: > + + :PlugInstall + +For other plugin managers, make sure to use code from the release branch. + +You can also use Vim's native package management: > + + #!/bin/sh + # for vim8 + mkdir -p ~/.vim/pack/coc/start + cd ~/.vim/pack/coc/start + curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv - + # for neovim + mkdir -p ~/.local/share/nvim/site/pack/coc/start + cd ~/.local/share/nvim/site/pack/coc/start + curl --fail -L https://github.com/neoclide/coc.nvim/archive/release.tar.gz|tar xzfv - + +============================================================================== +CONFIGURATION *coc-configuration* + +The configurations of coc.nvim are stored in a file named `coc-settings.json`. +You can open it using |:CocConfig|. This will create/open a global settings +files in folder returned by |coc#util#get_config_home()| + +To create a configuration file used by project only, use |:CocLocalConfig| to +create/open `.vim/coc-settings.json` inside current workspace folder. + +The global configuration file can be created in another directory by setting +`g:coc_config_home` in your `.vimrc` or `init.vim`: > + + let g:coc_config_home = '/path/you/prefer' + +When creating a local configuration file, it's possible to use +|b:coc_root_patterns| for resolve the root directory from the filepath of +opend buffer. + +Since the configuration files are all in JSON format, it's suggested to enable +JSON completion and validation by install the `coc-json` extension: > + + :CocInstall coc-json +< +Check https://github.com/neoclide/coc.nvim/wiki/Using-the-configuration-file +for more details. + +Built-in configurations:~ + + *coc-config-http* +"http.proxy":~ + + HTTP proxy URI, used for extensions that send request, default: `""` + +"http.proxyStrictSSL":~ + + Controls whether the proxy server certificate should be verified + against the list of supplied CAs, default: `true` + + *coc-config-suggest* +"suggest.enablePreselect":~ + + Enable preselect feature on Neovim, default: `false` + +"suggest.maxPreviewWidth":~ + + Maximum width of floating preview window, default: `80` + +"suggest.labelMaxLength":~ + + Maximum length of label shown in 'pum', default: `200` + +"suggest.enablePreview":~ + + Add preview option to 'completeopt', default: `false` + +"suggest.floatEnable":~ + + Enable floating window for documentation when possible, default: `true` + +"suggest.detailMaxLength":~ + + Max length of detail that will be shown in popup menu, default: `100` + +"suggest.detailField":~ + + Where to add the detail in complete item when it's less than max + length, default: `"preview"` when floating documentation is enabled. + + Valid options: ["abbr", "menu", "preview"] + +"suggest.autoTrigger":~ + + How should completion be triggered, default: `"always"` + + Valid options: ["always", "trigger", "none"] + + - `always`: trigger suggest on word characters and trigger + characters. + - `trigger`: trigger suggest on trigger characters only. + - `none`: no auto trigger at all. + +"suggest.languageSourcePriority":~ + + Priority of language sources, default: `99` + +"suggest.numberSelect":~ + + Input number to select complete item, it could be wrong when + using '' and '' to select complete item, default: `false` + +"suggest.disableKind":~ + + Remove kind field from Vim complete item, default: `false` + +"suggest.disableMenu":~ + + Remove menu field from Vim complete item, default: `false` + +"suggest.snippetIndicator":~ + + The character used in completion item abbreviation to indicate it + expands as code snippet, default: `"~"` + +"suggest.maxCompleteItemCount":~ + + Maximum number of complete items shown in Vim, default: `50` + +"suggest.preferCompleteThanJumpPlaceholder":~ + + Confirm completion instead of jump to next placeholder when completion + activates, default: `false` + +"suggest.snippetsSupport":~ + + Enable snippets expands expand on confirm completion. When set to + `false` coc.nvim would set language client option: + `CompletionClientCapabilities.completionItem.snippetSupport` to + `false` as well. + + Note: the language server may still send completion items with + snippets when falsy. + +"suggest.fixInsertedWord":~ + + Inserted word replaces the next one, default: `true` + +"suggest.localityBonus":~ + + Boost suggestions that appear closer to the cursor position, + default: `true` + +"suggest.triggerAfterInsertEnter":~ + + Trigger completion after |InsertEnter|. Requires "suggest.autoTrigger" + to be set, default: `false` + +"suggest.timeout":~ + + Timeout for completion (unit: milliseconds), default: `5000` + +"suggest.minTriggerInputLength":~ + + Number of characters in the current word after which the completion + triggers, default: `1` + +"suggest.triggerCompletionWait":~ + + Delay between typing the trigger character and completion start which + initiates server synchronization, default: `100` + +"suggest.echodocSupport":~ + + Add function signature to `user_data.signature` to support `echodoc.vim`, + default: `false` + +"suggest.acceptSuggestionOnCommitCharacter":~ + + The server provides a set of commit characters: these characters can + trigger completion item acceptance. This also inserts commit character + after the completion item text. Requires `CompleteChanged` event to work, + default: `false` + +"suggest.noselect":~ + + Prevent Vim from selecting the first item on completion start, + default: `true` + +"suggest.keepCompleteopt":~ + + When enabled, 'completeopt' is not overridden. Autocompletion will be + disabled if 'completeopt' doesn't have 'noinsert' and 'noselect', default: + `false` + +"suggest.lowPrioritySourceLimit":~ + + Max items count for source priority lower than `90`. + +"suggest.highPrioritySourceLimit":~ + + Max items count for source priority bigger than or equal to `90`. + +"suggest.disableMenuShortcut":~ + + Disable shortcut of completion source in menu, default: `false` + +"suggest.removeDuplicateItems":~ + + Remove completion items with duplicated word for all sources, snippet + items are excluded, default: `false` + +"suggest.defaultSortMethod":~ + + Default sorting behavior for suggested completion items, default: + `length` + +"suggest.invalidInsertCharacters":~ + + Invalid character for strip valid word when inserting text of complete + item, default: ` ,(,<,{,[,\r,\n` + +"suggest.asciiCharactersOnly":~ + + Suggest ASCII characters only, default: `false` + +"suggest.completionItemKindLabels":~ + + Set custom labels to completion item kinds, default: `{}`. + + Example configuration: with https://nerdfonts.com: > + + "suggest.completionItemKindLabels": { + "keyword": "\uf1de", + "variable": "\ue79b", + "value": "\uf89f", + "operator": "\u03a8", + "constructor": "\uf0ad", + "function": "\u0192", + "reference": "\ufa46", + "constant": "\uf8fe", + "method": "\uf09a", + "struct": "\ufb44", + "class": "\uf0e8", + "interface": "\uf417", + "text": "\ue612", + "enum": "\uf435", + "enumMember": "\uf02b", + "module": "\uf40d", + "color": "\ue22b", + "property": "\ue624", + "field": "\uf9be", + "unit": "\uf475", + "event": "\ufacd", + "file": "\uf723", + "folder": "\uf114", + "snippet": "\ue60b", + "typeParameter": "\uf728", + "default": "\uf29c" + } +< + *coc-config-diagnostic* +"diagnostic.enable":~ + + Display diagnostics, default: `true` + +"diagnostic.autoRefresh":~ + + Enable automatically refresh diagnostics, use + |coc-action-diagnosticRefresh| action to refresh diagnostics when it's + disabled. + +"diagnostic.enableSign":~ + + Enable signs for diagnostics, default: `true` + +"diagnostic.enableMessage":~ + + When to enable show messages of diagnostics. + + Valid options: ["always","jump","never"], always means including + cursor hold and after jump to another diagnostic. + + default: `"always"` + +"diagnostic.enableHighlightLineNumber":~ + + Enable highlighting line numbers for diagnostics, only works with + neovim and `diagnostic.enableSign` is true. + + default: `true` + +"diagnostic.locationlistUpdate"~ + + Update locationlist on diagnostics change, only works with + locationlist opened by :CocDiagnostics command and first window of + associated buffer. + + default: `true` + +"diagnostic.level":~ + + Filter diagnostics by severity, default: `"hint"` + + Valid options: ["hint", "information", "warning", "error"] + +"diagnostic.messageDelay":~ + + How long to wait (in milliseconds) before displaying the diagnostic + message with echo or float. + + Default: `200` + +"diagnostic.maxWindowWidth":~ + + Maximum width of diagnostics floating window, default: `80` + +"diagnostic.checkCurrentLine":~ + + Show all diagnostics of the current line if none of them are at the current + position, default: `false` + +"diagnostic.messageTarget":~ + + Diagnostic message target, default: `"float"` + + Valid options: ["echo", "float"] + +"diagnostic.refreshOnInsertMode":~ + + Refresh diagnostics when in insert mode, default: `false` + +"diagnostic.displayByAle":~ + + Use ALE for displaying diagnostics. This will disable coc.nvim for + displaying diagnostics. Restart to make changes take the effect, default: + `false` + +"diagnostic.virtualText":~ + + Use Neovim virtual text to display diagnostics, default: `false` + +"diagnostic.virtualTextCurrentLineOnly":~ + + Only show virtualText diagnostic on current cursor line, default: + `true` + +"diagnostic.virtualTextPrefix":~ + + The prefix added for virtual text diagnostics, default: `" "` + +"diagnostic.virtualTextLines":~ + + The number of non-empty lines from a diagnostic to display, default: `3` + +"diagnostic.virtualTextLineSeparator":~ + + The text that will mark a line end from the diagnostic message, + default: `" \\ "` + +"diagnostic.highlightOffset":~ + + Offset number of buffer.addHighlight, Neovim only, default: `1000` + +"diagnostic.signPriority":~ + + Priority of diagnostic sign, default to `10`, check |sign-priority|. + +"diagnostic.errorSign":~ + + Sign of error diagnostics shown in the 'signcolumn', default: `">>"` + +"diagnostic.warningSign":~ + + Sign of warning diagnostics shown in the 'signcolumn', default: `"⚠"` + +"diagnostic.infoSign":~ + + Sign of info diagnostics shown in the 'signcolumn', default: `">>"` + +"diagnostic.hintSign":~ + + Sign of hint diagnostics shown in the 'signcolumn', default: `">>"` + +"diagnostic.maxWindowHeight":~ + + Maximum height of diagnostics floating window, default: `8` + +"diagnostic.filetypeMap":~ + + A map between buffer filetype and the filetype assigned to diagnostics. + To syntax highlight diagnostics withs their parent buffer type use + `"default": "bufferType"`, default: `{}` + +"diagnostic.format":~ + + Define the diagnostic format. + Available parts: source, code, severity, message + + Default: `[%source%code] [%severity] %message` + +"diagnostic.separateRelatedInformationAsDiagnostics":~ + + Separate related information as diagnostics, default: `false` + +"signature.enable":~ + + Enable signature help when trigger character typed. Requires service restart + on change, default: `true` + +"signature.maxWindowWidth":~ + + Max width of signature float window, default: `60` + +"signature.triggerSignatureWait":~ + + Timeout for signature request trigger (milliseconds), default: `500`. + Change to higher value for slow Language Servers. + +"signature.target":~ + + Target of signature help, use `"float"` when possible by default. + + Valid options: ["float", "echo"] + +"signature.preferShownAbove":~ + + Show signature help's floating window above cursor when possible. Requires + restart on change, default: `true` + +"signature.hideOnTextChange":~ + + Hide signature help's floating window when text changed. Requires restart + on change, default: `false` + +"signature.maxWindowHeight":~ + + Maximum height of floating window with the signature help, default: `8` + + *coc-config-refactor* +"refactor.saveToFile":~ + + Save to file when write refactor buffer with ':noa wa' command, set to + false if you want save buffer by yourself. + +"refactor.openCommand":~ + + Open command for refactor window, default: `vsplit` + +"refactor.beforeContext":~ + + Print num lines of leading context before each match, default: `3` + +"refactor.afterContext":~ + + Print num lines of trailing context after each match, default: `3` + + *coc-config-hover* +"hover.target":~ + + Target to show hover information, default is floating window when possible. + + Valid options: ["preview", "echo", "float"] + +"hover.floatMaxWidth":~ + + Maximum width of hover float window, not bigger than 80. + +"hover.floatMaxHeight":~ + + Maximum height of hover float window. + +"hover.autoHide":~ + + Automatically hide hover float window on CursorMove or InsertEnter, + default `true`. + + *coc-config-dialog* +"dialog.maxWidth": ~ + + Maximum width of dialog window. + +"dialog.maxHeight": ~ + + Maximum height of dialog window. + +"dialog.confirmKey":~ + + Confirm key for confirm selection used by menu and picker, you can + always use to cancel, default to ``. + +"dialog.pickerButtons":~ + + Show buttons for picker dialog window/popup, default `true`. + +"dialog.pickerButtonShortcut":~ + + Show shortcut in buttons of picker dialog window/popup, used when + dialog.pickerButtons is true, default `true`. + +"dialog.floatHighlight":~ + + Highlight group for dialog window/popup, default to 'CocFloating'. + +"dialog.floatBorderHighlight":~ + + Highlight group for border of dialog window/popup, default to + 'CocFloating'. + + *coc-config-notification* +"notification.marginTop": ~ + + Margin top for notification dialog, default to `1`. + +"notification.marginRight": ~ + + Margin right for notification dialog, default to `1`. + +"notification.maxWidth": ~ + + Maximum content width of notification dialog, default to `60`. + +"notification.maxHeight": ~ + + Maximum content height of notification dialog, default to `10`. + +"notification.highlightGroup": ~ + + Highlight group of notification dialog, default to `CocFloating`. + +"notification.minProgressWidth": ~ + + Minimum width of progress notification, default to `30`. + + *coc-config-codelens* +"codeLens.enable":~ + + Enable `codeLens` feature. Requires Neovim with virtual text feature, + default: `false`. + +"codeLens.separator":~ + + Separator text for `codeLens` in virtual text, default: `"‣"`. + +"codeLens.subseparator":~ + + Subseparator text for multiple `codeLens`es in virtual text, default: `" "` + +"workspace.ignoredFiletypes":~ + + Filetypes to ignore for workspace folder resolution, + default: `["markdown","log","txt","help"]` + + Note: This is the filetype after mapping by `g:coc_filetype_map`. + +"workspace.bottomUpFiletypes":~ + + Filetypes that should have workspace folder should resolved from + base directory of file. + +"workspace.workspaceFolderCheckCwd":~ + + Whether the cwd directory should be checked first when resolving + workspace folder of current buffer. + + *coc-config-list* +"list.indicator":~ + + The character used as first character in prompt line, default: `">"` + +"list.alignColumns":~ + + Whether to align lists in columns, default: `false` + +"list.height":~ + + Height of split list window, default: `10` + +"list.signOffset":~ + + Sign offset of list, should be different from other plugins, default: `900` + +"list.selectedSignText":~ + + Sign text for selected lines, default: `"*"` + +"list.limitLines":~ + + Limit lines shown in the list buffer, default: `30000` + +"list.maxPreviewHeight":~ + + Max height for preview window of list, default: `12` + +"list.matchHighlightGroup":~ + + Highlight group used for matched texts in list window. + default: `"Search"` + +"list.previewHighlightGroup":~ + + Highlight group used for highlighting the range in preview window, + default: `"Search"` + +"list.nextKeymap":~ + + Key for selecting next line in the insert mode, default: `""` + +"list.previousKeymap":~ + + Key for selecting previous line in the insert mode, default: `""` + +"list.extendedSearchMode": ~ + + Enable extended search mode which allows multiple search patterns delimited + by spaces, default: `true` + +"list.normalMappings":~ + + Custom key mappings in the normal mode, default: `{}` + +"list.insertMappings":~ + + Custom key mappings in the insert mode, default: `{}` + +"list.interactiveDebounceTime":~ + + Debouce time for input change on interactive mode, default: `100` + +"list.previewSplitRight":~ + + Use vsplit for preview window, default: `false` + +"list.source.symbols.excludes":~ + + Patterns of minimatch for filepath to execlude from symbols list, + default: `[]` + +"list.source.outline.ctagsFilestypes":~ + + Filetypes that should use `ctags` for outline instead of language server, + default: `[]` + + +"list.source.diagnostics.pathFormat":~ + + Decide how the filepath is shown in the list. + + Valid options: ["full", "short", "filename", "hidden"]. + + default: `"full"` + +"list.source.diagnostics.includeCode":~ + + Whether to show the diagnostic code in the list. + + default: `true` + + *coc-config-preferences* +"coc.preferences.enableMessageDialog"~ + + Enable messages shown in notification dialog, default: `false` + +"coc.preferences.maxFileSize":~ + + Maximum file size in bytes that coc.nvim should handle, default: `'10MB'` + +"coc.preferences.promptWorkspaceEdit":~ + + Prompt confirm from user for workspace edit. + default: `true` + +"coc.preferences.useQuickfixForLocations":~ + + Use Vim's quickfix list for jump locations. Requires restart on change, + default: `false` + +"coc.preferences.extensionUpdateCheck":~ + + Interval for checking extension updates, default: `"daily"` + + Valid options: ["daily","weekly","never"] + +"coc.preferences.snippetStatusText":~ + + Text shown in 'statusline' to indicate snippet session is activate. + Check |coc-status| for statusline integration. + + Default: `"SNIP"` + +"coc.preferences.previewAutoClose":~ + + Auto close preview window of hover upon cursor move, default: `true` + +"coc.preferences.previewMaxHeight":~ + + Max height of preview window for hover, default: `12` + +"coc.preferences.colorSupport":~ + + Enable color highlight if Language Server support it, default: `true` + +"coc.preferences.currentFunctionSymbolAutoUpdate":~ + + Automatically update the value of `b:coc_current_function` on `CursorHold` + event, default: `false` + +"coc.preferences.formatOnSaveFiletypes":~ + + Filetypes for which formatting triggers after saving, default: `[]` + + Note: This is the filetype after mapping by `g:coc_filetype_map`. + +"coc.preferences.enableFloatHighlight":~ + + Enable highlight for floating window, default: `true` + +"coc.preferences.rootPatterns":~ + + Root patterns to resolve `workspaceFolder` from parent folders of opened + files, resolved from up to down, default: + `[".git",".hg",".projections.json"]` + +"coc.preferences.watchmanPath":~ + + Executable path for https://facebook.github.io/watchman/, detected + from $PATH by default, default: `null` + +"coc.preferences.jumpCommand":~ + + Command used for location jump performed for goto definition, goto + references etc, default: `"edit"` + + Valid options: ["edit", "split", "vsplit", "tabe", "drop", "tab drop"] + +"coc.preferences.messageLevel":~ + + Message level for filter echoed messages default: `"more"` + + Valid options: ["more", "warning", "error"] + +"coc.preferences.formatOnType":~ + + Set to true to enable format on type, default: `false` + +"coc.preferences.bracketEnterImprove":~ + + Improve handling of pressing enter inside brackets (`<> {} [] ()`) by + create a new empty line in the middle, the indent is calculated by vim, + checkout |indentexpr| for details. + + Works with |coc#on_enter()|, default: `true` + +"coc.preferences.formatOnTypeFiletypes":~ + + Filetypes that should run format on typing, default: `[]` + + Note: takes effect when `coc.preferences.formatOnType` set `true`. + Note: This is the filetype after mapping by `g:coc_filetype_map`. + +"coc.preferences.listOfWorkspaceEdit":~ + + List should contains changed locations after workspace edit, default + to vim's quickfix, default: `quickfix` + +"coc.preferences.highlightTimeout":~ + + Highlight timeout for buffer in floating window, default: `500` + +"coc.preferences.floatActions":~ + + Set to false to disable float/popup support for actions menu. + Default: `true` + +"coc.preferences.promptInput":~ + + Use prompt buffer in float window for user input. + Default: `true` + +"coc.preferences.enableMarkdown":~ + + Tell the language server that markdown text format is supported, + note that you may have additional escaped characters for markdown + text. + +"coc.preferences.silentAutoupdate"~ + + Not open split window with update status when performing auto update. + + *coc-config-cursors* + +"coc.preferences.willSaveHandlerTimeout"~ + + Will save handler timeout, default: `500` + +"cursors.cancelKey":~ + + Key used for cancel cursors session, default: `` + +"cursors.nextKey":~ + + Key used for jump to next cursors position. , default: `` + +"cursors.previousKey":~ + + Key used for jump to previous cursors position, default: `` + + *coc-config-npm* +"npm.binPath":~ + + Command or full path of npm or yarn executable for install/update + extensions, default: `npm` + + *coc-config-languageserver* +"languageserver":~ + + Dictionary of Language Servers, key is the ID of corresponding server, + and value is configuration of languageserver. Default: `{}` + + Properties of languageserver configuration: + + - "enable": Change to `false` to disable that languageserver. + + - "filetypes": Supported filetypes, add * in array for all filetypes. + Note: it's required for start the languageserver, please make sure + your filetype is expected by `:CocCommand document.echoFiletype` command + + - "additionalSchemes": Additional uri schemes, default schemes + including file & untitled. + Note: you have to setup vim provide content for custom uri as well. + + - "cwd": Working directory used to start languageserver, vim's cwd is + used by default. + + - "env": Environment variables for child process. + + - "settings": Settings for languageserver, received on server + initialization. + + - "trace.server": Trace level of communication between server and + client that showed with output channel. + + - "stdioEncoding": Encoding used for stdio of child process. + + - "initializationOptions": Initialization options passed to + languageserver (it's deprecated) + + - "rootPatterns": Root patterns used to resolve rootPath from current + file. + + - "requireRootPattern": If true, doesn't start server when root + pattern not found. + + - "ignoredRootPaths": Absolute root paths that language server should + not use as rootPath, higher priority than rootPatterns. + + - "disableDynamicRegister": Disable dynamic registerCapability feature + for this languageserver to avoid duplicated feature regstration. + + - "disableWorkspaceFolders": Disable workspaceFolders feature for this + languageserver. + + - "disableSnippetCompletion": Disable snippet completion feature for + this languageserver. + + - "disableDiagnostics": Disable handle diagnostics for this + languageserver. + + - "disableCompletion": Disable completion feature for this + languageserver. + + - "formatterPriority": Priority of this languageserver's fomatter. + + - "revealOutputChannelOn": Configure message level to show the output + channel buffer. + + - "progressOnInitialization": Enable progress report on languageserver + initialize. + +Language server start with command:~ + + Additional fields can be used for command language server: + + - "command": Executable program name in $PATH or absolute path of + executable used for start languageserver. + + - "args": Command line arguments of command. + + - "detached": Detach language server when is true. + + - "shell": Use shell for server process, default: `false` + +Language server start with module:~ + + Additional fields can be used forlanguage server started by node + module: + + - "module": Absolute filepath of javascript file. + + - "args": Extra arguments used on fork javascript module. + + - "runtime": Absolute path of node runtime, node runtime of coc.nvim + is used by default. + + - "execArgv": Argv passed to node on fork, normally used for + debugging, ex: `["--nolazy", "--inspect-brk=6045"]` + + - "transport": Transport kind used by server, could be 'ipc', 'stdio', + 'socket' and 'pipe'. 'ipc' is used by default (recommended). + + - "transportPort": Port number used when transport is 'socket'. + +Language server use initialized socket server:~ + + - "port": Port number of socket server. + + - "host": Host of socket server, default to `127.0.0.1`. + +============================================================================== +COMPLETION *coc-completion* + +Default behavior of coc.nvim's completion: + +- Completion is automatically triggered. +- 'completeopt' is temporarily changed to `noinsert,menuone`. +- Snippet complete item would only be expanded after confirm completion. + +Use configurations |coc-config-suggest| to change behavior of completion. + +Tips:~ + +- 'completeopt' used by coc.nvim default to `noselect,menuone`. + +- Your 'completeopt' option would be changed and restored during completion, + so you can still use `menu,preview` for Vim's built in completion. + +- Snippet expand and additional edit feature of LSP requires confirm + completion to work. + +- Floating window is available on Neovim >= 0.4.0. + +------------------------------------------------------------------------------ + +Example key-mappings:~ + +Map to trigger completion and navigate to the next item: > + + function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~ '\s' + endfunction + + inoremap + \ pumvisible() ? "\" : + \ check_back_space() ? "\" : + \ coc#refresh() + + +Map to trigger completion: > + + inoremap coc#refresh() +< + to confirm completion, use: > + + inoremap pumvisible() ? "\" : "\" +< +To make auto-select the first completion item and notify coc.nvim to +format on enter, use: > + + inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" + +Map for trigger completion, completion confirm, snippet expand and jump +like VSCode. > + + inoremap + \ pumvisible() ? coc#_select_confirm() : + \ coc#expandableOrJumpable() ? + \ "\=coc#rpc#request('doKeymap', ['snippets-expand-jump',''])\" : + \ check_back_space() ? "\" : + \ coc#refresh() + + function! s:check_back_space() abort + let col = col('.') - 1 + return !col || getline('.')[col - 1] =~# '\s' + endfunction + + let g:coc_snippet_next = '' +< +Note: the `coc-snippets` extension is required for this to work. + +============================================================================== +INTERFACE *coc-interface* + +------------------------------------------------------------------------------ + +Key mappings *coc-key-mappings* + +Note: Use |:verbose| command to check key-mappings taking effect. + +Note: Mappings that start with `i_` works for insert mode `n_` works for +normal mode, `v_` works for visual mode. + +Note: Use 'noremap' with will make the key-mapping not work at all. + +Note: Key-mappings are provided for convenient, use |CocActionAsync()| or +|CocAction()| for more options. + +(coc-diagnostic-info) *n_coc-diagnostic-info* + + Show diagnostic message of current position by invoke |coc-action-diagnosticInfo| + +(coc-diagnostic-next) *n_coc-diagnostic-next* + + Jump to next diagnostic position. + +(coc-diagnostic-prev) *n_coc-diagnostic-prev* + + Jump to previous diagnostic position. + +(coc-diagnostic-next-error) *n_coc-diagnostic-next-error* + + Jump to next diagnostic error position. + +(coc-diagnostic-prev-error) *n_coc-diagnostic-prev-error* + + Jump to previous diagnostic error position. + +(coc-definition) *n_coc-definition* + + Jump to definition(s) of current symbol by invoke + |coc-action-jumpDefinition| + +(coc-declaration) *n_coc-declaration* + + Jump to declaration(s) of current symbol by invoke + ||coc-action-jumpDeclaration|| + +(coc-implementation) *n_coc-implementation* + + Jump to implementation(s) of current symbol by invoke + ||coc-action-jumpImplementation|| + +(coc-type-definition) *n_coc-type-definition* + + Jump to type definition(s) of current symbol by invoke + ||coc-action-jumpTypeDefinition|| + +(coc-references) *n_coc-references* + + Jump to references of current symbol by invoke + |coc-action-jumpReferences| + +(coc-references-used) *n_coc-references-used* + + Jump to references of current symbol exclude declarations. + +(coc-format-selected) *n_coc-format-selected* + *v_coc-format-selected* + + Format selected range, would work in both visual mode and normal mode, + when used in normal mode, the selection works on the motion object. + + For example: > + + vmap p (coc-format-selected) + nmap p (coc-format-selected) +< + makes `p` format the visually selected range, and you can use + `pap` to format a paragraph. + +(coc-format) *n_coc-format* + + Format the whole buffer by invoke |coc-action-format|, normally you + would like to use a command like: > + + command! -nargs=0 Format :call CocAction('format') +< + to format the current buffer. + +(coc-rename) *n_coc-rename* + + Rename symbol under cursor to a new word by invoke |coc-action-rename| + +(coc-codeaction) *n_coc-codeaction* + + Get and run code action(s) for current file, use |coc-codeaction-cursor| + for same beharior as VSCode. + +(coc-codeaction-line) *n_coc-codeaction-line* + + Get and run code action(s) for current line. + +(coc-codeaction-cursor) *n_coc-codeaction-cursor* + + Get and run code action(s) using empty range at current cursor. + +(coc-codeaction-selected) *n_coc-codeaction-selected* + *v_coc-codeaction-selected* + + Get and run code action(s) with the selected region. + Works with both normal and visual mode. + +(coc-openlink) *n_coc-openlink* + + Open link under cursor. + +(coc-codelens-action) *n_coc-codelens-action* + + Do command from codeLens of current line. + +(coc-fix-current) *n_coc-fix-current* + + Try first quickfix action for diagnostics of current line. + +(coc-float-hide) *n_coc-float-hide* + + Hide all float windows. + +(coc-float-jump) *n_coc-float-jump* + + Jump to first float window, works on neovim only since vim's popup + doesn't have support for focus. + +(coc-refactor) *n_coc-refactor* + + Open refactor window for refactor of current symbol. + +(coc-range-select) *n_coc-range-select* +(coc-range-select) *v_coc-range-select* + + Select next selection range. + + Note: requires selection ranges feature of language server, like: + coc-tsserver, coc-python + +(coc-range-select-backward) *v_coc-range-select-backward* + + Select previous selection range. + + Note: requires selection ranges feature of language server, like: + coc-tsserver, coc-python + +(coc-funcobj-i) *n_coc-funcobj-i* + *v_coc-funcobj-i* + + Select inside function. Recommend mapping: + + xmap if (coc-funcobj-i) + omap if (coc-funcobj-i) + + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +(coc-funcobj-a) *n_coc-funcobj-a* + *v_coc-funcobj-a* + + Select around function. Recommended mapping: + + xmap af (coc-funcobj-a) + omap af (coc-funcobj-a) + + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +(coc-classobj-i) *n_coc-classobj-i* + *v_coc-classobj-i* + + Select inside class/struct/interface. Recommended mapping: + + xmap ic (coc-classobj-i) + omap ic (coc-classobj-i) + + Note: Requires 'textDocument.documentSymbol' support from the language + server. + + +(coc-classobj-a) *n_coc-classobj-a* + *v_coc-classobj-a* + + Select around class/struct/interface. Recommended mapping: + + xmap ac (coc-classobj-a) + omap ac (coc-classobj-a) + + Note: Requires 'textDocument.documentSymbol' support from the language + server. + +------------------------------------------------------------------------------ +VARIABLES *coc-variables* + +------------------------------------------------------------------------------ + +User defined variables: + +b:coc_enabled *b:coc_enabled* + + Set to `0` on buffer create if you don't want coc.nvim receive content + from buffer. Normally used with |BufAdd| autocmd, ex: +> + " Disable file with size > 1MB + autocmd BufAdd * if getfsize(expand('')) > 1024*1024 | + \ let b:coc_enabled=0 | + \ ndif +< +b:coc_root_patterns *b:coc_root_patterns* + + Root patterns used for resolving workspaceFolder for + the current file, will be used instead of + `"coc.preferences.rootPatterns"` setting. E.g.: > + + autocmd FileType python let b:coc_root_patterns = + \ ['.git', '.env'] +< + +b:coc_suggest_disable *b:coc_suggest_disable* + + Disable completion support of current buffer. E.g.: > + + " Disable completion for python + autocmd FileType python let b:coc_suggest_disable = 1 + +b:coc_diagnostic_disable *b:coc_diagnostic_disable* + + Disable diagnostic support of current buffer. + +b:coc_suggest_blacklist *b:coc_suggest_blacklist* + + List of input words for which completion should not be triggered. + E.g.: > + + " Disable completion for 'end' in lua files + autocmd FileType lua let b:coc_suggest_blacklist = ["end"] + +b:coc_additional_keywords *b:coc_additional_keywords* + + Addition keyword characters for generate keywords. E.g.: > + + " Add keyword characters for css + autocmd FileType css let b:coc_additional_keywords = ["-"] + +b:coc_current_function *b:coc_current_function* + + Function string that current cursor in. + + Set `"coc.preferences.currentFunctionSymbolAutoUpdate": true` + in coc-settings.json to update it on CursorHold. + +b:coc_cursors_activated *b:coc_cursors_activated* + + Use expression `get(b:, 'coc_cursors_activated',0)` to check if + cursors session is activated for current buffer. + +g:coc_disable_startup_warning *g:coc_disable_startup_warning* + + Disable possible warning on startup for old vim/node version. + + Default: 0 + +g:coc_disable_uncaught_error *g:coc_disable_uncaught_error* + + Disable uncaught error messages from node process of coc.nvim. + + Default: 0 + +g:coc_channel_timeout *g:coc_channel_timeout* + + Channel timeout in seconds for request to node client. + + Default: 30 + +g:coc_disable_transparent_cursor *g:coc_disable_transparent_cursor* + + Disable transparent cursor when CocList is activated. + Set it to `1` if you have issue with transparent + cursor. + + Default: 0 + +g:coc_last_hover_message *g:coc_last_hover_message* + + Last message echoed from `doHover`, can be used in statusline. + + Note: not used when floating or preview window used for `doHover`. + +g:coc_start_at_startup *g:coc_start_at_startup* + + Start coc service on startup, use |CocStart| to start server when you + set it to 0. + + Default: 1 + +g:coc_user_config *g:coc_user_config* + + User configuration object, define this variable when you can't use + |coc#config()| + +g:coc_global_extensions *g:coc_global_extensions* + + Global extension names to install when they aren't installed. +> + let g:coc_global_extensions = ['coc-json', 'coc-git'] +< + Note: coc.nvim would try to install extensions that not installed in + this list after initialization. + +g:coc_uri_prefix_replace_patterns *g:coc_uri_prefix_replace_patterns* + + This map defines URI prefix replacements. This is useful in the case + that an LSP requires code to adhere to a particular directory + structure. For example, `/Users/myUser/workspace` can be mapped to + `/home/myUser/workspace`. +> + let g:coc_uri_prefix_replace_patterns = {'/Users': '/home'} +< +g:coc_enable_locationlist *g:coc_enable_locationlist* + + Use location list of |CocList| when jump to locations. + + Set it to 0 when you need customize behavior of location jump by use + |CocLocationsChange| and |g:coc_jump_locations| + + If you want use vim's quickfix list instead, add + `"coc.preferences.useQuickfixForLocations": true` in your + configuration file, this configuration would be ignored and no autocmd + triggered. + + Default: 1 + +g:coc_snippet_next *g:coc_snippet_next* + + Trigger key for going to the next snippet position, applied in insert + and select mode. + + Only works when snippet session is activated. + + Default: + +g:coc_snippet_prev *g:coc_snippet_prev* + + Trigger key for going to the previous snippet position, applied in + insert and select mode. + + Only works when snippet session is activated. + + Default: + +g:coc_filetype_map *g:coc_filetype_map* + + Map for document filetypes so the server could handle current document + as another filetype, ex: > + + let g:coc_filetype_map = { + \ 'html.swig': 'html', + \ 'wxss': 'css', + \ } +< + Default: {} + + Note: coc will always map filetype `javascript.jsx` to + `javascriptreact` and `typescript.tsx` to + `typescriptreact`. You can find the mapped filetype + of the current buffer by running `:CocCommand document.echoFiletype`. + +g:coc_selectmode_mapping *g:coc_selectmode_mapping* + + Add key mappings for making snippet select mode easier. > + + snoremap c + snoremap c + snoremap c + snoremap "_c +< + Default: 1 + +g:coc_node_path *g:coc_node_path* + + Path to node executable to start coc service. ex: > + + let g:coc_node_path = '/usr/local/opt/node@12/bin/node' +< + Use this when coc has problems with your system node, + + Note: you can use `~` as home directory. + +g:coc_node_args *g:coc_node_args* + + Arguments passed to node when starting coc service from source code. + + Useful for starting coc in debug mode, ex: > +> + let g:coc_node_args = ['--nolazy', '--inspect-brk=6045'] +< + Default: [] + +g:coc_jump_locations *g:coc_jump_locations* + + This variable would be set to jump locations when the + |CocLocationsChange| autocmd is fired. + + Each location item contains: + + 'filename': full file path. + 'lnum': line number (1 based). + 'col': column number(1 based). + 'text': line content of location. + +g:coc_process_pid *g:coc_process_pid* + + Process pid of coc.nvim service. If your vim doesn't kill coc.nvim + process on exit, use: +> + autocmd VimLeavePre * if get(g:, 'coc_process_pid', 0) + \ | call system('kill -9 '.g:coc_process_pid) | endif +< + in your vimrc. + +g:coc_status_error_sign *g:coc_status_error_sign* + + Error character used for statusline, default: `E` + +g:coc_status_warning_sign *g:coc_status_warning_sign* + + Warning character used for statusline, default: `W` + +g:coc_quickfix_open_command *g:coc_quickfix_open_command* + + Command used for open quickfix list. To jump fist position after + quickfix list opend, you can use: +> + let g:coc_quickfix_open_command = 'copen|cfirst' +< + Default: |copen| + +g:WorkspaceFolders *g:WorkspaceFolders* + + Current workspace folders, used for restoring from a session file, add + `set sessionoptions+=globals` to vimrc for restoring globals. + +g:node_client_debug *g:node_client_debug* + + Enable debug mode of node client for check rpc messages between vim + and coc.nvim, use command: > + + :call coc#client#open_log() +< + to open the log file. + + Default: `0` + +g:coc_config_home *g:coc_config_home* + + Configure the directory which will be used to look for + `coc-settings.json`, default: + + Windows: `~/AppData/Local/nvim` + Other: `~/.config/nvim` + +g:coc_data_home *g:coc_data_home* + + Configure the directory which will be used to for coc data + files(extensions, mru and so on), default: + + Windows: `~/AppData/Local/coc` + Other: `~/.config/coc` + +g:coc_last_float_win *g:coc_last_float_win* + + Window id of latest created float/popup window. + +g:coc_sources_disable_map *g:coc_sources_disable_map* + + Configure disabled sources for different filetypes. + Use `:CocList sources` for loaded complete sources. ex: +> + let g:coc_sources_disable_map = { \ 'python': ['omni', 'tag'] \ } + +g:coc_borderchars *g:coc_borderchars* + + Border characters used by border window, default to: +> + ['─', '│', '─', '│', '┌', '┐', '┘', '└'] +< + Note: you may need special font like Nerd font to show them. + +g:coc_border_joinchars *g:coc_border_joinchars* + + Border join characters used by float window/popup, default to: +> + ['┬', '┤', '┴', '├'] +< + Note: you may need special font like Nerd font to show them. + +g:coc_prompt_win_width *g:coc_prompt_win_width* + + Width of input prompt window, default `32`. + +g:coc_markdown_disabled_languages *g:coc_markdown_disabled_languages* + + Filetype list that should be disabled for highlight in markdown block, ex: > + + let g:coc_markdown_disabled_languages = ['html'] +> +g:coc_install_yarn_cmd *g:coc_install_yarn_cmd* + + Yarn command used for |coc#util#install()| function. + +------------------------------------------------------------------------------ + +Some variables are provided by coc.nvim so you can use them in your +statusline. See |coc-status| for detail. + +b:coc_diagnostic_info *b:coc_diagnostic_info* + + Diagnostic information of current buffer, the format would look like: + + `{'error': 0, 'warning': 0, 'information': 0, 'hint':0}` + + can be used to customize statusline. See |coc-status|. + +g:coc_status *g:coc_status* + + Status string contributed by extensions, used for status line. + +------------------------------------------------------------------------------ +FUNCTIONS *coc-functions* + +Coc functions are normally used by user defined command/keymap or other +plugins. + +Note: some functions only work after the coc service has been initialized. + +To run a function on startup, use an autocmd like: > + + autocmd User CocNvimInit call CocAction('runCommand', + \ 'tsserver.watchBuild') +< +coc#start([{option}]) *coc#start()* + + Start completion with optional {option}. Option could contains: + + - `source` specific completion source name. + + ex: > + + inoremap =coc#start({'source': 'word'}) +< + Use `CocList sources` to get available sources. + +coc#config({section}, {value}) *coc#config()* + + Change user configuration by Vim script, no changes would be made to + user configuration file. ex: > + + call coc#config('coc.preferences', { + \ 'timeout': 1000, + \}) + call coc#config('languageserver', { + \ 'ccls': { + \ "command": "ccls", + \ "trace.server": "verbose", + \ "filetypes": ["c", "cpp", "objc", "objcpp"] + \ } + \}) +< + + Note: this function can be called multiple times. + + Note: this function can be called before the service has been + initialized. + + Note: this function can work alongside the user configuration file, + but it's not recommended to use both. + +coc#add_extension({name}, ...) *coc#add_extension()* + + Deprecated function for install extensions not exists. + Use |g:coc_global_extensions| variable instead. + + ex: > + + call coc#add_extension('coc-json', 'coc-tsserver', 'coc-rls') +< + This function can be called before service initialized. + This function can be called multiple times. + +coc#add_command({id}, {command}, [{title}]) *coc#add_command()* + + Add custom Vim command to commands list opened by + `:CocList commands` . + + Example: > + + call coc#add_command('mundoToggle', 'MundoToggle', + \ 'toggle mundo window') +< +coc#refresh() *coc#refresh()* + + Start or refresh completion at current cursor position, bind this to + 'imap' to trigger completion, ex: > + + inoremap coc#refresh() +< +coc#expandable() *coc#expandable()* + + Check if a snippet is expandable at the current position. + Requires `coc-snippets` extension installed. + +coc#jumpable() *coc#jumpable()* + + Check if a snippet is jumpable at the current position. + +coc#expandableOrJumpable() *coc#expandableOrJumpable()* + + Check if a snippet is expandable or jumpable at the current position. + Requires `coc-snippets` extension installed. + +coc#on_enter() *coc#on_enter()* + + Notify coc.nvim that `` has been pressed. + + Used for the format on type and improvement of brackets, ex: > + + inoremap pumvisible() ? coc#_select_confirm() + \: "\u\\=coc#on_enter()\" +< + Note:to enable formatOnType, add ` "coc.preferences.formatOnType": true` + in your settings file. + +coc#status() *coc#status()* + + Return a status string that can be used in the status line, the status + includes diagnostic information from `b:coc_diagnostic_info` and + extension contributed statuses from `g:coc_status`. For statusline + integration, see |coc-status| + +coc#_select_confirm() *coc#_select_confirm()* + + Select first completion item if no completion item is selected, then + confirm the completion. + + Note: for this function to work as expected, either |CompleteChanged| + autocmd should exists or only and should be used to select + a completion item. + +coc#util#api_version() *coc#util#api_version()* + + Get coc.nvim's vim api version number, start from `1`. + +coc#util#job_command() *coc#util#job_command()* + + Get the job command used for starting the coc service. + +coc#util#get_config_home() *coc#util#get_config_home()* + + Get the config directory that contains the user's coc-settings.json. + +coc#util#get_data_home() *coc#util#get_data_home()* + + Get `coc` data directory. + +coc#util#extension_root() *coc#util#extension_root()* + + Return extensions root of coc.nvim. + +coc#util#rebuild() *coc#util#rebuild()* + + Run `npm rebuild` for all coc extensions. + +coc#util#root_patterns() *coc#util#root_patterns()* + + Get root patterns used for current document. + + Result could be something like: > + + {'global': ['.git', '.hg', '.projections.json'], 'buffer': [], 'server': v:null} +< +coc#util#get_config({key}) *coc#util#get_config()* + + Get configuration (mostly defined in coc-settings.json) by {key}, ex: > + + :echo coc#util#get_config('coc.preferences') + +coc#util#install() *coc#util#install()* + + Install dependencies and compile source code of coc.nvim. + + Deprecated, use release branch of coc.nvim is recommended. + +coc#float#has_float([{all}]) *coc#float#has_float()* + + Check if float window/popup exists, check coc.nvim's float + window/popup by default. + +coc#float#close_all([{all}]) *coc#float#close_all()* + + Close all float windows/popups created by coc.nvim, set {all} to `1` + for all float window/popups. + +coc#float#close({winid}) *coc#float#close()* + + Close float window/popup with {winid}. + +coc#float#has_scroll() *coc#float#has_scroll()* + + Return `1` when there is scrollable float window/popup created by + coc.nvim. + + Example key-mappings: +> + if has('nvim-0.4.0') || has('patch-8.2.0750') + nnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + nnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(1)\" : "\" + inoremap coc#float#has_scroll() ? "\=coc#float#scroll(0)\" : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(1) : "\" + vnoremap coc#float#has_scroll() ? coc#float#scroll(0) : "\" + endif +< +coc#float#scroll({forward}, [{amount}]) *coc#float#scroll()* + + Scroll all scrollable float windows/popups, scroll backward when + {forward} is not `1`. {amount} could be number or full page when + omitted. + + Note: this function requires nvim >= 0.4.0 or vim >= 8.2.750 to work. + + +CocRequest({id}, {method}, [{params}]) *CocRequest()* + + Send a request to language client of {id} with {method} and optional + {params}. ex: > + + call CocRequest('tslint', 'textDocument/tslint/allFixes', + \ {'textDocument': {'uri': 'file:///tmp'}}) +< + Vim error will be raised if the response contains an error. + + *CocRequestAsync()* + +CocRequestAsync({id}, {method}, [{params}, [{callback}]]) + + Send async request to remote language server. + {callback} function is called with error and response. + +CocNotify({id}, {method}, [{params}]) *CocNotify()* + + Send notification to remote language server, ex: +> + call CocNotify('ccls', '$ccls/reload') +< + *CocRegistNotification()* + +CocRegistNotification({id}, {method}, {callback}) + + Regist notification callback for specified client {id} and {method}, + example: > + + autocmd User CocNvimInit call CocRegistNotification('ccls', + \ '$ccls/publishSemanticHighlight', function('s:Handler')) +< + {callback} is called with single param as notification result. + + Note: when register notification with same {id} and {method}, only the + later registered would work. + + *CocLocations()* + +CocLocations({id}, {method}, [{params}, {openCommand}]) + + Send location request to language client of {id} with + {method} and optional {params}. eg: > + + call CocLocations('ccls', '$ccls/call', {'callee': v:true}) + + call CocLocations('ccls', '$ccls/call', {}, 'vsplit') +< + {openCommand}: optional command to open buffer, default to + `coc.preferences.jumpCommand` , |:edit| by default. When it's + `v:false` locations list would always used. + + *CocLocationsAsync()* + +CocLocationsAsync({id}, {method}, [{params}, {openCommand}]) + + Same as |CocLocations()|, but send notification to server instead + of request. + + +CocAction({action}, [...{args}]) *CocAction()* + + Run {action} of coc with optional extra {args}. + + Checkout |coc-action| for available actions. + + *CocActionAsync()* + +CocActionAsync({action}, [...{args}, [{callback}]]) + + Call CocAction without blocking vim. + + Optional callback is called with `error` as the first argument and + `response` as the second argument. + + Checkout |coc-action| for available actions. + +CocHasProvider({feature}) *CocHasProvider()* + + Check if provider exists for specified feature. Supported features: + + `rename` `onTypeEdit` `documentLink` `documentColor` `foldingRange` + `format` `codeAction` `workspaceSymbols` `formatRange` `hover` + `signature` `documentSymbol` `documentHighlight` `definition` + `declaration` `typeDefinition` `reference` `implementation` `codeLens` + `selectionRange` + +CocTagFunc({pattern}, {flags}, {info}) *CocTagFunc()* + + Used for vim's 'tagfunc' option, to make tag search by |CTRL-]| use + coc.nvim as provider, tag search would be performed when no result + from coc.nvim. + + Make sure your vim support 'tagfunc' by +> + :echo exists('&tagfunc') +< +------------------------------------------------------------------------------ + *coc-action* +Available Actions ~ + +Acceptable {action} names for |CocAction()| and |CocActionAsync|. + +"sourceStat" *coc-action-sourceStat* + + get the list of completion source stats for the current buffer. + +"refreshSource" [{source}] *coc-action-refreshSource* + + refresh all sources or a source with a name of {source}. + +"toggleSource" {source} *coc-action-toggleSource* + + enable/disable {source}. + +"diagnosticList" *coc-action-diagnosticList* + + Get all diagnostic items of the current Neovim session. + +"diagnosticInfo" *coc-action-diagnosticInfo* + + Show diagnostic message at the current position, do not truncate. + +"diagnosticToggle" *coc-action-diagnosticToggle* + + Enable/disable diagnostics on the fly, not work when `displayByAle` is + enabled. + +"diagnosticPreview" *coc-action-diagnosticPreview* + + Show diagnostics under current cursor in preview window. + +"jumpDefinition" [{openCommand}] *coc-action-jumpDefinition* + + jump to definition position of the current symbol. + Return `v:false` when location not found. + + |coc-list-location| is used when more than one position is available. + + To always use |coc-list-location|| for locations, use `v:false` for + {openCommand}. + + {openCommand}: optional command to open buffer, default to + `coc.preferences.jumpCommand` in `coc-settings.json` + +"jumpDeclaration" [{openCommand}] *coc-action-jumpDeclaration* + + jump to declaration position of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition". + + When {openCommand} is `v:false`, location list would be always used. + +"jumpImplementation" [{openCommand}] *coc-action-jumpImplementation* + + Jump to implementation position of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"jumpTypeDefinition" [{openCommand}] *coc-action-jumpTypeDefinition* + + Jump to type definition position of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"jumpReferences" [{openCommand}] *coc-action-jumpReferences* + + Jump to references position of the current symbol. + Return `v:false` when location not found. + + same behavior as "jumpDefinition" + +"doHover" [{hoverTarget}] *coc-action-doHover* + + Show documentation of the current word in a preview window. + Return `v:false` when hover not found. + + {hoverTarget}: optional specification for where to show hover info, + defaults to `coc.preferences.hoverTarget` in `coc-settings.json`. + Valid options: ["preview", "echo", "float"] + +"getHover" *coc-action-getHover* + + Get documentation text array on current position, returns array of + string. + +"showSignatureHelp" *coc-action-showSignatureHelp* + + Echo signature help of current function, return `v:false` when + signature not found. You may want to set up an autocmd like this: > + + autocmd User CocJumpPlaceholder call + \ CocActionAsync('showSignatureHelp') +< +"getCurrentFunctionSymbol" *coc-action-getCurrentFunctionSymbol* + + Return the function string that current cursor in. + +"documentSymbols" [{bufnr}] *coc-action-documentSymbols* + + Get a list of symbols of current buffer or specific {bufnr}. + +"ensureDocument" *coc-action-ensureDocument* + + Ensure current document is attached to coc.nvim, should be used when + you need invoke action of current document just after document + created. + + Return `v:false` when the document can't be attached, the document + won't be attached for one of these reasons: + + 1. The 'buftype' option is neither nor acwrite. + 2. Buffer variable `b:coc_enabled` is set to `0`. + 3. Size of buffer bigger than `coc.preferences.maxFileSize` + configuration. + 4. The buffer is used for command line window. + +"rename" *coc-action-rename* + + Rename the symbol under the cursor position, user will be prompted for + a new name. + + Note: coc.nvim supports rename for disk files, but your language server + may not. + +"selectionRanges" *coc-action-selectionRanges* + + Get selection ranges of current position from language server. + +"services" *coc-action-services* + + Get an information list for all services. + +"toggleService" {serviceId} *coc-action-toggleService* + + Start or stop a service. + +"format" *coc-action-format* + + Format current buffer using the language server. + Return `v:false` when format failed. + +"formatSelected" [{mode}] *coc-action-formatSelected* + + Format the selected range, {mode} should be one of visual mode: `v` , + `V`, `char`, `line`. + + When {mode} is omitted, it should be called using |formatexpr|. + + +"codeAction" [{mode}] [{only}] *coc-action-codeAction* + + Prompt for a code action and do it. + + {mode} could be `line` or `cursor` or result of |visualmode()|, + current buffer range is used when it's empty string. + + {only} can be title of a codeAction or list of CodeActionKind. + +"codeActionRange" {start} {end} [{kind}] *coc-action-codeActionRange* + + Run code action for range. + + {start} start line number of range. + {end} end line number of range. + {kind} code action kind, see |coc-action-codeActions| for available + action kind. + +"codeLensAction" *coc-action-codeLensAction* + + Invoke the command for codeLens of current line (or the line that + contains codeLens just above). Prompt would be shown when multiple + actions are available. + +"commands" *coc-action-commands* + + Get a list of available service commands for the current buffer. + +"runCommand" [{name}] [...{args}] *coc-action-runCommand* + + Run a global command provided by the language server. If {name} is not + provided, a prompt with a list of commands is shown to be selected. + + {args} are passed as arguments of command. + + You can bind your custom command like so: > + + command! -nargs=0 OrganizeImport + \ :call CocActionAsync('runCommand', 'tsserver.organizeImports') + +"fold" {{kind}} *coc-action-fold* + + Fold the current buffer, optionally use {kind} for filtering folds, + {kind} could be either 'comment', 'imports' or 'region' + + Return `v:false` when failed. + +"highlight" *coc-action-highlight* + + Highlight the symbols under the cursor. + Overwrite the highlight groups `CocHighlightText`, `CocHighlightRead` + and `CocHighlightWrite` for customizing the colors. + + To enable highlight on CursorHold, create an autocmd like this: > + + autocmd CursorHold * silent call CocActionAsync('highlight') +< +"openLink" [{command}] *coc-action-openlink* + + Open a link under the cursor with {command}. + {command} default to `edit`. + + File and URL links are supported, return `v:false` when failed. + + Note: it needs language server support documentLink feature to work. + +"extensionStats" *coc-action-extensionStats* + + Get all extension states as a list. Including `id`, `root` and + `state`. + + State could be `disabled`, `activated` and `loaded`. + +"toggleExtension" {id} *coc-action-toggleExtension* + + Enable/disable an extension. + +"uninstallExtension" {id} *coc-action-uninstallExtension* + + Uninstall an extension. + +"reloadExtension" {id} *coc-action-reloadExtension* + + Reload an activated extension. + +"activeExtension" {id} *coc-action-activeExtension* + + Activate extension of {id}. + +"deactivateExtension" {id} *coc-action-deactivateExtension* + + Deactivate extension of {id}. + +"pickColor" *coc-action-pickColor* + + Change the color at the current cursor position. + + Requires language server support for the document color request. + + Note: only works on mac or when you have python support on Vim and + have the gtk module installed. + +"colorPresentation" *coc-action-colorPresentation* + + Change the color presentation at the current color position. + + Requires a language server that supports color representation + requests. + +"codeActions" [{mode}] [{only}] *coc-action-codeActions* + + Get and invoke codeActions on current document, quickpick menu would + be shown when there're many codeActions. + + {mode} can be result of |visualmode()| for visual selected + range. When it's falsy value, current file is used as range. + + {only} can be array of codeActionKind, possible values including: + - 'refactor': Base kind for refactoring actions + - 'quickfix': base kind for quickfix actions + - 'refactor.extract': Base kind for refactoring extraction actions + - 'refactor.inline': Base kind for refactoring inline actions + - 'refactor.rewrite': Base kind for refactoring rewrite actions + - 'source': Base kind for source actions + - 'source.organizeImports': Base kind for an organize imports source + action + - 'source.fixAll': Base kind for auto-fix source actions + + {only} can also be string, which means filter by tilte of codeAction. + +"organizeImport" *coc-action-organizeImport* + + Run organize import codeAction for current buffer. + Show warning when codeAction not found. + +"fixAll" *coc-action-fixAll* + + Run fixAll codeAction for current buffer. + Show warning when codeAction not found. + + +"quickfixes" [{visualmode}] *coc-action-quickfixes* + + Get quickfix codeActions of current buffer. + + Add {visualmode} as second argument get quickfix actions with range of + latest |visualmode()| + +"doCodeAction" {codeAction} *coc-action-doCodeAction* + + Do a codeAction. + +"doQuickfix" *coc-action-doQuickfix* + + Do the first preferred quickfix action on current line. + + Throw error when no quickfix action found. + +"addRanges" {ranges} *coc-action-addRanges* + + Ranges must be provided as array of range type: https://git.io/fjiEG + +"getWordEdit" *coc-action-getWordEdit* + + Get workspaceEdit of current word, language server used when possible, + extract word from current buffer as fallback. + +"getWorkspaceSymbols" {input} [{bufnr}] *coc-action-getWorkspaceSymbols* + + Get workspace symbols from {input} and optional {bufnr} (use current + bufnr when empty). + +"diagnosticToggleBuffer" [{bufnr}] *coc-action-diagnosticToggleBuffer* + + Toggle diagnostics for specific buffer, current buffer is used when + {bufnr} not provided. + + Note: this will only affect diagnostics shown in the UI, list of all + diagnostics won't change. + +"diagnosticRefresh" [{bufnr}] *coc-action-diagnosticRefresh* + + Force refresh diagnostics for special buffer with {bufnr} or all buffers + when {bufnr} not exists, returns `v:null` before diagnostics are shown. + + Useful when `diagnostic.autoRefresh` is `false`. + +------------------------------------------------------------------------------ +COMMANDS *coc-commands* + +:CocStart *:CocStart* + + Start the coc.nvim server, do nothing if it's already started. + +:CocRestart *:CocRestart* + + Restart coc.nvim service. + + Use this command when you want coc to start all over again. + +:CocDisable *:CocDisable* + + Disable handling vim events. + +:CocEnable *:CocEnable* + + Enable handling vim events. + +:CocConfig *:CocConfig* + + Edit the user config file `.vim/coc-settings.json` in + |coc#util#get_config_home()| + +:CocLocalConfig *:CocLocalConfig* + + Edit or create `.vim/coc-settings.json` of the current working + directory. + +:CocInstall [{option}] {name} ... *:CocInstall* + + Install one or more coc extensions. + + {option}: could be `-sync` for use blocked process to download instead + of terminal. + + Examples: > + + " Install latest coc-omni + :CocInstall coc-omni + " Install coc-omni 1.0.0 + :CocInstall coc-omni@1.0.0 + " Install snippet extension from github + :CocInstall https://github.com/dsznajder/vscode-es7-javascript-react-snippets +> +:CocUninstall {name} *:CocUninstall* + + Uninstall an extension, use to complete the extension + name. + +:CocUpdate *:CocUpdate* + + Update all coc extensions to the latest version. + +:CocUpdateSync *:CocUpdateSync* + + Block version of update coc extensions. + +:CocRebuild *:CocRebuild* + + Run `npm rebuild` for coc extensions. + + May be required when environment nodejs get upgraded. + +:CocCommand {name} [{args}] ... *:CocCommand* + + Run a command contributed by extensions, use `` for name + completion. + +:{range}CocAction [{only}] *:CocAction* + + Get codeActions of current document in actions list, + with optional {range}. + + {only} can be `quickfix`, `refactor`, `source.fixAll` as + CodeActionKind. + +:{range}CocFix *:CocFix* + + Same as `:CocAction quickfix` for quickfix actions. + +:CocOpenLog *:CocOpenLog* + + Open log file of coc.nvim. + + Use environmental variable `NVIM_COC_LOG_FILE` for fixed log file. + Note: the log would be cleared when coc.nvim started. + + Use environment variable `NVIM_COC_LOG_LEVEL` to change log level + (default 'info', could be 'all', 'trace', 'debug', 'info', + 'warn', 'error', 'off'). + Use shell command: > + + export NVIM_COC_LOG_LEVEL=debug +< + or add: > + + let $NVIM_COC_LOG_LEVEL='debug' +< + to the beginning of your `.vimrc` + +:CocInfo *:CocInfo* + + Show version and log information in a split window, useful for + submitting a bug report. + +:CocDiagnostics [height] *:CocDiagnostics* + + Open vim's |location-list| with diagnostics of current buffer. + +:CocSearch *:CocSearch* + + Perform search by ripgrep https://github.com/BurntSushi/ripgrep, + refactor window would be opened. + + Note: the search is performed on your files, so normally you should + save your buffers before invoke this command. + + Common arguments for ripgrep:~ + + `-e` `--regexp`: treat search pattern as regexp. + `-F` `--fixed-strings`: treat search pattern as fixed string. + `-L` `--follow`: follow symbolic links while traversing directories. + `-g` `--glob` {GLOB}: Include or exclude files and directories for + searching that match the given glob. + `--hidden`: Search hidden files and directories. + `--no-ignore-vcs`: Don't respect version control ignore files + (.gitignore, etc.). + `--no-ignore`: Don't respect ignore files (.gitignore, .ignore, etc.). + `-w` `--word-regexp`: Only show matches surrounded by word boundaries. + `-S` `--smart-case`: Searches case insensitively if the pattern is all + lowercase. Search case sensitively otherwise. + `--no-config`: Never read configuration files. + `-x` `--line-regexp`: Only show matches surrounded by line boundaries. + + Use `:man 1 rg` in your terminal for more details. + + Note: By default, hidden files and directories are skipped. + + Note: By default, vcs ignore files including `.gitignore` and + `.ignore` are respected + + Excape arguments:~ + + || is used to convert command line arguments to arguments of + rg, which means you have to escape space for single argument. For + example, if you want to search `import { Neovim` , you have to use: +> + :CocSearch import\ \{\ Neovim +< + The escape for `{` is required because rg use regexp be default, or: +> + :CocSearch -F import\ {\ Neovim +< + for strict match. + + Change and save:~ + + Refactor session is started with searched patterns highlighted, just + change the text and save refactor buffer to make changes across all + related files. You can make any kind of changes, including add lines + and remove lines. + +:CocWatch [extension] *:CocWatch* + + Watch loaded [extension] for reload on file change, use for + complete extension id. + +------------------------------------------------------------------------------ +AUTOCMD *coc-autocmds* + + *CocLocationsChange* + +:autocmd User CocLocationsChange {command} + + For building a custom view of locations, set + |g:coc_enable_locationlist| to 0 and use this autocmd with with + |g:coc_jump_locations| + + For example, to disable auto preview of location list, use: +> + let g:coc_enable_locationlist = 0 + autocmd User CocLocationsChange CocList --normal location +< + *CocNvimInit* +:autocmd User CocNvimInit {command} + + Triggered after the coc services have started. + + If you want to trigger an action of coc after Vim has started, this + autocmd should be used because coc is always started asynchronously. + + *CocStatusChange* + +:autocmd User CocStatusChange {command} + + Triggered after `g:coc_status` changed, can be used for refresh + stautsline. + + *CocDiagnosticChange* + +:autocmd User CocDiagnosticChange {command} + + Triggered after the diagnostic status has changed. + + Could be used for updating the statusline. + + *CocJumpPlaceholder* + +:autocmd User CocJumpPlaceholder {command} + + Triggered after a jump to a placeholder. Can be used for + showing signature help like: > + + autocmd User CocJumpPlaceholder call CocActionAsync('showSignatureHelp') +< + *CocOpenFloat* + +:autocmd User CocOpenFloat {command} + + Triggered when a floating window is opened. The window is not + focused, use |g:coc_last_float_win| to get window id. + + *CocTerminalOpen* +:autocmd User CocTerminalOpen {command} + + Triggered when the terminal is shown, can be used for adjusting the + window height. + +------------------------------------------------------------------------------ + +HIGHLIGHTS *coc-highlights* + +To customize a highlight, simply use |:highlight| command of Vim in your +vimrc, like: > + + " make error texts have a red color + highlight CocErrorHighlight ctermfg=Red guifg=#ff0000 +< +Note: don't use `:hi default` for overwriting the highlights. + +Note: highlight commands should appear after the |:colorscheme| command or use +|ColorScheme| autocmd to make sure customized highlight works after color +scheme change. + +CocUnderline *CocUnderline* + + Default: `hi default CocUnderline cterm=underline gui=underline` + + Used for underlined text. + +CocFadeOut *CocFadeOut* + + Default: `hi default CocFadeOut guifg=#928374 ctermfg=245` + + Used for highlight unnecessary code. + +CocStrikeThrough *CocStrikeThrough* + + Default: `hi default CocStrikeThrough guifg=#989898 ctermfg=gray` + `\ cterm=strikethrough gui=strikethrough` + + Used for strikethrough text, like usage of deprecated API. + Default color is used since strikethrough may not work. + +CocBold *CocBold* + + Default: `hi default CocBold term=bold cterm=bold gui=bold` + + Used for bold text. + +CocItalic *CocItalic* + + Default: `hi default CocItalic term=italic cterm=italic gui=italic` + + Used for italic text. + +CocMarkdownCode *CocMarkdownCode* + + Default: `hi default link CocMarkdownCode markdownCode` + + Used for markdown code in floating window/popup. + +CocMarkdownHeader *CocMarkdownHeader* + + Default: `hi default link CocMarkdownHeader markdownH1` + + Used for markdown header in floating window/popup. + +CocMarkdownLink *CocMarkdownLink* + + Default: `hi default CocMarkdownLink ctermfg=Blue guifg=#15aabf guibg=NONE` + + Used for markdown link text in floating window/popup. + +CocErrorSign *CocErrorSign* + + Default: `hi CocErrorSign ctermfg=Red guifg=#ff0000` + + Used for error signs. + +CocWarningSign *CocWarningSign* + + Default: `hi CocWarningSign ctermfg=Brown guifg=#ff922b` + + Used for warning signs. + +CocInfoSign *CocInfoSign* + + Default: `hi CocInfoSign ctermfg=Yellow guifg=#fab005` + + Used for information signs. + +CocHintSign *CocHintSign* + + Default: `hi CocHintSign ctermfg=Blue guifg=#15aabf` + + Used for hint signs. + +CocErrorVirtualText *CocErrorVirtualText* + + Default: `hi default link CocErrorVirtualText CocErrorSign` + + Used for error signs. + +CocWarningVirtualText *CocWarningVirtualText* + + Default: `hi default link CocWarningVirtualText CocWarningSign` + + Used for warning signs. + +CocInfoVirtualText *CocInfoVirtualText* + + Default: `hi default link CocInfoVirtualText CocInfoSign` + + Used for information signs. + +CocHintVirtualText *CocHintVirtualText* + + Default: `hi default link CocHintVirtualText CocHintSign` + + Used for hint signs. + +CocErrorHighlight *CocErrorHighlight* + + Default: `hi default link CocErrorHighlight CocUnderline` + + Used for error text. + +CocWarningHighlight *CocWarningHighlight* + + Default: `hi default link CocWarningHighlight CocUnderline` + + Used for warning text. + +CocInfoHighlight *CocInfoHighlight* + + Default: `hi default link CocInfoHighlight CocUnderline` + + Used for information text. + +CocHintHighlight *CocHintHighlight* + + Default: `hi default link CocHintHighlight CocUnderline` + + Used for hint text. + +CocHighlightText *CocHighlightText* + + Default `hi default link CursorColumn` + + Used for document highlight feature. Normally used for + highlighting same symbols in the buffer at the current cursor position. + +CocHighlightRead *CocHighlightRead* + + Default `hi default link CocHighlightRead CocHighlightText` + + Highlight for `Read` kind of document symbol. + +CocHighlightWrite *CocHighlightWrite* + + Default `hi default link CocHighlightWrite CocHighlightText` + + Highlight for `Write` kind of document symbol. + +CocErrorLine *CocErrorLine* + + Default `undefined` + + Line highlight of sign for a line that contains error diagnostic. + +CocWarningLine *CocWarningLine* + + Default `undefined` + + Line highlight of sign for a line that contains warning diagnostic. + +CocInfoLine *CocInfoLine* + + Default `undefined` + + Line highlight of sign for a line that contains info diagnostic. + +CocHintLine *CocHintLine* + + Default `undefined` + + Highlight for a line with diagnostic hint. + +CocCodeLens *CocCodeLens* + + Default: `ctermfg=Gray guifg=#999999` + + Highlight group of virtual text for codeLens. + +CocFloating *CocFloating* + + Default: `NormalFloat` on neovim, `Pmenu` on vim. + + Normal highlight group of floating windows/popups. + +CocErrorFloat *CocErrorFloat* + + Default: `hi default link CocErrorFloat CocErrorSign` + + Used for floating windows/popups with errors. + +CocWarningFloat *CocWarningFloat* + + Default: `hi default link CocWarningFloat CocWarningSign` + + Used for warnings in floating windows/popups. + +CocInfoFloat *CocInfoFloat* + + Default: `hi default link CocInfoFloat CocInfoSign` + + Used for infos in floating windows/popups. + +CocHintFloat *CocHintFloat* + + Default: `hi default link CocHintFloat CocHintSign` + + Used for hints in floating windows/popups. + +CocCursorRange *CocCursorRange* + + Default: `hi default link CocCursorRange Search` + + Used for cursor ranges. + +CocHoverRange *CocHoverRange* + + Default: `hi default link CocHoverRange Search` + + Used for current hover range. + +CocMenuSel *CocMenuSel* + + Default: `hi default link CocMenuSel PmenuSel` + + Used for current menu item in menu dialog, + works on neovim only since vim doesn't support change highlight + group of cursorline inside popup. + +CocListMode *CocListMode* + + Default: `hi default link CocListMode ModeMsg` + + Used for mode in statusline of CocList. + +CocListPath *CocListPath* + + Default: `hi default link CocListPath Comment` + + Used for current cwd in statusline of CocList. + +============================================================================== +LIST SUPPORT *coc-list* + +Built-in list support to make working with lists of items easier. + +The following features are supported: + +* Insert & normal mode. +* Default key-mappings for insert & normal mode. +* Customize key-mappings for insert & normal mode. +* Commands for reopening & doing actions with a previous list. +* Different match modes. +* Interactive mode. +* Auto preview on cursor move. +* Number select support. +* Built-in actions for locations. +* Parse ANSI code. +* Mouse support. +* Select actions using . +* Multiple selections using in normal mode. +* Select lines by visual selection. + +------------------------------------------------------------------------------ + +LIST COMMAND *coc-list-command* + +:CocList [{...options}] [{source}] [{...args}] *:CocList* + + Open coc list of {source}, Ex: > + + :CocList --normal location +< + For current jump locations. + + See |coc-list-options| for available list options, + + Also check |coc-config-list| for list configuration. + + {args} are sent to source during the fetching of list. + Press `?` on normal mode to get supported {args} of current + list. + + When {source} is empty, lists source is used. + +:CocListResume [{name}] *:CocListResume* + + Reopen last opened list, input and cursor position will be preserved. + +:CocListCancel *:CocListCancel* + + Close list, useful when the list is not the current window. + +:CocPrev [{name}] *:CocPrev* + + Invoke default action for the previous item in the last {name} list. + + Doesn't open the list window if it's closed. + +:CocNext [{name}] *:CocNext* + + Invoke the default action for the next item in the last {name} list. + + Doesn't open the list window if it's closed. + +:CocFirst [{name}] *:CocFirst* + + Invoke default action for first item in the last {name} list. + +:CocLast [{name}] *:CocLast* + + Invoke default action for last item in the last {name} list. + + *coc-list-options* +Options of CocList command~ + +--top + Show list as top window. + +--tab + Open list in new tabpage. + +--normal + + Start list in normal mode, recommended for short list. + +--no-sort + Disable sort made by fuzzy score or most recently used, use it when + it's already sorted. + +--input={input} + + Specify the input on session start. + +--strict +-S + Use strict matching instead of fuzzy matching. + +--regex +-R + Use regex matching instead of fuzzy matching. + +--ignore-case + + Ignore case when using strict matching or regex matching. + +--number-select +-N + Type a line number to select an item and invoke the default action on + insert mode. Type `0` to select the 10th line. + + +--interactive +-I + Use interactive mode, list items would be reloaded on input + change, filter and sort would be done by list implementation. + + Note: filtering and sorting would be done by underlying task, which + means options including `--strict`, `--no-sort`, `--regex`, + `--ignore-case` would not work at all. + + Note: it requires list implementation have support for interactive + mode. + +--auto-preview +-A + + Start a preview for the current item on the visible list. + +--no-quit + + Not quit list session after do action. + + Note: you may need to refresh the list for current state. + +--first + + Invoke default action for first list item on list open. + Nothing happens when the list is empty. + +------------------------------------------------------------------------------ + +LIST CONFIGURATION *coc-list-configuration* + +Use `coc-settings.json` for configuration of lists. + +The general configuration of list starts with 'list.'. + +Checkout |coc-config-list| or type `list.` in your settings file to get completion +list (requires coc-json installed). + +For configuration of a specified list, use section that starts with: +`list.source.{name}`, where `{name}` is the name of list. + +Change default action:~ + +If you want to use `tabe` as default action of symbols list, you can use: +> + // change default action of symbols + "list.source.symbols.defaultAction": "tabe" +< +in your coc-settings.json + +Change default options:~ + +Use `list.source.{name}.defaultOptions` setting like: > + + // make symbols list use normal mode and interactive by default + "list.source.symbols.defaultOptions": ["--interactive", "--number-select"], +< +Note: some list like symbols only work in interactive mode, you must +include `--interactive` in `defaultOptions`. + +Note: default options will not be used when there're options passed +with |:CocList| command. + +Change default arguments:~ + +Use `list.source.{name}.defaultArgs` setting like: > + + // use regex match for grep source + "list.source.grep.defaultArgs": ["-regex"], + +Note: default arguments used only when arguments from |:CocList| command is +empty. + +Note: Type `?` on normal mode to get supported arguments of current list. + +------------------------------------------------------------------------------ + +LIST MAPPINGS *coc-list-mappings* + +Default mappings on insert mode: + + - cancel list session. + - do default action with selected items or current item. + - stop loading task. + - paste text from system clipboard. + - reload list. + - change to normal mode. + - select next line. + - select previous line. + - move cursor left. + - move cursor right. + - move cursor to end of prompt. + - same as . + - move cursor to start of prompt. + - same as . + - scroll window forward. + - scroll window backward. + - remove previous character of cursor. + - remove previous character of cursor. + - remove previous word of cursor. + - remove characters before cursor. + - navigate to next input in history. + - navigate to previous input in history. + - switch matcher for filter items. + - insert content from Vim register. + - select action. + +Default mappings on normal mode: + + - cancel list session. + - do default action with selected items or current item. + - stop source from fetching more items. + - reload list. + - mark all visible items selected. + - jump to original window on list create. + - select action. + - scroll preview window down. + - scroll preview window up. + - toggle select of current item. +i,I,o,O,a,A - change to insert mode. +p - preview action. +: - cancel list session without closing window. +? - show help of current list. +t - do 'tabe' action. +d - do 'drop' action. +s - do 'split' action. + +Use |coc-list-mappings-custom| to override default mappings. + + *coc-list-mappings-custom* + +Configurations `"list.normalMappings"` and `"list.insertMappings"` are used +for customizing the list key-mappings, ex: > + + "list.insertMappings": { + "": "do:refresh", + "": "feedkeys:\\", + "": "feedkeys:\\", + "": "normal:j", + "": "normal:k", + "": "action:tabe", + "": "call:MyFunc", + // paste yanked text to prompt + "": "eval:@@" + } + "list.normalMappings": { + "c": "expr:MyExprFunc" + "d": "action:delete" + } +< +Note: you should only use mappings that start with ` can't be remapped for other actions. + +The mapping expression should be `command:arguments`, available commands: + +'do' - special actions provided by coc list, including: + 'refresh' - reload list. + 'selectall' - mark all visible items selected. + 'switch' - switch matcher used for filter items. + 'exit' - exit list session. + 'stop' - stop loading task. + 'cancel' - cancel list session but leave list window open. + 'toggle' - toggle selection of current item. + 'togglemode' - toggle between insert and normal mode. + 'previous' - move cursor to previous item. + 'next' - move cursor to next item. + 'defaultaction' - do default action for selected items or current item. + 'jumpback' - stop prompt and jump back to original window. + 'previewtoggle' - toggle preview window, requires preview action exists. + 'previewup' - scroll preview window up. + 'previewdown' - scroll preview window down. + 'help' - show help. +'prompt' - do prompt action, including: + 'previous' - change to previous input in history. + 'next' - change to next input in history. + 'start' - move cursor to start. + 'end' - move cursor to end. + 'left' - move cursor left. + 'right' - move cursor right. + 'deleteforward' - remove previous character. + 'deletebackward' - remove next character. + 'removetail' - remove characters afterwards. + 'removeahead' - remove character ahead. + 'insertregister' - insert content from Vim register. + 'paste' - append text from system clipboard to prompt. +'eval' - append text to prompt from result of VimL expression. +'action' - execute action of list, use to find available actions. +'feedkeys' - feedkeys to list window, use `\\` in JSON to escape special characters. +'normal' - execute normal command in list window. +'normal!' - execute normal command without remap. +'command' - execute command. +'call' - call Vim function with |coc-list-context| as only argument. +'expr' - same as 'call' but expect the function return action name. + + *coc-list-context* + +Context argument contains the following properties: + +'name' - name of the list, ex: `'location'`. +'args' - arguments of the list. +'input' - current input of prompt. +'winid' - window id on list activated. +'bufnr' - buffer number on list activated. +'targets' - list of selected targets, checkout |coc-list-target| for properties. + + *coc-list-target* + +Target contains the following properties: + +'label' - mandatory property that is shown in the buffer. +'filtertext' - optional filter text used for filtering items. +'location' - optional location of item, check out https://bit.ly/2Rtb6Bo +'data' - optional additional properties. + +------------------------------------------------------------------------------ + +LIST SOURCES *coc-list-sources* + +------------------------------------------------------------------------------ + +location *coc-list-location* + + Last jump locations. + + Actions: + + - 'preview' : preview location in preview window. + - 'open': open location by use + `"coc.preferences.jumpCommand"`, default action + - 'tabe': Use |:tabe| to open location. + - 'drop': Use |:drop| to open location. + - 'vsplit': Use |:vsplit| to open location. + - 'split': Use |:split| to open location. + - 'quickfix': Add selected items to Vim's quickfix. + +extensions *coc-list-extensions* + + Manage coc extensions. + + Actions: + + - 'toggle' activate/deactivate extension, default action. + - 'disable' disable extension. + - 'enable' enable extension. + - 'lock' lock/unlock extension to current version. + - 'doc' view extension's README doc. + - 'fix' fix dependencies in terminal buffer. + - 'reload' reload extension. + - 'uninstall' uninstall extension. + +diagnostics *coc-list-diagnostics* + + All diagnostics for the workspace. + + Actions: + + - Same as |coc-list-location| + +outline *coc-list-outline* + + Symbols in the current document. + + Actions: + + - Same as |coc-list-location| + +symbols *coc-list-symbols* + + Search workspace symbols. + + Actions: + + - Same as |coc-list-location| + +services *coc-list-services* + + Manage registered services. + + Actions: + + - 'toggle': toggle service state, default action. + +commands *coc-list-commands* + + Workspace commands. + + Actions: + + - 'run': run selected command, default action. + +links *coc-list-links* + + Links in the current document. + + Actions: + + - 'open': open the link, default action. + - 'jump': jump to link definition. + +sources *coc-list-completion-sources* + + Available completion sources. + + Actions: + + - 'toggle': activate/deactivate source, default action. + - 'refresh': refresh source. + - 'open': open the file where source defined. + +lists *coc-list-lists* + + Get available lists. + + Actions: + + - 'open': open selected list, default action. + +============================================================================== + +DIALOG SUPPORT *coc-dialog* + +Dialog is special float window/popup that could response to user actions, +dialog have close button, border, title (optional), bottom buttons(optional). + +Note bottom buttons work different on neovim and vim, on neovim you can +click the button since neovim allows focus of window, on vim you have to type +highlighted character to trigger button callback. + +Note dialog feature requires neovim >= 0.4.0 or vim >= 8.2.0750 to work. + +See |coc-config-dialog| for available configurations. + +------------------------------------------------------------------------------ + + *coc-dialog-basic* + +A basic dialog is create by javascript api `window.showDialog` , which is just +some texts with optional buttons. + +------------------------------------------------------------------------------ + + *coc-dialog-confirm* + +A confirm dialog is used for user to confirm an action, normally created by +`window.showPrompt()` Confirm dialog uses filter feature on vim8 and +|getchar()| on neoivm. + +The difference is you can operate vim on vim8, but not on neovim. + +Supported key-mappings: + + - force cancel, return -1 for callback. +, n, N - reject the action, return 0 for callback. +y,Y - accept the action, return 1 for callback. + +------------------------------------------------------------------------------ + + *coc-dialog-input* + +A input dialog request user input with optional default value, normally +created by `window.requestInput`, when `"coc.preferences.promptInput"` is +false, vim's commandline input prompt is used instead. + +Supported key-mappings: + + - move cursor to first col. + - move cursor to last col. + - cancel input, an empty string is received by callback. + - confirm current input. + +And other insert mode key-mappings that your neovim provided. + +------------------------------------------------------------------------------ + + *coc-dialog-menu* + +A menu dialog is shown aside current cursor position for pick a single item +from list of items, |coc-codeaction| uses menu dialog by default when it's +supported, extensions could use `window.showMenuPicker` to create menu +dialog. + +Supported key-mappings: + + - cancel selection. + - confirm selection of current item. +1-9 - select item with 1 based index. +g - move to first item. +G - move to last item. +j - move to next item. +k - move to previous item. + - scroll forward. + - scroll backward. + +------------------------------------------------------------------------------ + + *coc-dialog-picker* + +A picker dialog is used for multiple selection. On neovim, it's possible to +toggle selection by mouse click inside the bracket. Extensions could use +`window.showPickerDialog` to create picker dialog. + +Supported key-mappings: + + - cancel selection. + - confirm selection of selected items. + - toggle selection of current item. +g - move to first item. +G - move to last item. +j - move to next item. +k - move to previous item. + - scroll forward. + - scroll backward. + +Note when close button is clicked, the selection is canceled with undefined +result (same as ). + +============================================================================== + +STATUSLINE SUPPORT *coc-status* + +Diagnostics info and other status info contributed by extensions could be +shown in statusline. + +The easiest way is add `%{coc#status()}` to your 'statusline' option. Ex: > + + set statusline^=%{coc#status()} +> +------------------------------------------------------------------------------ + + *coc-status-manual* + +Create function: +> + function! StatusDiagnostic() abort + let info = get(b:, 'coc_diagnostic_info', {}) + if empty(info) | return '' | endif + let msgs = [] + if get(info, 'error', 0) + call add(msgs, 'E' . info['error']) + endif + if get(info, 'warning', 0) + call add(msgs, 'W' . info['warning']) + endif + return join(msgs, ' ') . ' ' . get(g:, 'coc_status', '') + endfunction +< +Add `%{StatusDiagnostic()}` to your 'statusline' option. + +------------------------------------------------------------------------------ + + *coc-status-airline* + +With vim-airline: https://github.com/vim-airline/vim-airline + +Error and warning display should work in vim-airline out of box. + +Disable vim-airline integration: +> + let g:airline#extensions#coc#enabled = 0 +< +Change error symbol: +> + let airline#extensions#coc#error_symbol = 'Error:' +< +Change warning symbol: +> + let airline#extensions#coc#warning_symbol = 'Warning:' +< +Change error format: +> + let airline#extensions#coc#stl_format_err = '%E{[%e(#%fe)]}' +< +Change warning format: +> + let airline#extensions#coc#stl_format_warn = '%W{[%w(#%fw)]}' +< +------------------------------------------------------------------------------ + *coc-status-lightline* + +With lightline.vim: https://github.com/itchyny/lightline.vim + +Use configuration like: > + + let g:lightline = { + \ 'colorscheme': 'wombat', + \ 'active': { + \ 'left': [ [ 'mode', 'paste' ], + \ [ 'cocstatus', 'readonly', 'filename', 'modified' ] ] + \ }, + \ 'component_function': { + \ 'cocstatus': 'coc#status' + \ }, + \ } + + " Use autocmd to force lightline update. + autocmd User CocStatusChange,CocDiagnosticChange call lightline#update() +< +============================================================================== +CUSTOM SOURCE *coc-custom-source* + +Creating a custom source in VimL is supported. + +Check out https://github.com/neoclide/coc.nvim/wiki/Create-custom-source + +============================================================================== +FAQ *coc-faq* + +------------------------------------------------------------------------------ +Q: I got the error message with xxx provider not found. + +A: It means you don't have coc extension or languageserver that provide + this feature, you have to install extension for it or configure + languageserver. + + Note some languageserver may not have that feature supported, please + checkout it's documentation. + +Q: Syntax highlight on float/popup doesn't looks right. + +A: On neovim, coc.nvim uses background neovim instance which load syntax + plugins only for generate highlights, it may not what you would expect. + +Q: I don't have float/popup window shown up. + +A: For vim8, make sure `echo has('textprop') && has('patch-8.1.1719')` + echo 1. For neovim, you need neovim >= 0.4.0. + + +============================================================================== +vim:tw=78:nosta:noet:ts=8:sts=0:ft=help:noet:fen:fdm=marker: diff --git a/etc/soft/nvim/+plugins/coc.nvim/history.md b/etc/soft/nvim/+plugins/coc.nvim/history.md new file mode 100644 index 0000000..b426703 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/history.md @@ -0,0 +1,1166 @@ +# 2019-08-18 0.0.74 + +- feat(cursors): support multiple cursors. +- feat(extensions): install missing extensions by CocInstall. +- feat(extensions): add command `extensions.forceUpdateAll`. +- feat(completion): rework preselect feature. +- feat(extension): use request for fetch package info. +- feat(language-client): support disableDynamicRegister configuration. +- feat(list): paste from vim register support on insert mode #1088. +- feat(plugin): add CocHasProvider(), close #1087. +- refactor(outline): not exclude variables and callback. +- refactor(diagnostic): remove timeout on InsertLeave. + +# 2019-07-11 0.0.73 + +- fix(completion): fix map of number select +- fix(languages): fix cursor position with snippet +- fix(completion): fix cursor position with additionalTextEdits +- fix(position): fix rangeOverlap check #961 +- fix(list): not change guicursor when it's empty +- fix(list): fix filter not work on loading +- fix(list): fix custom location list command not work +- fix(util): highlight & render on vim8 +- fix(handler): fix getCommands +- fix(handler): not check lastInsert on trigger signatureHelp +- fix(handler): fix check of signature help trigger +- fix(language-client): configuration for configured server, closes #930 +- fix(diagnostic): clear diagnostics on filetype change +- feat(plugin): add download & fetch modules +- feat(plugin): add highligher module +- feat(refactor): add `(coc-refactor)` for refactor window +- feat(extension): use mv module for folder rename +- feat(extension): support install taged extension +- feat(extension): support custom extension root `g:coc_extension_root` +- feat(handler): close signature float window on ')' +- feat(list): support `g:coc_quickfix_open_command` +- feat(list): add eval action +- feat(list): add --tab list option +- feat(list): use highligher module for showHelp +- feat(terminal): add noa on window jump +- feat(terminal): support vim8 +- feat(diagnostic): add diagnosticRelated support +- feat(diagnostic): use text properties on vim8 +- feat(handler): improve signature float window + +# 2019-07-01 + +- feat(plugin): add CocStatusChange autocmd +- feat(extension): support both npm and yarn. +- feat(plugin): work on vim 8.0 +- feat(extensions): add lock & doc actions to extension source +- feat(extension): add proxy auth support (#920) +- feat(source): not change startcol for file source +- feat(completion): no numberSelect for number input +- feat(extensions): Use yarn when npm not found +- feat(completion): no popup for command line buffer +- feat(plugin): support only for codeActions action +- feat(task): debounce stdout +- feat(plugin): add keymaps for selection ranges +- feat(plugin): add function textobj +- feat(list): restore window height, closes #905 +- feat(handler): support signature.floatTimeout +- feat(configuration): support change of workspace configuration +- feat(diagnostic): add keymaps for jump error diagnostics +- feat(plugin): delay start on gvim, fix #659 + +# 2019-06-15 + +- feat(plugin): add popup support of vim +- refactor(completion): improve float support +- refactor(floating): remove unused code +- refactor(workspace): replace find-up +- refactor(handler): improve message for fold method +- fix(virtualtext): invalid highlight tag (#874) +- fix(snippets): fix plaintext check +- fix(highlight): catch error of child_process.spawn +- fix(highlight): use v:progpath, fix #871 +- fix(floatFactory): escape feedkeys +- fix(handler): fix getCurrentFunctionSymbol not work + +# 2019-06-12 + +- feat(document): add getVar method +- fix(util): not break selection on message +- fix(workspace): fix jumpTo not work on vim8 +- fix(completion): trigger completion with word character +- refactor(handler): return boolean result +- perf(workspace): improve jump performance +- fix(util): Escape filename for jump (#862) +- refactor(plugin): not show empty hover +- feat(outline): ignore callback function +- feat(workspace): support list of events with registerAutocmd +- fix(workspace): fix jump with tab drop +- refactor(language-client): change API of selectionRanges + +# 2019-06-09 + +- **Break change** `CocHighlightText` link to `CursorColumn` by default. +- **Break change** logger folder changed to `$XDG_RUNTIME_DIR` when exists. +- Add `` and `` support for list, #825. +- Add function `coc#add_command()`. +- Add `disableDiagnostics` & `disableCompletion` to languageclient configuration. +- Add `signature.triggerSignatureWait` configuration. +- Add vim-repeat support for run command and quickfix. +- Add prefered `codeAction` support. +- Add `prompt.paste` action to list. +- Add title as argument support for `codeAction` action. +- Add `suggest.floatEnable` configuration. +- Add `editor.action.organizeImport` command. +- Add `:CocAction` and `:CocFix` commands. +- Add `codeActions` action. +- Fix issues with list. + +# 2019-05-30 + +- **Break change** logger folder changed. +- Add support of vim-repeat for `` keymaps. +- Add `CocRegistNotification()` function. +- Add argument to rename action. +- Add `suggest.disableMenuShortcut` configuration. +- Add glob support for root patterns. +- Add `` keymap to list window. +- Add shortcut in sources list. +- Add `list.previewSplitRight` configuration. +- Add `triggerOnly` property to source. +- Add warning for duplicate extension. +- Bug fixes. + +# 2019-05-07 + +- **New feature** load extensions from coc-extensions folder. +- Add `workspace.renameCurrentFile` command. +- Add `FloatBuffer`, `FloatFactory` and `URI` to exports. +- Add `resolveItem` support to list. +- Fix prompt can't work when execute list action. +- Fix ansiparser for empty color ranges. +- Fix highlight only work with first 8 items. + +# 2019-04-27 + +- **Break change** vim-node-rpc not required on vim. +- **Break change** python not required on vim. +- **Break change** complete items would refreshed after 500ms when not finished. +- Add `additionalSchemes` for configured language server. +- Add support for jumpCommand as false. +- Fix `diagnostic.level` not work. + +# 2019-04-09 + +- **Break change** `--strictMatch` option of list renamed to `--strict` +- **Break change** `suggest.reloadPumOnInsertChar` support removed. +- **Break change** no more binary release. +- **Break change** logic for resolve workspace folder changed. +- Add `Task` module. +- Add `getCurrentFunctionSymbol` action. +- Add `list.source.outline.ctagsFilestypes` setting. +- Add `suggest.disableMenu` and `suggest.disableMenu` settings. +- Add `equal` support for complete items. +- Add support for do action with visual select lines of list. +- Add expand tilder support for language server command. +- Add switch matcher support to list. +- Add select all support to lsit. +- Add quickfix action to list. +- Add `selectionRanges` of LSP. +- Add load extentions for &rtp support. +- Add `coc#on_enter()` for formatOnType and add new lines on enter. +- Improve completion by support trigger completion when pumvisible. +- Remove document check on `BufWritePre`. + +# 2019-03-31 + +- **Break change** not using vim-node-rpc from npm modules any more. +- **Break change** rename `_` to `CocRefresh`. +- Fix wrong format options send to server. +- Fix throw eror when extention root not created. +- Fix MarkedString not considered as markdown. +- Fix echo message on vim exit. +- Fix error throw on file watch. +- Fix unexpected update of user configuration. + +# 2019-03-28 + +- Add `workspace.resolveRootFolder`. +- Add `diagnostic.joinMessageLines` setting. +- Add `suggest.completionItemKindLabels` setting. +- Add `memento` support for extention. +- Add `workspace.getSelectedRange`. +- Add `Terminal` module. +- Add command `workbench.action.reloadWindow`. +- Fix extention not activated by command. +- Fix broken undo with floating window. +- Fix document create possible wrong uri & filetype. +- Improve highlight with floating window. + +# 2019-03-24 + +- **Break change** make number input not trigger completion. +- **Break change** make none keywords character doesn't filter completion. +- Add functions for check snippet state. +- Add setting `diagnostic.checkCurrentLine`. +- Fix `signature.target` not work. +- Fix flick of signature window. +- Fix EPIPE error of node-client. +- Fix wrong root of FileWatchSysmtem. + +# 2019-03-19 + +- **Break change** signature settings now starts `signature`. +- **Break change** default request timeout changed to 5s. +- **Break change** `commands.executeCommand` return promise. +- Add `coc.preferences.signatureHelpTarget`. +- Add `diagnostic.maxWindowHeight` & `signature.maxWindowHeight`. +- Add `diagnostic.enableSign`. +- Add support for `$COC_NO_PLUGINS`. +- Add keymaps: `(coc-float-hide)` and `(coc-float-jump)`. +- Add `coc.preferences.enableFloatHighlight`. +- Fix issues with floating window. +- Fix critical performance issue on diff text. +- Improve color of `CocHighlightText`. +- Improve sort of complete items. +- Improve extention list with version and open action. + +# 2019-03-16 + +- **Break change** change vim config home on windows to '\$HOME/vimfiles'. +- Add highlights to float windows. +- Add CocLocationsAsync(). +- Add support for `b:coc_suggest_disable`. +- Add support for `b:coc_suggest_blacklist`. +- Add setting `diagnostic.messageTarget`. +- Add floating window support for signatures. +- Fix issues with diagnostic float. +- Fix info of completion item not shown. +- Fix CocUpdateSync not work without service start. +- Fix wrong indent spaces of snippets. + +# 2019-03-11 + +- **Break change** change buffers instead of disk file for `workspace.applyEdits`. +- **Break change** add config errors to diagnostic list instead of jump locations. +- **Break change** hack for popup menu flicker is remvoed, use `suggest.reloadPumOnInsertChar` to enable it. +- **Break change** use `nvim_select_popupmenu_item` for number select completion. +- Add floating window for completion items. +- Add floating window support for diagnostics. +- Add floating window support for hover documentation. +- Add `coc#on_enter()` for notify enter pressed. +- Add setting `coc.preferences.useQuickfixForLocations`. +- Add support of `g:coc_watch_extensions` for automatic reload extentions. +- Add command: `editor.action.doCodeAction`. +- Fix service on restarted on windows after rebuild. +- Fix config of airline. +- Fix relative path of watchman. +- Improve Mru model. + +# 2019-03-03 + +- **Break change** signature change of `workspace.registerKeymap`. +- **Break change** `` of CocList can't be remapped any more. +- **Break change** use `yarnpkg` command instead of `yarn` when possible. +- **Break change** `noinsert` is removed from `completeopt` when `noselect` is + enabled, `` would break line by default. +- Add setting `diagnostic.refreshAfterSave`. +- Add chinese documentation. +- Add support of multiple line placeholder. +- Fix edit of nested snippet placeholders. +- Fix possible infinite create of documents. +- Fix check for resume completion. + +# 2019-02-25 + +- **Break change** default of `suggest.detailMaxLength` changed to 100. +- **Break change** option of `workspace.registerKeymap` changed. +- Add settings: `suggest.defailField`. +- Add check for autocmd in health check. +- Add trigger patterns support for complete sources. +- Add support of `coc-snippets-expand-jump` +- Add `source` option for completion start. +- Add `sources.createSource` method. + +# 2019-02-22 + +- **Break change** some configurations have been renamed, checkout #462. +- **Break change** no longer automatic trigger for CursorHoldI #452. +- **Break change** add preview option of `completeopt` according to `suggest.enablePreview`. +- Add statusItem for CocUpdate. +- Add `-sycn` option for `:CocInstall` +- Add support for floating preview window. +- Add more module export. +- Fix check of vim-node-rpc throw error. +- Fix wrong line for TextEdit of complete item. +- Fix diagnostics not cleared on service restart. + +# 2019-02-17 + +- **Break change** completion resolve requires CompleteChanged autocmd. +- **Break change** mapping of space on insert mode of list removed. +- **Break change** kind of completion item use single letter. +- Fix snippet not works on GUI vim. +- Fix cursor vanish on vim by use timer hacks. +- Fix behavior of list preview window. +- Fix python check on vim. +- Fix CocJumpPlaceholder not fired. +- Fix vscode-open command not work. + +# 2019-02-12 + +- **Break change** function `coc#util#clearmatches` signature changed. +- Add check for python gtk module. +- Add check for vim-node-rpc update error. +- Fix source name of diagnostics. +- Fix empty buffers created on preview. +- Fix trigger of `CursorHoldI`. + +# 2019-02-11 + +- **Break change:** internal filetype of settings file changed to jsonc. +- **Break change:** `coc#util#install` changed to synchronize by default. +- **Break change:** no document highlight would be added for colored symbol. +- **Break change:** remove `coc.preferences.openResourceCommand`. +- Add fallback rename implementation which rename symbols on current buffer. +- Add command `:CocUpdateSync`. +- Add `coc.preferences.detailMaxLength` for slice detail on completion menu. +- Add cancel support for completion. +- Add `ctags` as fallback of document symbols list. +- Add default key-mappings for location actions. +- Add python check on vim. +- Add `disableSyntaxes` support for completion sources. +- Add support for change `isProgress` of `StatusBarItem` +- Add check of coc.nvim version for `CocUpdate` +- Add `coc.preferences.previewAutoClose`, default true. +- Add `workspace.add registerAutocmd`. +- Fix highlight not cleared on vim +- Fix health check of service state. +- Fix CursorHoldI not triggered on neovim. +- Fix sort of list not stable. + +# 2019-02-04 + +- **Break change:** no messages when documentSymbol and workspaceSymbol provider + not found. +- Add support for configure sign in statusline. +- Add help action for list. +- Fix parse error on extentions update. +- Fix wrong uri on windows. +- Fix cancel list without close ui. +- Improve startup time by remove jobwait. + +# 2019-02-02 + +- **Break change:** extentions now update automatically, prompt is removed. +- Add check for extention compatibility. +- Add transform support for placeholder. +- Add check for node version. +- Add error check for list. +- Add settings: `coc.preferences.diagnostic.virtualTextLines`. +- Fix preview window not shown. +- Fix highlight not cleared on vim. +- Fix highlight commands of list block vim on start. +- Improve extention load. +- Improve list experience. + +# 2019-01-28 + +- **Break change:** `coc.preferences.diagnostic.echoMessage` changed to enum. +- Add mru support for commands and lists list. +- Add `coc.preferences.diagnostic.refreshOnInsertMode` +- Add `Mru` module. +- Improve highlight for lists, support empty `filterLabel`. +- Fix `findLocations` not work with nest locations. +- Fix cursor position after apply additionalTextEdits. + +# 2019-01-24 + +- **Break change:** python code for denite support moved to seperated repo. +- **Break change:** Quickfix list no longer used. +- Add list support. +- Add configuration: `coc.preferences.diagnostic.virtualText`. +- Add watch for `&rtp` change. +- Add support for configure `g:coc_user_config` and `g:coc_global_extensions` +- Add support for send request to coc on vim start. +- Add `g:coc_start_at_startup` support. +- Add configuration: `coc.preferences.invalidInsertCharacters`. +- Add configuration: `coc.preferences.snippetStatusText`. +- Add `coc#_insert_key()` for insert keymap. +- Add `workspace.registerExprKeymap()`. +- Add detect for `vim-node-rpc` abnormal exist. +- Add `requireRootPattern` to languageserver configuration. +- Fix git check, always generate keywords. +- Fix crash when `righleft` set to 1 on neovim. +- Fix snippet position could be wrong. + +# 2019-01-09 + +- **Break change:** throw error when languageserver id is invalid. +- Add watcher for languageserver configuration change. +- Fix possible invalid package.json. +- Fix applyEdits not work sometimes. +- Fix server still started when command search failed. +- Fix log file not writeable. +- Improve completion performance. + +# 2019-01-03 + +- **Break change:** using of `g:rooter_patterns` is removed. +- **Break change:** diagnostics would be updated in insert mode now. +- Add configuration: `coc.preferences.rootPatterns` +- Add `TM_SELECTED_TEXT` and `CLIPBOARD` support for snippets. +- Fix check of latest insert char failed. +- Fix highlight not cleared sometimes. + +# 2019-01-01 + +- Fix issues with completion. + +# 2018-12-31 + +- **Break change:** created keymaps use rpcrequest instead of rpcnotify. +- **Break change:** snippets provider is removed, use `coc-snippets` for + extention snippets. +- Add command: `coc.action.insertSnippet` +- Fix position of snippets. +- Fix modifier of registered keymaps. +- Fix completion triggered on complete done. +- Fix closure function possible conflict. +- Fix unexpected snippet cancel. +- Fix document applyEdits, always use current lines. +- Fix fail of yarn global command. +- Fix check of changedtick on completion done. +- Fix line used for textEdit of completion. +- Fix snippet canceled by `formatOnType`. +- Fix `CocJumpPlaceholder` not fired +- Optimize content synchronize. + +# 2018-12-27 + +- **Break change:** no more message on service ready. +- **Break change:** vim source now registered as extention. +- **Break change:** complete item sort have reworked. +- **Break change:** request send to coc would throw when service not ready. +- Add support for check current state on diagnostic update. +- Add `env` opinion for registered command languageserver. +- Add outputChannel for watchman. +- Add `coc#_select_confirm()` for trigger select and confirm. +- Add `coc.preferences.numberSelect`. +- Add priority support for format provider. +- Add `workspace.watchGlobal` and `workspace.watchOption` methods. +- Fix cursor disappear on `TextChangedP` with vim. +- Fix coc process not killed when update on windows. +- Fix snippet broken on vim. +- Fix support of startcol of completion result. +- Fix `labelOffsetSupport` wrong position. +- Fix flicking on neovim. +- Fix unicide not considered as iskeyword. +- Fix watchman client not initialized sometimes. +- Improve performance for parse iskeyword. +- Not echo message on vim exit. +- Not send empty configuration change to languageserver. + +# 2018-12-20 + +- **Break change** configuration for module language server, transport now + require specified value. +- **Break change** new algorithm for socre complete items. +- Add command `workspace.clearWatchman`. +- Add `quickfixs`, `doCodeAction` and `doQuickfix` actions. +- Add `g:vim_node_rpc_args` for debug purpose. +- Add `coc#add_extension()` for specify extentions to install. +- Fix clients not restarted on CocRestart. +- Fix `execArgv` and `runtime` not work for node language server. +- Fix detail of complete item not echoed sometimes. +- Fix actions missing when registered with same clientId. +- Fix issues with signature echo. +- Fix uri is wrong with whitespace. +- Improve highlight performance with `nvim_call_atomic`. + +# 2018-12-17 + +- **Break change** `vim-node-rpc` now upgrade in bacground. +- Add `ignoredRootPaths` to `languageserver` option. +- Add detect of vim running state. +- Add `client.vim` for create clients. +- Fix possible wrong current line of `completeResolve`. +- Fix snippet not work with `set virtualedit=all`. +- Fix default timeout to 2000. +- Fix file mode of log file. + +# 2018-12-12 + +- **Break change** `fixInsertedWord` fix inserted word which ends with word + after. +- **Break change** `onCompleteSelect` is removed. +- Add `workspace.registerKeymap` for regist keymap. +- Add match score for sort complete items. +- Fix possible connection lost. +- Fix priority of diagnostic signs. +- Fix possible wrong uri. +- Fix `RevealOutputChannelOn` not default to `never`. +- Fix possible wrong line used for textEdit of complete item. +- Fix possible wrong cursor position of snippet after inserted. + +# 2018-12-08 + +- **Break change** default rootPath would be directory of current file, not cwd. +- **Break change** codeLens feature now disabled by default. +- **Break change** diagnostic prev/next now loop diagnostics. +- Add support of neovim highlight namespace. +- Add support for undo `additionalTextEdits` on neovim +- Fix configuration resolve could be wrong. +- Fix word of completion item could be wrong. +- Fix rootPath could be null. +- Fix highlight not cleared on restart. + +# 2018-12-06 + +- **Break change** `RevealOutputChannelOn` of language client default to + `never`. +- Fix can't install on windows vim. +- Fix `displayByAle` not clearing diagnostics. +- Add check for `vim-node-rpc` udpate on vim. +- Add `Resolver` module. +- Improve apply `WorkspaceEdit`, support `0` as document version and merge + edits for same document. + +# 2018-12-05 + +- Add `CocJumpPlaceholder` autocmd. +- Add `rootPatterns` to `languageserver` config. +- Add setting: `coc.preferences.hoverTarget`, support use echo. +- Add setting `coc.preferences.diagnostic.displayByAle` for use ale to display errors. +- Add setting `coc.preferences.extensionUpdateCheck` for control update check of + extentions. +- Add `coc#config` for set configuration in vim. +- Fix rootPath not resolved on initialize. +- Fix possible wrong `tabSize` by use `shiftwidth` option. +- Fix trigger of `documentColors` request. +- Fix `vim-node-rpc` service not work on windows vim. +- Fix `codeLens` not works. +- Fix highlight of signatureHelp. +- Fix watchman watching same root multiple times. +- Fix completion throw undefined error. +- Fix `open_terminal` not works on vim. +- Fix possible connection lost by use notification when possible. +- Fix process not terminated when connection lost. +- Rework diagnostics with task sequence. +- Rework configuration with more tests. + +# 2018-11-28 + +- _Break change_ signature help reworked, vim API for echo signature changed. +- Add `:CocInfo` command. +- Add trigger for signature help after function expand. +- Add echo message when provider not found for some actions. +- Add support for `formatexpr` +- Add support for locality bonus like VSCode. +- Add support of `applyAdditionaLEdits` on item selected by `` +- Add `coc.preferences.useQuickfixForLocations` +- Add `coc.preferences.messageLevel` +- Add support for trigger command which not registered by server. +- Add `g:coc_denite_quickfix_action` +- Fix insert unwanted word when trigger `commitCharacter`. +- Fix rpc request throw on vim. +- Fix `data` of complete item conflict. +- Fix code action not work sometime. +- Fix `coc.preferences.diagnostic.locationlist` not work. +- Fix `coc.preference.preferCompleteThanJumpPlaceholder`. +- Fix `workspace.jumpTo` not work sometime. +- Fix line indent for snippet. +- Fix trigger of `signatureHelp` and `onTypeFormat`. + +# 2018-11-24 + +- **Break change** sources exluding `around`, `buffer` or `file` are extracted + as extensions. +- **Break change** custom source not exists any more. +- Add `coc.preferences.preferCompleteThanJumpPlaceholder` to make jump + placeholder behavior as confirm completion when possible. +- Add `CocDiagnosticChange` autocmd for force statusline update. +- Add `onDidUnloadExtension` event on extention unload. +- Fix `getDiagnosticsInRange`, consider all interactive ranges. +- Fix completion throw when `data` on complete item is `string`. +- Fix `commitCharacters` not works. +- Fix workspace methods: `renameFile`, `deleteFile` and `resolveRoot`. +- Fix textEdit of builtin sources not works. + +# 2018-11-19 + +- **Break change** snippet support reworked: support nest snippets, independent + session in each buffer and lots of fixes. +- **Break change** diagnostic list now sort by severity first. +- Add commands: `:CocUninstall` and `:CocOpenLog` +- Add cterm color for highlights. +- Add line highlight support for diagnostic. +- Add `coc.preferences.fixInsertedWord` to make complete item replace current word. +- Fix check confirm not works on vim sometimes. +- Fix check of `vim-node-rpc`. +- Fix preselect complete item not first sometimes. +- Improve completion sort result by consider more abort priority and recent + selected. +- Improve colors module, only highlight current buffer and when buffer changed. +- Improve `doc/coc.txt` + +# 2018-11-13 + +- **Break change** default completion timeout changed to 2s. +- **Break change** snippet session not canceled on `InsertLeave`, use + `` in normal mode to cancel. +- Add document color support. +- Add CocAction 'pickColor' and 'colorPresentation'. +- Add prompt for install vim-node-rpc module. +- Add support for `inComplete` completion result. +- Add status item for snippet session. +- Add support for fix inserted text of snippet completion item. +- Fix document highlight not cleared. +- Fix cancel behavior of snippet. +- Fix range check of edit on snippet session. +- Fix check of completion confirm. +- Fix highlight group 'CocHighlightWrite' not work. +- Fix command `editor.action.rename` not works. +- Fix throw error before initialize. +- Fix `g:coc_node_path` not working. +- Fix file source throw undefined error. +- Improve logic of sorting completion items, strict match items comes first. + +# 2018-11-07 + +- **Break change** word source removed from custom sources, enabled for markdown + by default. +- **Break change** ignore sortText when input.length > 3. +- **Break change** show prompt for install `coc-json` when not found. +- Fix document content synchronize could be wrong. +- Fix filetype not converted on completion. +- Fix complete item possible not resolved. +- Improve document highlight, no highlight when cursor moved. +- Improve completion score, use fuzzaldrin-plus replace fuzzaldrin. + +# 2018-11-02 + +- **Break change** no items from snippets source when input is empty. +- **Break change** `javascript.jsx` would changed to `javascriptreact` as languageId. +- **Break change** `typescript.tsx` would changed to `typescriptreact` as languageId. +- Add support for `commitCharacters` and `coc.preferences.acceptSuggestionOnCommitCharacter`. +- Add setting: `coc.preferences.diagnostic.level`. +- Add `g:coc_filetype_map` for customize mapping between filetype and languageId. +- Add `g:coc_node_path` for custom node executable. +- Add `workspaceFolders` feature to language client. +- Add `~` to complete item of snippet source. +- Add `onDidChangeWorkspaceFolder` event +- Fix `eol` issue by check `eol` option. +- Fix `workspace.document` could be null. +- Fix `workspaceFolder` could be null. +- Fix diagnostic for quickfix buffer. +- Fix resolve of `coc.preferences.rootPath` + +# 2018-10-29 + +- **Break change** diagnostic reworked, no refresh on insert mode. +- **Break change** keep `sortText` on filter for better result. +- **Break change** prefer trigger completion than filter, same as VSCode. +- **Break change** filetype of document would be first part of `&filetype` split by `.`. +- **Break change** prefer label as abbr for complete item. +- Fix creating wrong `textEdit` for snippet. +- Fix `startcol` of `CompleteResult` not working. +- Fix `workspaceConfiguration.toJSON` return invalid result. +- Fix `workspace.readFile` not synchronized with buffer. +- Fix `workspace.rootPath` not resolved as expected. +- Fix `CompletionItem` resolved multiple times. +- Fix check of `latestInsert` on completion. +- Fix `formatOnType` possible add unnecessary indent. +- Fix document content synchronized on vim. +- Fix confirm check of completion for all source. +- Fix document possible register multiple times. +- Fix completion always stopped when input is empty. +- Add warning message when definition not found. +- Add `redraw` after `g:coc_status` changed. +- Remove change of `virtualedit` option of snippet. +- Improved performance of filter completion items. + +# 2018-10-25 + +- Fix `implementation` and `typeDefinition` of language client not working. +- Fix `diffLines` return wrong range. +- Fix `setqflist` and `setloclist` not works on vim. +- Fix snippets and `additionalTextEdits` not works on vim. +- Fix append lines not works on vim. +- Fix highlight action not works on vim. +- Fix null version of `TextDocumentIdentifier` not handled. +- Add `workspace.registerTextDocumentContentProvider` for handle custom uri. +- Add `workspace.createStatusBarItem` method. + +# 2018-10-21 + +- **Break change**: `triggerAfterInsertEnter` now respect `minTriggerInputLength`. +- Add `coc.preferences.minTriggerInputLength`. +- Add command: `:CocCommand`. +- Fix `position` of `provideCompletionItems`. +- Fix content change not trigger after completion. +- Fix default sorters & matchers of denite sources. +- Fix `outputChannel` wrong `buftype`. +- Fix completion not works with `textEdit` add new lines. +- Fix first item not resolved when `noselect` is disabled +- Remove using of `diff` module. + +# 2018-10-18 + +- **Break change**: all buffers are created as document. +- **Break change**: retrieve workspace root on document create. +- Fix `uri` for all buffer types. +- Fix bad performance on parse keywords. +- Fix check of language client state. +- Fix register of `renameProvider` +- Fix `CocRequestAsync` not work. +- Fix `workspace.openResource` error with `wildignore` option. +- Fix output channel can't shown if hidden. +- Fix extension activate before document create. +- Add command `vscode.open` and `editor.action.restart`. +- Add `workspace.requestInput` method. +- Add support of `g:rooter_patterns` +- Add `storagePath` to `ExtensionContext` +- Add `workspace.env` property. +- Add support of scoped configuration. +- Disable buffer highlight on vim. + +# 2018-10-14 + +- **Break change** API: `workspace.resoleModule` only does resolve. +- **Break change** extension would still be loaded even if current coc version + miss match. +- **Break change** variables are removed from view of `Denite coc-symbols` +- Fix `workspace.applyEdits` +- Fix `console.log` throws in extension. +- Fix invalid `workspace.root` with custom buffer schema. +- Fix possible crash on neovim 0.3.1 by not attach terminal buffer. +- Fix jump position not stored when jump to current buffer position. +- Fix install function not works on vim. +- Add support for custom uri schema for `workspace.jumpTo` and `workspace.openResource` +- Add `workspace.findUp` for find up file of current buffer. +- Add `env` option for custom language server config. +- Add vim function: `CocRequest` and `CocRequestAsync` for send request to + language server in vim. +- Add `coc.preferences.parseKeywordsLimitLines` and `coc.preferences.hyphenAsKeyword` + for buffer parse. +- Rework completion for performance and accuracy. + +# 2018-10-05 + +- **Break change**, `workspace.onDidChangeConfiguration` emit `ConfigurationChangeEvent` now. +- Add `position` to function `coc#util#open_terminal`. +- Improve performance of completion by use vim's filter when possible. +- Fix service start multiple times. +- Fix parse of `iskeyword` option, consider `@-@`. +- Fix completion of snippet: cancel on line change. + +# 2018-10-01 + +- Improved document `didChange` before trigger completion. +- Add option `coc.preferences.triggerCompletionWait`, default 60. +- Add watch for `iskeyword` change. +- Fix snippet jump not works sometime. +- Fix possible wrong `rootPath` of language server. +- Fix highlight of highlight action not using terminal colors. +- Fix detect for insert new line character. + +# 2018-09-30 + +- Add quickfix source of denite and fzf +- Add option `coc.preferences.rootPath` +- Add option `revealOutputChannelOn` to language server. +- Fix jump of placeholder. +- Fix empty root on language server initialize. + +# 2018-09-28 + +- **Break change**: `coc.preferences.formatOnType` default to `false`. +- **Break change**: snippet completion disabled in `string` and `comment`. +- Add support for register local extension. +- Add title for commands in `Denite coc-command` +- Fix prompt hidden by echo message. +- Fix contribute commands not shown in denite interface. +- Fix parse of `iskeyword`, support character range. +- Fix `triggerKind` of completion. +- Fix install extension from url not reloaded. + +# 2018-09-27 + +- **Break change**: `:CocDisable` disabled all events from vim. +- **Break change**: new snippet implementation. + - Support multiple line snippet. + - Support VSCode snippet extension. + - Support completion of snippets from snippet extension. +- Add highlight groups for different severity. +- Add `coc.preferences.formatOnType` option. +- Add `coc.preferences.snippets.enable` option. +- Fix snippet not works as `insertText`. +- Fix echo message with multiple lines. +- Fix `signatureHelp` with `showcmd` disabled. +- Fix location list cleared on `:lopen`. +- Fix diagnostic info not cleared on `:CocDisable` +- Fix diagnostic info not cleared on buffer unload. +- Fix buffer highlight not cleared on `highlight` action. +- Fix format on type not work as expected. + +# 2018-09-24 + +- **Break change**: use `CursorMove` instead of `CursorHold` for diagnostic + message. +- **Break change**: direct move to diagnostic position would show diagnostic + message without truncate. +- **Break change**: snippet would be canceled when mode changed to normal, no + mapping of `` any more. +- Add format document on `insertLeave` when `onTypeFormat` is supported. +- Add buffer operations on resource edit. +- Add `uninstall` action for `Denite coc-extension`. +- Fix active extension on command not working. +- Fix delete file from resource edit not works. + +# 2018-09-20 + +- Fix diagnostic check next offset for diagnostics. +- Add `(coc-diagnostic-info)` for show diagnostic message without + truncate. + +# 2018-09-15 + +- Fix wrong configuration on update. +- Fix install command with tag version. +- Fix using of unsafe `new Buffer`. +- Add support of trace format & resource operations. +- Add support of json validation for extension. +- Add support of format on save by `coc.preferences.formatOnSaveFiletypes` + +# 2018-09-10 + +- Add `Denite coc-extension` for manage extensions. +- Add actions for manage extension including `toggleExtension` `reloadExtension` + `deactivateExtension` +- Add check for extension update everyday. +- Fix extensions using same process of coc itself. +- Fix `configurationSection` should be null if none was specified. + +# 2018-09-07 + +- **Break change**: all extension all seperated from core, checkout + [Using coc extension](https://github.com/neoclide/coc.nvim/wiki/Using-coc-extensions) +- Fix `textDocumentSync` option not work when received as object. +- Fix wrong diagnostic info when using multiple lint servers. +- Use `CursorHold` for show diagnostic message. +- Add option `coc.preferences.enableMessage` to disable showing of diagnostic + message. +- Add new events module for receive vim events. +- Add support for `prepareRename`. +- Add support for `CodeActionOptions` + +# 2018-08-30 + +- Fix wrong `triggerKind` from VSCode. +- Add `(coc-openlink)` for open link. +- Add `typescript.jsx` as valid typescript type. + +# 2018-08-23 + +- Fix sometimes client status invalid. +- Add multiply provider support for all features. +- Add `documentLink` support +- Add `documentHighlight` support +- Add `foldingRange` support +- Add support of `documentSelector` same as VSCode + +# 2018-08-21 + +- Fix diagnostic and arguments of tsserver. +- Add `keepfocus` option for `open_terminal`. +- Improve error catch of autocmds. +- Add `onTypeFormat` feature for language server +- Add `onTypeFormat` support for tsserver. +- Refactor and more tests of workspace. +- Fix `window/showMessageRequest` request. +- Use `callAsync` for async request to vim. +- Add `CocActionAsync` function send async request to server. + +# 2018-08-17 + +- Fix exists terminal buffer not watched. +- Fix buffer not attached after `edit!`. +- Fix clean diagnostics of `tsserver.watchBuild` command. +- Fix refresh of buffer. +- Fix document not found on `BufEnter`. + + Use `rpcrequest` for `BufCreate` + +- Fix no permission of log file. + + Disable create log file for root user. + +- Add more command for tsserver: + + - `tsserver.reloadProjects` + - `tsserver.openTsServerLog` + - `tsserver.goToProjectConfig` + - `tsserver.restart` + +- Add test for workspace. + +# 2018-08-16 + +- Improved for tsserver: + + - Add `watchBuild` command for build current project with watch in terminal. + - Support of untitled buffer + - Support `projectRootPath` + +- Fix detach error of document. +- Fix trigger characters not works for some source. +- Fix document possible not sync before save. +- Fix denite errors with 0 as result. +- Fix wrong arguments of tsserver refactor command. +- Use `drop` for workspace `openResource`. +- Add clear coc signs on `:CocRestart`. +- **Break change** all buffer types except `nofile` `help` and `quickfix` are + watched for changes. + +# 2018-08-15 + +- Fix filter of completion items on fast input. +- Fix sometimes fails of include & neosnippet source. +- Fix sometimes fails to find global modules. +- Improve complete source initialization. + + - Always respect change of configuration. + +- Add ability to start standalone coc service for debugging. + + - Use `NVIM_LISTEN_ADDRESS=/tmp/nvim nvim` to start + neovim. + - Start coc server by command like `node bin/server.js` + +- Add ability to recover from unload buffer. + + Sometimes `bufReadPost` `BufEnter` could be not be fired on buffer create, + check buffer on `CursorHold` and `TextChanged` to fix this issue. + +- Add tsserver features: `tsserver.formatOnSave` and `tsserver.organizeImportOnSave` + + Both default to false. + +- Add tests for completion sources. + +# 2018-08-14 + +- Fix remote source not working. +- Fix sort of completion items. +- Fix EPIPE error from net module. +- Add `tslint.lintProject` command. +- Add config `coc.preferences.maxCompleteItemCount`. +- Add `g:coc_auto_copen`, default to `1`. + +# 2018-08-12 + +- **Break change** `:CocRefresh` replaced with `call CocAction('refreshSource')`. +- Add support filetype change of buffer. +- Add basic test for completion. +- Improve loading speed, use child process to initialize vim sources. +- Improve install.sh, install node when not exists. +- Improve interface of workspace. +- Fix loading of configuration content. + +# 2018-08-11 + +- Fix configuration content not saved on change. +- Fix thrown error on watchman not found. +- Fix incompatible options of `child_process`. +- Fix location list for diagnostics. + + - Reset on `BufWinEnter`. + - Available for all windows of single buffer. + - Use replace on change for coc location list. + - Add debounce. + +- Fix signature help behaviour, truncate messages to not overlap. +- Reworks sources use async import. + +# 2018-08-10 + +- Fix dispose for all modules. +- Add support for multiple `addWillSaveUntilListener`. +- Fix `startcol` for json server. +- Add support filetype `javascriptreact` for tsserver. + +# 2018-08-09 + +- Add `coc#util#install` for installation. +- Add `install.cmd` for windows. + +# 2018-08-08 + +- Improved location list for diagnostics. +- Add `internal` option to command. + + Commands registered by server are internal. + +- Add support for multiple save wait until requests. + +# 2018-08-07 + +- Add `forceFullSync` to language server option. + +# 2018-08-05 + +- Improve eslint extension to use workspaceFolder. +- Fix watchman not works with multiple roots. +- Add feature: dynamic root support for workspace. +- **Break change** output channel of watchman is removed. + +# 2018-08-04 + +- Fix order of document symbols. +- Fix completion snippet with `$variable`. +- Add feature: expand snippet on confirm. +- Add feature: `(coc-complete-custom)` for complete custom sources. + + Default customs sources: `emoji`, `include` and `word` + +- **Break change** `emoji` `include` used for all filetypes by default. + +# 2018-08-03 + +- Add command `:CocErrors` for debug. +- Support `DocumentSymbol` for 'textDocument/documentSymbol' + +# 2018-08-02 + +- Fix error of language client with unsupported schema. + + No document event fired for unsupported schema (eg: fugitive://) + +- Fix update empty configuration not works. + +# 2018-07-31 + +- Improve file source triggered with dirname started path. + +# 2018-07-30 + +- Fix source ultisnip not working. +- Fix custom language client with command not working. +- Fix wrong arguments passed to `runCommand` function. +- Improve module install, add `sudo` for `npm install` on Linux. +- Improve completion on backspace. + - Completion is resumed when search is empty. + - Completion is triggered when user try to fix search. + +# 2018-07-29 + +- **Break change** all servers are decoupled from coc.nvim + + A prompt for download is shown when server not found. + +- **Break change** `vim-node-rpc` decoupled from coc.nvim + + A prompt would be shown to help user install vim-node-rpc in vim. + +- Add command `CocConfig` + +# 2018-07-28 + +- Fix uncaught exception error on windows. +- Use plugin root for assets resolve. +- Fix emoji source not triggered by `:`. +- Improve file source to recognize `~` as user home. + +# 2018-07-27 + +- Prompt user for download server module with big extension like `vetur` and `wxml-langserver` +- **Break change**, section of settings changed: `cssserver.[languageId]` moved to `[languageId]` + + For example: `cssserver.css` section is moved to `css` section. + + This makes coc settings of css languages the same as VSCode. + +- **Break change**, `stylelint` extension is disabled by default, add + + ``` + "stylelint.enable": true, + ``` + + to your `coc-settings.json` to enable it. + + User will be prompted to download server if `stylelint-langserver` is not + installed globally. + +- **Break change**, `triggerAfterInsertEnter` is always `true`, add + + ``` + "coc.preferences.triggerAfterInsertEnter": false, + ``` + + to your `coc-settings.json` to disable it. + +- **Break change**, when `autoTrigger` is `always` completion would be triggered + after completion item select. + +# 2018-07-24 + +- better statusline integration with airline and lightline. + +# 2018-07-23 + +- Coc service start much faster. +- Add vim-node-rpc module. +- **Break change** global function `CocAutocmd` and `CocResult` are removed. +- Support Vue with vetur + +# 2018-07-21 + +- Fix issue with `completeopt`. +- Add source `neosnippet`. +- Add source `gocode`. + +# 2018-07-20 + +- Add documentation for language server debug. +- Rework register of functions, avoid undefined function. + +# 2018-07-19 + +- Fix error of `isFile` check. +- Ignore undefined function on service start. + +# 2018-07-17 + +- Add `coc.preference.jumpCommand` to settings. +- Make coc service standalone. + +# 2018-07-16 + +- Support arguments for `runCommand` action. +- Add coc command `workspace.showOutput`. +- Support output channel for language server. +- Support `[extension].trace.server` setting for trace server communication. + +# 2018-07-15 + +- Support location list for diagnostic. +- Add tsserver project errors command. + +# 2018-07-14 + +- Add support for `preselect` of complete item. +- Add support for socket language server configuration. +- Fix configured language server doesn't work. +- Add `workspace.diffDocument` coc command. +- Fix buffer sometimes not attached. +- Improve completion of JSON extension. + +# 2018-07-13 + +- **Break change:** `diagnostic` in setting.json changed to `diagnostic`. +- Fix clearHighlight arguments. +- Add eslint extension https://github.com/Microsoft/vscode-eslint. +- Fix snippet break with line have \$variable. +- Use jsonc-parser replace json5. +- Add `data/schema.json` for coc-settings.json. + +# 2018-07-12 + +- Fix restart of tsserver not working. +- Fix edit of current buffer change jumplist by using `:keepjumps`. diff --git a/etc/soft/nvim/+plugins/coc.nvim/package-lock.json b/etc/soft/nvim/+plugins/coc.nvim/package-lock.json new file mode 100644 index 0000000..a1e4c45 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/package-lock.json @@ -0,0 +1,6221 @@ +{ + "name": "coc.nvim-master", + "version": "0.0.80", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dev": true, + "requires": { + "@babel/highlight": "^7.12.13" + } + }, + "@babel/compat-data": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", + "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==", + "dev": true + }, + "@babel/core": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", + "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.3", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.2", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.3", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "dev": true, + "requires": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-compilation-targets": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", + "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.14.4", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "@babel/helper-function-name": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-module-transforms": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", + "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.14.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==", + "dev": true + }, + "@babel/helper-replace-supers": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", + "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dev": true, + "requires": { + "@babel/types": "^7.13.12" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dev": true, + "requires": { + "@babel/types": "^7.12.13" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==", + "dev": true + }, + "@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==", + "dev": true + }, + "@babel/helpers": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "dev": true, + "requires": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + } + }, + "@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", + "dev": true + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "@babel/traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true + }, + "@chemzqm/neovim": { + "version": "5.2.12", + "resolved": "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.2.12.tgz", + "integrity": "sha512-MmnFaF7P8Sw/WsselXtoexTUxPJGWupUDMTz0T76mWU+M61TXt213UBgxA/idr7ZSCnFTyujDVqcaL5xYd9tig==", + "requires": { + "msgpack-lite": "^0.1.26" + } + }, + "@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dev": true, + "requires": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + } + }, + "@eslint/eslintrc": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", + "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + } + }, + "@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dev": true, + "requires": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + } + }, + "@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + } + }, + "@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dev": true, + "requires": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "node-notifier": "^8.0.0", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + } + }, + "@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dev": true, + "requires": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + } + }, + "@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + } + }, + "@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + } + }, + "@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + } + }, + "@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.7.tgz", + "integrity": "sha512-BTIhocbPBSrRmHxOAJFtR18oLhxTtAFDAvL8hY1S3iU8k+E60W/YFs4jrixGzQjMpF4qPXxIQHcjVD9dz1C2QA==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.7.0" + } + }, + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==" + }, + "@types/babel__core": { + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", + "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dev": true, + "requires": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@types/babel__traverse": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", + "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0" + } + }, + "@types/cli-table": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@types/cli-table/-/cli-table-0.3.0.tgz", + "integrity": "sha512-QnZUISJJXyhyD6L1e5QwXDV/A5i2W1/gl6D6YMc8u0ncPepbv/B4w3S+izVvtAg60m6h+JP09+Y/0zF2mojlFQ==", + "dev": true + }, + "@types/debounce": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/debounce/-/debounce-3.0.0.tgz", + "integrity": "sha512-SbehVj+zL0QFTufW3HP/Xvwr/kFWw1sFMLCvmyJdp5Xegbo81sqA2tByWlyeryvSwWBrY4drpLOtGPh0fkxjCQ==", + "dev": true + }, + "@types/events": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", + "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", + "dev": true + }, + "@types/fb-watchman": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/fb-watchman/-/fb-watchman-2.0.0.tgz", + "integrity": "sha512-Ao2jlksPEUGCEXBvJz5e2MuDpYUtxXgtUk45cg0g5Mmy4f0j7bQuDlOlqBMgKGRl9dZAK4ZTzFtukuzj2mURlQ==", + "dev": true, + "requires": { + "@types/events": "*" + } + }, + "@types/fs-extra": { + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", + "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", + "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", + "dev": true + }, + "@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "*" + } + }, + "@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dev": true, + "requires": { + "@types/istanbul-lib-report": "*" + } + }, + "@types/jest": { + "version": "26.0.18", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.18.tgz", + "integrity": "sha512-scDPs+mELZgsFetTgBSsIxKGrlitn9t/d2ecP+S1QSIGD+31fkMBEftLfOAX5k3tU06/0PjreJIQ+gWEbbHqpw==", + "dev": true, + "requires": { + "jest-diff": "^26.0.0", + "pretty-format": "^26.0.0" + } + }, + "@types/json-schema": { + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", + "dev": true + }, + "@types/marked": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@types/marked/-/marked-1.2.1.tgz", + "integrity": "sha512-d5adCgRHB+NAme23hkiTkvpfZUDqoNtL2Sr2nZBJqSj3zyHLxsfFWsGQ2sK2z9aX6L1xkJzon2c0jTPcsEjpaQ==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", + "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", + "dev": true + }, + "@types/minipass": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@types/minipass/-/minipass-2.2.0.tgz", + "integrity": "sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/mkdirp": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.1.tgz", + "integrity": "sha512-HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "10.17.35", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.35.tgz", + "integrity": "sha512-gXx7jAWpMddu0f7a+L+txMplp3FnHl53OhQIF9puXKq3hDGY/GjH+MF04oWnV/adPSCrbtHumDCFwzq2VhltWA==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", + "dev": true + }, + "@types/prettier": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", + "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==", + "dev": true + }, + "@types/semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==", + "dev": true + }, + "@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==", + "dev": true + }, + "@types/tar": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.4.tgz", + "integrity": "sha512-0Xv+xcmkTsOZdIF4yCnd7RkOOyfyqPaqJ7RZFKnwdxfDbkN3eAAE9sHl8zJFqBz4VhxolW9EErbjR1oyH7jK2A==", + "dev": true, + "requires": { + "@types/minipass": "*", + "@types/node": "*" + } + }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, + "@types/which": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.2.tgz", + "integrity": "sha512-8oDqyLC7eD4HM307boe2QWKyuzdzWBj56xI/imSl2cpL+U3tCMaTAkMJ4ee5JBZ/FsOJlvRGeIShiZDAl1qERA==", + "dev": true + }, + "@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", + "dev": true + }, + "@typescript-eslint/eslint-plugin": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz", + "integrity": "sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "4.11.1", + "@typescript-eslint/scope-manager": "4.11.1", + "debug": "^4.1.1", + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/experimental-utils": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz", + "integrity": "sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.3", + "@typescript-eslint/scope-manager": "4.11.1", + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/typescript-estree": "4.11.1", + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" + } + }, + "@typescript-eslint/parser": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.1.tgz", + "integrity": "sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "4.11.1", + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/typescript-estree": "4.11.1", + "debug": "^4.1.1" + } + }, + "@typescript-eslint/scope-manager": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz", + "integrity": "sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/visitor-keys": "4.11.1" + } + }, + "@typescript-eslint/types": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.1.tgz", + "integrity": "sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz", + "integrity": "sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "@typescript-eslint/visitor-keys": "4.11.1", + "debug": "^4.1.1", + "globby": "^11.0.1", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^7.3.2", + "tsutils": "^3.17.1" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "4.11.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz", + "integrity": "sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==", + "dev": true, + "requires": { + "@typescript-eslint/types": "4.11.1", + "eslint-visitor-keys": "^2.0.0" + } + }, + "abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", + "dev": true + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "acorn-jsx": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz", + "integrity": "sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "dev": true + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "dev": true + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + }, + "dependencies": { + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + } + } + }, + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==" + }, + "ansi-styles": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.0.0.tgz", + "integrity": "sha512-6564t0m0fuQMnockqBv7wJxo9T5C2V9JpYXyNScfRDPVLusOQQhkpMGrFC17QbiolraQ1sMXX+Y5nJpjqozL4g==" + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "astral-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", + "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dev": true, + "requires": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + } + }, + "babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + } + }, + "babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dev": true, + "requires": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + } + }, + "babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dev": true, + "requires": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dev": true, + "requires": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "binary": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", + "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", + "requires": { + "buffers": "~0.1.1", + "chainsaw": "~0.1.0" + } + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", + "dev": true + }, + "browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + } + }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "dev": true, + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, + "bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "requires": { + "node-int64": "^0.4.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "buffers": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", + "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=" + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30001235", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz", + "integrity": "sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A==", + "dev": true + }, + "capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dev": true, + "requires": { + "rsvp": "^4.8.4" + } + }, + "chainsaw": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", + "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", + "requires": { + "traverse": ">=0.3.0 <0.4" + } + }, + "chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } + } + }, + "char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "dev": true + }, + "chokidar": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz", + "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==", + "dev": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==" + }, + "ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", + "dev": true + }, + "cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "cli-table": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz", + "integrity": "sha512-1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==", + "requires": { + "chalk": "^2.4.1", + "string-width": "^4.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "comment-parser": { + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz", + "integrity": "sha512-GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "requires": { + "safe-buffer": "5.1.2" + } + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", + "dev": true + }, + "cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "requires": { + "cssom": "~0.3.6" + }, + "dependencies": { + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + } + } + }, + "data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "requires": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + } + }, + "date-format": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-3.0.0.tgz", + "integrity": "sha512-eyTcpKOcamdhWJXj56DpQMo1ylSQpcGtGKXcU0Tb97+K56/CF5amAqqqNj0+KvA0iw2ynxtHWFsPDSClCxe48w==" + }, + "debounce": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz", + "integrity": "sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", + "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", + "requires": { + "mimic-response": "^3.1.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "dev": true + }, + "diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "dev": true + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dev": true, + "requires": { + "webidl-conversions": "^5.0.0" + }, + "dependencies": { + "webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "dev": true + } + } + }, + "electron-to-chromium": { + "version": "1.3.749", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz", + "integrity": "sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==", + "dev": true + }, + "emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-abstract": { + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", + "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.2", + "is-callable": "^1.2.3", + "is-negative-zero": "^2.0.1", + "is-regex": "^1.1.3", + "is-string": "^1.0.6", + "object-inspect": "^1.10.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.4", + "string.prototype.trimstart": "^1.0.4", + "unbox-primitive": "^1.0.1" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "esbuild": { + "version": "0.12.7", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.12.7.tgz", + "integrity": "sha512-vxENKWBo928ErLiT/uUv8Sl2EoC5cF3cZzCTc8hDEh9ZAZ75xblJCr72NeJo74lxWaGopIePZPIWq1qDpLUHQQ==", + "dev": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + } + } + }, + "eslint": { + "version": "7.15.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", + "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@eslint/eslintrc": "^0.2.2", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.2.0", + "esutils": "^2.0.2", + "file-entry-cache": "^6.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash": "^4.17.19", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + } + } + }, + "eslint-plugin-jest": { + "version": "24.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-24.1.3.tgz", + "integrity": "sha512-dNGGjzuEzCE3d5EPZQ/QGtmlMotqnYWD/QpCZ1UuZlrMAdhG5rldh0N0haCvhGnUkSeuORS5VNROwF9Hrgn3Lg==", + "dev": true, + "requires": { + "@typescript-eslint/experimental-utils": "^4.0.1" + } + }, + "eslint-plugin-jsdoc": { + "version": "30.7.13", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.7.13.tgz", + "integrity": "sha512-YM4WIsmurrp0rHX6XiXQppqKB8Ne5ATiZLJe2+/fkp9l9ExXFr43BbAbjZaVrpCT+tuPYOZ8k1MICARHnURUNQ==", + "dev": true, + "requires": { + "comment-parser": "^0.7.6", + "debug": "^4.3.1", + "jsdoctypeparser": "^9.0.0", + "lodash": "^4.17.20", + "regextras": "^0.7.1", + "semver": "^7.3.4", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "event-lite": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", + "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" + }, + "exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==", + "dev": true + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, + "fast-glob": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", + "micromatch": "^4.0.2", + "picomatch": "^2.2.1" + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastq": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.11.0.tgz", + "integrity": "sha512-7Eczs8gIPDrVzT+EksYBcupqMyxSHXXrHOLRRxU2/DicV8789MRBRR8+Hc2uWzUupOs4YS4JzBmBxjjCVBxD/g==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "requires": { + "bser": "2.1.1" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "dependencies": { + "flatted": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", + "dev": true + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==" + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fs-extra": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", + "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "requires": { + "minipass": "^3.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-intrinsic": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", + "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "globby": { + "version": "11.0.3", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.3.tgz", + "integrity": "sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.1.1", + "ignore": "^5.1.4", + "merge2": "^1.3.0", + "slash": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "dev": true, + "optional": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-bigints": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", + "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", + "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.5" + } + }, + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "requires": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + } + }, + "https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore": { + "version": "5.1.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", + "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dev": true, + "requires": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "int64-buffer": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", + "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=" + }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-bigint": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", + "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", + "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", + "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==" + }, + "is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dev": true, + "requires": { + "ci-info": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", + "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "optional": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", + "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", + "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==" + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "dev": true + }, + "is-regex": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", + "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", + "requires": { + "call-bind": "^1.0.2", + "has-symbols": "^1.0.2" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", + "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==" + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "optional": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "dev": true + }, + "istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dev": true, + "requires": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + } + }, + "istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + } + }, + "istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dev": true, + "requires": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + } + }, + "isuri": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/isuri/-/isuri-2.0.3.tgz", + "integrity": "sha1-NDcSHbL+Za8LoIC34ahjb2MsypE=", + "requires": { + "rfc-3986": "1.0.1" + } + }, + "jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "dependencies": { + "jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dev": true, + "requires": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + } + } + } + }, + "jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "dependencies": { + "execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + } + } + }, + "jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dev": true, + "requires": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + } + }, + "jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dev": true, + "requires": { + "detect-newline": "^3.0.0" + } + }, + "jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + } + }, + "jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + } + }, + "jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dev": true, + "requires": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + } + }, + "jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "dev": true + }, + "jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "fsevents": "^2.1.2", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + } + }, + "jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + } + }, + "jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dev": true, + "requires": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dev": true, + "requires": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + } + }, + "jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + } + }, + "jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*" + } + }, + "jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "dev": true + }, + "jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "dev": true + }, + "jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + } + }, + "jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + } + }, + "jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + } + }, + "jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dev": true, + "requires": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + } + }, + "jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dev": true, + "requires": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + } + }, + "jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + } + }, + "jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + } + }, + "jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "dependencies": { + "camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "dev": true + } + } + }, + "jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dev": true, + "requires": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + } + }, + "jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dev": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsdoctypeparser": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz", + "integrity": "sha512-jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==", + "dev": true + }, + "jsdom": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", + "dev": true, + "requires": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.5", + "xml-name-validator": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz", + "integrity": "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==", + "dev": true + } + } + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonc-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz", + "integrity": "sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==" + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + }, + "dependencies": { + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + } + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true + }, + "leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "dev": true + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "log4js": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.3.0.tgz", + "integrity": "sha512-Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==", + "requires": { + "date-format": "^3.0.0", + "debug": "^4.1.1", + "flatted": "^2.0.1", + "rfdc": "^1.1.4", + "streamroller": "^2.2.4" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dev": true, + "requires": { + "tmpl": "1.0.x" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/marked/-/marked-1.2.5.tgz", + "integrity": "sha512-2AlqgYnVPOc9WDyWu7S5DJaEZsfk6dNh/neatQ3IHUW4QLutM/VPSH9lG7bif+XjFWc9K9XR3QvR+fXuECmfdA==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dev": true, + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + } + }, + "mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "dev": true + }, + "mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dev": true, + "requires": { + "mime-db": "1.48.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "mimic-response": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", + "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "msgpack-lite": { + "version": "0.1.26", + "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", + "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=", + "requires": { + "event-lite": "^0.1.1", + "ieee754": "^1.1.8", + "int64-buffer": "^0.1.9", + "isarray": "^1.0.0" + } + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "dev": true, + "optional": true, + "requires": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + }, + "dependencies": { + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "optional": true + } + } + }, + "node-releases": { + "version": "1.1.73", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.73.tgz", + "integrity": "sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + }, + "dependencies": { + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + } + } + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-inspect": { + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.10.3.tgz", + "integrity": "sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "dev": true + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dev": true, + "requires": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } + } + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise.prototype.finally": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz", + "integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.0", + "function-bind": "^1.1.1" + } + }, + "prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "dev": true, + "requires": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + } + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + } + } + }, + "react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "dev": true + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", + "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "regexpp": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz", + "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", + "dev": true + }, + "regextras": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz", + "integrity": "sha512-9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dev": true, + "requires": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dev": true, + "requires": { + "resolve-from": "^5.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfc-3986": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rfc-3986/-/rfc-3986-1.0.1.tgz", + "integrity": "sha1-7uuINC+tvoAnwPNq2pIaE+b5YgY=" + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "dev": true + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dev": true, + "requires": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "requires": { + "xmlchars": "^2.2.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "dev": true, + "optional": true + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dev": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "streamroller": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-2.2.4.tgz", + "integrity": "sha512-OG79qm3AujAM9ImoqgWEY1xG4HX+Lw+yY6qZj9R1K2mhF5bEmQ849wvrb+4vt4jLMLzwXttJlQbOdPOQVRv7DQ==", + "requires": { + "date-format": "^2.1.0", + "debug": "^4.1.1", + "fs-extra": "^8.1.0" + }, + "dependencies": { + "date-format": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", + "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==" + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + } + } + }, + "string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dev": true, + "requires": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + } + } + }, + "string.prototype.matchall": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.3.tgz", + "integrity": "sha512-OBxYDA2ifZQ2e13cP82dWFMaCV9CGF8GzmN4fljBVw5O5wep0lu4gacm1OL6MjROoUnB8VbkWRThqkV2YFLNxw==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "es-abstract": "^1.18.0-next.1", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.3" + } + }, + "string.prototype.trimend": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", + "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "string.prototype.trimstart": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", + "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "tar": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", + "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + }, + "terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + } + }, + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dev": true, + "requires": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==", + "dev": true + }, + "tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dev": true, + "requires": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "dependencies": { + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "requires": { + "punycode": "^2.1.1" + } + }, + "traverse": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", + "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=" + }, + "ts-jest": { + "version": "26.4.4", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-26.4.4.tgz", + "integrity": "sha512-3lFWKbLxJm34QxyVNNCgXX1u4o/RV0myvA2y2Bxm46iGIjKlaY0own9gIckbjZJPn+WaJEnfPPJ20HHGpoq4yg==", + "dev": true, + "requires": { + "@types/jest": "26.x", + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "jest-util": "^26.1.0", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "mkdirp": "1.x", + "semver": "7.x", + "yargs-parser": "20.x" + }, + "dependencies": { + "yargs-parser": { + "version": "20.2.7", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.7.tgz", + "integrity": "sha512-FiNkvbeHzB/syOjIUxFDCnhSfzAL8R5vs40MgLFBorXACCOAEaWu0gRZl14vG8MR9AOJIZbmkjhusqBYZ3HTHw==", + "dev": true + } + } + }, + "tslib": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", + "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, + "typescript": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", + "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "dev": true + }, + "unbox-primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", + "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", + "requires": { + "function-bind": "^1.1.1", + "has-bigints": "^1.0.1", + "has-symbols": "^1.0.2", + "which-boxed-primitive": "^1.0.2" + } + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "unzip-stream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/unzip-stream/-/unzip-stream-0.3.1.tgz", + "integrity": "sha512-RzaGXLNt+CW+T41h1zl6pGz3EaeVhYlK+rdAap+7DxW5kqsqePO8kRtWPaCiVqdhZc86EctSPVYNix30YOMzmw==", + "requires": { + "binary": "^0.3.0", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + } + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "uuid": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz", + "integrity": "sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==" + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "dev": true, + "requires": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "dependencies": { + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "dev": true + } + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vscode-jsonrpc": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz", + "integrity": "sha512-JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==" + }, + "vscode-languageserver": { + "version": "7.1.0-next.4", + "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-7.1.0-next.4.tgz", + "integrity": "sha512-/65lxR/CuLJoOdzTjOTYUPWS7k5qzaWese4PObnWc6jwLryUrSa7DslYfaRXigh5/xr1nlaUZCcJwkpgM0wFvw==", + "dev": true, + "requires": { + "vscode-languageserver-protocol": "3.17.0-next.5" + }, + "dependencies": { + "vscode-jsonrpc": { + "version": "6.1.0-next.2", + "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.1.0-next.2.tgz", + "integrity": "sha512-nkiNDGI+Ytp7uj1lxHXddXCoEunhcry1D+KmVHBfUUgWT9jMF8ZJyH5KQObdF+OGAh7bXZxD/SV4uGwSCeHHWA==", + "dev": true + }, + "vscode-languageserver-protocol": { + "version": "3.17.0-next.5", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.0-next.5.tgz", + "integrity": "sha512-LFZ6WMB3iPezQAU9OnGoERzcIVKhcs0OLfD/NHcqSj3g1wgxuLUL5kSlZbbjFySQCmhzm6b0yb3hjTSeBtq1+w==", + "dev": true, + "requires": { + "vscode-jsonrpc": "6.1.0-next.2", + "vscode-languageserver-types": "3.17.0-next.1" + } + }, + "vscode-languageserver-types": { + "version": "3.17.0-next.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.0-next.1.tgz", + "integrity": "sha512-VGzh06oynbYa6JbTKUbxOEZN7CYEtWhN7DK5wfzUpeCJl8X8xZX39g2PVfpqXrIEduu7dcJgK007KgnX9tHNKA==", + "dev": true + } + } + }, + "vscode-languageserver-protocol": { + "version": "3.15.3", + "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz", + "integrity": "sha512-zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==", + "requires": { + "vscode-jsonrpc": "^5.0.1", + "vscode-languageserver-types": "3.15.1" + } + }, + "vscode-languageserver-textdocument": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz", + "integrity": "sha512-UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==" + }, + "vscode-languageserver-types": { + "version": "3.15.1", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz", + "integrity": "sha512-+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==" + }, + "vscode-uri": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz", + "integrity": "sha512-8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==" + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "requires": { + "xml-name-validator": "^3.0.0" + } + }, + "walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dev": true, + "requires": { + "makeerror": "1.0.x" + } + }, + "webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "whatwg-url": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "dev": true, + "requires": { + "lodash": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "dev": true + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", + "dev": true + }, + "y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } +} diff --git a/etc/soft/nvim/+plugins/coc.nvim/package.json b/etc/soft/nvim/+plugins/coc.nvim/package.json new file mode 100644 index 0000000..e704458 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/package.json @@ -0,0 +1,50 @@ +{ + "name": "coc.nvim", + "version": "0.0.80", + "description": "LSP based intellisense engine for neovim & vim8.", + "main": "./lib/index.js", + "engines": { + "node": ">=8.10.0" + }, + "scripts": {}, + "repository": { + "type": "git", + "url": "git+https://github.com/neoclide/coc.nvim.git" + }, + "keywords": [ + "complete", + "neovim" + ], + "author": "Qiming Zhao ", + "license": "MIT", + "bugs": { + "url": "https://github.com/neoclide/coc.nvim/issues" + }, + "homepage": "https://github.com/neoclide/coc.nvim#readme", + "jest": { + "globals": { + "__TEST__": true + }, + "projects": [ + "" + ], + "watchman": false, + "clearMocks": true, + "globalSetup": "./jest.js", + "testEnvironment": "node", + "moduleFileExtensions": [ + "ts", + "tsx", + "json", + "js" + ], + "transform": { + "^.+\\.tsx?$": "ts-jest" + }, + "testRegex": "src/__tests__/.*\\.(test|spec)\\.ts$", + "coverageDirectory": "./coverage/" + }, + "devDependencies": {}, + "dependencies": {} +} + diff --git a/etc/soft/nvim/+plugins/coc.nvim/plugin/coc.vim b/etc/soft/nvim/+plugins/coc.nvim/plugin/coc.vim new file mode 100644 index 0000000..ed9dc69 --- /dev/null +++ b/etc/soft/nvim/+plugins/coc.nvim/plugin/coc.vim @@ -0,0 +1,520 @@ +scriptencoding utf-8 +if exists('g:did_coc_loaded') || v:version < 800 + finish +endif + +function! s:checkVersion() abort + let l:unsupported = 0 + if get(g:, 'coc_disable_startup_warning', 0) != 1 + if has('nvim') + let l:unsupported = !has('nvim-0.3.2') + else + let l:unsupported = !has('patch-8.0.1453') + endif + + if l:unsupported == 1 + echohl Error + echom "coc.nvim requires at least Vim 8.0.1453 or Neovim 0.3.2, but you're using an older version." + echom "Please upgrade your (neo)vim." + echom "You can add this to your vimrc to avoid this message:" + echom " let g:coc_disable_startup_warning = 1" + echom "Note that some features may error out or behave incorrectly." + echom "Please do not report bugs unless you're using at least Vim 8.0.1453 or Neovim 0.3.2." + echohl None + sleep 2 + else + if !has('nvim-0.4.0') && !has('patch-8.1.1719') + echohl WarningMsg + echom "coc.nvim works best on vim >= 8.1.1719 and neovim >= 0.4.0, consider upgrade your vim." + echom "You can add this to your vimrc to avoid this message:" + echom " let g:coc_disable_startup_warning = 1" + echom "Note that some features may behave incorrectly." + echohl None + sleep 2 + endif + endif + endif +endfunction + +call s:checkVersion() + +let g:did_coc_loaded = 1 +let g:coc_workspace_initialized = 0 +let g:coc_service_initialized = 0 +let s:is_win = has('win32') || has('win64') +let s:root = expand(':h:h') +let s:is_vim = !has('nvim') +let s:is_gvim = get(v:, 'progname', '') ==# 'gvim' + +if get(g:, 'coc_start_at_startup', 1) && !s:is_gvim + call coc#rpc#start_server() +endif + +function! CocTagFunc(pattern, flags, info) abort + if a:flags !=# 'c' + " use standard tag search + return v:null + endif + return coc#rpc#request('getTagList', []) +endfunction + +function! CocPopupCallback(bufnr, arglist) abort + if len(a:arglist) == 2 + if a:arglist[0] == 'confirm' + call coc#rpc#notify('PromptInsert', [a:arglist[1]]) + elseif a:arglist[0] == 'exit' + execute 'silent! bd! '.a:bufnr + "call coc#rpc#notify('PromptUpdate', [a:arglist[1]]) + endif + endif +endfunction + +function! CocAction(name, ...) abort + if !get(g:, 'coc_service_initialized', 0) + throw 'coc.nvim not ready when invoke CocAction "'.a:name.'"' + endif + return coc#rpc#request(a:name, a:000) +endfunction + +function! CocHasProvider(name) abort + return coc#rpc#request('hasProvider', [a:name]) +endfunction + +function! CocActionAsync(name, ...) abort + return s:AsyncRequest(a:name, a:000) +endfunction + +function! CocRequest(...) abort + return coc#rpc#request('sendRequest', a:000) +endfunction + +function! CocNotify(...) abort + return coc#rpc#request('sendNotification', a:000) +endfunction + +function! CocRegistNotification(id, method, cb) abort + call coc#on_notify(a:id, a:method, a:cb) +endfunction + +function! CocLocations(id, method, ...) abort + let args = [a:id, a:method] + copy(a:000) + call coc#rpc#request('findLocations', args) +endfunction + +function! CocLocationsAsync(id, method, ...) abort + let args = [a:id, a:method] + copy(a:000) + call coc#rpc#notify('findLocations', args) +endfunction + +function! CocRequestAsync(...) + return s:AsyncRequest('sendRequest', a:000) +endfunction + +function! s:AsyncRequest(name, args) abort + let Cb = empty(a:args)? v:null : a:args[len(a:args) - 1] + if type(Cb) == 2 + if !coc#rpc#ready() + call Cb('service not started', v:null) + else + call coc#rpc#request_async(a:name, a:args[0:-2], Cb) + endif + return '' + endif + call coc#rpc#notify(a:name, a:args) + return '' +endfunction + +function! s:CommandList(...) abort + let list = coc#rpc#request('commandList', a:000) + return join(list, "\n") +endfunction + +function! s:ExtensionList(...) abort + let stats = CocAction('extensionStats') + call filter(stats, 'v:val["isLocal"] == v:false') + let list = map(stats, 'v:val["id"]') + return join(list, "\n") +endfunction + +function! s:SearchOptions(...) abort + let list = ['-e', '--regexp', '-F', '--fixed-strings', '-L', '--follow', + \ '-g', '--glob', '--hidden', '--no-hidden', '--no-ignore-vcs', + \ '--word-regexp', '-w', '--smart-case', '-S', '--no-config', + \ '--line-regexp', '--no-ignore', '-x'] + return join(list, "\n") +endfunction + +function! s:LoadedExtensions(...) abort + let list = CocAction('loadedExtensions') + return join(list, "\n") +endfunction + +function! s:InstallOptions(...)abort + let list = ['-terminal', '-sync'] + return join(list, "\n") +endfunction + +function! s:OpenConfig() + let home = coc#util#get_config_home() + if !isdirectory(home) + echohl MoreMsg + echom 'Config directory "'.home.'" not exists, create? (y/n)' + echohl None + let confirm = nr2char(getchar()) + redraw! + if !(confirm ==? "y" || confirm ==? "\r") + return + else + call mkdir(home, 'p') + end + endif + execute 'edit '.home.'/coc-settings.json' +endfunction + +function! s:get_color(item, fallback) abort + let t = type(a:item) + if t == 1 + return a:item + endif + if t == 4 + let item = get(a:item, 'gui', {}) + let color = get(item, &background, a:fallback) + return type(color) == 1 ? color : a:fallback + endif + return a:fallback +endfunction + +function! s:AddAnsiGroups() abort + let color_map = {} + let colors = ['#282828', '#cc241d', '#98971a', '#d79921', '#458588', '#b16286', '#689d6a', '#a89984', '#928374'] + let names = ['black', 'red', 'green', 'yellow', 'blue', 'magenta', 'cyan', 'white', 'grey'] + for i in range(0, len(names) - 1) + let name = names[i] + if exists('g:terminal_ansi_colors') + let color_map[name] = s:get_color(get(g:terminal_ansi_colors, i, colors[i]), colors[i]) + else + let color_map[name] = get(g:, 'terminal_color_'.i, colors[i]) + endif + endfor + try + for name in keys(color_map) + let foreground = toupper(name[0]).name[1:] + let foregroundColor = color_map[name] + for key in keys(color_map) + let background = toupper(key[0]).key[1:] + let backgroundColor = color_map[key] + exe 'hi default CocList'.foreground.background.' guifg='.foregroundColor.' guibg='.backgroundColor + endfor + exe 'hi default CocListFg'.foreground. ' guifg='.foregroundColor. ' ctermfg='.foreground + exe 'hi default CocListBg'.foreground. ' guibg='.foregroundColor. ' ctermbg='.foreground + endfor + catch /.*/ + " ignore invalid color + endtry +endfunction + +function! s:CursorRangeFromSelected(type, ...) abort + " add range by operator + call coc#rpc#request('cursorsSelect', [bufnr('%'), 'operator', a:type]) +endfunction + +function! s:OpenDiagnostics(...) abort + let height = get(a:, 1, 0) + call coc#rpc#request('fillDiagnostics', [bufnr('%')]) + if height + execute ':lopen '.height + else + lopen + endif +endfunction + +function! s:Disable() abort + if get(g:, 'coc_enabled', 0) == 0 + return + endif + augroup coc_nvim + autocmd! + augroup end + call coc#rpc#request('detach', []) + echohl MoreMsg + echom '[coc.nvim] Event disabled' + echohl None + let g:coc_enabled = 0 +endfunction + +function! s:Autocmd(...) abort + if !g:coc_workspace_initialized + return + endif + call coc#rpc#notify('CocAutocmd', a:000) +endfunction + +function! s:SyncAutocmd(...) + if !g:coc_workspace_initialized + return + endif + if g:coc_service_initialized + call coc#rpc#request('CocAutocmd', a:000) + else + call coc#rpc#notify('CocAutocmd', a:000) + endif +endfunction + +function! s:Enable(initialize) + if get(g:, 'coc_enabled', 0) == 1 + return + endif + let g:coc_enabled = 1 + + augroup coc_nvim + autocmd! + + if exists('##MenuPopupChanged') && exists('*nvim_open_win') + autocmd MenuPopupChanged * call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2) + endif + if exists('##CompleteChanged') + autocmd CompleteChanged * call s:Autocmd('MenuPopupChanged', get(v:, 'event', {}), win_screenpos(winnr())[0] + winline() - 2) + endif + + if coc#rpc#started() + autocmd VimEnter * call coc#rpc#notify('VimEnter', []) + elseif get(g:, 'coc_start_at_startup', 1) + autocmd VimEnter * call coc#rpc#start_server() + endif + if s:is_vim + if exists('##DirChanged') + autocmd DirChanged * call s:Autocmd('DirChanged', getcwd()) + endif + if exists('##TerminalOpen') + autocmd TerminalOpen * call s:Autocmd('TermOpen', +expand('')) + endif + else + autocmd DirChanged * call s:Autocmd('DirChanged', get(v:event, 'cwd', '')) + autocmd TermOpen * call s:Autocmd('TermOpen', +expand('')) + autocmd TermClose * call s:Autocmd('TermClose', +expand('')) + autocmd CursorMoved * call coc#float#nvim_refresh_scrollbar(win_getid()) + autocmd WinEnter * call coc#float#nvim_win_enter(win_getid()) + if exists('##WinClosed') + autocmd WinClosed * call coc#float#close_related(+expand('')) + endif + endif + if has('nvim-0.4.0') || has('patch-8.1.1719') + autocmd CursorHold * call coc#float#check_related() + endif + autocmd WinLeave * call s:Autocmd('WinLeave', win_getid()) + autocmd WinEnter * call s:Autocmd('WinEnter', win_getid()) + autocmd BufWinLeave * call s:Autocmd('BufWinLeave', +expand(''), bufwinid(+expand(''))) + autocmd BufWinEnter * call s:Autocmd('BufWinEnter', +expand(''), win_getid()) + autocmd FileType * call s:Autocmd('FileType', expand(''), +expand('')) + autocmd CompleteDone * call s:Autocmd('CompleteDone', get(v:, 'completed_item', {})) + autocmd InsertCharPre * call s:Autocmd('InsertCharPre', v:char) + if exists('##TextChangedP') + autocmd TextChangedP * call s:Autocmd('TextChangedP', +expand(''), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick}) + endif + autocmd TextChangedI * call s:Autocmd('TextChangedI', +expand(''), {'lnum': line('.'), 'col': col('.'), 'pre': strpart(getline('.'), 0, col('.') - 1), 'changedtick': b:changedtick}) + autocmd InsertLeave * call s:Autocmd('InsertLeave', +expand('')) + autocmd InsertEnter * call s:Autocmd('InsertEnter', +expand('')) + autocmd BufHidden * call s:Autocmd('BufHidden', +expand('')) + autocmd BufEnter * call s:Autocmd('BufEnter', +expand('')) + autocmd TextChanged * call s:Autocmd('TextChanged', +expand(''), getbufvar(+expand(''), 'changedtick')) + autocmd BufWritePost * call s:Autocmd('BufWritePost', +expand('')) + autocmd CursorMoved * call s:Autocmd('CursorMoved', +expand(''), [line('.'), col('.')]) + autocmd CursorMovedI * call s:Autocmd('CursorMovedI', +expand(''), [line('.'), col('.')]) + autocmd CursorHold * call s:Autocmd('CursorHold', +expand('')) + autocmd CursorHoldI * call s:Autocmd('CursorHoldI', +expand('')) + autocmd BufNewFile,BufReadPost * call s:Autocmd('BufCreate', +expand('')) + autocmd BufUnload * call s:Autocmd('BufUnload', +expand('')) + autocmd BufWritePre * call s:SyncAutocmd('BufWritePre', +expand('')) + autocmd FocusGained * if mode() !~# '^c' | call s:Autocmd('FocusGained') | endif + autocmd FocusLost * call s:Autocmd('FocusLost') + autocmd VimResized * call s:Autocmd('VimResized', &columns, &lines) + autocmd VimLeavePre * let g:coc_vim_leaving = 1 + autocmd BufReadCmd,FileReadCmd,SourceCmd list://* call coc#list#setup(expand('')) + autocmd BufWriteCmd __coc_refactor__* :call coc#rpc#notify('saveRefactor', [+expand('')]) + autocmd ColorScheme * call s:Hi() + augroup end + if a:initialize == 0 + call coc#rpc#request('attach', []) + echohl MoreMsg + echom '[coc.nvim] Event enabled' + echohl None + endif +endfunction + +function! s:Hi() abort + hi default CocErrorSign ctermfg=Red guifg=#ff0000 guibg=NONE + hi default CocWarningSign ctermfg=Brown guifg=#ff922b guibg=NONE + hi default CocInfoSign ctermfg=Yellow guifg=#fab005 guibg=NONE + hi default CocHintSign ctermfg=Blue guifg=#15aabf guibg=NONE + hi default CocSelectedText ctermfg=Red guifg=#fb4934 guibg=NONE + hi default CocCodeLens ctermfg=Gray guifg=#999999 guibg=NONE + hi default CocUnderline cterm=underline gui=underline + hi default CocBold term=bold cterm=bold gui=bold + hi default CocItalic term=italic cterm=italic gui=italic + if s:is_vim || has('nvim-0.4.0') + hi default CocStrikeThrough guifg=#989898 ctermfg=gray cterm=strikethrough gui=strikethrough + else + hi default CocStrikeThrough guifg=#989898 ctermfg=gray + endif + hi default CocFadeOut guifg=#928374 ctermfg=245 + hi default CocMarkdownLink ctermfg=Blue guifg=#15aabf guibg=NONE + hi default link CocMarkdownCode markdownCode + hi default link CocMarkdownHeader markdownH1 + hi default link CocMenuSel PmenuSel + hi default link CocErrorFloat CocErrorSign + hi default link CocWarningFloat CocWarningSign + hi default link CocInfoFloat CocInfoSign + hi default link CocHintFloat CocHintSign + hi default link CocErrorHighlight CocUnderline + hi default link CocWarningHighlight CocUnderline + hi default link CocInfoHighlight CocUnderline + hi default link CocHintHighlight CocUnderline + hi default link CocListMode ModeMsg + hi default link CocListPath Comment + hi default link CocHighlightText CursorColumn + hi default link CocHoverRange Search + hi default link CocCursorRange Search + hi default link CocHighlightRead CocHighlightText + hi default link CocHighlightWrite CocHighlightText + if has('nvim') + hi default link CocFloating NormalFloat + else + hi default link CocFloating Pmenu + endif + if !exists('*sign_getdefined') || empty(sign_getdefined('CocCurrentLine')) + sign define CocCurrentLine linehl=CocMenuSel + endif + if has('nvim-0.5.0') + hi default CocCursorTransparent gui=strikethrough blend=100 + endif + + if has('nvim') + let names = ['Error', 'Warning', 'Info', 'Hint'] + for name in names + if !hlexists('Coc'.name.'VirtualText') + exe 'hi default link Coc'.name.'VirtualText Coc'.name.'Sign' + endif + endfor + endif + call s:AddAnsiGroups() +endfunction + +function! s:FormatFromSelected(type) + call CocActionAsync('formatSelected', a:type) +endfunction + +function! s:CodeActionFromSelected(type) + call CocActionAsync('codeAction', a:type) +endfunction + +function! s:ShowInfo() + if coc#rpc#ready() + call coc#rpc#notify('showInfo', []) + else + let lines = [] + echomsg 'coc.nvim service not started, checking environment...' + let node = get(g:, 'coc_node_path', $COC_NODE_PATH == '' ? 'node' : $COC_NODE_PATH) + if !executable(node) + call add(lines, 'Error: '.node.' is not executable!') + else + let output = trim(system(node . ' --version')) + let ms = matchlist(output, 'v\(\d\+\).\(\d\+\).\(\d\+\)') + if empty(ms) || str2nr(ms[1]) < 12 || (str2nr(ms[1]) == 12 && str2nr(ms[2]) < 12) + call add(lines, 'Error: Node version '.output.' < 12.12.0, please upgrade node.js') + endif + endif + " check bundle + let file = s:root.'/build/index.js' + if !filereadable(file) + call add(lines, 'Error: javascript bundle not found, please compile code of coc.nvim by esbuild.') + endif + if !empty(lines) + belowright vnew + setl filetype=nofile + call setline(1, lines) + else + if get(g:, 'coc_start_at_startup',1) + echohl MoreMsg | echon 'Service stopped for some unknown reason, try :CocStart' | echohl None + else + echohl MoreMsg | echon 'Start on startup is disabled, try :CocStart' | echohl None + endif + endif + endif +endfunction + +command! -nargs=? CocDiagnostics :call s:OpenDiagnostics() +command! -nargs=0 CocInfo :call s:ShowInfo() +command! -nargs=0 CocOpenLog :call coc#rpc#notify('openLog', []) +command! -nargs=0 CocDisable :call s:Disable() +command! -nargs=0 CocEnable :call s:Enable(0) +command! -nargs=0 CocConfig :call s:OpenConfig() +command! -nargs=0 CocLocalConfig :call coc#rpc#notify('openLocalConfig', []) +command! -nargs=0 CocRestart :call coc#rpc#restart() +command! -nargs=0 CocStart :call coc#rpc#start_server() +command! -nargs=0 CocRebuild :call coc#util#rebuild() +command! -nargs=1 -complete=custom,s:LoadedExtensions CocWatch :call coc#rpc#notify('watchExtension', []) +command! -nargs=+ -complete=custom,s:SearchOptions CocSearch :call coc#rpc#notify('search', []) +command! -nargs=+ -complete=custom,s:ExtensionList CocUninstall :call CocActionAsync('uninstallExtension', ) +command! -nargs=* -complete=custom,s:CommandList -range CocCommand :call coc#rpc#notify('runCommand', []) +command! -nargs=* -complete=custom,coc#list#options CocList :call coc#rpc#notify('openList', []) +command! -nargs=? -complete=custom,coc#list#names CocListResume :call coc#rpc#notify('listResume', []) +command! -nargs=0 -complete=custom,coc#list#names CocListCancel :call coc#rpc#notify('listCancel', []) +command! -nargs=? -complete=custom,coc#list#names CocPrev :call coc#rpc#notify('listPrev', []) +command! -nargs=? -complete=custom,coc#list#names CocNext :call coc#rpc#notify('listNext', []) +command! -nargs=? -complete=custom,coc#list#names CocFirst :call coc#rpc#notify('listFirst', []) +command! -nargs=? -complete=custom,coc#list#names CocLast :call coc#rpc#notify('listLast', []) +command! -nargs=* -range CocAction :call coc#rpc#notify('codeActionRange', [, , ]) +command! -nargs=* -range CocFix :call coc#rpc#notify('codeActionRange', [, , 'quickfix']) +command! -nargs=0 CocUpdate :call coc#util#update_extensions(1) +command! -nargs=0 -bar CocUpdateSync :call coc#util#update_extensions() +command! -nargs=* -bar -complete=custom,s:InstallOptions CocInstall :call coc#util#install_extension([]) + +call s:Enable(1) +call s:Hi() + +vnoremap (coc-range-select) :call CocActionAsync('rangeSelect', visualmode(), v:true) +vnoremap (coc-range-select-backward) :call CocActionAsync('rangeSelect', visualmode(), v:false) +nnoremap (coc-range-select) :call CocActionAsync('rangeSelect', '', v:true) +nnoremap (coc-codelens-action) :call CocActionAsync('codeLensAction') +vnoremap (coc-format-selected) :call CocActionAsync('formatSelected', visualmode()) +vnoremap (coc-codeaction-selected) :call CocActionAsync('codeAction', visualmode()) +nnoremap (coc-codeaction-selected) :set operatorfunc=CodeActionFromSelectedg@ +nnoremap (coc-codeaction) :call CocActionAsync('codeAction', '') +nnoremap (coc-codeaction-line) :call CocActionAsync('codeAction', 'line') +nnoremap (coc-codeaction-cursor) :call CocActionAsync('codeAction', 'cursor') +nnoremap (coc-rename) :call CocActionAsync('rename') +nnoremap (coc-format-selected) :set operatorfunc=FormatFromSelectedg@ +nnoremap (coc-format) :call CocActionAsync('format') +nnoremap (coc-diagnostic-info) :call CocActionAsync('diagnosticInfo') +nnoremap (coc-diagnostic-next) :call CocActionAsync('diagnosticNext') +nnoremap (coc-diagnostic-prev) :call CocActionAsync('diagnosticPrevious') +nnoremap (coc-diagnostic-next-error) :call CocActionAsync('diagnosticNext', 'error') +nnoremap (coc-diagnostic-prev-error) :call CocActionAsync('diagnosticPrevious', 'error') +nnoremap (coc-definition) :call CocActionAsync('jumpDefinition') +nnoremap (coc-declaration) :call CocActionAsync('jumpDeclaration') +nnoremap (coc-implementation) :call CocActionAsync('jumpImplementation') +nnoremap (coc-type-definition) :call CocActionAsync('jumpTypeDefinition') +nnoremap (coc-references) :call CocActionAsync('jumpReferences') +nnoremap (coc-references-used) :call CocActionAsync('jumpUsed') +nnoremap (coc-openlink) :call CocActionAsync('openLink') +nnoremap (coc-fix-current) :call CocActionAsync('doQuickfix') +nnoremap (coc-float-hide) :call coc#float#close_all() +nnoremap (coc-float-jump) :call coc#float#jump() +nnoremap (coc-command-repeat) :call CocAction('repeatCommand') +nnoremap (coc-refactor) :call CocActionAsync('refactor') +inoremap CocRefresh =coc#_complete() + +nnoremap (coc-cursors-operator) :set operatorfunc=CursorRangeFromSelectedg@ +vnoremap (coc-cursors-range) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'range', visualmode()]) +nnoremap (coc-cursors-word) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'word', 'n']) +nnoremap (coc-cursors-position) :call coc#rpc#request('cursorsSelect', [bufnr('%'), 'position', 'n']) + +vnoremap (coc-funcobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, visualmode(), ['Method', 'Function']]) +vnoremap (coc-funcobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, visualmode(), ['Method', 'Function']]) +onoremap (coc-funcobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, '', ['Method', 'Function']]) +onoremap (coc-funcobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, '', ['Method', 'Function']]) + +vnoremap (coc-classobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, visualmode(), ['Interface', 'Struct', 'Class']]) +vnoremap (coc-classobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, visualmode(), ['Interface', 'Struct', 'Class']]) +onoremap (coc-classobj-i) :call coc#rpc#request('selectSymbolRange', [v:true, '', ['Interface', 'Struct', 'Class']]) +onoremap (coc-classobj-a) :call coc#rpc#request('selectSymbolRange', [v:false, '', ['Interface', 'Struct', 'Class']])