coc-vscode-loader 1.2.4 → 1.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,137 @@
1
+ # converter — vscode → coc converter prototype
2
+
3
+ CLI tool that automatically converts VS Code extensions to coc.nvim plugins.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ # Create a convert config (describe how to transform the plugin)
9
+ echo '[{"type":"source","transforms":["import-mapping"],"entry":"src/extension.ts"}]' > convert.json
10
+
11
+ # Convert a VS Code extension directory
12
+ npx tsx src/cli.ts convert ./vscode-ext/ -o ./coc-ext/ --convert-file convert.json
13
+
14
+ # Build and install to coc
15
+ cd ./coc-ext && npm install && node esbuild.mjs
16
+ cd ~/.config/coc/extensions && npm install /path/to/coc-ext
17
+ ```
18
+
19
+ ## Verified conversions
20
+
21
+ | Plugin | Type | Auto-detected | Build | Working | Notes |
22
+ |--------|------|---------------|-------|---------|-------|
23
+ | Volar (Vue) | TS bridge | `@vue/language-server` + `typescript` | ✅ | ✅ | Requires modified coc-tsserver |
24
+ | Prisma | Pure LSP | `@prisma/language-server` | ✅ | ✅ | Auto-detects bin entry |
25
+ | HTML CSS Support | Direct API | — | ✅ | ✅ | Handles API differences |
26
+
27
+ ### Plugin types
28
+
29
+ | Type | Description | Approach | Example |
30
+ |------|-------------|----------|---------|
31
+ | **TS bridge** | Language plugins depending on TypeScript LSP | Generate `tsserver/request` bridge + `typescriptServerPlugins` | Volar |
32
+ | **Pure LSP** | Standard LSP using LanguageClient | Generate LanguageClient entry + server dependency injection | Prisma |
33
+ | **Direct API** | Direct coc.nvim API calls (no LanguageClient) | Keep original `extension.ts` as entry, no bridge | HTML CSS Support |
34
+
35
+ TS bridge plugins require a modified coc-tsserver ([PR #493](https://github.com/neoclide/coc-tsserver/pull/493)):
36
+
37
+ ```bash
38
+ cd ~/.config/coc/extensions
39
+ npm install ChuYanLon/coc-tsserver --legacy-peer-deps
40
+ ```
41
+
42
+ ## Architecture
43
+
44
+ ```
45
+ Input: VS Code extension directory
46
+
47
+ ├─ scanner Analyze API → detect plugin type
48
+ ├─ transforms/ AST transforms
49
+ │ ├─ import-mapping from 'vscode' → from 'coc.nvim'
50
+ │ ├─ class-to-factory new Xxx() → Xxx.create()
51
+ │ ├─ provider-register Adapt provider registration signatures
52
+ │ ├─ language-client Adapt LanguageClient signatures
53
+ │ └─ enum-offset Comment on enum value offsets
54
+ ├─ mark-unsupported Replace/mark missing APIs (getWordRangeAtPosition, fileName, etc.)
55
+ ├─ generate src/index.ts Main entry (bridge / LanguageClient / direct templates)
56
+ ├─ generate package.json Dependencies / esbuild external config
57
+ └─ generate esbuild.mjs Build config
58
+ ```
59
+
60
+ ## Bridge preset system
61
+
62
+ Bridge logic is preset-driven rather than hardcoded:
63
+
64
+ ```typescript
65
+ // presets.ts - all bridge presets defined here
66
+ const PRESETS = {
67
+ 'ts-bridge': {
68
+ notification: 'tsserver/request',
69
+ responseNotification: 'tsserver/response',
70
+ handler: { type: 'command', command: 'typescript.tsserverRequest' },
71
+ extraDeps: ['typescript'],
72
+ },
73
+ // future: python-bridge, rust-bridge, etc.
74
+ }
75
+ ```
76
+
77
+ `convert.ts` only calls `getActivePresets()` + `generateBridgeCode()`, it never touches bridge logic directly.
78
+ Adding a new bridge type = add a new preset in `presets.ts`, no changes to main flow.
79
+
80
+ See [coc-vscode-registry/docs/converter-design-v2.md](https://github.com/coc-plugin/coc-vscode-registry/blob/main/docs/converter-design-v2.md).
81
+
82
+ ## File structure
83
+
84
+ | File | Lines | Description |
85
+ |------|-------|-------------|
86
+ | `src/cli.ts` | 28 | CLI entry |
87
+ | `src/convert.ts` | 484 | Main flow + template generation + API replacement |
88
+ | `src/scanner.ts` | 136 | API scanner + plugin classification |
89
+ | `src/transforms/import-mapping.ts` | 47 | Import replacement |
90
+ | `src/transforms/language-client.ts` | 48 | LanguageClient adaptation |
91
+ | `src/transforms/class-to-factory.ts` | 54 | new Xxx() → Xxx.create() |
92
+ | `src/transforms/provider-register.ts` | 55 | Provider registration signature fixes |
93
+ | `src/transforms/enum-offset.ts` | 49 | Enum value offset annotations |
94
+ | **Total** | **~870** | |
95
+
96
+ ## Handled API differences
97
+
98
+ | API | VS Code | coc.nvim | Handling |
99
+ |-----|---------|----------|----------|
100
+ | import | `from 'vscode'` | `from 'coc.nvim'` | Direct replace |
101
+ | Position/Range/Location etc. | `new Xxx()` | `Xxx.create()` | AST replace |
102
+ | EventEmitter | `EventEmitter<T>` | `Emitter<T>` | Direct replace |
103
+ | registerCompletionItemProvider | `(sel, p, ...t)` | `(name, shortcut, sel, p, t?)` | Pad arguments |
104
+ | registerCodeActionsProvider | `registerCodeActionsProvider` | `registerCodeActionProvider` | Rename |
105
+ | registerReferenceProvider | `registerReferenceProvider` | `registerReferencesProvider` | Rename |
106
+ | CompletionItem.create | `new CompletionItem(label, kind)` | `CompletionItem.create(label)` + `item.kind = kind` | kind set separately |
107
+ | Trigger characters | `" "` (string) | `[" "]` (array) | Rest param → array |
108
+ | CompletionItemKind enum | `Value = 11`, `Enum = 12` | `Value = 12`, `Enum = 13` | Offset by 1, symbols auto-adapt |
109
+ | documentSelector | `[{ language: 'xxx' }]` | Same | Auto-infer from package.json |
110
+ | getWordRangeAtPosition | `document.getWordRangeAtPosition()` | Not available | Inline word boundary calculation |
111
+ | fileName | `document.fileName` | Not available | Replace with `document.uri` |
112
+ | createTextEditorDecorationType | `window.createTextEditorDecorationType()` | Not available | Mark TODO |
113
+ | createWebviewPanel | `window.createWebviewPanel()` | Not available | Mark TODO |
114
+
115
+ ### Missing API strategy
116
+
117
+ When a VS Code API has no coc.nvim equivalent, the approach is:
118
+
119
+ 1. Find the [VS Code source](https://github.com/microsoft/vscode) implementation
120
+ 2. Evaluate complexity:
121
+ - **Simple** (e.g. `getWordRangeAtPosition`) → inline polyfill
122
+ - **Complex** (e.g. decoration, webview) → mark TODO with explanation
123
+ 3. Polyfill using existing coc APIs where possible, avoid new dependencies
124
+
125
+ Known VS Code API source locations:
126
+ - `getWordRangeAtPosition` → `src/vs/editor/common/core/wordHelper.ts`
127
+ - `TextDocument.fileName` → coc uses `document.uri` instead (`DocumentUri = string`)
128
+ - Decoration system → `src/vs/editor/common/viewModel/viewDecorations.ts`
129
+
130
+ ## Key design decisions
131
+
132
+ - **Zero hardcoding** — server package names auto-detected from source
133
+ - **Bin entry fallback** — auto-detect and prefer `package.json` bin entry
134
+ - **Auto esbuild external injection** — detected server packages marked as external
135
+ - **Auto TS bridge injection** — `typescriptServerPlugins` + `tsserver/request` forwarding
136
+ - **Plugin classification** — auto-detect TS bridge / pure LSP / direct API
137
+ - **Missing API handling** — polyfill where possible, mark TODO otherwise
@@ -0,0 +1,692 @@
1
+ {
2
+ "name": "converter",
3
+ "version": "1.2.5",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "converter",
9
+ "version": "1.2.5",
10
+ "dependencies": {
11
+ "commander": "^15.0.0",
12
+ "ts-morph": "^28.0.0",
13
+ "typescript": "^6.0.3"
14
+ },
15
+ "devDependencies": {
16
+ "@types/node": "^25.9.3",
17
+ "tsx": "^4.19.0"
18
+ }
19
+ },
20
+ "node_modules/@esbuild/aix-ppc64": {
21
+ "version": "0.28.0",
22
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.28.0.tgz",
23
+ "integrity": "sha512-lhRUCeuOyJQURhTxl4WkpFTjIsbDayJHih5kZC1giwE+MhIzAb7mEsQMqMf18rHLsrb5qI1tafG20mLxEWcWlA==",
24
+ "cpu": [
25
+ "ppc64"
26
+ ],
27
+ "dev": true,
28
+ "license": "MIT",
29
+ "optional": true,
30
+ "os": [
31
+ "aix"
32
+ ],
33
+ "engines": {
34
+ "node": ">=18"
35
+ }
36
+ },
37
+ "node_modules/@esbuild/android-arm": {
38
+ "version": "0.28.0",
39
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.28.0.tgz",
40
+ "integrity": "sha512-wqh0ByljabXLKHeWXYLqoJ5jKC4XBaw6Hk08OfMrCRd2nP2ZQ5eleDZC41XHyCNgktBGYMbqnrJKq/K/lzPMSQ==",
41
+ "cpu": [
42
+ "arm"
43
+ ],
44
+ "dev": true,
45
+ "license": "MIT",
46
+ "optional": true,
47
+ "os": [
48
+ "android"
49
+ ],
50
+ "engines": {
51
+ "node": ">=18"
52
+ }
53
+ },
54
+ "node_modules/@esbuild/android-arm64": {
55
+ "version": "0.28.0",
56
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.28.0.tgz",
57
+ "integrity": "sha512-+WzIXQOSaGs33tLEgYPYe/yQHf0WTU0X42Jca3y8NWMbUVhp7rUnw+vAsRC/QiDrdD31IszMrZy+qwPOPjd+rw==",
58
+ "cpu": [
59
+ "arm64"
60
+ ],
61
+ "dev": true,
62
+ "license": "MIT",
63
+ "optional": true,
64
+ "os": [
65
+ "android"
66
+ ],
67
+ "engines": {
68
+ "node": ">=18"
69
+ }
70
+ },
71
+ "node_modules/@esbuild/android-x64": {
72
+ "version": "0.28.0",
73
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.28.0.tgz",
74
+ "integrity": "sha512-+VJggoaKhk2VNNqVL7f6S189UzShHC/mR9EE8rDdSkdpN0KflSwWY/gWjDrNxxisg8Fp1ZCD9jLMo4m0OUfeUA==",
75
+ "cpu": [
76
+ "x64"
77
+ ],
78
+ "dev": true,
79
+ "license": "MIT",
80
+ "optional": true,
81
+ "os": [
82
+ "android"
83
+ ],
84
+ "engines": {
85
+ "node": ">=18"
86
+ }
87
+ },
88
+ "node_modules/@esbuild/darwin-arm64": {
89
+ "version": "0.28.0",
90
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.28.0.tgz",
91
+ "integrity": "sha512-0T+A9WZm+bZ84nZBtk1ckYsOvyA3x7e2Acj1KdVfV4/2tdG4fzUp91YHx+GArWLtwqp77pBXVCPn2We7Letr0Q==",
92
+ "cpu": [
93
+ "arm64"
94
+ ],
95
+ "dev": true,
96
+ "license": "MIT",
97
+ "optional": true,
98
+ "os": [
99
+ "darwin"
100
+ ],
101
+ "engines": {
102
+ "node": ">=18"
103
+ }
104
+ },
105
+ "node_modules/@esbuild/darwin-x64": {
106
+ "version": "0.28.0",
107
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.28.0.tgz",
108
+ "integrity": "sha512-fyzLm/DLDl/84OCfp2f/XQ4flmORsjU7VKt8HLjvIXChJoFFOIL6pLJPH4Yhd1n1gGFF9mPwtlN5Wf82DZs+LQ==",
109
+ "cpu": [
110
+ "x64"
111
+ ],
112
+ "dev": true,
113
+ "license": "MIT",
114
+ "optional": true,
115
+ "os": [
116
+ "darwin"
117
+ ],
118
+ "engines": {
119
+ "node": ">=18"
120
+ }
121
+ },
122
+ "node_modules/@esbuild/freebsd-arm64": {
123
+ "version": "0.28.0",
124
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.28.0.tgz",
125
+ "integrity": "sha512-l9GeW5UZBT9k9brBYI+0WDffcRxgHQD8ShN2Ur4xWq/NFzUKm3k5lsH4PdaRgb2w7mI9u61nr2gI2mLI27Nh3Q==",
126
+ "cpu": [
127
+ "arm64"
128
+ ],
129
+ "dev": true,
130
+ "license": "MIT",
131
+ "optional": true,
132
+ "os": [
133
+ "freebsd"
134
+ ],
135
+ "engines": {
136
+ "node": ">=18"
137
+ }
138
+ },
139
+ "node_modules/@esbuild/freebsd-x64": {
140
+ "version": "0.28.0",
141
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.28.0.tgz",
142
+ "integrity": "sha512-BXoQai/A0wPO6Es3yFJ7APCiKGc1tdAEOgeTNy3SsB491S3aHn4S4r3e976eUnPdU+NbdtmBuLncYir2tMU9Nw==",
143
+ "cpu": [
144
+ "x64"
145
+ ],
146
+ "dev": true,
147
+ "license": "MIT",
148
+ "optional": true,
149
+ "os": [
150
+ "freebsd"
151
+ ],
152
+ "engines": {
153
+ "node": ">=18"
154
+ }
155
+ },
156
+ "node_modules/@esbuild/linux-arm": {
157
+ "version": "0.28.0",
158
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.28.0.tgz",
159
+ "integrity": "sha512-CjaaREJagqJp7iTaNQjjidaNbCKYcd4IDkzbwwxtSvjI7NZm79qiHc8HqciMddQ6CKvJT6aBd8lO9kN/ZudLlw==",
160
+ "cpu": [
161
+ "arm"
162
+ ],
163
+ "dev": true,
164
+ "license": "MIT",
165
+ "optional": true,
166
+ "os": [
167
+ "linux"
168
+ ],
169
+ "engines": {
170
+ "node": ">=18"
171
+ }
172
+ },
173
+ "node_modules/@esbuild/linux-arm64": {
174
+ "version": "0.28.0",
175
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.28.0.tgz",
176
+ "integrity": "sha512-RVyzfb3FWsGA55n6WY0MEIEPURL1FcbhFE6BffZEMEekfCzCIMtB5yyDcFnVbTnwk+CLAgTujmV/Lgvih56W+A==",
177
+ "cpu": [
178
+ "arm64"
179
+ ],
180
+ "dev": true,
181
+ "license": "MIT",
182
+ "optional": true,
183
+ "os": [
184
+ "linux"
185
+ ],
186
+ "engines": {
187
+ "node": ">=18"
188
+ }
189
+ },
190
+ "node_modules/@esbuild/linux-ia32": {
191
+ "version": "0.28.0",
192
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.28.0.tgz",
193
+ "integrity": "sha512-KBnSTt1kxl9x70q+ydterVdl+Cn0H18ngRMRCEQfrbqdUuntQQ0LoMZv47uB97NljZFzY6HcfqEZ2SAyIUTQBQ==",
194
+ "cpu": [
195
+ "ia32"
196
+ ],
197
+ "dev": true,
198
+ "license": "MIT",
199
+ "optional": true,
200
+ "os": [
201
+ "linux"
202
+ ],
203
+ "engines": {
204
+ "node": ">=18"
205
+ }
206
+ },
207
+ "node_modules/@esbuild/linux-loong64": {
208
+ "version": "0.28.0",
209
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.28.0.tgz",
210
+ "integrity": "sha512-zpSlUce1mnxzgBADvxKXX5sl8aYQHo2ezvMNI8I0lbblJtp8V4odlm3Yzlj7gPyt3T8ReksE6bK+pT3WD+aJRg==",
211
+ "cpu": [
212
+ "loong64"
213
+ ],
214
+ "dev": true,
215
+ "license": "MIT",
216
+ "optional": true,
217
+ "os": [
218
+ "linux"
219
+ ],
220
+ "engines": {
221
+ "node": ">=18"
222
+ }
223
+ },
224
+ "node_modules/@esbuild/linux-mips64el": {
225
+ "version": "0.28.0",
226
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.28.0.tgz",
227
+ "integrity": "sha512-2jIfP6mmjkdmeTlsX/9vmdmhBmKADrWqN7zcdtHIeNSCH1SqIoNI63cYsjQR8J+wGa4Y5izRcSHSm8K3QWmk3w==",
228
+ "cpu": [
229
+ "mips64el"
230
+ ],
231
+ "dev": true,
232
+ "license": "MIT",
233
+ "optional": true,
234
+ "os": [
235
+ "linux"
236
+ ],
237
+ "engines": {
238
+ "node": ">=18"
239
+ }
240
+ },
241
+ "node_modules/@esbuild/linux-ppc64": {
242
+ "version": "0.28.0",
243
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.28.0.tgz",
244
+ "integrity": "sha512-bc0FE9wWeC0WBm49IQMPSPILRocGTQt3j5KPCA8os6VprfuJ7KD+5PzESSrJ6GmPIPJK965ZJHTUlSA6GNYEhg==",
245
+ "cpu": [
246
+ "ppc64"
247
+ ],
248
+ "dev": true,
249
+ "license": "MIT",
250
+ "optional": true,
251
+ "os": [
252
+ "linux"
253
+ ],
254
+ "engines": {
255
+ "node": ">=18"
256
+ }
257
+ },
258
+ "node_modules/@esbuild/linux-riscv64": {
259
+ "version": "0.28.0",
260
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.28.0.tgz",
261
+ "integrity": "sha512-SQPZOwoTTT/HXFXQJG/vBX8sOFagGqvZyXcgLA3NhIqcBv1BJU1d46c0rGcrij2B56Z2rNiSLaZOYW5cUk7yLQ==",
262
+ "cpu": [
263
+ "riscv64"
264
+ ],
265
+ "dev": true,
266
+ "license": "MIT",
267
+ "optional": true,
268
+ "os": [
269
+ "linux"
270
+ ],
271
+ "engines": {
272
+ "node": ">=18"
273
+ }
274
+ },
275
+ "node_modules/@esbuild/linux-s390x": {
276
+ "version": "0.28.0",
277
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.28.0.tgz",
278
+ "integrity": "sha512-SCfR0HN8CEEjnYnySJTd2cw0k9OHB/YFzt5zgJEwa+wL/T/raGWYMBqwDNAC6dqFKmJYZoQBRfHjgwLHGSrn3Q==",
279
+ "cpu": [
280
+ "s390x"
281
+ ],
282
+ "dev": true,
283
+ "license": "MIT",
284
+ "optional": true,
285
+ "os": [
286
+ "linux"
287
+ ],
288
+ "engines": {
289
+ "node": ">=18"
290
+ }
291
+ },
292
+ "node_modules/@esbuild/linux-x64": {
293
+ "version": "0.28.0",
294
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.28.0.tgz",
295
+ "integrity": "sha512-us0dSb9iFxIi8srnpl931Nvs65it/Jd2a2K3qs7fz2WfGPHqzfzZTfec7oxZJRNPXPnNYZtanmRc4AL/JwVzHQ==",
296
+ "cpu": [
297
+ "x64"
298
+ ],
299
+ "dev": true,
300
+ "license": "MIT",
301
+ "optional": true,
302
+ "os": [
303
+ "linux"
304
+ ],
305
+ "engines": {
306
+ "node": ">=18"
307
+ }
308
+ },
309
+ "node_modules/@esbuild/netbsd-arm64": {
310
+ "version": "0.28.0",
311
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.28.0.tgz",
312
+ "integrity": "sha512-CR/RYotgtCKwtftMwJlUU7xCVNg3lMYZ0RzTmAHSfLCXw3NtZtNpswLEj/Kkf6kEL3Gw+BpOekRX0BYCtklhUw==",
313
+ "cpu": [
314
+ "arm64"
315
+ ],
316
+ "dev": true,
317
+ "license": "MIT",
318
+ "optional": true,
319
+ "os": [
320
+ "netbsd"
321
+ ],
322
+ "engines": {
323
+ "node": ">=18"
324
+ }
325
+ },
326
+ "node_modules/@esbuild/netbsd-x64": {
327
+ "version": "0.28.0",
328
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.28.0.tgz",
329
+ "integrity": "sha512-nU1yhmYutL+fQ71Kxnhg8uEOdC0pwEW9entHykTgEbna2pw2dkbFSMeqjjyHZoCmt8SBkOSvV+yNmm94aUrrqw==",
330
+ "cpu": [
331
+ "x64"
332
+ ],
333
+ "dev": true,
334
+ "license": "MIT",
335
+ "optional": true,
336
+ "os": [
337
+ "netbsd"
338
+ ],
339
+ "engines": {
340
+ "node": ">=18"
341
+ }
342
+ },
343
+ "node_modules/@esbuild/openbsd-arm64": {
344
+ "version": "0.28.0",
345
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.28.0.tgz",
346
+ "integrity": "sha512-cXb5vApOsRsxsEl4mcZ1XY3D4DzcoMxR/nnc4IyqYs0rTI8ZKmW6kyyg+11Z8yvgMfAEldKzP7AdP64HnSC/6g==",
347
+ "cpu": [
348
+ "arm64"
349
+ ],
350
+ "dev": true,
351
+ "license": "MIT",
352
+ "optional": true,
353
+ "os": [
354
+ "openbsd"
355
+ ],
356
+ "engines": {
357
+ "node": ">=18"
358
+ }
359
+ },
360
+ "node_modules/@esbuild/openbsd-x64": {
361
+ "version": "0.28.0",
362
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.28.0.tgz",
363
+ "integrity": "sha512-8wZM2qqtv9UP3mzy7HiGYNH/zjTA355mpeuA+859TyR+e+Tc08IHYpLJuMsfpDJwoLo1ikIJI8jC3GFjnRClzA==",
364
+ "cpu": [
365
+ "x64"
366
+ ],
367
+ "dev": true,
368
+ "license": "MIT",
369
+ "optional": true,
370
+ "os": [
371
+ "openbsd"
372
+ ],
373
+ "engines": {
374
+ "node": ">=18"
375
+ }
376
+ },
377
+ "node_modules/@esbuild/openharmony-arm64": {
378
+ "version": "0.28.0",
379
+ "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.28.0.tgz",
380
+ "integrity": "sha512-FLGfyizszcef5C3YtoyQDACyg95+dndv79i2EekILBofh5wpCa1KuBqOWKrEHZg3zrL3t5ouE5jgr94vA+Wb2w==",
381
+ "cpu": [
382
+ "arm64"
383
+ ],
384
+ "dev": true,
385
+ "license": "MIT",
386
+ "optional": true,
387
+ "os": [
388
+ "openharmony"
389
+ ],
390
+ "engines": {
391
+ "node": ">=18"
392
+ }
393
+ },
394
+ "node_modules/@esbuild/sunos-x64": {
395
+ "version": "0.28.0",
396
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.28.0.tgz",
397
+ "integrity": "sha512-1ZgjUoEdHZZl/YlV76TSCz9Hqj9h9YmMGAgAPYd+q4SicWNX3G5GCyx9uhQWSLcbvPW8Ni7lj4gDa1T40akdlw==",
398
+ "cpu": [
399
+ "x64"
400
+ ],
401
+ "dev": true,
402
+ "license": "MIT",
403
+ "optional": true,
404
+ "os": [
405
+ "sunos"
406
+ ],
407
+ "engines": {
408
+ "node": ">=18"
409
+ }
410
+ },
411
+ "node_modules/@esbuild/win32-arm64": {
412
+ "version": "0.28.0",
413
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.28.0.tgz",
414
+ "integrity": "sha512-Q9StnDmQ/enxnpxCCLSg0oo4+34B9TdXpuyPeTedN/6+iXBJ4J+zwfQI28u/Jl40nOYAxGoNi7mFP40RUtkmUA==",
415
+ "cpu": [
416
+ "arm64"
417
+ ],
418
+ "dev": true,
419
+ "license": "MIT",
420
+ "optional": true,
421
+ "os": [
422
+ "win32"
423
+ ],
424
+ "engines": {
425
+ "node": ">=18"
426
+ }
427
+ },
428
+ "node_modules/@esbuild/win32-ia32": {
429
+ "version": "0.28.0",
430
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.28.0.tgz",
431
+ "integrity": "sha512-zF3ag/gfiCe6U2iczcRzSYJKH1DCI+ByzSENHlM2FcDbEeo5Zd2C86Aq0tKUYAJJ1obRP84ymxIAksZUcdztHA==",
432
+ "cpu": [
433
+ "ia32"
434
+ ],
435
+ "dev": true,
436
+ "license": "MIT",
437
+ "optional": true,
438
+ "os": [
439
+ "win32"
440
+ ],
441
+ "engines": {
442
+ "node": ">=18"
443
+ }
444
+ },
445
+ "node_modules/@esbuild/win32-x64": {
446
+ "version": "0.28.0",
447
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.28.0.tgz",
448
+ "integrity": "sha512-pEl1bO9mfAmIC+tW5btTmrKaujg3zGtUmWNdCw/xs70FBjwAL3o9OEKNHvNmnyylD6ubxUERiEhdsL0xBQ9efw==",
449
+ "cpu": [
450
+ "x64"
451
+ ],
452
+ "dev": true,
453
+ "license": "MIT",
454
+ "optional": true,
455
+ "os": [
456
+ "win32"
457
+ ],
458
+ "engines": {
459
+ "node": ">=18"
460
+ }
461
+ },
462
+ "node_modules/@ts-morph/common": {
463
+ "version": "0.29.0",
464
+ "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.29.0.tgz",
465
+ "integrity": "sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==",
466
+ "license": "MIT",
467
+ "dependencies": {
468
+ "minimatch": "^10.0.1",
469
+ "path-browserify": "^1.0.1",
470
+ "tinyglobby": "^0.2.14"
471
+ }
472
+ },
473
+ "node_modules/@types/node": {
474
+ "version": "25.9.3",
475
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.9.3.tgz",
476
+ "integrity": "sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==",
477
+ "dev": true,
478
+ "license": "MIT",
479
+ "dependencies": {
480
+ "undici-types": ">=7.24.0 <7.24.7"
481
+ }
482
+ },
483
+ "node_modules/balanced-match": {
484
+ "version": "4.0.4",
485
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz",
486
+ "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==",
487
+ "license": "MIT",
488
+ "engines": {
489
+ "node": "18 || 20 || >=22"
490
+ }
491
+ },
492
+ "node_modules/brace-expansion": {
493
+ "version": "5.0.6",
494
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz",
495
+ "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==",
496
+ "license": "MIT",
497
+ "dependencies": {
498
+ "balanced-match": "^4.0.2"
499
+ },
500
+ "engines": {
501
+ "node": "18 || 20 || >=22"
502
+ }
503
+ },
504
+ "node_modules/code-block-writer": {
505
+ "version": "13.0.3",
506
+ "resolved": "https://registry.npmjs.org/code-block-writer/-/code-block-writer-13.0.3.tgz",
507
+ "integrity": "sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==",
508
+ "license": "MIT"
509
+ },
510
+ "node_modules/commander": {
511
+ "version": "15.0.0",
512
+ "resolved": "https://registry.npmjs.org/commander/-/commander-15.0.0.tgz",
513
+ "integrity": "sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==",
514
+ "license": "MIT",
515
+ "engines": {
516
+ "node": ">=22.12.0"
517
+ }
518
+ },
519
+ "node_modules/esbuild": {
520
+ "version": "0.28.0",
521
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.28.0.tgz",
522
+ "integrity": "sha512-sNR9MHpXSUV/XB4zmsFKN+QgVG82Cc7+/aaxJ8Adi8hyOac+EXptIp45QBPaVyX3N70664wRbTcLTOemCAnyqw==",
523
+ "dev": true,
524
+ "hasInstallScript": true,
525
+ "license": "MIT",
526
+ "bin": {
527
+ "esbuild": "bin/esbuild"
528
+ },
529
+ "engines": {
530
+ "node": ">=18"
531
+ },
532
+ "optionalDependencies": {
533
+ "@esbuild/aix-ppc64": "0.28.0",
534
+ "@esbuild/android-arm": "0.28.0",
535
+ "@esbuild/android-arm64": "0.28.0",
536
+ "@esbuild/android-x64": "0.28.0",
537
+ "@esbuild/darwin-arm64": "0.28.0",
538
+ "@esbuild/darwin-x64": "0.28.0",
539
+ "@esbuild/freebsd-arm64": "0.28.0",
540
+ "@esbuild/freebsd-x64": "0.28.0",
541
+ "@esbuild/linux-arm": "0.28.0",
542
+ "@esbuild/linux-arm64": "0.28.0",
543
+ "@esbuild/linux-ia32": "0.28.0",
544
+ "@esbuild/linux-loong64": "0.28.0",
545
+ "@esbuild/linux-mips64el": "0.28.0",
546
+ "@esbuild/linux-ppc64": "0.28.0",
547
+ "@esbuild/linux-riscv64": "0.28.0",
548
+ "@esbuild/linux-s390x": "0.28.0",
549
+ "@esbuild/linux-x64": "0.28.0",
550
+ "@esbuild/netbsd-arm64": "0.28.0",
551
+ "@esbuild/netbsd-x64": "0.28.0",
552
+ "@esbuild/openbsd-arm64": "0.28.0",
553
+ "@esbuild/openbsd-x64": "0.28.0",
554
+ "@esbuild/openharmony-arm64": "0.28.0",
555
+ "@esbuild/sunos-x64": "0.28.0",
556
+ "@esbuild/win32-arm64": "0.28.0",
557
+ "@esbuild/win32-ia32": "0.28.0",
558
+ "@esbuild/win32-x64": "0.28.0"
559
+ }
560
+ },
561
+ "node_modules/fdir": {
562
+ "version": "6.5.0",
563
+ "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz",
564
+ "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==",
565
+ "license": "MIT",
566
+ "engines": {
567
+ "node": ">=12.0.0"
568
+ },
569
+ "peerDependencies": {
570
+ "picomatch": "^3 || ^4"
571
+ },
572
+ "peerDependenciesMeta": {
573
+ "picomatch": {
574
+ "optional": true
575
+ }
576
+ }
577
+ },
578
+ "node_modules/fsevents": {
579
+ "version": "2.3.3",
580
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
581
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
582
+ "dev": true,
583
+ "hasInstallScript": true,
584
+ "license": "MIT",
585
+ "optional": true,
586
+ "os": [
587
+ "darwin"
588
+ ],
589
+ "engines": {
590
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
591
+ }
592
+ },
593
+ "node_modules/minimatch": {
594
+ "version": "10.2.5",
595
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz",
596
+ "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==",
597
+ "license": "BlueOak-1.0.0",
598
+ "dependencies": {
599
+ "brace-expansion": "^5.0.5"
600
+ },
601
+ "engines": {
602
+ "node": "18 || 20 || >=22"
603
+ },
604
+ "funding": {
605
+ "url": "https://github.com/sponsors/isaacs"
606
+ }
607
+ },
608
+ "node_modules/path-browserify": {
609
+ "version": "1.0.1",
610
+ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz",
611
+ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==",
612
+ "license": "MIT"
613
+ },
614
+ "node_modules/picomatch": {
615
+ "version": "4.0.4",
616
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
617
+ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
618
+ "license": "MIT",
619
+ "engines": {
620
+ "node": ">=12"
621
+ },
622
+ "funding": {
623
+ "url": "https://github.com/sponsors/jonschlinkert"
624
+ }
625
+ },
626
+ "node_modules/tinyglobby": {
627
+ "version": "0.2.17",
628
+ "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.17.tgz",
629
+ "integrity": "sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==",
630
+ "license": "MIT",
631
+ "dependencies": {
632
+ "fdir": "^6.5.0",
633
+ "picomatch": "^4.0.4"
634
+ },
635
+ "engines": {
636
+ "node": ">=12.0.0"
637
+ },
638
+ "funding": {
639
+ "url": "https://github.com/sponsors/SuperchupuDev"
640
+ }
641
+ },
642
+ "node_modules/ts-morph": {
643
+ "version": "28.0.0",
644
+ "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-28.0.0.tgz",
645
+ "integrity": "sha512-Wp3tnZ2bzwxyTZMtgWVzXDfm7lB1Drz+y9DmmYH/L702PQhPyVrp3pkou3yIz4qjS14GY9kcpmLiOOMvl8oG1g==",
646
+ "license": "MIT",
647
+ "dependencies": {
648
+ "@ts-morph/common": "~0.29.0",
649
+ "code-block-writer": "^13.0.3"
650
+ }
651
+ },
652
+ "node_modules/tsx": {
653
+ "version": "4.22.4",
654
+ "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.22.4.tgz",
655
+ "integrity": "sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==",
656
+ "dev": true,
657
+ "license": "MIT",
658
+ "dependencies": {
659
+ "esbuild": "~0.28.0"
660
+ },
661
+ "bin": {
662
+ "tsx": "dist/cli.mjs"
663
+ },
664
+ "engines": {
665
+ "node": ">=18.0.0"
666
+ },
667
+ "optionalDependencies": {
668
+ "fsevents": "~2.3.3"
669
+ }
670
+ },
671
+ "node_modules/typescript": {
672
+ "version": "6.0.3",
673
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz",
674
+ "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==",
675
+ "license": "Apache-2.0",
676
+ "bin": {
677
+ "tsc": "bin/tsc",
678
+ "tsserver": "bin/tsserver"
679
+ },
680
+ "engines": {
681
+ "node": ">=14.17"
682
+ }
683
+ },
684
+ "node_modules/undici-types": {
685
+ "version": "7.24.6",
686
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.24.6.tgz",
687
+ "integrity": "sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==",
688
+ "dev": true,
689
+ "license": "MIT"
690
+ }
691
+ }
692
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "converter",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "private": true,
5
5
  "description": "vscode → coc.nvim converter prototype",
6
6
  "type": "module",
@@ -0,0 +1,419 @@
1
+ lockfileVersion: '9.0'
2
+
3
+ settings:
4
+ autoInstallPeers: true
5
+ excludeLinksFromLockfile: false
6
+
7
+ importers:
8
+
9
+ .:
10
+ dependencies:
11
+ commander:
12
+ specifier: ^15.0.0
13
+ version: 15.0.0
14
+ ts-morph:
15
+ specifier: ^28.0.0
16
+ version: 28.0.0
17
+ typescript:
18
+ specifier: ^6.0.3
19
+ version: 6.0.3
20
+ devDependencies:
21
+ '@types/node':
22
+ specifier: ^25.9.3
23
+ version: 25.9.3
24
+ tsx:
25
+ specifier: ^4.19.0
26
+ version: 4.22.4
27
+
28
+ packages:
29
+
30
+ '@esbuild/aix-ppc64@0.28.1':
31
+ resolution: {integrity: sha512-Svl7tq8k/08+p6CXPpRjQ1fKX+1odH/BQbb48fV6fj3CWHhsoIOoY87w1oHXm0qEpkIK3ZfVgp0hed3XBXzXMQ==}
32
+ engines: {node: '>=18'}
33
+ cpu: [ppc64]
34
+ os: [aix]
35
+
36
+ '@esbuild/android-arm64@0.28.1':
37
+ resolution: {integrity: sha512-34EGEbCIAgosYz6goLcopX6Mo7NyGv9tfwEM2/7Ce2VcVRk568iSvniGWcUXIy7wEDR1wzolcxcriFVrWYcwBg==}
38
+ engines: {node: '>=18'}
39
+ cpu: [arm64]
40
+ os: [android]
41
+
42
+ '@esbuild/android-arm@0.28.1':
43
+ resolution: {integrity: sha512-0k2F129Xdio1TdJfzJ8sy1Q47vUD2NnwdhiAf7drUN1EBTfPf4hsFCtmMgu/6m8JSzsBrlmVjudMBQqOfG8usQ==}
44
+ engines: {node: '>=18'}
45
+ cpu: [arm]
46
+ os: [android]
47
+
48
+ '@esbuild/android-x64@0.28.1':
49
+ resolution: {integrity: sha512-dbwY7ltSMDWsRatcRpCnES4F+im88OCUgGZjy52shC7GqHRE/cYlxNbB4Z4UpJswpcc4Qxd2oE/ufM0p61IKng==}
50
+ engines: {node: '>=18'}
51
+ cpu: [x64]
52
+ os: [android]
53
+
54
+ '@esbuild/darwin-arm64@0.28.1':
55
+ resolution: {integrity: sha512-TZbWkQY7kvTAXbXUT7uVACR5cMHsDiSz9z7ZKAX/RTq/WJEk3QyRr0wZpNhBDX+/0CtdqUIJlOiodQcta6tY3Q==}
56
+ engines: {node: '>=18'}
57
+ cpu: [arm64]
58
+ os: [darwin]
59
+
60
+ '@esbuild/darwin-x64@0.28.1':
61
+ resolution: {integrity: sha512-zfdzgK9ACBNZLI/CyHTOx81SyNbM6YXn7rxSgX97VjyiPl9W1i4Ka4fgKECEoFCKGpvBj5qArWIGgQjOwkgskQ==}
62
+ engines: {node: '>=18'}
63
+ cpu: [x64]
64
+ os: [darwin]
65
+
66
+ '@esbuild/freebsd-arm64@0.28.1':
67
+ resolution: {integrity: sha512-wG2EA8ENdEI0qhkSZMjfqrdY+ziCYCPMmtZjjIwOmXFjmyzEHn+UUxk5of+SYsjtfs3VpnlC7QLzSI5hY/rOAw==}
68
+ engines: {node: '>=18'}
69
+ cpu: [arm64]
70
+ os: [freebsd]
71
+
72
+ '@esbuild/freebsd-x64@0.28.1':
73
+ resolution: {integrity: sha512-i7dZ9vQgnvSCzi/rYCXNgtF/U+eKZNJBzu3eTQbRgHnM7tNSizLOkRFAl3qzVc/Op/u5YkHHa4pf/3DOYHthLQ==}
74
+ engines: {node: '>=18'}
75
+ cpu: [x64]
76
+ os: [freebsd]
77
+
78
+ '@esbuild/linux-arm64@0.28.1':
79
+ resolution: {integrity: sha512-yHs+0uc8+nvEAfAfxrWQKK5peSNzBc4PegcMO0EJ2hT71uA7vB8Ihg2e77R2P7SG5uYjPbHlLLmve4LLLRCf0g==}
80
+ engines: {node: '>=18'}
81
+ cpu: [arm64]
82
+ os: [linux]
83
+
84
+ '@esbuild/linux-arm@0.28.1':
85
+ resolution: {integrity: sha512-qVXBOHQS+d5Y722GwJzJUtOLlX7km3CraOaGormF1pDtPd2C/l1SHRPgjLunLGe51Sh5YYWKMFDyV4SxgMQYTQ==}
86
+ engines: {node: '>=18'}
87
+ cpu: [arm]
88
+ os: [linux]
89
+
90
+ '@esbuild/linux-ia32@0.28.1':
91
+ resolution: {integrity: sha512-d1z4ZuP0ajrfz/FhGT4vv278rX8KnPPJx8i5+AtK7TYbx9Le9F1hyzurZpkEyjkGa9dUGhQow4C1NmeGvqxN2w==}
92
+ engines: {node: '>=18'}
93
+ cpu: [ia32]
94
+ os: [linux]
95
+
96
+ '@esbuild/linux-loong64@0.28.1':
97
+ resolution: {integrity: sha512-M5sRjUVZrkm1OAPR3dlOYzNmN+loZKGVi1VUQGrwuqLcbR6qeAz+famMhjASeH3YVKvZz+zT1jlh/keC3Rj/lg==}
98
+ engines: {node: '>=18'}
99
+ cpu: [loong64]
100
+ os: [linux]
101
+
102
+ '@esbuild/linux-mips64el@0.28.1':
103
+ resolution: {integrity: sha512-mRObBZeHh2OxcBFPWE/FjylkRgZdYuiTR3vaTozquCGOH14iP9oN4x4Ge81CoIDYQrXmIxpFumJBu5MtZpnQJQ==}
104
+ engines: {node: '>=18'}
105
+ cpu: [mips64el]
106
+ os: [linux]
107
+
108
+ '@esbuild/linux-ppc64@0.28.1':
109
+ resolution: {integrity: sha512-slScBsMAb3GFDcdrCgLwZtPYRoH2H/youv10QiZyRjmsP48fznoveWytSgCI/R0ZcUgpc0ZhIUEx6LHts8yrfQ==}
110
+ engines: {node: '>=18'}
111
+ cpu: [ppc64]
112
+ os: [linux]
113
+
114
+ '@esbuild/linux-riscv64@0.28.1':
115
+ resolution: {integrity: sha512-kw0owk1o0GFETUJyW0jc0G4Yzs0BHZn0JDZ8JRT088vjJYX777BAs1fDGxAC+q831qOs2DTC96mNsG2opdfyyQ==}
116
+ engines: {node: '>=18'}
117
+ cpu: [riscv64]
118
+ os: [linux]
119
+
120
+ '@esbuild/linux-s390x@0.28.1':
121
+ resolution: {integrity: sha512-/lAIjX8aYFRByhh6L5rYtPEDRqa9de/4V/juOXcta5frjvzXO4/sqEtyytse0g3zZFuWu5cDN0MkLz2qRDD2Ag==}
122
+ engines: {node: '>=18'}
123
+ cpu: [s390x]
124
+ os: [linux]
125
+
126
+ '@esbuild/linux-x64@0.28.1':
127
+ resolution: {integrity: sha512-u/anNYF2mmVOEDwLtnQ1wOr3EZ9sTNGLWrsYGYwHWzGA3Si84IOkHXlbWTD1NB+9/1lcnweYKO54uhxZydNzfA==}
128
+ engines: {node: '>=18'}
129
+ cpu: [x64]
130
+ os: [linux]
131
+
132
+ '@esbuild/netbsd-arm64@0.28.1':
133
+ resolution: {integrity: sha512-oks0DYbLwWMmaakTsCb+zL4E+aHRVLom9IJZOAthMQEPiQmydXHkziYEsGYRx0uNV/IjEKGAV941JzH02pflqw==}
134
+ engines: {node: '>=18'}
135
+ cpu: [arm64]
136
+ os: [netbsd]
137
+
138
+ '@esbuild/netbsd-x64@0.28.1':
139
+ resolution: {integrity: sha512-aeL6lAnN89Hz43Mlh1G8ARasbuoYvSITDEx0tHh5b7jJnHcssqgjy9Yx430GDpmCa6OyrKoS0aNRjKundRizGg==}
140
+ engines: {node: '>=18'}
141
+ cpu: [x64]
142
+ os: [netbsd]
143
+
144
+ '@esbuild/openbsd-arm64@0.28.1':
145
+ resolution: {integrity: sha512-MEFJe5C3R8pwXdZ5Y21oo6m7ePiS0d9pWucn99O/wvyJZChoIQKrQDxKrGeW8F5+T0okTHesAmDeiHDTIq0V/Q==}
146
+ engines: {node: '>=18'}
147
+ cpu: [arm64]
148
+ os: [openbsd]
149
+
150
+ '@esbuild/openbsd-x64@0.28.1':
151
+ resolution: {integrity: sha512-i/ZLIOafE0Z8cI/XANJAixoJL/uRAoS2xOA3rb0xN+KK0K177cMAsQYkzHtBrtMXAKuAc7HGgcWiZ/sRC1Nxgw==}
152
+ engines: {node: '>=18'}
153
+ cpu: [x64]
154
+ os: [openbsd]
155
+
156
+ '@esbuild/openharmony-arm64@0.28.1':
157
+ resolution: {integrity: sha512-ge+Z7EXFNt2BO1oAMsVpiQ8EwndV9i1xXerAeTIK7AtPs3bKFXQM7nlRxDSIUIMeueR1CNXxqztLzdNeReKBJg==}
158
+ engines: {node: '>=18'}
159
+ cpu: [arm64]
160
+ os: [openharmony]
161
+
162
+ '@esbuild/sunos-x64@0.28.1':
163
+ resolution: {integrity: sha512-BEjgtECkL3vY+SaSQ6nzVfiALUeFxpawyp8Jmf5PtYhf1Ug40N1h/hxlhts+f1FvSvarEigdxS3BlSMI2PJLcQ==}
164
+ engines: {node: '>=18'}
165
+ cpu: [x64]
166
+ os: [sunos]
167
+
168
+ '@esbuild/win32-arm64@0.28.1':
169
+ resolution: {integrity: sha512-lCv9eK/H6ZJWbE7bh2nw54CZ9M2nupBxJcTsdk/QQnWkdSjKGuxmmH8/GWrlT1eMmZfn4dGcCjRte397WqfQXA==}
170
+ engines: {node: '>=18'}
171
+ cpu: [arm64]
172
+ os: [win32]
173
+
174
+ '@esbuild/win32-ia32@0.28.1':
175
+ resolution: {integrity: sha512-zvb/mB2bSCoJOpoCBgYKKpX6YM6mJBlBUVUtVj41DlZJVEB6/0CKlRYxP5wWl1C1ILiCoAU5wZZ4q1P3qeS6Eg==}
176
+ engines: {node: '>=18'}
177
+ cpu: [ia32]
178
+ os: [win32]
179
+
180
+ '@esbuild/win32-x64@0.28.1':
181
+ resolution: {integrity: sha512-bm4Mowrv+GXMlpWX++EcXw/iLyd1o3+bJkC2DkWXYVvgZCqD/bSj9ctZeAMC3cIxgjRVR2Dufaiu4YPxr5gW1A==}
182
+ engines: {node: '>=18'}
183
+ cpu: [x64]
184
+ os: [win32]
185
+
186
+ '@ts-morph/common@0.29.0':
187
+ resolution: {integrity: sha512-35oUmphHbJvQ/+UTwFNme/t2p3FoKiGJ5auTjjpNTop2dyREspirjMy82PLSC1pnDJ8ah1GU98hwpVt64YXQsg==}
188
+
189
+ '@types/node@25.9.3':
190
+ resolution: {integrity: sha512-603BddQMv3pUcr4U2dhujk83N2tTDVr/34wII2B6bJy6g+8WD6yUb11jszNs0gdi4PesVWl7ABt8nYMVpnLUcg==}
191
+
192
+ balanced-match@4.0.4:
193
+ resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
194
+ engines: {node: 18 || 20 || >=22}
195
+
196
+ brace-expansion@5.0.6:
197
+ resolution: {integrity: sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==}
198
+ engines: {node: 18 || 20 || >=22}
199
+
200
+ code-block-writer@13.0.3:
201
+ resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==}
202
+
203
+ commander@15.0.0:
204
+ resolution: {integrity: sha512-z67u4ZhzCL/Tydu1lJARtEZYWbWaN7oYLHbsuzocr6y4N6WZAagG3RQ4FW61V1/0+jImpj293XfrcYnd1qxtPg==}
205
+ engines: {node: '>=22.12.0'}
206
+
207
+ esbuild@0.28.1:
208
+ resolution: {integrity: sha512-HrJrvZv5ayxBzPfwphOoNzkzOIIlifzk0KJrGK2c8R4+LKpMtpYLQeUdjnwjWv/LZlkH2laZk+4w78pi99D4Vw==}
209
+ engines: {node: '>=18'}
210
+ hasBin: true
211
+
212
+ fdir@6.5.0:
213
+ resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==}
214
+ engines: {node: '>=12.0.0'}
215
+ peerDependencies:
216
+ picomatch: ^3 || ^4
217
+ peerDependenciesMeta:
218
+ picomatch:
219
+ optional: true
220
+
221
+ fsevents@2.3.3:
222
+ resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
223
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
224
+ os: [darwin]
225
+
226
+ minimatch@10.2.5:
227
+ resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==}
228
+ engines: {node: 18 || 20 || >=22}
229
+
230
+ path-browserify@1.0.1:
231
+ resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==}
232
+
233
+ picomatch@4.0.4:
234
+ resolution: {integrity: sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==}
235
+ engines: {node: '>=12'}
236
+
237
+ tinyglobby@0.2.17:
238
+ resolution: {integrity: sha512-wXR/dYpcqKmfWpEdZjiKJOwCNFndD0DMnrW/cYjVGttEkBfVgcLFHoNrlj47mjOVic9yyNu65alsgF4NQyTa2g==}
239
+ engines: {node: '>=12.0.0'}
240
+
241
+ ts-morph@28.0.0:
242
+ resolution: {integrity: sha512-Wp3tnZ2bzwxyTZMtgWVzXDfm7lB1Drz+y9DmmYH/L702PQhPyVrp3pkou3yIz4qjS14GY9kcpmLiOOMvl8oG1g==}
243
+
244
+ tsx@4.22.4:
245
+ resolution: {integrity: sha512-X8EX+XV4QR5xCsrgxaED954zTDfY8KqlDtskKEL0cHhyS/P8b4IFOvGDQpsC9Q1XnLq915wEfwwY/zzskCtmhg==}
246
+ engines: {node: '>=18.0.0'}
247
+ hasBin: true
248
+
249
+ typescript@6.0.3:
250
+ resolution: {integrity: sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==}
251
+ engines: {node: '>=14.17'}
252
+ hasBin: true
253
+
254
+ undici-types@7.24.6:
255
+ resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
256
+
257
+ snapshots:
258
+
259
+ '@esbuild/aix-ppc64@0.28.1':
260
+ optional: true
261
+
262
+ '@esbuild/android-arm64@0.28.1':
263
+ optional: true
264
+
265
+ '@esbuild/android-arm@0.28.1':
266
+ optional: true
267
+
268
+ '@esbuild/android-x64@0.28.1':
269
+ optional: true
270
+
271
+ '@esbuild/darwin-arm64@0.28.1':
272
+ optional: true
273
+
274
+ '@esbuild/darwin-x64@0.28.1':
275
+ optional: true
276
+
277
+ '@esbuild/freebsd-arm64@0.28.1':
278
+ optional: true
279
+
280
+ '@esbuild/freebsd-x64@0.28.1':
281
+ optional: true
282
+
283
+ '@esbuild/linux-arm64@0.28.1':
284
+ optional: true
285
+
286
+ '@esbuild/linux-arm@0.28.1':
287
+ optional: true
288
+
289
+ '@esbuild/linux-ia32@0.28.1':
290
+ optional: true
291
+
292
+ '@esbuild/linux-loong64@0.28.1':
293
+ optional: true
294
+
295
+ '@esbuild/linux-mips64el@0.28.1':
296
+ optional: true
297
+
298
+ '@esbuild/linux-ppc64@0.28.1':
299
+ optional: true
300
+
301
+ '@esbuild/linux-riscv64@0.28.1':
302
+ optional: true
303
+
304
+ '@esbuild/linux-s390x@0.28.1':
305
+ optional: true
306
+
307
+ '@esbuild/linux-x64@0.28.1':
308
+ optional: true
309
+
310
+ '@esbuild/netbsd-arm64@0.28.1':
311
+ optional: true
312
+
313
+ '@esbuild/netbsd-x64@0.28.1':
314
+ optional: true
315
+
316
+ '@esbuild/openbsd-arm64@0.28.1':
317
+ optional: true
318
+
319
+ '@esbuild/openbsd-x64@0.28.1':
320
+ optional: true
321
+
322
+ '@esbuild/openharmony-arm64@0.28.1':
323
+ optional: true
324
+
325
+ '@esbuild/sunos-x64@0.28.1':
326
+ optional: true
327
+
328
+ '@esbuild/win32-arm64@0.28.1':
329
+ optional: true
330
+
331
+ '@esbuild/win32-ia32@0.28.1':
332
+ optional: true
333
+
334
+ '@esbuild/win32-x64@0.28.1':
335
+ optional: true
336
+
337
+ '@ts-morph/common@0.29.0':
338
+ dependencies:
339
+ minimatch: 10.2.5
340
+ path-browserify: 1.0.1
341
+ tinyglobby: 0.2.17
342
+
343
+ '@types/node@25.9.3':
344
+ dependencies:
345
+ undici-types: 7.24.6
346
+
347
+ balanced-match@4.0.4: {}
348
+
349
+ brace-expansion@5.0.6:
350
+ dependencies:
351
+ balanced-match: 4.0.4
352
+
353
+ code-block-writer@13.0.3: {}
354
+
355
+ commander@15.0.0: {}
356
+
357
+ esbuild@0.28.1:
358
+ optionalDependencies:
359
+ '@esbuild/aix-ppc64': 0.28.1
360
+ '@esbuild/android-arm': 0.28.1
361
+ '@esbuild/android-arm64': 0.28.1
362
+ '@esbuild/android-x64': 0.28.1
363
+ '@esbuild/darwin-arm64': 0.28.1
364
+ '@esbuild/darwin-x64': 0.28.1
365
+ '@esbuild/freebsd-arm64': 0.28.1
366
+ '@esbuild/freebsd-x64': 0.28.1
367
+ '@esbuild/linux-arm': 0.28.1
368
+ '@esbuild/linux-arm64': 0.28.1
369
+ '@esbuild/linux-ia32': 0.28.1
370
+ '@esbuild/linux-loong64': 0.28.1
371
+ '@esbuild/linux-mips64el': 0.28.1
372
+ '@esbuild/linux-ppc64': 0.28.1
373
+ '@esbuild/linux-riscv64': 0.28.1
374
+ '@esbuild/linux-s390x': 0.28.1
375
+ '@esbuild/linux-x64': 0.28.1
376
+ '@esbuild/netbsd-arm64': 0.28.1
377
+ '@esbuild/netbsd-x64': 0.28.1
378
+ '@esbuild/openbsd-arm64': 0.28.1
379
+ '@esbuild/openbsd-x64': 0.28.1
380
+ '@esbuild/openharmony-arm64': 0.28.1
381
+ '@esbuild/sunos-x64': 0.28.1
382
+ '@esbuild/win32-arm64': 0.28.1
383
+ '@esbuild/win32-ia32': 0.28.1
384
+ '@esbuild/win32-x64': 0.28.1
385
+
386
+ fdir@6.5.0(picomatch@4.0.4):
387
+ optionalDependencies:
388
+ picomatch: 4.0.4
389
+
390
+ fsevents@2.3.3:
391
+ optional: true
392
+
393
+ minimatch@10.2.5:
394
+ dependencies:
395
+ brace-expansion: 5.0.6
396
+
397
+ path-browserify@1.0.1: {}
398
+
399
+ picomatch@4.0.4: {}
400
+
401
+ tinyglobby@0.2.17:
402
+ dependencies:
403
+ fdir: 6.5.0(picomatch@4.0.4)
404
+ picomatch: 4.0.4
405
+
406
+ ts-morph@28.0.0:
407
+ dependencies:
408
+ '@ts-morph/common': 0.29.0
409
+ code-block-writer: 13.0.3
410
+
411
+ tsx@4.22.4:
412
+ dependencies:
413
+ esbuild: 0.28.1
414
+ optionalDependencies:
415
+ fsevents: 2.3.3
416
+
417
+ typescript@6.0.3: {}
418
+
419
+ undici-types@7.24.6: {}
package/lib/index.js CHANGED
@@ -39,7 +39,7 @@ var require_package = __commonJS({
39
39
  "package.json"(exports2, module2) {
40
40
  module2.exports = {
41
41
  name: "coc-vscode-loader",
42
- version: "1.2.4",
42
+ version: "1.2.5",
43
43
  description: "Run VS Code extensions seamlessly in coc.nvim",
44
44
  main: "lib/index.js",
45
45
  keywords: [
@@ -60,8 +60,7 @@ var require_package = __commonJS({
60
60
  homepage: "https://www.npmjs.com/package/coc-vscode-loader",
61
61
  files: [
62
62
  "lib/",
63
- "converter/src/",
64
- "converter/package.json",
63
+ "converter/",
65
64
  "assets/"
66
65
  ],
67
66
  license: "MIT",
@@ -73,10 +72,14 @@ var require_package = __commonJS({
73
72
  build: "npm run bundle-converter && node esbuild.mjs",
74
73
  prepare: "npm run bundle-converter && node esbuild.mjs"
75
74
  },
75
+ dependencies: {
76
+ commander: "^15.0.0",
77
+ "ts-morph": "^28.0.0",
78
+ typescript: "^6.0.3"
79
+ },
76
80
  devDependencies: {
77
81
  "coc.nvim": "^0.0.83-next.18",
78
- esbuild: "^0.28.1",
79
- typescript: "^6.0.3"
82
+ esbuild: "^0.28.1"
80
83
  },
81
84
  activationEvents: [
82
85
  "onCommand:loader.open",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coc-vscode-loader",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "Run VS Code extensions seamlessly in coc.nvim",
5
5
  "main": "lib/index.js",
6
6
  "keywords": [
@@ -21,8 +21,7 @@
21
21
  "homepage": "https://www.npmjs.com/package/coc-vscode-loader",
22
22
  "files": [
23
23
  "lib/",
24
- "converter/src/",
25
- "converter/package.json",
24
+ "converter/",
26
25
  "assets/"
27
26
  ],
28
27
  "license": "MIT",
@@ -34,10 +33,14 @@
34
33
  "build": "npm run bundle-converter && node esbuild.mjs",
35
34
  "prepare": "npm run bundle-converter && node esbuild.mjs"
36
35
  },
36
+ "dependencies": {
37
+ "commander": "^15.0.0",
38
+ "ts-morph": "^28.0.0",
39
+ "typescript": "^6.0.3"
40
+ },
37
41
  "devDependencies": {
38
42
  "coc.nvim": "^0.0.83-next.18",
39
- "esbuild": "^0.28.1",
40
- "typescript": "^6.0.3"
43
+ "esbuild": "^0.28.1"
41
44
  },
42
45
  "activationEvents": [
43
46
  "onCommand:loader.open",