├── .gitignore ├── .npmignore ├── tsconfig.json ├── src ├── index.ts └── marketplace.ts ├── .eslintrc.js ├── esbuild.js ├── webpack.config.js ├── README.md ├── LICENSE ├── package.json └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | node_modules/ 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | src 2 | node_modules 3 | tsconfig.json 4 | *.map 5 | .tags 6 | webpack.config.js 7 | yarn.lock 8 | -------------------------------------------------------------------------------- /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 | "esModuleInterop": true 12 | }, 13 | "include": ["src"] 14 | } 15 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { listManager, ExtensionContext, workspace } from 'coc.nvim'; 2 | import Marketplace from './marketplace'; 3 | 4 | export async function activate(context: ExtensionContext): Promise { 5 | const { subscriptions } = context; 6 | const { nvim } = workspace; 7 | 8 | subscriptions.push(listManager.registerList(new Marketplace(nvim))); 9 | } 10 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | node: true 4 | }, 5 | parser: '@typescript-eslint/parser', 6 | extends: ['plugin:@typescript-eslint/recommended'], 7 | rules: { 8 | '@typescript-eslint/no-explicit-any': 'off', 9 | '@typescript-eslint/no-non-null-assertion': 'off', 10 | '@typescript-eslint/explicit-function-return-type': 'off' 11 | } 12 | }; 13 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | const path = require('path'); 2 | 3 | module.exports = { 4 | entry: './src/index.ts', 5 | target: 'node', 6 | mode: 'none', 7 | resolve: { 8 | mainFields: ['module', 'main'], 9 | extensions: ['.js', '.ts'] 10 | }, 11 | externals: { 12 | 'coc.nvim': 'commonjs coc.nvim' 13 | }, 14 | module: { 15 | rules: [ 16 | { 17 | test: /\.ts$/, 18 | include: [path.resolve(__dirname, 'src')], 19 | use: [ 20 | { 21 | loader: 'ts-loader', 22 | options: { 23 | compilerOptions: { 24 | sourceMap: true 25 | } 26 | } 27 | } 28 | ] 29 | } 30 | ] 31 | }, 32 | output: { 33 | path: path.join(__dirname, 'lib'), 34 | filename: 'index.js', 35 | libraryTarget: 'commonjs' 36 | }, 37 | plugins: [], 38 | node: { 39 | __dirname: false, 40 | __filename: false 41 | } 42 | }; 43 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # coc-marketplace 2 | 3 | [coc.nvim][1] extensions marketplace. 4 | 5 | * search `keywords:coc.nvim` from npmjs.com, display extensions in `coc-lists` 6 | * extension name starts with `√` means installed already, with an `uninstall` action 7 | * extension name starts with `x` means uninstalled, with an `install` action 8 | * extension name ends with `*` is published by [@chemzqm](https://github.com/chemzqm), IMO, is official 9 | 10 | ![coc-marketplace](https://i.loli.net/2019/06/06/5cf885c18736a85017.png) 11 | 12 | ## Install 13 | 14 | `:CocInstall coc-marketplace` 15 | 16 | ## Usage 17 | 18 | * `:CocList marketplace` list all available extensions 19 | * `:CocList marketplace python` to search extension that name contains `python` 20 | * You can `tab` on an extension to do `install`, `uninstall`, `homepage` actions. 21 | 22 | ## Configurations 23 | 24 | * `marketplace.npmsio`: Use for searching, default `false` 25 | 26 | ## License 27 | 28 | MIT 29 | 30 | [1]: https://github.com/neoclide/coc.nvim 31 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Heyward Fann 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 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "coc-marketplace", 3 | "version": "1.9.0", 4 | "description": "coc.nvim extensions marketplace", 5 | "main": "lib/index.js", 6 | "author": "Heyward Fann ", 7 | "license": "MIT", 8 | "scripts": { 9 | "build": "node esbuild.js", 10 | "prepare": "node esbuild.js" 11 | }, 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/fannheyward/coc-marketplace.git" 15 | }, 16 | "keywords": [ 17 | "coc.nvim" 18 | ], 19 | "engines": { 20 | "coc": "^0.0.73" 21 | }, 22 | "devDependencies": { 23 | "coc.nvim": "^0.0.80", 24 | "esbuild": "^0.25.0", 25 | "typescript": "^4.6.2" 26 | }, 27 | "dependencies": {}, 28 | "prettier": { 29 | "printWidth": 160, 30 | "singleQuote": true 31 | }, 32 | "contributes": { 33 | "configuration": { 34 | "type": "object", 35 | "title": "coc-marketplace configuration", 36 | "properties": { 37 | "marketplace.npmsio": { 38 | "type": "boolean", 39 | "default": false, 40 | "description": "Use npms.io for searching" 41 | } 42 | } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src/marketplace.ts: -------------------------------------------------------------------------------- 1 | import { BasicList, commands, ExtensionInfo, extensions, fetch, ListContext, ListItem, Neovim, window, workspace } from 'coc.nvim'; 2 | 3 | interface ExtensionItem { 4 | name: string; 5 | label: string; 6 | homepage: string; 7 | installed: boolean; 8 | } 9 | 10 | export default class Marketplace extends BasicList { 11 | public readonly name = 'marketplace'; 12 | public readonly description = 'coc.nvim extensions marketplace'; 13 | public readonly detail = 'display all coc.nvim extensions in list, with an install action'; 14 | public readonly defaultAction = 'install'; 15 | private npmsio = workspace.getConfiguration('marketplace').get('npmsio', false); 16 | private installed: ExtensionInfo[] = []; 17 | 18 | constructor(nvim: Neovim) { 19 | super(nvim); 20 | 21 | this.addAction('install', async item => { 22 | await nvim.command(`CocInstall ${item.data.name}`); 23 | }); 24 | 25 | this.addAction('uninstall', async item => { 26 | if (!item.data.installed) { 27 | return; 28 | } 29 | await nvim.command(`CocUninstall ${item.data.name}`); 30 | }); 31 | 32 | this.addAction('homepage', async item => { 33 | if (item.data.homepage) { 34 | commands.executeCommand('vscode.open', item.data.homepage).catch(() => { 35 | // noop 36 | }); 37 | } 38 | }); 39 | } 40 | 41 | public async loadItems(context: ListContext): Promise { 42 | this.installed = await extensions.getExtensionStates(); 43 | 44 | const { args } = context; 45 | let query = ''; 46 | if (args && args.length > 0) { 47 | for (const arg of args) { 48 | if (arg.startsWith('--')) { 49 | continue; 50 | } 51 | 52 | query = arg; 53 | } 54 | } 55 | 56 | const items: ListItem[] = []; 57 | // blacklist: some extensions are not available or not recommended 58 | const blacklist = ['coc-python']; 59 | const exts = await this.fetchExtensions(); 60 | for (const ext of exts) { 61 | if (blacklist.includes(ext.name)) continue; 62 | if (query && query.length > 0) { 63 | if (ext.name.indexOf(query) < 0) continue; 64 | } 65 | 66 | items.push({ 67 | label: ext.label, 68 | data: { 69 | installed: ext.installed, 70 | homepage: ext.homepage, 71 | name: ext.name 72 | } 73 | }); 74 | } 75 | items.sort((a, b) => { 76 | return b.label.localeCompare(a.label); 77 | }); 78 | 79 | return items; 80 | } 81 | 82 | async fetchExtensions(): Promise { 83 | const statusItem = window.createStatusBarItem(0, { progress: true }); 84 | statusItem.text = 'Loading...'; 85 | statusItem.show(); 86 | 87 | let base = 'https://registry.npmjs.com/-/v1/search?text=keywords:coc.nvim'; 88 | if (this.npmsio) { 89 | base = 'https://api.npms.io/v2/search?q=keywords:coc.nvim'; 90 | } 91 | let exts: ExtensionItem[] = []; 92 | const size = 200; 93 | let page = 0; 94 | while (true) { 95 | try { 96 | const uri = `${base}&size=${size}&from=${size * page}`; 97 | const resp = (await fetch(uri)) as any; 98 | const body = typeof resp === 'string' ? JSON.parse(resp) : resp; 99 | exts = exts.concat(this.format(body)); 100 | 101 | if (page === Math.floor(body.total / size)) { 102 | break; 103 | } 104 | page += 1; 105 | } catch (_e) { 106 | break; 107 | } 108 | } 109 | statusItem.hide(); 110 | 111 | return Promise.resolve(exts); 112 | } 113 | 114 | private format(body: any): ExtensionItem[] { 115 | const exts: ExtensionItem[] = []; 116 | let results = body.objects; 117 | if (this.npmsio) { 118 | results = body.results; 119 | } 120 | for (const item of results) { 121 | const pkg = item.package; 122 | if (pkg.name === 'coc.nvim' || pkg.name === 'coc-marketplace') { 123 | continue; 124 | } 125 | 126 | let sign = ''; 127 | if (pkg.publisher.username === 'chemzqm' || pkg.publisher.email === 'chemzqm@gmail.com') { 128 | sign = '*'; 129 | } 130 | 131 | let rtp = ''; 132 | let status = '×'; 133 | let isInstalled = false; 134 | for (const e of this.installed) { 135 | if (e.id === pkg.name) { 136 | status = '√'; 137 | isInstalled = true; 138 | rtp = e.isLocal ? ' [RTP]' : ''; 139 | break; 140 | } 141 | } 142 | 143 | exts.push({ 144 | name: pkg.name, 145 | label: `[${status}] ${pkg.name}${sign} ${pkg.version}${rtp}`.padEnd(40) + pkg.description, 146 | homepage: pkg.links.homepage ? pkg.links.homepage : pkg.links.npm, 147 | installed: isInstalled 148 | }); 149 | } 150 | 151 | return exts; 152 | } 153 | 154 | public doHighlight(): void { 155 | const { nvim } = this; 156 | nvim.pauseNotification(); 157 | nvim.command('syntax match CocMarketplaceExtName /\\v%5v\\S+/', true); 158 | nvim.command('syntax match CocMarketplaceExtStatus /\\v^\\[[√×\\*]\\]/', true); 159 | nvim.command('syntax match CocMarketplaceExtVersion /\\v\\d+(\\.\\d+)*/', true); 160 | nvim.command('syntax match CocMarketplaceExtDescription /\\v%40v.*$/', true); 161 | nvim.command('highlight default link CocMarketplaceExtName String', true); 162 | nvim.command('highlight default link CocMarketplaceExtStatus Type', true); 163 | nvim.command('highlight default link CocMarketplaceExtVersion Tag', true); 164 | nvim.command('highlight default link CocMarketplaceExtDescription Comment', true); 165 | nvim.resumeNotification().catch(() => { 166 | // noop 167 | }); 168 | } 169 | } 170 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@esbuild/aix-ppc64@0.25.0": 6 | version "0.25.0" 7 | resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz#499600c5e1757a524990d5d92601f0ac3ce87f64" 8 | integrity sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ== 9 | 10 | "@esbuild/android-arm64@0.25.0": 11 | version "0.25.0" 12 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz#b9b8231561a1dfb94eb31f4ee056b92a985c324f" 13 | integrity sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g== 14 | 15 | "@esbuild/android-arm@0.25.0": 16 | version "0.25.0" 17 | resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.25.0.tgz#ca6e7888942505f13e88ac9f5f7d2a72f9facd2b" 18 | integrity sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g== 19 | 20 | "@esbuild/android-x64@0.25.0": 21 | version "0.25.0" 22 | resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.25.0.tgz#e765ea753bac442dfc9cb53652ce8bd39d33e163" 23 | integrity sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg== 24 | 25 | "@esbuild/darwin-arm64@0.25.0": 26 | version "0.25.0" 27 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz#fa394164b0d89d4fdc3a8a21989af70ef579fa2c" 28 | integrity sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw== 29 | 30 | "@esbuild/darwin-x64@0.25.0": 31 | version "0.25.0" 32 | resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz#91979d98d30ba6e7d69b22c617cc82bdad60e47a" 33 | integrity sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg== 34 | 35 | "@esbuild/freebsd-arm64@0.25.0": 36 | version "0.25.0" 37 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz#b97e97073310736b430a07b099d837084b85e9ce" 38 | integrity sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w== 39 | 40 | "@esbuild/freebsd-x64@0.25.0": 41 | version "0.25.0" 42 | resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz#f3b694d0da61d9910ec7deff794d444cfbf3b6e7" 43 | integrity sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A== 44 | 45 | "@esbuild/linux-arm64@0.25.0": 46 | version "0.25.0" 47 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz#f921f699f162f332036d5657cad9036f7a993f73" 48 | integrity sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg== 49 | 50 | "@esbuild/linux-arm@0.25.0": 51 | version "0.25.0" 52 | resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz#cc49305b3c6da317c900688995a4050e6cc91ca3" 53 | integrity sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg== 54 | 55 | "@esbuild/linux-ia32@0.25.0": 56 | version "0.25.0" 57 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz#3e0736fcfab16cff042dec806247e2c76e109e19" 58 | integrity sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg== 59 | 60 | "@esbuild/linux-loong64@0.25.0": 61 | version "0.25.0" 62 | resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz#ea2bf730883cddb9dfb85124232b5a875b8020c7" 63 | integrity sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw== 64 | 65 | "@esbuild/linux-mips64el@0.25.0": 66 | version "0.25.0" 67 | resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz#4cababb14eede09248980a2d2d8b966464294ff1" 68 | integrity sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ== 69 | 70 | "@esbuild/linux-ppc64@0.25.0": 71 | version "0.25.0" 72 | resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz#8860a4609914c065373a77242e985179658e1951" 73 | integrity sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw== 74 | 75 | "@esbuild/linux-riscv64@0.25.0": 76 | version "0.25.0" 77 | resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz#baf26e20bb2d38cfb86ee282dff840c04f4ed987" 78 | integrity sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA== 79 | 80 | "@esbuild/linux-s390x@0.25.0": 81 | version "0.25.0" 82 | resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz#8323afc0d6cb1b6dc6e9fd21efd9e1542c3640a4" 83 | integrity sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA== 84 | 85 | "@esbuild/linux-x64@0.25.0": 86 | version "0.25.0" 87 | resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz#08fcf60cb400ed2382e9f8e0f5590bac8810469a" 88 | integrity sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw== 89 | 90 | "@esbuild/netbsd-arm64@0.25.0": 91 | version "0.25.0" 92 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz#935c6c74e20f7224918fbe2e6c6fe865b6c6ea5b" 93 | integrity sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw== 94 | 95 | "@esbuild/netbsd-x64@0.25.0": 96 | version "0.25.0" 97 | resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz#414677cef66d16c5a4d210751eb2881bb9c1b62b" 98 | integrity sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA== 99 | 100 | "@esbuild/openbsd-arm64@0.25.0": 101 | version "0.25.0" 102 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz#8fd55a4d08d25cdc572844f13c88d678c84d13f7" 103 | integrity sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw== 104 | 105 | "@esbuild/openbsd-x64@0.25.0": 106 | version "0.25.0" 107 | resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz#0c48ddb1494bbc2d6bcbaa1429a7f465fa1dedde" 108 | integrity sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg== 109 | 110 | "@esbuild/sunos-x64@0.25.0": 111 | version "0.25.0" 112 | resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz#86ff9075d77962b60dd26203d7352f92684c8c92" 113 | integrity sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg== 114 | 115 | "@esbuild/win32-arm64@0.25.0": 116 | version "0.25.0" 117 | resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz#849c62327c3229467f5b5cd681bf50588442e96c" 118 | integrity sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw== 119 | 120 | "@esbuild/win32-ia32@0.25.0": 121 | version "0.25.0" 122 | resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz#f62eb480cd7cca088cb65bb46a6db25b725dc079" 123 | integrity sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA== 124 | 125 | "@esbuild/win32-x64@0.25.0": 126 | version "0.25.0" 127 | resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz#c8e119a30a7c8d60b9d2e22d2073722dde3b710b" 128 | integrity sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ== 129 | 130 | coc.nvim@^0.0.80: 131 | version "0.0.80" 132 | resolved "https://registry.yarnpkg.com/coc.nvim/-/coc.nvim-0.0.80.tgz#785145c382660db03f517f9b497900d95cbd0e4f" 133 | integrity sha512-/3vTcnofoAYMrdENrlQmADTzfXX4+PZ0fiM10a39UA37dTR2dpIGi9O469kcIksuunLjToqWG8S45AGx/9wV7g== 134 | 135 | esbuild@^0.25.0: 136 | version "0.25.0" 137 | resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.25.0.tgz#0de1787a77206c5a79eeb634a623d39b5006ce92" 138 | integrity sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw== 139 | optionalDependencies: 140 | "@esbuild/aix-ppc64" "0.25.0" 141 | "@esbuild/android-arm" "0.25.0" 142 | "@esbuild/android-arm64" "0.25.0" 143 | "@esbuild/android-x64" "0.25.0" 144 | "@esbuild/darwin-arm64" "0.25.0" 145 | "@esbuild/darwin-x64" "0.25.0" 146 | "@esbuild/freebsd-arm64" "0.25.0" 147 | "@esbuild/freebsd-x64" "0.25.0" 148 | "@esbuild/linux-arm" "0.25.0" 149 | "@esbuild/linux-arm64" "0.25.0" 150 | "@esbuild/linux-ia32" "0.25.0" 151 | "@esbuild/linux-loong64" "0.25.0" 152 | "@esbuild/linux-mips64el" "0.25.0" 153 | "@esbuild/linux-ppc64" "0.25.0" 154 | "@esbuild/linux-riscv64" "0.25.0" 155 | "@esbuild/linux-s390x" "0.25.0" 156 | "@esbuild/linux-x64" "0.25.0" 157 | "@esbuild/netbsd-arm64" "0.25.0" 158 | "@esbuild/netbsd-x64" "0.25.0" 159 | "@esbuild/openbsd-arm64" "0.25.0" 160 | "@esbuild/openbsd-x64" "0.25.0" 161 | "@esbuild/sunos-x64" "0.25.0" 162 | "@esbuild/win32-arm64" "0.25.0" 163 | "@esbuild/win32-ia32" "0.25.0" 164 | "@esbuild/win32-x64" "0.25.0" 165 | 166 | typescript@^4.6.2: 167 | version "4.6.2" 168 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.2.tgz#fe12d2727b708f4eef40f51598b3398baa9611d4" 169 | integrity sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg== 170 | --------------------------------------------------------------------------------