├── .eslintrc.js
├── .gitignore
├── .npmignore
├── LICENSE
├── README.md
├── autoload
└── coc_symbol_line.vim
├── esbuild.js
├── package.json
├── plugin
└── coc_symbol_line.vim
├── src
├── config.ts
├── index.ts
└── util
│ ├── pos.ts
│ ├── symbol.ts
│ └── vim.ts
├── tsconfig.json
└── yarn.lock
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | node: true,
4 | },
5 | parser: '@typescript-eslint/parser',
6 | extends: ['plugin:@typescript-eslint/recommended', 'plugin:prettier/recommended'],
7 | rules: {
8 | '@typescript-eslint/ban-ts-comment': 'off',
9 | '@typescript-eslint/no-explicit-any': 'off',
10 | '@typescript-eslint/no-non-null-assertion': 'off',
11 | '@typescript-eslint/no-namespace': 'off',
12 | '@typescript-eslint/no-empty-function': 'off',
13 | '@typescript-eslint/explicit-function-return-type': 'off',
14 | '@typescript-eslint/explicit-module-boundary-types': 'off',
15 | },
16 | };
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | lib
2 | node_modules
3 | .vim
4 |
--------------------------------------------------------------------------------
/.npmignore:
--------------------------------------------------------------------------------
1 | src
2 | node_modules
3 | tsconfig.json
4 | *.map
5 | .tags
6 | .DS_Store
7 | webpack.config.js
8 | esbuild.js
9 | yarn.lock
10 | yarn-error.log
11 | .github
12 | .eslintrc.js
13 | .prettierrc
14 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 wongxy
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # coc-symbol-line
2 |
3 | 
4 |
5 | This extension supports both Vim and Neovim.
6 |
7 | ## Install
8 |
9 | `:CocInstall coc-symbol-line`
10 |
11 | ## Setup
12 |
13 | Add section `%{%get(b:, "coc_symbol_line", "")%}` to tabline/statusline or neovim's winbar.
14 |
15 | **NOTE**: `b:coc_symbol_line_plain` does't include clickable sections, maybe you need this if you are using vim.
16 |
17 |
18 | lua snippet for neovim
19 |
20 | ```lua
21 | function _G.symbol_line()
22 | local curwin = vim.g.statusline_winid or 0
23 | local curbuf = vim.api.nvim_win_get_buf(curwin)
24 | local ok, line = pcall(vim.api.nvim_buf_get_var, curbuf, 'coc_symbol_line')
25 | return ok and line or ''
26 | end
27 |
28 | vim.o.tabline = '%!v:lua.symbol_line()'
29 | vim.o.statusline = '%!v:lua.symbol_line()'
30 | vim.o.winbar = '%!v:lua.symbol_line()'
31 |
32 | ```
33 |
34 |
35 |
36 |
37 | My config for neovim
38 |
39 | ```lua
40 | function _G.symbol_line()
41 | local bufnr = vim.api.nvim_win_get_buf(vim.g.statusline_winid or 0)
42 | local ok, line = pcall(vim.api.nvim_buf_get_var, bufnr, 'coc_symbol_line')
43 | return ok and '%#CocSymbolLine# ' .. line or ''
44 | end
45 |
46 | if fn.exists '&winbar' then
47 | AUTOCMD {
48 | {
49 | { 'CursorHold', 'WinEnter', 'BufWinEnter' },
50 | function()
51 | if vim.b.coc_symbol_line and vim.bo.buftype == '' then
52 | if vim.opt_local.winbar:get() == '' then
53 | vim.opt_local.winbar = '%!v:lua.symbol_line()'
54 | end
55 | else
56 | vim.opt_local.winbar = ''
57 | end
58 | end,
59 | },
60 | }
61 | end
62 | ```
63 |
64 |
65 |
66 | ## Usage
67 |
68 | This plugin only provide buffer localed variable `coc_symbol_line`
69 |
70 | Left click to jump to the position of this symbol.
71 | Right click to select the range of this symbol.
72 |
73 | 
74 |
75 | ## Options
76 |
77 | - `symbol-line.default`
78 | - `symbol-line.separator`
79 | - `symbol-line.icons`
80 | - `symbol-line.show{Kind}s`
81 | - `symbol-line.onlyNearestKinds`
82 | - `symbol-line.maxItems`
83 | - `symbol-line.maxItemsIndicator`
84 |
85 | Please trigger completion in `coc-settings.json` to get details.
86 |
87 | ## Highlights
88 |
89 | Recommend `set termguicolors`
90 |
91 | - `CocSymbolLine`
92 | - `CocSymbolLineSeparator`
93 | - `CocSymbolLineEllipsis`
94 |
95 | You should setup highlights before this extension activated.
96 |
97 | ---
98 |
99 | Most of code is copied from coc.nvim :)
100 |
--------------------------------------------------------------------------------
/autoload/coc_symbol_line.vim:
--------------------------------------------------------------------------------
1 | function! coc_symbol_line#click(minwid, clicks, mouse, modifiers)
2 | call CocAction('runCommand', 'symbol-line._click', a:minwid, a:mouse)
3 | endfunction
4 |
5 | function! coc_symbol_line#expand(minwid, clicks, mouse, modifiers)
6 | let line = get(b:, 'coc_symbol_line', '')
7 | let b:coc_symbol_line = get(b:, 'coc_symbol_line_full', line)
8 | redraw
9 | endfunction
10 |
11 | function! s:a(groups, attr) " get gui attribute of highlight
12 | let attr = a:attr =~ '#$' ? a:attr : a:attr.'#'
13 |
14 | for group in a:groups
15 | let ret = synIDattr(synIDtrans(hlID(group)), attr)
16 | if ret =~ '^#'
17 | return ret
18 | endif
19 | endfor
20 |
21 | if attr =~ '^fg'
22 | return 'white'
23 | endif
24 |
25 | return 'NONE'
26 | endfunction
27 |
28 | function! coc_symbol_line#set_highlight()
29 | let bg = s:a(['CocSymbolLine'], 'bg')
30 |
31 | exe 'hi! CocSymbolLineSeparator guifg='.s:a(['CocSymbolLineSeparator', 'CocSymbolLine'], 'fg') .' guibg='.bg
32 | exe 'hi! CocSymbolLineEllipsis guifg='.s:a(['CocSymbolLineEllipsis', 'CocSymbolLine'], 'fg') .' guibg='.bg
33 |
34 | " TODO: update treestiter group names
35 | exe 'hi! CocSymbolLineFile guifg='.s:a(['CocSymbolFile', 'Statement'], 'fg') .' guibg='.bg
36 | exe 'hi! CocSymbolLineModule guifg='.s:a(['CocSymbolModule'], 'fg') .' guibg='.bg
37 | exe 'hi! CocSymbolLineNamespace guifg='.s:a(['CocSymbolNamespace', 'TSNamespace'], 'fg') .' guibg='.bg
38 | exe 'hi! CocSymbolLinePackage guifg='.s:a(['CocSymbolPackage'], 'fg') .' guibg='.bg
39 | exe 'hi! CocSymbolLineClass guifg='.s:a(['CocSymbolClass', 'TSType'], 'fg') .' guibg='.bg
40 | exe 'hi! CocSymbolLineMethod guifg='.s:a(['CocSymbolMethod', 'TSMethod'], 'fg') .' guibg='.bg
41 | exe 'hi! CocSymbolLineProperty guifg='.s:a(['CocSymbolProperty', 'TSProperty'], 'fg') .' guibg='.bg
42 | exe 'hi! CocSymbolLineField guifg='.s:a(['CocSymbolField', 'TSField'], 'fg') .' guibg='.bg
43 | exe 'hi! CocSymbolLineConstructor guifg='.s:a(['CocSymbolConstructor'], 'fg') .' guibg='.bg
44 | exe 'hi! CocSymbolLineEnum guifg='.s:a(['CocSymbolEnum'], 'fg') .' guibg='.bg
45 | exe 'hi! CocSymbolLineInterface guifg='.s:a(['CocSymbolInterface'], 'fg') .' guibg='.bg
46 | exe 'hi! CocSymbolLineFunction guifg='.s:a(['CocSymbolFunction', 'TSFunction'], 'fg') .' guibg='.bg
47 | exe 'hi! CocSymbolLineVariable guifg='.s:a(['CocSymbolVariable', 'TSVariable'], 'fg') .' guibg='.bg
48 | exe 'hi! CocSymbolLineConstant guifg='.s:a(['CocSymbolConstant', 'TSConstant'], 'fg') .' guibg='.bg
49 | exe 'hi! CocSymbolLineString guifg='.s:a(['CocSymbolString', 'TSString'], 'fg') .' guibg='.bg
50 | exe 'hi! CocSymbolLineNumber guifg='.s:a(['CocSymbolNumber', 'TSNumber'], 'fg') .' guibg='.bg
51 | exe 'hi! CocSymbolLineBoolean guifg='.s:a(['CocSymbolBoolean', 'TSBoolean'], 'fg') .' guibg='.bg
52 | exe 'hi! CocSymbolLineArray guifg='.s:a(['CocSymbolArray'], 'fg') .' guibg='.bg
53 | exe 'hi! CocSymbolLineObject guifg='.s:a(['CocSymbolObject'], 'fg') .' guibg='.bg
54 | exe 'hi! CocSymbolLineKey guifg='.s:a(['CocSymbolKey', 'TSKeyword'], 'fg') .' guibg='.bg
55 | exe 'hi! CocSymbolLineNull guifg='.s:a(['CocSymbolNull'], 'fg') .' guibg='.bg
56 | exe 'hi! CocSymbolLineEnumMember guifg='.s:a(['CocSymbolEnumMember'], 'fg') .' guibg='.bg
57 | exe 'hi! CocSymbolLineStruct guifg='.s:a(['CocSymbolStruct', 'TSStructure'], 'fg') .' guibg='.bg
58 | exe 'hi! CocSymbolLineEvent guifg='.s:a(['CocSymbolEvent'], 'fg') .' guibg='.bg
59 | exe 'hi! CocSymbolLineOperator guifg='.s:a(['CocSymbolOperator', 'TSOperator'], 'fg') .' guibg='.bg
60 | exe 'hi! CocSymbolLineTypeParameter guifg='.s:a(['CocSymbolTypeParameter'], 'fg') .' guibg='.bg
61 |
62 | endfunction
63 |
--------------------------------------------------------------------------------
/esbuild.js:
--------------------------------------------------------------------------------
1 | /* eslint-disable @typescript-eslint/no-var-requires */
2 | async function start(watch) {
3 | await require('esbuild').build({
4 | entryPoints: ['src/index.ts'],
5 | bundle: true,
6 | watch,
7 | minify: process.env.NODE_ENV === 'production',
8 | sourcemap: process.env.NODE_ENV === 'development',
9 | mainFields: ['module', 'main'],
10 | external: ['coc.nvim'],
11 | platform: 'node',
12 | target: 'node10.12',
13 | outfile: 'lib/index.js',
14 | });
15 | }
16 |
17 | let watch = false;
18 | if (process.argv.length > 2 && process.argv[2] === '--watch') {
19 | console.log('watching...');
20 | watch = {
21 | onRebuild(error) {
22 | if (error) {
23 | console.error('watch build failed:', error);
24 | } else {
25 | console.log('watch build succeeded');
26 | }
27 | },
28 | };
29 | }
30 |
31 | start(watch).catch((e) => {
32 | console.error(e);
33 | });
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "coc-symbol-line",
3 | "version": "0.0.21",
4 | "description": "",
5 | "author": "wongxy ",
6 | "license": "MIT",
7 | "main": "lib/index.js",
8 | "keywords": [
9 | "coc.nvim"
10 | ],
11 | "engines": {
12 | "coc": "^0.0.80"
13 | },
14 | "scripts": {
15 | "lint": "eslint src --ext ts",
16 | "clean": "rimraf lib",
17 | "watch": "node esbuild.js --watch",
18 | "build": "node esbuild.js",
19 | "prepare": "node esbuild.js"
20 | },
21 | "prettier": {
22 | "singleQuote": true,
23 | "printWidth": 120,
24 | "semi": true
25 | },
26 | "devDependencies": {
27 | "@types/node": "^17.0.19",
28 | "@typescript-eslint/eslint-plugin": "^4.8.2",
29 | "@typescript-eslint/parser": "^4.8.2",
30 | "coc.nvim": "^0.0.80",
31 | "esbuild": "^0.8.42",
32 | "eslint": "^7.14.0",
33 | "eslint-config-prettier": "^8.1.0",
34 | "eslint-plugin-prettier": "^3.1.4",
35 | "prettier": "^2.2.0",
36 | "rimraf": "^3.0.2",
37 | "typescript": "^4.1.2",
38 | "vscode-languageserver-protocol": "^3.16.0"
39 | },
40 | "activationEvents": [
41 | "*"
42 | ],
43 | "contributes": {
44 | "configuration": {
45 | "type": "object",
46 | "title": "coc-symbol-line configuration",
47 | "properties": {
48 | "symbol-line.default": {
49 | "type": "string",
50 | "default": "%f",
51 | "description": "Default line when symbol-line is empty. Use `%f` by default. You can use `%#CocSymbolLine#` for unified highlighting"
52 | },
53 | "symbol-line.separator": {
54 | "type": "string",
55 | "default": " > ",
56 | "description": "Separator between items"
57 | },
58 | "symbol-line.icons": {
59 | "type": "boolean",
60 | "default": true,
61 | "description": "Render Symbol-Line Elements with Icons."
62 | },
63 | "symbol-line.onlyNearestKinds": {
64 | "type": "array",
65 | "default": [],
66 | "items": {
67 | "type": "string"
68 | },
69 | "uniqueItems": true,
70 | "description": "Shows only the nearest one. Available items: 'File','Module','Namespace','Package','Class','Method','Property','Field','Constructor','Enum','Interface','Function','Variable','Constant','String','Number','Boolean','Array','Object','Key','Null','EnumMember','Struct','Event','Operator','TypeParameter'"
71 | },
72 | "symbol-line.maxItems": {
73 | "type": "number",
74 | "default": 8,
75 | "description": "Maximum items of symbols."
76 | },
77 | "symbol-line.maxItemsIndicator": {
78 | "type": "string",
79 | "default": "…",
80 | "description": "A symbol for ellipsis."
81 | },
82 | "symbol-line.showFiles": {
83 | "type": "boolean",
84 | "default": true,
85 | "markdownDescription": "When enabled symbol-line shows `file`-symbols."
86 | },
87 | "symbol-line.showModules": {
88 | "type": "boolean",
89 | "default": true,
90 | "markdownDescription": "When enabled symbol-line shows `module`-symbols."
91 | },
92 | "symbol-line.showNamespaces": {
93 | "type": "boolean",
94 | "default": true,
95 | "markdownDescription": "When enabled symbol-line shows `namespace`-symbols."
96 | },
97 | "symbol-line.showPackages": {
98 | "type": "boolean",
99 | "default": true,
100 | "markdownDescription": "When enabled symbol-line shows `package`-symbols."
101 | },
102 | "symbol-line.showClasses": {
103 | "type": "boolean",
104 | "default": true,
105 | "markdownDescription": "When enabled symbol-line shows `class`-symbols."
106 | },
107 | "symbol-line.showMethods": {
108 | "type": "boolean",
109 | "default": true,
110 | "markdownDescription": "When enabled symbol-line shows `method`-symbols."
111 | },
112 | "symbol-line.showProperties": {
113 | "type": "boolean",
114 | "default": true,
115 | "markdownDescription": "When enabled symbol-line shows `property`-symbols."
116 | },
117 | "symbol-line.showFields": {
118 | "type": "boolean",
119 | "default": true,
120 | "markdownDescription": "When enabled symbol-line shows `field`-symbols."
121 | },
122 | "symbol-line.showConstructors": {
123 | "type": "boolean",
124 | "default": true,
125 | "markdownDescription": "When enabled symbol-line shows `constructor`-symbols."
126 | },
127 | "symbol-line.showEnums": {
128 | "type": "boolean",
129 | "default": true,
130 | "markdownDescription": "When enabled symbol-line shows `enum`-symbols."
131 | },
132 | "symbol-line.showInterfaces": {
133 | "type": "boolean",
134 | "default": true,
135 | "markdownDescription": "When enabled symbol-line shows `interface`-symbols."
136 | },
137 | "symbol-line.showFunctions": {
138 | "type": "boolean",
139 | "default": true,
140 | "markdownDescription": "When enabled symbol-line shows `function`-symbols."
141 | },
142 | "symbol-line.showVariables": {
143 | "type": "boolean",
144 | "default": true,
145 | "markdownDescription": "When enabled symbol-line shows `variable`-symbols."
146 | },
147 | "symbol-line.showConstants": {
148 | "type": "boolean",
149 | "default": true,
150 | "markdownDescription": "When enabled symbol-line shows `constant`-symbols."
151 | },
152 | "symbol-line.showStrings": {
153 | "type": "boolean",
154 | "default": true,
155 | "markdownDescription": "When enabled symbol-line shows `string`-symbols."
156 | },
157 | "symbol-line.showNumbers": {
158 | "type": "boolean",
159 | "default": true,
160 | "markdownDescription": "When enabled symbol-line shows `number`-symbols."
161 | },
162 | "symbol-line.showBooleans": {
163 | "type": "boolean",
164 | "default": true,
165 | "markdownDescription": "When enabled symbol-line shows `boolean`-symbols."
166 | },
167 | "symbol-line.showArrays": {
168 | "type": "boolean",
169 | "default": true,
170 | "markdownDescription": "When enabled symbol-line shows `array`-symbols."
171 | },
172 | "symbol-line.showObjects": {
173 | "type": "boolean",
174 | "default": true,
175 | "markdownDescription": "When enabled symbol-line shows `object`-symbols."
176 | },
177 | "symbol-line.showKeys": {
178 | "type": "boolean",
179 | "default": true,
180 | "markdownDescription": "When enabled symbol-line shows `key`-symbols."
181 | },
182 | "symbol-line.showNull": {
183 | "type": "boolean",
184 | "default": true,
185 | "markdownDescription": "When enabled symbol-line shows `null`-symbols."
186 | },
187 | "symbol-line.showEnumMembers": {
188 | "type": "boolean",
189 | "default": true,
190 | "markdownDescription": "When enabled symbol-line shows `enumMember`-symbols."
191 | },
192 | "symbol-line.showStructs": {
193 | "type": "boolean",
194 | "default": true,
195 | "markdownDescription": "When enabled symbol-line shows `struct`-symbols."
196 | },
197 | "symbol-line.showEvents": {
198 | "type": "boolean",
199 | "default": true,
200 | "markdownDescription": "When enabled symbol-line shows `event`-symbols."
201 | },
202 | "symbol-line.showOperators": {
203 | "type": "boolean",
204 | "default": true,
205 | "markdownDescription": "When enabled symbol-line shows `operator`-symbols."
206 | },
207 | "symbol-line.showTypeParameters": {
208 | "type": "boolean",
209 | "default": true,
210 | "markdownDescription": "When enabled symbol-line shows `typeParameter`-symbols."
211 | }
212 | }
213 | },
214 | "commands": []
215 | }
216 | }
217 |
--------------------------------------------------------------------------------
/plugin/coc_symbol_line.vim:
--------------------------------------------------------------------------------
1 | hi default link CocSymbolLine Normal
2 | hi default link CocSymbolLineSeparator NonText
3 |
4 | hi default link CocSymbolLineEllipsis CocSymbolLine
5 |
6 | hi default link CocSymbolLineFile CocSymbolFile
7 | hi default link CocSymbolLineModule CocSymbolModule
8 | hi default link CocSymbolLineNamespace CocSymbolNamespace
9 | hi default link CocSymbolLinePackage CocSymbolPackage
10 | hi default link CocSymbolLineClass CocSymbolClass
11 | hi default link CocSymbolLineMethod CocSymbolMethod
12 | hi default link CocSymbolLineProperty CocSymbolProperty
13 | hi default link CocSymbolLineField CocSymbolField
14 | hi default link CocSymbolLineConstructor CocSymbolConstructor
15 | hi default link CocSymbolLineEnum CocSymbolEnum
16 | hi default link CocSymbolLineInterface CocSymbolInterface
17 | hi default link CocSymbolLineFunction CocSymbolFunction
18 | hi default link CocSymbolLineVariable CocSymbolVariable
19 | hi default link CocSymbolLineConstant CocSymbolConstant
20 | hi default link CocSymbolLineBoolean CocSymbolBoolean
21 | hi default link CocSymbolLineArray CocSymbolArray
22 | hi default link CocSymbolLineObject CocSymbolObject
23 | hi default link CocSymbolLineKey CocSymbolKey
24 | hi default link CocSymbolLineNull CocSymbolNull
25 | hi default link CocSymbolLineEnumMember CocSymbolEnumMember
26 | hi default link CocSymbolLineStruct CocSymbolStruct
27 | hi default link CocSymbolLineEvent CocSymbolEvent
28 | hi default link CocSymbolLineOperator CocSymbolOperator
29 | hi default link CocSymbolLineTypeParameter CocSymbolTypeParameter
30 |
31 | call coc_symbol_line#set_highlight()
32 | " adjust highlights
33 | call timer_start(3000, { -> coc_symbol_line#set_highlight() })
34 |
35 | augroup CocSymbolLine
36 | autocmd!
37 | autocmd VimEnter,ColorScheme * call timer_start(3000, { -> coc_symbol_line#set_highlight() })
38 | augroup END
39 |
--------------------------------------------------------------------------------
/src/config.ts:
--------------------------------------------------------------------------------
1 | import { workspace } from 'coc.nvim';
2 |
3 | const kindsMap = {
4 | showFiles: 'File',
5 | showModules: 'Module',
6 | showNamespaces: 'Namespace',
7 | showPackages: 'Package',
8 | showClasses: 'Class',
9 | showMethods: 'Method',
10 | showProperties: 'Property',
11 | showFields: 'Field',
12 | showConstructors: 'Constructor',
13 | showEnums: 'Enum',
14 | showInterfaces: 'Interface',
15 | showFunctions: 'Function',
16 | showVariables: 'Variable',
17 | showConstants: 'Constant',
18 | showStrings: 'String',
19 | showNumbers: 'Number',
20 | showBooleans: 'Boolean',
21 | showArrays: 'Array',
22 | showObjects: 'Object',
23 | showKeys: 'Key',
24 | showNull: 'Null',
25 | showEnumMembers: 'EnumMember',
26 | showStructs: 'Struct',
27 | showEvents: 'Event',
28 | showOperators: 'Operator',
29 | showTypeParameters: 'TypeParameter',
30 | };
31 |
32 | class Config {
33 | constructor() {
34 | this.setConfiguration();
35 | }
36 |
37 | public labels: { [key: string]: string } = {};
38 | public default_ = '%f';
39 | public separator = ' > ';
40 | public icons = true;
41 | public showKinds: string[] = [];
42 | public onlyNearestKinds: string[] = [];
43 | public maxItems = 8;
44 | public maxItemsIndicator = '…';
45 |
46 | setConfiguration() {
47 | this.labels = workspace.getConfiguration('suggest').get('completionItemKindLabels', {});
48 |
49 | const config = workspace.getConfiguration('symbol-line');
50 |
51 | this.default_ = config.get('default')!;
52 | this.separator = config.get('separator')!;
53 | this.onlyNearestKinds = config.get('onlyNearestKinds')!;
54 | this.maxItems = config.get('maxItems')!;
55 | this.maxItemsIndicator = config.get('maxItemsIndicator')!;
56 |
57 | const checkBoolean = (key: string) => config.get(key)!;
58 |
59 | this.icons = checkBoolean('icons');
60 |
61 | this.showKinds = [];
62 | for (const kindKey of [
63 | 'showFiles',
64 | 'showModules',
65 | 'showNamespaces',
66 | 'showPackages',
67 | 'showClasses',
68 | 'showMethods',
69 | 'showProperties',
70 | 'showFields',
71 | 'showConstructors',
72 | 'showEnums',
73 | 'showInterfaces',
74 | 'showFunctions',
75 | 'showVariables',
76 | 'showConstants',
77 | 'showStrings',
78 | 'showNumbers',
79 | 'showBooleans',
80 | 'showArrays',
81 | 'showObjects',
82 | 'showKeys',
83 | 'showNull',
84 | 'showEnumMembers',
85 | 'showStructs',
86 | 'showEvents',
87 | 'showOperators',
88 | 'showTypeParameters',
89 | ]) {
90 | if (checkBoolean(kindKey)) {
91 | this.showKinds.push(kindsMap[kindKey]);
92 | }
93 | }
94 | }
95 | }
96 |
97 | export const config = new Config();
98 |
--------------------------------------------------------------------------------
/src/index.ts:
--------------------------------------------------------------------------------
1 | import {
2 | CancellationTokenSource,
3 | commands,
4 | Disposable,
5 | DocumentSymbol,
6 | events,
7 | ExtensionContext,
8 | languages,
9 | window,
10 | workspace,
11 | } from 'coc.nvim';
12 | import { config } from './config';
13 | import { positionInRange } from './util/pos';
14 | import { convertSymbols, SymbolInfo } from './util/symbol';
15 | import { registerRuntimepath } from './util/vim';
16 |
17 | class DocumentSymbolLine implements Disposable {
18 | private readonly disposables: Disposable[] = [];
19 | private tokenSource: CancellationTokenSource | undefined;
20 | private state: { [key: number]: SymbolInfo[] } = {};
21 |
22 | constructor() {
23 | workspace.onDidChangeConfiguration(() => config.setConfiguration(), this, this.disposables);
24 | }
25 |
26 | dispose(): void {
27 | this.disposables.forEach((d) => d.dispose());
28 | }
29 |
30 | private async getDocumentSymbols(bufnr: number): Promise {
31 | const doc = workspace.getDocument(bufnr);
32 | if (!doc || !doc.attached) return;
33 | //@ts-ignore
34 | if (!languages.hasProvider('documentSymbol', doc.textDocument)) return;
35 | this.tokenSource?.cancel();
36 | this.tokenSource = new CancellationTokenSource();
37 | const { token } = this.tokenSource;
38 | //@ts-ignore
39 | const symbols: DocumentSymbol[] | undefined = await languages.getDocumentSymbol(doc.textDocument, token);
40 | if (!symbols || !symbols.length) {
41 | return;
42 | }
43 | return convertSymbols(symbols);
44 | }
45 |
46 | private async getSymbols(bufnr: number): Promise {
47 | let symbols = await this.getDocumentSymbols(bufnr);
48 | if (!symbols || symbols.length === 0) return;
49 |
50 | const position = await window.getCursorPosition();
51 | const { showKinds } = config;
52 | symbols = symbols.filter(
53 | (s) =>
54 | s.range &&
55 | showKinds.includes(s.kind) &&
56 | // !s.text.endsWith(') callback') &&
57 | positionInRange(position, s.range) == 0
58 | );
59 |
60 | const { onlyNearestKinds } = config;
61 | // only need the nearest kinds
62 | const newSymbols: SymbolInfo[] = [];
63 | symbols.forEach((symbol) => {
64 | const count = newSymbols.length;
65 | const lastIdx = count - 1;
66 | if (count === 0) {
67 | newSymbols.push(symbol);
68 | } else if (
69 | (newSymbols[lastIdx].level != undefined && symbol.level != undefined
70 | ? newSymbols[lastIdx].level == symbol.level
71 | : false) ||
72 | (onlyNearestKinds.includes(symbol.kind) && newSymbols[lastIdx].kind == symbol.kind)
73 | ) {
74 | newSymbols[lastIdx] = symbol;
75 | } else {
76 | newSymbols.push(symbol);
77 | }
78 | });
79 |
80 | return newSymbols;
81 | }
82 |
83 | public async refresh(bufnr: number) {
84 | const symbols = await this.getSymbols(bufnr);
85 | if (!symbols) return;
86 | this.state[bufnr] = symbols;
87 |
88 | const { icons, labels, default_, maxItems, separator, maxItemsIndicator } = config;
89 |
90 | let line = '';
91 | let fullLine = '';
92 | let plainLine = '';
93 | let plainFullLine = '';
94 |
95 | let addedEllipsis = false;
96 | const totalItems = symbols.length;
97 | symbols.forEach((symbol, index) => {
98 | let label = '';
99 | if (icons) {
100 | label = labels[symbol.kind.toLowerCase()];
101 | if (typeof label !== 'string') label = labels.default;
102 | }
103 | const sep = index == 0 ? '' : `%#CocSymbolLineSeparator#${separator}`;
104 | const id = `${bufnr}989${index}`;
105 | if (label) {
106 | fullLine += `%#CocSymbolLine#${sep}%#CocSymbolLine${symbol.kind}#%${id}@coc_symbol_line#click@${label} %#CocSymbolLine#${symbol.text}%X`;
107 | plainFullLine += `%#CocSymbolLine#${sep}%#CocSymbolLine${symbol.kind}#${label} %#CocSymbolLine#${symbol.text}`;
108 | } else {
109 | fullLine += `%#CocSymbolLine#${sep}%#CocSymbolLine#%${id}@coc_symbol_line#click@${symbol.text}%X`;
110 | plainFullLine += `%#CocSymbolLine#${sep}%#CocSymbolLine#${symbol.text}`;
111 | }
112 |
113 | // short line
114 | if (!addedEllipsis) {
115 | const currentItems = index + 1;
116 | const leftItems = totalItems - currentItems;
117 | if (currentItems == maxItems && leftItems > 0) {
118 | addedEllipsis = true;
119 | line =
120 | fullLine + `%#CocSymbolLine#${sep}%#CocSymbolLineEllipsis#%0@coc_symbol_line#expand@${maxItemsIndicator}%X`;
121 | plainLine = fullLine + `%#CocSymbolLine#${sep}%#CocSymbolLineEllipsis#${maxItemsIndicator}`;
122 | } else {
123 | line = fullLine;
124 | plainLine = plainFullLine;
125 | }
126 | }
127 | });
128 |
129 | if (!line) {
130 | if (default_ === '%f') line = `%#CocSymbolLineFile#${icons ? labels.file || '▤' : ''} %#CocSymbolLine#%f`;
131 | if (default_.length > 0) line = '%#CocSymbolLine#' + line;
132 | // not needed
133 | if (line) fullLine = line;
134 |
135 | if (!plainLine) plainLine = line;
136 | }
137 |
138 | const buffer = workspace.getDocument(bufnr).buffer;
139 | try {
140 | await buffer.setVar('coc_symbol_line', line);
141 | await buffer.setVar('coc_symbol_line_full', fullLine);
142 |
143 | await buffer.setVar('coc_symbol_line_plain', plainLine);
144 | await buffer.setVar('coc_symbol_line_full_plain', plainFullLine); // useless
145 | } catch (e) {}
146 | }
147 |
148 | public async clean() {
149 | Object.keys(this.state).forEach(async (bufnr) => {
150 | const exists = await workspace.nvim.call('bufexists', Number(bufnr));
151 | if (exists != 1) {
152 | delete this.state[bufnr];
153 | }
154 | });
155 | }
156 |
157 | public async click(id: number, mouse: 'l' | 'm' | 'r') {
158 | const items = id
159 | .toString()
160 | .split('989')
161 | .map((v) => Number.parseInt(v));
162 |
163 | const bufnr = items[0];
164 | const index = items[1];
165 |
166 | const { nvim } = workspace;
167 |
168 | const winid = await nvim.call('bufwinid', bufnr);
169 | if (winid == -1) return;
170 | nvim.call('win_gotoid', winid, true);
171 |
172 | const symbol = this.state[bufnr][index];
173 |
174 | const pos = symbol.selectionRange!.start;
175 | nvim.call('coc#cursor#move_to', [pos.line, pos.character], true);
176 | nvim.command(`normal! zz`, true);
177 | if (mouse == 'l') {
178 | const buf = nvim.createBuffer(bufnr);
179 | buf.highlightRanges('symbol-line-hover', 'CocHoverRange', [symbol.selectionRange!]);
180 | setTimeout(() => {
181 | buf.clearNamespace('symbol-line-hover');
182 | nvim.command('redraw', true);
183 | }, 300);
184 | nvim.command('redraw', true);
185 | } else {
186 | workspace.selectRange(symbol.range);
187 | }
188 | }
189 | }
190 |
191 | export async function activate(context: ExtensionContext): Promise {
192 | const { nvim } = workspace;
193 |
194 | await registerRuntimepath(context.extensionPath);
195 | await nvim.command('runtime plugin/coc_symbol_line.vim');
196 |
197 | const symbolLine = new DocumentSymbolLine();
198 |
199 | events.on(
200 | 'CursorHold',
201 | async (bufnr) => {
202 | await symbolLine.refresh(bufnr);
203 | },
204 | null,
205 | context.subscriptions
206 | );
207 |
208 | const timerClean = setInterval(async () => {
209 | await symbolLine.clean();
210 | }, 10e3);
211 |
212 | const timerRedraw = setInterval(() => {
213 | workspace.nvim.command('redrawtabline', true);
214 | }, 500);
215 |
216 | context.subscriptions.push(
217 | // cleaner
218 | {
219 | dispose() {
220 | clearInterval(timerClean);
221 | clearInterval(timerRedraw);
222 | },
223 | },
224 | // command
225 | commands.registerCommand(
226 | 'symbol-line._click',
227 | async (id, mouse) => {
228 | await symbolLine.click(id, mouse);
229 | },
230 | null,
231 | true
232 | ),
233 | // object
234 | symbolLine
235 | );
236 | }
237 |
--------------------------------------------------------------------------------
/src/util/pos.ts:
--------------------------------------------------------------------------------
1 | import { Range, Position, TextEdit } from 'vscode-languageserver-protocol';
2 |
3 | export function rangeInRange(r: Range, range: Range): boolean {
4 | return positionInRange(r.start, range) === 0 && positionInRange(r.end, range) === 0;
5 | }
6 |
7 | /**
8 | * Check if two ranges have overlap character.
9 | */
10 | export function rangeOverlap(r: Range, range: Range): boolean {
11 | const { start, end } = r;
12 | if (comparePosition(end, range.start) <= 0) {
13 | return false;
14 | }
15 | if (comparePosition(start, range.end) >= 0) {
16 | return false;
17 | }
18 | return true;
19 | }
20 |
21 | /**
22 | * Check if two ranges have overlap or nested
23 | */
24 | export function rangeIntersect(r: Range, range: Range): boolean {
25 | if (positionInRange(r.start, range) == 0) {
26 | return true;
27 | }
28 | if (positionInRange(r.end, range) == 0) {
29 | return true;
30 | }
31 | if (rangeInRange(range, r)) {
32 | return true;
33 | }
34 | return false;
35 | }
36 |
37 | export function lineInRange(line: number, range: Range): boolean {
38 | const { start, end } = range;
39 | return line >= start.line && line <= end.line;
40 | }
41 |
42 | export function emptyRange(range: Range): boolean {
43 | const { start, end } = range;
44 | return start.line == end.line && start.character == end.character;
45 | }
46 |
47 | export function positionInRange(position: Position, range: Range): number {
48 | const { start, end } = range;
49 | if (comparePosition(position, start) < 0) return -1;
50 | if (comparePosition(position, end) > 0) return 1;
51 | return 0;
52 | }
53 |
54 | export function comparePosition(position: Position, other: Position): number {
55 | if (position.line > other.line) return 1;
56 | if (other.line == position.line && position.character > other.character) return 1;
57 | if (other.line == position.line && position.character == other.character) return 0;
58 | return -1;
59 | }
60 |
61 | export function isSingleLine(range: Range): boolean {
62 | return range.start.line == range.end.line;
63 | }
64 |
65 | export function getChangedPosition(start: Position, edit: TextEdit): { line: number; character: number } {
66 | const { range, newText } = edit;
67 | if (comparePosition(range.end, start) <= 0) {
68 | const lines = newText.split('\n');
69 | const lineCount = lines.length - (range.end.line - range.start.line) - 1;
70 | let characterCount = 0;
71 | if (range.end.line == start.line) {
72 | const single = isSingleLine(range) && lineCount == 0;
73 | const removed = single ? range.end.character - range.start.character : range.end.character;
74 | const added = single ? newText.length : lines[lines.length - 1].length;
75 | characterCount = added - removed;
76 | }
77 | return { line: lineCount, character: characterCount };
78 | }
79 | return { line: 0, character: 0 };
80 | }
81 |
82 | export function adjustPosition(pos: Position, edit: TextEdit): Position {
83 | const { range, newText } = edit;
84 | if (comparePosition(range.start, pos) > 1) return pos;
85 | const { start, end } = range;
86 | const newLines = newText.split('\n');
87 | const delta = end.line - start.line - newLines.length + 1;
88 | const lastLine = newLines[newLines.length - 1];
89 | const line = pos.line - delta;
90 | if (pos.line != end.line) return { line, character: pos.character };
91 | const pre = newLines.length == 1 && start.line != end.line ? start.character : 0;
92 | const removed = start.line == end.line && newLines.length == 1 ? end.character - start.character : end.character;
93 | const character = pre + pos.character + lastLine.length - removed;
94 | return {
95 | line,
96 | character,
97 | };
98 | }
99 |
100 | export function positionToOffset(lines: string[], line: number, character: number): number {
101 | let offset = 0;
102 | for (let i = 0; i <= line; i++) {
103 | if (i == line) {
104 | offset += character;
105 | } else {
106 | offset += lines[i].length + 1;
107 | }
108 | }
109 | return offset;
110 | }
111 |
--------------------------------------------------------------------------------
/src/util/symbol.ts:
--------------------------------------------------------------------------------
1 | import { SymbolKind, DocumentSymbol, Range, SymbolInformation } from 'vscode-languageserver-protocol';
2 | import { comparePosition } from './pos';
3 |
4 | export interface SymbolInfo {
5 | filepath?: string;
6 | lnum: number;
7 | col: number;
8 | text: string;
9 | kind: string;
10 | level?: number;
11 | containerName?: string;
12 | range: Range;
13 | selectionRange?: Range;
14 | }
15 |
16 | export function getSymbolKind(kind: SymbolKind): string {
17 | switch (kind) {
18 | case SymbolKind.File:
19 | return 'File';
20 | case SymbolKind.Module:
21 | return 'Module';
22 | case SymbolKind.Namespace:
23 | return 'Namespace';
24 | case SymbolKind.Package:
25 | return 'Package';
26 | case SymbolKind.Class:
27 | return 'Class';
28 | case SymbolKind.Method:
29 | return 'Method';
30 | case SymbolKind.Property:
31 | return 'Property';
32 | case SymbolKind.Field:
33 | return 'Field';
34 | case SymbolKind.Constructor:
35 | return 'Constructor';
36 | case SymbolKind.Enum:
37 | return 'Enum';
38 | case SymbolKind.Interface:
39 | return 'Interface';
40 | case SymbolKind.Function:
41 | return 'Function';
42 | case SymbolKind.Variable:
43 | return 'Variable';
44 | case SymbolKind.Constant:
45 | return 'Constant';
46 | case SymbolKind.String:
47 | return 'String';
48 | case SymbolKind.Number:
49 | return 'Number';
50 | case SymbolKind.Boolean:
51 | return 'Boolean';
52 | case SymbolKind.Array:
53 | return 'Array';
54 | case SymbolKind.Object:
55 | return 'Object';
56 | case SymbolKind.Key:
57 | return 'Key';
58 | case SymbolKind.Null:
59 | return 'Null';
60 | case SymbolKind.EnumMember:
61 | return 'EnumMember';
62 | case SymbolKind.Struct:
63 | return 'Struct';
64 | case SymbolKind.Event:
65 | return 'Event';
66 | case SymbolKind.Operator:
67 | return 'Operator';
68 | case SymbolKind.TypeParameter:
69 | return 'TypeParameter';
70 | default:
71 | return 'Unknown';
72 | }
73 | }
74 |
75 | export function isSymbols(symbols: DocumentSymbol[] | SymbolInformation[]): symbols is DocumentSymbol[] {
76 | return !Object.prototype.hasOwnProperty.call(symbols[0], 'location');
77 | }
78 |
79 | export function convertSymbols(symbols: DocumentSymbol[] | SymbolInformation[]): SymbolInfo[] {
80 | const res: SymbolInfo[] = [];
81 | if (isSymbols(symbols)) {
82 | const arr = symbols.slice();
83 | arr.sort(sortDocumentSymbols);
84 | arr.forEach((s) => addDocumentSymbol(res, s, 0));
85 | } else {
86 | const arr = symbols.slice();
87 | arr.sort(sortSymbols);
88 | arr.forEach((s) => addSymbol(res, s));
89 | }
90 | return res;
91 | }
92 |
93 | export function sortSymbols(a: SymbolInformation, b: SymbolInformation): number {
94 | const sa = a.location.range.start;
95 | const sb = b.location.range.start;
96 | const d = sa.line - sb.line;
97 | return d == 0 ? sa.character - sb.character : d;
98 | }
99 |
100 | export function addSymbol(res: SymbolInfo[], sym: SymbolInformation) {
101 | res.push({
102 | col: sym.location.range.start.character + 1,
103 | lnum: sym.location.range.start.line + 1,
104 | text: sym.name,
105 | kind: getSymbolKind(sym.kind),
106 | range: sym.location.range,
107 | selectionRange: sym.location.range,
108 | });
109 | }
110 |
111 | export function sortDocumentSymbols(a: DocumentSymbol, b: DocumentSymbol): number {
112 | const ra = a.selectionRange;
113 | const rb = b.selectionRange;
114 | return comparePosition(ra.start, rb.start);
115 | }
116 |
117 | export function addDocumentSymbol(res: SymbolInfo[], sym: DocumentSymbol, level: number): void {
118 | const { name, selectionRange, kind, children, range } = sym;
119 | const { start } = selectionRange || range;
120 | res.push({
121 | col: start.character + 1,
122 | lnum: start.line + 1,
123 | text: name,
124 | level,
125 | kind: getSymbolKind(kind),
126 | range,
127 | selectionRange,
128 | });
129 | if (children && children.length) {
130 | children.sort(sortDocumentSymbols);
131 | for (const sym of children) {
132 | addDocumentSymbol(res, sym, level + 1);
133 | }
134 | }
135 | }
136 |
--------------------------------------------------------------------------------
/src/util/vim.ts:
--------------------------------------------------------------------------------
1 | import { workspace } from 'coc.nvim';
2 |
3 | export async function registerRuntimepath(extensionPath: string) {
4 | const { nvim } = workspace;
5 | const rtp = (await nvim.getOption('runtimepath')) as string;
6 | const paths = rtp.split(',');
7 | if (!paths.includes(extensionPath)) {
8 | await nvim.command(`execute 'noa set rtp+='.fnameescape('${extensionPath.replace(/'/g, "''")}')`);
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es2017",
4 | "lib": ["es2017", "es2018"],
5 | "module": "commonjs",
6 | "declaration": false,
7 | "sourceMap": true,
8 | "outDir": "lib",
9 | "strict": true,
10 | "moduleResolution": "node",
11 | "noImplicitAny": false,
12 | "esModuleInterop": true
13 | },
14 | "include": ["src"]
15 | }
16 |
--------------------------------------------------------------------------------
/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | "@babel/code-frame@7.12.11":
6 | version "7.12.11"
7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
9 | dependencies:
10 | "@babel/highlight" "^7.10.4"
11 |
12 | "@babel/helper-validator-identifier@^7.16.7":
13 | version "7.16.7"
14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
15 | integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
16 |
17 | "@babel/highlight@^7.10.4":
18 | version "7.16.10"
19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.10.tgz#744f2eb81579d6eea753c227b0f570ad785aba88"
20 | integrity sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==
21 | dependencies:
22 | "@babel/helper-validator-identifier" "^7.16.7"
23 | chalk "^2.0.0"
24 | js-tokens "^4.0.0"
25 |
26 | "@eslint/eslintrc@^0.4.3":
27 | version "0.4.3"
28 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
29 | integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==
30 | dependencies:
31 | ajv "^6.12.4"
32 | debug "^4.1.1"
33 | espree "^7.3.0"
34 | globals "^13.9.0"
35 | ignore "^4.0.6"
36 | import-fresh "^3.2.1"
37 | js-yaml "^3.13.1"
38 | minimatch "^3.0.4"
39 | strip-json-comments "^3.1.1"
40 |
41 | "@humanwhocodes/config-array@^0.5.0":
42 | version "0.5.0"
43 | resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9"
44 | integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==
45 | dependencies:
46 | "@humanwhocodes/object-schema" "^1.2.0"
47 | debug "^4.1.1"
48 | minimatch "^3.0.4"
49 |
50 | "@humanwhocodes/object-schema@^1.2.0":
51 | version "1.2.1"
52 | resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
53 | integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
54 |
55 | "@nodelib/fs.scandir@2.1.5":
56 | version "2.1.5"
57 | resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
58 | integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
59 | dependencies:
60 | "@nodelib/fs.stat" "2.0.5"
61 | run-parallel "^1.1.9"
62 |
63 | "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
64 | version "2.0.5"
65 | resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
66 | integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
67 |
68 | "@nodelib/fs.walk@^1.2.3":
69 | version "1.2.8"
70 | resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
71 | integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
72 | dependencies:
73 | "@nodelib/fs.scandir" "2.1.5"
74 | fastq "^1.6.0"
75 |
76 | "@types/json-schema@^7.0.7":
77 | version "7.0.9"
78 | resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.9.tgz#97edc9037ea0c38585320b28964dde3b39e4660d"
79 | integrity sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==
80 |
81 | "@types/node@^17.0.19":
82 | version "17.0.19"
83 | resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.19.tgz#726171367f404bfbe8512ba608a09ebad810c7e6"
84 | integrity sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==
85 |
86 | "@typescript-eslint/eslint-plugin@^4.8.2":
87 | version "4.33.0"
88 | resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.33.0.tgz#c24dc7c8069c7706bc40d99f6fa87edcb2005276"
89 | integrity sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==
90 | dependencies:
91 | "@typescript-eslint/experimental-utils" "4.33.0"
92 | "@typescript-eslint/scope-manager" "4.33.0"
93 | debug "^4.3.1"
94 | functional-red-black-tree "^1.0.1"
95 | ignore "^5.1.8"
96 | regexpp "^3.1.0"
97 | semver "^7.3.5"
98 | tsutils "^3.21.0"
99 |
100 | "@typescript-eslint/experimental-utils@4.33.0":
101 | version "4.33.0"
102 | resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.33.0.tgz#6f2a786a4209fa2222989e9380b5331b2810f7fd"
103 | integrity sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==
104 | dependencies:
105 | "@types/json-schema" "^7.0.7"
106 | "@typescript-eslint/scope-manager" "4.33.0"
107 | "@typescript-eslint/types" "4.33.0"
108 | "@typescript-eslint/typescript-estree" "4.33.0"
109 | eslint-scope "^5.1.1"
110 | eslint-utils "^3.0.0"
111 |
112 | "@typescript-eslint/parser@^4.8.2":
113 | version "4.33.0"
114 | resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.33.0.tgz#dfe797570d9694e560528d18eecad86c8c744899"
115 | integrity sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==
116 | dependencies:
117 | "@typescript-eslint/scope-manager" "4.33.0"
118 | "@typescript-eslint/types" "4.33.0"
119 | "@typescript-eslint/typescript-estree" "4.33.0"
120 | debug "^4.3.1"
121 |
122 | "@typescript-eslint/scope-manager@4.33.0":
123 | version "4.33.0"
124 | resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.33.0.tgz#d38e49280d983e8772e29121cf8c6e9221f280a3"
125 | integrity sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==
126 | dependencies:
127 | "@typescript-eslint/types" "4.33.0"
128 | "@typescript-eslint/visitor-keys" "4.33.0"
129 |
130 | "@typescript-eslint/types@4.33.0":
131 | version "4.33.0"
132 | resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.33.0.tgz#a1e59036a3b53ae8430ceebf2a919dc7f9af6d72"
133 | integrity sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==
134 |
135 | "@typescript-eslint/typescript-estree@4.33.0":
136 | version "4.33.0"
137 | resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz#0dfb51c2908f68c5c08d82aefeaf166a17c24609"
138 | integrity sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==
139 | dependencies:
140 | "@typescript-eslint/types" "4.33.0"
141 | "@typescript-eslint/visitor-keys" "4.33.0"
142 | debug "^4.3.1"
143 | globby "^11.0.3"
144 | is-glob "^4.0.1"
145 | semver "^7.3.5"
146 | tsutils "^3.21.0"
147 |
148 | "@typescript-eslint/visitor-keys@4.33.0":
149 | version "4.33.0"
150 | resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz#2a22f77a41604289b7a186586e9ec48ca92ef1dd"
151 | integrity sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==
152 | dependencies:
153 | "@typescript-eslint/types" "4.33.0"
154 | eslint-visitor-keys "^2.0.0"
155 |
156 | acorn-jsx@^5.3.1:
157 | version "5.3.2"
158 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
159 | integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
160 |
161 | acorn@^7.4.0:
162 | version "7.4.1"
163 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
164 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
165 |
166 | ajv@^6.10.0, ajv@^6.12.4:
167 | version "6.12.6"
168 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
169 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
170 | dependencies:
171 | fast-deep-equal "^3.1.1"
172 | fast-json-stable-stringify "^2.0.0"
173 | json-schema-traverse "^0.4.1"
174 | uri-js "^4.2.2"
175 |
176 | ajv@^8.0.1:
177 | version "8.9.0"
178 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.9.0.tgz#738019146638824dea25edcf299dcba1b0e7eb18"
179 | integrity sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==
180 | dependencies:
181 | fast-deep-equal "^3.1.1"
182 | json-schema-traverse "^1.0.0"
183 | require-from-string "^2.0.2"
184 | uri-js "^4.2.2"
185 |
186 | ansi-colors@^4.1.1:
187 | version "4.1.1"
188 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
189 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
190 |
191 | ansi-regex@^5.0.1:
192 | version "5.0.1"
193 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
194 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
195 |
196 | ansi-styles@^3.2.1:
197 | version "3.2.1"
198 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
199 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
200 | dependencies:
201 | color-convert "^1.9.0"
202 |
203 | ansi-styles@^4.0.0, ansi-styles@^4.1.0:
204 | version "4.3.0"
205 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
206 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
207 | dependencies:
208 | color-convert "^2.0.1"
209 |
210 | argparse@^1.0.7:
211 | version "1.0.10"
212 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
213 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
214 | dependencies:
215 | sprintf-js "~1.0.2"
216 |
217 | array-union@^2.1.0:
218 | version "2.1.0"
219 | resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d"
220 | integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==
221 |
222 | astral-regex@^2.0.0:
223 | version "2.0.0"
224 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
225 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
226 |
227 | balanced-match@^1.0.0:
228 | version "1.0.2"
229 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
230 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
231 |
232 | brace-expansion@^1.1.7:
233 | version "1.1.11"
234 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
235 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
236 | dependencies:
237 | balanced-match "^1.0.0"
238 | concat-map "0.0.1"
239 |
240 | braces@^3.0.1:
241 | version "3.0.2"
242 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
243 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
244 | dependencies:
245 | fill-range "^7.0.1"
246 |
247 | callsites@^3.0.0:
248 | version "3.1.0"
249 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
250 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
251 |
252 | chalk@^2.0.0:
253 | version "2.4.2"
254 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
255 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
256 | dependencies:
257 | ansi-styles "^3.2.1"
258 | escape-string-regexp "^1.0.5"
259 | supports-color "^5.3.0"
260 |
261 | chalk@^4.0.0:
262 | version "4.1.2"
263 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
264 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
265 | dependencies:
266 | ansi-styles "^4.1.0"
267 | supports-color "^7.1.0"
268 |
269 | coc.nvim@^0.0.80:
270 | version "0.0.80"
271 | resolved "https://registry.yarnpkg.com/coc.nvim/-/coc.nvim-0.0.80.tgz#785145c382660db03f517f9b497900d95cbd0e4f"
272 | integrity sha512-/3vTcnofoAYMrdENrlQmADTzfXX4+PZ0fiM10a39UA37dTR2dpIGi9O469kcIksuunLjToqWG8S45AGx/9wV7g==
273 |
274 | color-convert@^1.9.0:
275 | version "1.9.3"
276 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
277 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
278 | dependencies:
279 | color-name "1.1.3"
280 |
281 | color-convert@^2.0.1:
282 | version "2.0.1"
283 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
284 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
285 | dependencies:
286 | color-name "~1.1.4"
287 |
288 | color-name@1.1.3:
289 | version "1.1.3"
290 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
291 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
292 |
293 | color-name@~1.1.4:
294 | version "1.1.4"
295 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
296 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
297 |
298 | concat-map@0.0.1:
299 | version "0.0.1"
300 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
301 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
302 |
303 | cross-spawn@^7.0.2:
304 | version "7.0.3"
305 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
306 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
307 | dependencies:
308 | path-key "^3.1.0"
309 | shebang-command "^2.0.0"
310 | which "^2.0.1"
311 |
312 | debug@^4.0.1, debug@^4.1.1, debug@^4.3.1:
313 | version "4.3.3"
314 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664"
315 | integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==
316 | dependencies:
317 | ms "2.1.2"
318 |
319 | deep-is@^0.1.3:
320 | version "0.1.4"
321 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
322 | integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
323 |
324 | dir-glob@^3.0.1:
325 | version "3.0.1"
326 | resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f"
327 | integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==
328 | dependencies:
329 | path-type "^4.0.0"
330 |
331 | doctrine@^3.0.0:
332 | version "3.0.0"
333 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961"
334 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==
335 | dependencies:
336 | esutils "^2.0.2"
337 |
338 | emoji-regex@^8.0.0:
339 | version "8.0.0"
340 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
341 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
342 |
343 | enquirer@^2.3.5:
344 | version "2.3.6"
345 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
346 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
347 | dependencies:
348 | ansi-colors "^4.1.1"
349 |
350 | esbuild@^0.8.42:
351 | version "0.8.57"
352 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.57.tgz#a42d02bc2b57c70bcd0ef897fe244766bb6dd926"
353 | integrity sha512-j02SFrUwFTRUqiY0Kjplwjm1psuzO1d6AjaXKuOR9hrY0HuPsT6sV42B6myW34h1q4CRy+Y3g4RU/cGJeI/nNA==
354 |
355 | escape-string-regexp@^1.0.5:
356 | version "1.0.5"
357 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
358 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
359 |
360 | escape-string-regexp@^4.0.0:
361 | version "4.0.0"
362 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34"
363 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
364 |
365 | eslint-config-prettier@^8.1.0:
366 | version "8.3.0"
367 | resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a"
368 | integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==
369 |
370 | eslint-plugin-prettier@^3.1.4:
371 | version "3.4.1"
372 | resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz#e9ddb200efb6f3d05ffe83b1665a716af4a387e5"
373 | integrity sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==
374 | dependencies:
375 | prettier-linter-helpers "^1.0.0"
376 |
377 | eslint-scope@^5.1.1:
378 | version "5.1.1"
379 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
380 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
381 | dependencies:
382 | esrecurse "^4.3.0"
383 | estraverse "^4.1.1"
384 |
385 | eslint-utils@^2.1.0:
386 | version "2.1.0"
387 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
388 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
389 | dependencies:
390 | eslint-visitor-keys "^1.1.0"
391 |
392 | eslint-utils@^3.0.0:
393 | version "3.0.0"
394 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
395 | integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
396 | dependencies:
397 | eslint-visitor-keys "^2.0.0"
398 |
399 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
400 | version "1.3.0"
401 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
402 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
403 |
404 | eslint-visitor-keys@^2.0.0:
405 | version "2.1.0"
406 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
407 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
408 |
409 | eslint@^7.14.0:
410 | version "7.32.0"
411 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d"
412 | integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==
413 | dependencies:
414 | "@babel/code-frame" "7.12.11"
415 | "@eslint/eslintrc" "^0.4.3"
416 | "@humanwhocodes/config-array" "^0.5.0"
417 | ajv "^6.10.0"
418 | chalk "^4.0.0"
419 | cross-spawn "^7.0.2"
420 | debug "^4.0.1"
421 | doctrine "^3.0.0"
422 | enquirer "^2.3.5"
423 | escape-string-regexp "^4.0.0"
424 | eslint-scope "^5.1.1"
425 | eslint-utils "^2.1.0"
426 | eslint-visitor-keys "^2.0.0"
427 | espree "^7.3.1"
428 | esquery "^1.4.0"
429 | esutils "^2.0.2"
430 | fast-deep-equal "^3.1.3"
431 | file-entry-cache "^6.0.1"
432 | functional-red-black-tree "^1.0.1"
433 | glob-parent "^5.1.2"
434 | globals "^13.6.0"
435 | ignore "^4.0.6"
436 | import-fresh "^3.0.0"
437 | imurmurhash "^0.1.4"
438 | is-glob "^4.0.0"
439 | js-yaml "^3.13.1"
440 | json-stable-stringify-without-jsonify "^1.0.1"
441 | levn "^0.4.1"
442 | lodash.merge "^4.6.2"
443 | minimatch "^3.0.4"
444 | natural-compare "^1.4.0"
445 | optionator "^0.9.1"
446 | progress "^2.0.0"
447 | regexpp "^3.1.0"
448 | semver "^7.2.1"
449 | strip-ansi "^6.0.0"
450 | strip-json-comments "^3.1.0"
451 | table "^6.0.9"
452 | text-table "^0.2.0"
453 | v8-compile-cache "^2.0.3"
454 |
455 | espree@^7.3.0, espree@^7.3.1:
456 | version "7.3.1"
457 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
458 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
459 | dependencies:
460 | acorn "^7.4.0"
461 | acorn-jsx "^5.3.1"
462 | eslint-visitor-keys "^1.3.0"
463 |
464 | esprima@^4.0.0:
465 | version "4.0.1"
466 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
467 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
468 |
469 | esquery@^1.4.0:
470 | version "1.4.0"
471 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5"
472 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==
473 | dependencies:
474 | estraverse "^5.1.0"
475 |
476 | esrecurse@^4.3.0:
477 | version "4.3.0"
478 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921"
479 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==
480 | dependencies:
481 | estraverse "^5.2.0"
482 |
483 | estraverse@^4.1.1:
484 | version "4.3.0"
485 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
486 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
487 |
488 | estraverse@^5.1.0, estraverse@^5.2.0:
489 | version "5.3.0"
490 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
491 | integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
492 |
493 | esutils@^2.0.2:
494 | version "2.0.3"
495 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
496 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
497 |
498 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
499 | version "3.1.3"
500 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
501 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
502 |
503 | fast-diff@^1.1.2:
504 | version "1.2.0"
505 | resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03"
506 | integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==
507 |
508 | fast-glob@^3.2.9:
509 | version "3.2.11"
510 | resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
511 | integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
512 | dependencies:
513 | "@nodelib/fs.stat" "^2.0.2"
514 | "@nodelib/fs.walk" "^1.2.3"
515 | glob-parent "^5.1.2"
516 | merge2 "^1.3.0"
517 | micromatch "^4.0.4"
518 |
519 | fast-json-stable-stringify@^2.0.0:
520 | version "2.1.0"
521 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
522 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
523 |
524 | fast-levenshtein@^2.0.6:
525 | version "2.0.6"
526 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
527 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
528 |
529 | fastq@^1.6.0:
530 | version "1.13.0"
531 | resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
532 | integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
533 | dependencies:
534 | reusify "^1.0.4"
535 |
536 | file-entry-cache@^6.0.1:
537 | version "6.0.1"
538 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027"
539 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==
540 | dependencies:
541 | flat-cache "^3.0.4"
542 |
543 | fill-range@^7.0.1:
544 | version "7.0.1"
545 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
546 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
547 | dependencies:
548 | to-regex-range "^5.0.1"
549 |
550 | flat-cache@^3.0.4:
551 | version "3.0.4"
552 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
553 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==
554 | dependencies:
555 | flatted "^3.1.0"
556 | rimraf "^3.0.2"
557 |
558 | flatted@^3.1.0:
559 | version "3.2.5"
560 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
561 | integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
562 |
563 | fs.realpath@^1.0.0:
564 | version "1.0.0"
565 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
566 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
567 |
568 | functional-red-black-tree@^1.0.1:
569 | version "1.0.1"
570 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
571 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
572 |
573 | glob-parent@^5.1.2:
574 | version "5.1.2"
575 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4"
576 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==
577 | dependencies:
578 | is-glob "^4.0.1"
579 |
580 | glob@^7.1.3:
581 | version "7.2.0"
582 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
583 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
584 | dependencies:
585 | fs.realpath "^1.0.0"
586 | inflight "^1.0.4"
587 | inherits "2"
588 | minimatch "^3.0.4"
589 | once "^1.3.0"
590 | path-is-absolute "^1.0.0"
591 |
592 | globals@^13.6.0, globals@^13.9.0:
593 | version "13.12.1"
594 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.12.1.tgz#ec206be932e6c77236677127577aa8e50bf1c5cb"
595 | integrity sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==
596 | dependencies:
597 | type-fest "^0.20.2"
598 |
599 | globby@^11.0.3:
600 | version "11.1.0"
601 | resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b"
602 | integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==
603 | dependencies:
604 | array-union "^2.1.0"
605 | dir-glob "^3.0.1"
606 | fast-glob "^3.2.9"
607 | ignore "^5.2.0"
608 | merge2 "^1.4.1"
609 | slash "^3.0.0"
610 |
611 | has-flag@^3.0.0:
612 | version "3.0.0"
613 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
614 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
615 |
616 | has-flag@^4.0.0:
617 | version "4.0.0"
618 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
619 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
620 |
621 | ignore@^4.0.6:
622 | version "4.0.6"
623 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
624 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
625 |
626 | ignore@^5.1.8, ignore@^5.2.0:
627 | version "5.2.0"
628 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
629 | integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
630 |
631 | import-fresh@^3.0.0, import-fresh@^3.2.1:
632 | version "3.3.0"
633 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b"
634 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==
635 | dependencies:
636 | parent-module "^1.0.0"
637 | resolve-from "^4.0.0"
638 |
639 | imurmurhash@^0.1.4:
640 | version "0.1.4"
641 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
642 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
643 |
644 | inflight@^1.0.4:
645 | version "1.0.6"
646 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
647 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
648 | dependencies:
649 | once "^1.3.0"
650 | wrappy "1"
651 |
652 | inherits@2:
653 | version "2.0.4"
654 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
655 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
656 |
657 | is-extglob@^2.1.1:
658 | version "2.1.1"
659 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
660 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
661 |
662 | is-fullwidth-code-point@^3.0.0:
663 | version "3.0.0"
664 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
665 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
666 |
667 | is-glob@^4.0.0, is-glob@^4.0.1:
668 | version "4.0.3"
669 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
670 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
671 | dependencies:
672 | is-extglob "^2.1.1"
673 |
674 | is-number@^7.0.0:
675 | version "7.0.0"
676 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
677 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
678 |
679 | isexe@^2.0.0:
680 | version "2.0.0"
681 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
682 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
683 |
684 | js-tokens@^4.0.0:
685 | version "4.0.0"
686 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
687 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
688 |
689 | js-yaml@^3.13.1:
690 | version "3.14.1"
691 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
692 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
693 | dependencies:
694 | argparse "^1.0.7"
695 | esprima "^4.0.0"
696 |
697 | json-schema-traverse@^0.4.1:
698 | version "0.4.1"
699 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
700 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
701 |
702 | json-schema-traverse@^1.0.0:
703 | version "1.0.0"
704 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
705 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
706 |
707 | json-stable-stringify-without-jsonify@^1.0.1:
708 | version "1.0.1"
709 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
710 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
711 |
712 | levn@^0.4.1:
713 | version "0.4.1"
714 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade"
715 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==
716 | dependencies:
717 | prelude-ls "^1.2.1"
718 | type-check "~0.4.0"
719 |
720 | lodash.merge@^4.6.2:
721 | version "4.6.2"
722 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
723 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
724 |
725 | lodash.truncate@^4.4.2:
726 | version "4.4.2"
727 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
728 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
729 |
730 | lru-cache@^6.0.0:
731 | version "6.0.0"
732 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
733 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
734 | dependencies:
735 | yallist "^4.0.0"
736 |
737 | merge2@^1.3.0, merge2@^1.4.1:
738 | version "1.4.1"
739 | resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
740 | integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
741 |
742 | micromatch@^4.0.4:
743 | version "4.0.4"
744 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
745 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
746 | dependencies:
747 | braces "^3.0.1"
748 | picomatch "^2.2.3"
749 |
750 | minimatch@^3.0.4:
751 | version "3.0.4"
752 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
753 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
754 | dependencies:
755 | brace-expansion "^1.1.7"
756 |
757 | ms@2.1.2:
758 | version "2.1.2"
759 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
760 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
761 |
762 | natural-compare@^1.4.0:
763 | version "1.4.0"
764 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
765 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
766 |
767 | once@^1.3.0:
768 | version "1.4.0"
769 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
770 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
771 | dependencies:
772 | wrappy "1"
773 |
774 | optionator@^0.9.1:
775 | version "0.9.1"
776 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499"
777 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==
778 | dependencies:
779 | deep-is "^0.1.3"
780 | fast-levenshtein "^2.0.6"
781 | levn "^0.4.1"
782 | prelude-ls "^1.2.1"
783 | type-check "^0.4.0"
784 | word-wrap "^1.2.3"
785 |
786 | parent-module@^1.0.0:
787 | version "1.0.1"
788 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2"
789 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==
790 | dependencies:
791 | callsites "^3.0.0"
792 |
793 | path-is-absolute@^1.0.0:
794 | version "1.0.1"
795 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
796 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
797 |
798 | path-key@^3.1.0:
799 | version "3.1.1"
800 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
801 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
802 |
803 | path-type@^4.0.0:
804 | version "4.0.0"
805 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
806 | integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
807 |
808 | picomatch@^2.2.3:
809 | version "2.3.1"
810 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
811 | integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
812 |
813 | prelude-ls@^1.2.1:
814 | version "1.2.1"
815 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
816 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
817 |
818 | prettier-linter-helpers@^1.0.0:
819 | version "1.0.0"
820 | resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b"
821 | integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==
822 | dependencies:
823 | fast-diff "^1.1.2"
824 |
825 | prettier@^2.2.0:
826 | version "2.5.1"
827 | resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
828 | integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
829 |
830 | progress@^2.0.0:
831 | version "2.0.3"
832 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
833 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
834 |
835 | punycode@^2.1.0:
836 | version "2.1.1"
837 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
838 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
839 |
840 | queue-microtask@^1.2.2:
841 | version "1.2.3"
842 | resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
843 | integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
844 |
845 | regexpp@^3.1.0:
846 | version "3.2.0"
847 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
848 | integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
849 |
850 | require-from-string@^2.0.2:
851 | version "2.0.2"
852 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
853 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
854 |
855 | resolve-from@^4.0.0:
856 | version "4.0.0"
857 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
858 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
859 |
860 | reusify@^1.0.4:
861 | version "1.0.4"
862 | resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
863 | integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
864 |
865 | rimraf@^3.0.2:
866 | version "3.0.2"
867 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
868 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
869 | dependencies:
870 | glob "^7.1.3"
871 |
872 | run-parallel@^1.1.9:
873 | version "1.2.0"
874 | resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
875 | integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
876 | dependencies:
877 | queue-microtask "^1.2.2"
878 |
879 | semver@^7.2.1, semver@^7.3.5:
880 | version "7.3.5"
881 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
882 | integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
883 | dependencies:
884 | lru-cache "^6.0.0"
885 |
886 | shebang-command@^2.0.0:
887 | version "2.0.0"
888 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea"
889 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==
890 | dependencies:
891 | shebang-regex "^3.0.0"
892 |
893 | shebang-regex@^3.0.0:
894 | version "3.0.0"
895 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
896 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
897 |
898 | slash@^3.0.0:
899 | version "3.0.0"
900 | resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
901 | integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==
902 |
903 | slice-ansi@^4.0.0:
904 | version "4.0.0"
905 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
906 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
907 | dependencies:
908 | ansi-styles "^4.0.0"
909 | astral-regex "^2.0.0"
910 | is-fullwidth-code-point "^3.0.0"
911 |
912 | sprintf-js@~1.0.2:
913 | version "1.0.3"
914 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
915 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
916 |
917 | string-width@^4.2.3:
918 | version "4.2.3"
919 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
920 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
921 | dependencies:
922 | emoji-regex "^8.0.0"
923 | is-fullwidth-code-point "^3.0.0"
924 | strip-ansi "^6.0.1"
925 |
926 | strip-ansi@^6.0.0, strip-ansi@^6.0.1:
927 | version "6.0.1"
928 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
929 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
930 | dependencies:
931 | ansi-regex "^5.0.1"
932 |
933 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
934 | version "3.1.1"
935 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
936 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
937 |
938 | supports-color@^5.3.0:
939 | version "5.5.0"
940 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
941 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
942 | dependencies:
943 | has-flag "^3.0.0"
944 |
945 | supports-color@^7.1.0:
946 | version "7.2.0"
947 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da"
948 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==
949 | dependencies:
950 | has-flag "^4.0.0"
951 |
952 | table@^6.0.9:
953 | version "6.8.0"
954 | resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca"
955 | integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==
956 | dependencies:
957 | ajv "^8.0.1"
958 | lodash.truncate "^4.4.2"
959 | slice-ansi "^4.0.0"
960 | string-width "^4.2.3"
961 | strip-ansi "^6.0.1"
962 |
963 | text-table@^0.2.0:
964 | version "0.2.0"
965 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
966 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
967 |
968 | to-regex-range@^5.0.1:
969 | version "5.0.1"
970 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
971 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
972 | dependencies:
973 | is-number "^7.0.0"
974 |
975 | tslib@^1.8.1:
976 | version "1.14.1"
977 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
978 | integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
979 |
980 | tsutils@^3.21.0:
981 | version "3.21.0"
982 | resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"
983 | integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==
984 | dependencies:
985 | tslib "^1.8.1"
986 |
987 | type-check@^0.4.0, type-check@~0.4.0:
988 | version "0.4.0"
989 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1"
990 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==
991 | dependencies:
992 | prelude-ls "^1.2.1"
993 |
994 | type-fest@^0.20.2:
995 | version "0.20.2"
996 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
997 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
998 |
999 | typescript@^4.1.2:
1000 | version "4.5.5"
1001 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
1002 | integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
1003 |
1004 | uri-js@^4.2.2:
1005 | version "4.4.1"
1006 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e"
1007 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==
1008 | dependencies:
1009 | punycode "^2.1.0"
1010 |
1011 | v8-compile-cache@^2.0.3:
1012 | version "2.3.0"
1013 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
1014 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
1015 |
1016 | vscode-jsonrpc@6.0.0:
1017 | version "6.0.0"
1018 | resolved "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0.tgz#108bdb09b4400705176b957ceca9e0880e9b6d4e"
1019 | integrity sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==
1020 |
1021 | vscode-languageserver-protocol@^3.16.0:
1022 | version "3.16.0"
1023 | resolved "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0.tgz#34135b61a9091db972188a07d337406a3cdbe821"
1024 | integrity sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==
1025 | dependencies:
1026 | vscode-jsonrpc "6.0.0"
1027 | vscode-languageserver-types "3.16.0"
1028 |
1029 | vscode-languageserver-types@3.16.0:
1030 | version "3.16.0"
1031 | resolved "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0.tgz#ecf393fc121ec6974b2da3efb3155644c514e247"
1032 | integrity sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==
1033 |
1034 | which@^2.0.1:
1035 | version "2.0.2"
1036 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
1037 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==
1038 | dependencies:
1039 | isexe "^2.0.0"
1040 |
1041 | word-wrap@^1.2.3:
1042 | version "1.2.3"
1043 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
1044 | integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
1045 |
1046 | wrappy@1:
1047 | version "1.0.2"
1048 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1049 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
1050 |
1051 | yallist@^4.0.0:
1052 | version "4.0.0"
1053 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1054 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1055 |
--------------------------------------------------------------------------------