@rushstack/heft-vscode-extension-plugin 1.0.22 → 1.1.0

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.
Files changed (29) hide show
  1. package/CHANGELOG.json +635 -0
  2. package/CHANGELOG.md +187 -0
  3. package/heft-plugin.json +3 -3
  4. package/lib-commonjs/VSCodeExtensionPackagePlugin.js.map +1 -0
  5. package/lib-commonjs/VSCodeExtensionPublishPlugin.js.map +1 -0
  6. package/lib-commonjs/VSCodeExtensionVerifySignaturePlugin.js.map +1 -0
  7. package/{lib → lib-commonjs}/util.js +6 -3
  8. package/lib-commonjs/util.js.map +1 -0
  9. package/{lib → lib-dts}/VSCodeExtensionPackagePlugin.d.ts.map +1 -1
  10. package/{lib → lib-dts}/VSCodeExtensionPublishPlugin.d.ts.map +1 -1
  11. package/{lib → lib-dts}/VSCodeExtensionVerifySignaturePlugin.d.ts.map +1 -1
  12. package/{lib → lib-dts}/util.d.ts +2 -2
  13. package/lib-dts/util.d.ts.map +1 -0
  14. package/lib-esm/VSCodeExtensionPackagePlugin.js +47 -0
  15. package/lib-esm/VSCodeExtensionPackagePlugin.js.map +1 -0
  16. package/lib-esm/VSCodeExtensionPublishPlugin.js +77 -0
  17. package/lib-esm/VSCodeExtensionPublishPlugin.js.map +1 -0
  18. package/lib-esm/VSCodeExtensionVerifySignaturePlugin.js +42 -0
  19. package/lib-esm/VSCodeExtensionVerifySignaturePlugin.js.map +1 -0
  20. package/lib-esm/util.js +31 -0
  21. package/lib-esm/util.js.map +1 -0
  22. package/package.json +25 -12
  23. package/lib/util.d.ts.map +0 -1
  24. /package/{lib → lib-commonjs}/VSCodeExtensionPackagePlugin.js +0 -0
  25. /package/{lib → lib-commonjs}/VSCodeExtensionPublishPlugin.js +0 -0
  26. /package/{lib → lib-commonjs}/VSCodeExtensionVerifySignaturePlugin.js +0 -0
  27. /package/{lib → lib-dts}/VSCodeExtensionPackagePlugin.d.ts +0 -0
  28. /package/{lib → lib-dts}/VSCodeExtensionPublishPlugin.d.ts +0 -0
  29. /package/{lib → lib-dts}/VSCodeExtensionVerifySignaturePlugin.d.ts +0 -0
package/CHANGELOG.json ADDED
@@ -0,0 +1,635 @@
1
+ {
2
+ "name": "@rushstack/heft-vscode-extension-plugin",
3
+ "entries": [
4
+ {
5
+ "version": "1.1.0",
6
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.0",
7
+ "date": "Thu, 19 Feb 2026 00:04:52 GMT",
8
+ "comments": {
9
+ "minor": [
10
+ {
11
+ "comment": "Normalize package layout. CommonJS is now under `lib-commonjs`, DTS is now under `lib-dts`, and ESM is now under `lib-esm`. Imports to `lib` still work as before, handled by the `\"exports\"` field in `package.json`."
12
+ }
13
+ ],
14
+ "dependency": [
15
+ {
16
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.0`"
17
+ },
18
+ {
19
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.0`"
20
+ },
21
+ {
22
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.2.0`"
23
+ },
24
+ {
25
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.14` to `1.2.0`"
26
+ }
27
+ ]
28
+ }
29
+ },
30
+ {
31
+ "version": "1.0.22",
32
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.22",
33
+ "date": "Sat, 07 Feb 2026 01:13:26 GMT",
34
+ "comments": {
35
+ "dependency": [
36
+ {
37
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.14`"
38
+ },
39
+ {
40
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.19`"
41
+ },
42
+ {
43
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.13` to `1.1.14`"
44
+ }
45
+ ]
46
+ }
47
+ },
48
+ {
49
+ "version": "1.0.21",
50
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.21",
51
+ "date": "Wed, 04 Feb 2026 20:42:47 GMT",
52
+ "comments": {
53
+ "dependency": [
54
+ {
55
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.13`"
56
+ },
57
+ {
58
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.18`"
59
+ },
60
+ {
61
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.12` to `1.1.13`"
62
+ }
63
+ ]
64
+ }
65
+ },
66
+ {
67
+ "version": "1.0.20",
68
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.20",
69
+ "date": "Wed, 04 Feb 2026 16:13:27 GMT",
70
+ "comments": {
71
+ "dependency": [
72
+ {
73
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.12`"
74
+ },
75
+ {
76
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.17`"
77
+ },
78
+ {
79
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.11` to `1.1.12`"
80
+ }
81
+ ]
82
+ }
83
+ },
84
+ {
85
+ "version": "1.0.19",
86
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.19",
87
+ "date": "Fri, 30 Jan 2026 01:16:13 GMT",
88
+ "comments": {
89
+ "dependency": [
90
+ {
91
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.11`"
92
+ },
93
+ {
94
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.16`"
95
+ },
96
+ {
97
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.10` to `1.1.11`"
98
+ }
99
+ ]
100
+ }
101
+ },
102
+ {
103
+ "version": "1.0.18",
104
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.18",
105
+ "date": "Thu, 08 Jan 2026 01:12:30 GMT",
106
+ "comments": {
107
+ "dependency": [
108
+ {
109
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.10`"
110
+ },
111
+ {
112
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.15`"
113
+ },
114
+ {
115
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.9` to `1.1.10`"
116
+ }
117
+ ]
118
+ }
119
+ },
120
+ {
121
+ "version": "1.0.17",
122
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.17",
123
+ "date": "Wed, 07 Jan 2026 01:12:25 GMT",
124
+ "comments": {
125
+ "dependency": [
126
+ {
127
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.21.0`"
128
+ },
129
+ {
130
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.9`"
131
+ },
132
+ {
133
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.14`"
134
+ },
135
+ {
136
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.8` to `1.1.9`"
137
+ }
138
+ ]
139
+ }
140
+ },
141
+ {
142
+ "version": "1.0.16",
143
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.16",
144
+ "date": "Mon, 05 Jan 2026 16:12:49 GMT",
145
+ "comments": {
146
+ "dependency": [
147
+ {
148
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.20.0`"
149
+ },
150
+ {
151
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.8`"
152
+ },
153
+ {
154
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.13`"
155
+ },
156
+ {
157
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.7` to `1.1.8`"
158
+ }
159
+ ]
160
+ }
161
+ },
162
+ {
163
+ "version": "1.0.15",
164
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.15",
165
+ "date": "Sat, 06 Dec 2025 01:12:28 GMT",
166
+ "comments": {
167
+ "dependency": [
168
+ {
169
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.19.1`"
170
+ },
171
+ {
172
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.5`"
173
+ },
174
+ {
175
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.7`"
176
+ },
177
+ {
178
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.12`"
179
+ },
180
+ {
181
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.6` to `1.1.7`"
182
+ }
183
+ ]
184
+ }
185
+ },
186
+ {
187
+ "version": "1.0.14",
188
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.14",
189
+ "date": "Wed, 03 Dec 2025 01:12:28 GMT",
190
+ "comments": {
191
+ "dependency": [
192
+ {
193
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.11`"
194
+ }
195
+ ]
196
+ }
197
+ },
198
+ {
199
+ "version": "1.0.13",
200
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.13",
201
+ "date": "Fri, 21 Nov 2025 16:13:56 GMT",
202
+ "comments": {
203
+ "dependency": [
204
+ {
205
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.19.0`"
206
+ },
207
+ {
208
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.4`"
209
+ },
210
+ {
211
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.6`"
212
+ },
213
+ {
214
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.10`"
215
+ },
216
+ {
217
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.5` to `1.1.6`"
218
+ }
219
+ ]
220
+ }
221
+ },
222
+ {
223
+ "version": "1.0.12",
224
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.12",
225
+ "date": "Wed, 12 Nov 2025 01:57:54 GMT",
226
+ "comments": {
227
+ "dependency": [
228
+ {
229
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.9`"
230
+ }
231
+ ]
232
+ }
233
+ },
234
+ {
235
+ "version": "1.0.11",
236
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.11",
237
+ "date": "Wed, 12 Nov 2025 01:12:56 GMT",
238
+ "comments": {
239
+ "dependency": [
240
+ {
241
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.5`"
242
+ },
243
+ {
244
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.8`"
245
+ },
246
+ {
247
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.4` to `1.1.5`"
248
+ }
249
+ ]
250
+ }
251
+ },
252
+ {
253
+ "version": "1.0.10",
254
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.10",
255
+ "date": "Tue, 11 Nov 2025 16:13:26 GMT",
256
+ "comments": {
257
+ "dependency": [
258
+ {
259
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.7`"
260
+ }
261
+ ]
262
+ }
263
+ },
264
+ {
265
+ "version": "1.0.9",
266
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.9",
267
+ "date": "Mon, 10 Nov 2025 16:12:32 GMT",
268
+ "comments": {
269
+ "dependency": [
270
+ {
271
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.6`"
272
+ }
273
+ ]
274
+ }
275
+ },
276
+ {
277
+ "version": "1.0.8",
278
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.8",
279
+ "date": "Tue, 04 Nov 2025 08:15:15 GMT",
280
+ "comments": {
281
+ "dependency": [
282
+ {
283
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.4`"
284
+ },
285
+ {
286
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.5`"
287
+ },
288
+ {
289
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.3` to `1.1.4`"
290
+ }
291
+ ]
292
+ }
293
+ },
294
+ {
295
+ "version": "1.0.7",
296
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.7",
297
+ "date": "Fri, 24 Oct 2025 11:22:09 GMT",
298
+ "comments": {
299
+ "dependency": [
300
+ {
301
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.4`"
302
+ }
303
+ ]
304
+ }
305
+ },
306
+ {
307
+ "version": "1.0.6",
308
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.6",
309
+ "date": "Fri, 24 Oct 2025 00:13:38 GMT",
310
+ "comments": {
311
+ "dependency": [
312
+ {
313
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.18.0`"
314
+ },
315
+ {
316
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.3`"
317
+ },
318
+ {
319
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.3`"
320
+ },
321
+ {
322
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.3`"
323
+ },
324
+ {
325
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.2` to `1.1.3`"
326
+ }
327
+ ]
328
+ }
329
+ },
330
+ {
331
+ "version": "1.0.5",
332
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.5",
333
+ "date": "Wed, 22 Oct 2025 00:57:54 GMT",
334
+ "comments": {
335
+ "dependency": [
336
+ {
337
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.17.1`"
338
+ },
339
+ {
340
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.2`"
341
+ },
342
+ {
343
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.2`"
344
+ },
345
+ {
346
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.2`"
347
+ },
348
+ {
349
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.1` to `1.1.2`"
350
+ }
351
+ ]
352
+ }
353
+ },
354
+ {
355
+ "version": "1.0.4",
356
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.4",
357
+ "date": "Tue, 14 Oct 2025 15:13:22 GMT",
358
+ "comments": {
359
+ "dependency": [
360
+ {
361
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.1`"
362
+ }
363
+ ]
364
+ }
365
+ },
366
+ {
367
+ "version": "1.0.3",
368
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.3",
369
+ "date": "Mon, 13 Oct 2025 15:13:02 GMT",
370
+ "comments": {
371
+ "dependency": [
372
+ {
373
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.0`"
374
+ }
375
+ ]
376
+ }
377
+ },
378
+ {
379
+ "version": "1.0.2",
380
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.2",
381
+ "date": "Wed, 08 Oct 2025 00:13:29 GMT",
382
+ "comments": {
383
+ "dependency": [
384
+ {
385
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.17.0`"
386
+ },
387
+ {
388
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.1`"
389
+ },
390
+ {
391
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.1`"
392
+ },
393
+ {
394
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.10.2`"
395
+ },
396
+ {
397
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.1.0` to `1.1.1`"
398
+ }
399
+ ]
400
+ }
401
+ },
402
+ {
403
+ "version": "1.0.1",
404
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.1",
405
+ "date": "Fri, 03 Oct 2025 20:10:00 GMT",
406
+ "comments": {
407
+ "dependency": [
408
+ {
409
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.16.0`"
410
+ },
411
+ {
412
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.19.0`"
413
+ },
414
+ {
415
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.1.0`"
416
+ },
417
+ {
418
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.10.1`"
419
+ },
420
+ {
421
+ "comment": "Updating dependency \"@rushstack/heft\" from `^1.0.0` to `1.1.0`"
422
+ }
423
+ ]
424
+ }
425
+ },
426
+ {
427
+ "version": "1.0.0",
428
+ "tag": "@rushstack/heft-vscode-extension-plugin_v1.0.0",
429
+ "date": "Tue, 30 Sep 2025 23:57:45 GMT",
430
+ "comments": {
431
+ "major": [
432
+ {
433
+ "comment": "Release Heft version 1.0.0"
434
+ }
435
+ ],
436
+ "dependency": [
437
+ {
438
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.15.1`"
439
+ },
440
+ {
441
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.18.0`"
442
+ },
443
+ {
444
+ "comment": "Updating dependency \"@rushstack/heft\" to `1.0.0`"
445
+ },
446
+ {
447
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.10.0`"
448
+ },
449
+ {
450
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.75.0` to `1.0.0`"
451
+ }
452
+ ]
453
+ }
454
+ },
455
+ {
456
+ "version": "0.2.8",
457
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.8",
458
+ "date": "Tue, 30 Sep 2025 20:33:51 GMT",
459
+ "comments": {
460
+ "dependency": [
461
+ {
462
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.15.0`"
463
+ },
464
+ {
465
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.17.0`"
466
+ },
467
+ {
468
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.75.0`"
469
+ },
470
+ {
471
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.7`"
472
+ },
473
+ {
474
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.74.5` to `0.75.0`"
475
+ }
476
+ ]
477
+ }
478
+ },
479
+ {
480
+ "version": "0.2.7",
481
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.7",
482
+ "date": "Fri, 12 Sep 2025 15:13:07 GMT",
483
+ "comments": {
484
+ "dependency": [
485
+ {
486
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.74.5`"
487
+ },
488
+ {
489
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.6`"
490
+ },
491
+ {
492
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.74.4` to `0.74.5`"
493
+ }
494
+ ]
495
+ }
496
+ },
497
+ {
498
+ "version": "0.2.6",
499
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.6",
500
+ "date": "Thu, 11 Sep 2025 00:22:31 GMT",
501
+ "comments": {
502
+ "dependency": [
503
+ {
504
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.16.0`"
505
+ },
506
+ {
507
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.74.4`"
508
+ },
509
+ {
510
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.5`"
511
+ },
512
+ {
513
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.74.3` to `0.74.4`"
514
+ }
515
+ ]
516
+ }
517
+ },
518
+ {
519
+ "version": "0.2.5",
520
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.5",
521
+ "date": "Fri, 29 Aug 2025 00:08:01 GMT",
522
+ "comments": {
523
+ "patch": [
524
+ {
525
+ "comment": "add extraPackagingFlags plugin option"
526
+ }
527
+ ]
528
+ }
529
+ },
530
+ {
531
+ "version": "0.2.4",
532
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.4",
533
+ "date": "Thu, 21 Aug 2025 00:12:45 GMT",
534
+ "comments": {
535
+ "patch": [
536
+ {
537
+ "comment": "Add support for verifying extension signature."
538
+ }
539
+ ]
540
+ }
541
+ },
542
+ {
543
+ "version": "0.2.3",
544
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.3",
545
+ "date": "Tue, 19 Aug 2025 20:45:02 GMT",
546
+ "comments": {
547
+ "dependency": [
548
+ {
549
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.74.3`"
550
+ },
551
+ {
552
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.4`"
553
+ },
554
+ {
555
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.74.2` to `0.74.3`"
556
+ }
557
+ ]
558
+ }
559
+ },
560
+ {
561
+ "version": "0.2.2",
562
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.2",
563
+ "date": "Fri, 01 Aug 2025 00:12:49 GMT",
564
+ "comments": {
565
+ "dependency": [
566
+ {
567
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.74.2`"
568
+ },
569
+ {
570
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.3`"
571
+ },
572
+ {
573
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.74.1` to `0.74.2`"
574
+ }
575
+ ]
576
+ }
577
+ },
578
+ {
579
+ "version": "0.2.1",
580
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.1",
581
+ "date": "Mon, 28 Jul 2025 15:11:56 GMT",
582
+ "comments": {
583
+ "dependency": [
584
+ {
585
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.2`"
586
+ }
587
+ ]
588
+ }
589
+ },
590
+ {
591
+ "version": "0.2.0",
592
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.2.0",
593
+ "date": "Sat, 26 Jul 2025 00:12:22 GMT",
594
+ "comments": {
595
+ "minor": [
596
+ {
597
+ "comment": "Add support for generating extension manifest."
598
+ },
599
+ {
600
+ "comment": "Add VSIX publish plugin."
601
+ }
602
+ ]
603
+ }
604
+ },
605
+ {
606
+ "version": "0.1.0",
607
+ "tag": "@rushstack/heft-vscode-extension-plugin_v0.1.0",
608
+ "date": "Wed, 23 Jul 2025 20:55:57 GMT",
609
+ "comments": {
610
+ "minor": [
611
+ {
612
+ "comment": "Add new Heft plugin to package files into a VSIX file"
613
+ }
614
+ ],
615
+ "dependency": [
616
+ {
617
+ "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.14.0`"
618
+ },
619
+ {
620
+ "comment": "Updating dependency \"@rushstack/terminal\" to `0.15.4`"
621
+ },
622
+ {
623
+ "comment": "Updating dependency \"@rushstack/heft\" to `0.74.1`"
624
+ },
625
+ {
626
+ "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.9.1`"
627
+ },
628
+ {
629
+ "comment": "Updating dependency \"@rushstack/heft\" from `^0.73.6` to `0.74.1`"
630
+ }
631
+ ]
632
+ }
633
+ }
634
+ ]
635
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,187 @@
1
+ # Change Log - @rushstack/heft-vscode-extension-plugin
2
+
3
+ This log was last generated on Thu, 19 Feb 2026 00:04:52 GMT and should not be manually modified.
4
+
5
+ ## 1.1.0
6
+ Thu, 19 Feb 2026 00:04:52 GMT
7
+
8
+ ### Minor changes
9
+
10
+ - Normalize package layout. CommonJS is now under `lib-commonjs`, DTS is now under `lib-dts`, and ESM is now under `lib-esm`. Imports to `lib` still work as before, handled by the `"exports"` field in `package.json`.
11
+
12
+ ## 1.0.22
13
+ Sat, 07 Feb 2026 01:13:26 GMT
14
+
15
+ _Version update only_
16
+
17
+ ## 1.0.21
18
+ Wed, 04 Feb 2026 20:42:47 GMT
19
+
20
+ _Version update only_
21
+
22
+ ## 1.0.20
23
+ Wed, 04 Feb 2026 16:13:27 GMT
24
+
25
+ _Version update only_
26
+
27
+ ## 1.0.19
28
+ Fri, 30 Jan 2026 01:16:13 GMT
29
+
30
+ _Version update only_
31
+
32
+ ## 1.0.18
33
+ Thu, 08 Jan 2026 01:12:30 GMT
34
+
35
+ _Version update only_
36
+
37
+ ## 1.0.17
38
+ Wed, 07 Jan 2026 01:12:25 GMT
39
+
40
+ _Version update only_
41
+
42
+ ## 1.0.16
43
+ Mon, 05 Jan 2026 16:12:49 GMT
44
+
45
+ _Version update only_
46
+
47
+ ## 1.0.15
48
+ Sat, 06 Dec 2025 01:12:28 GMT
49
+
50
+ _Version update only_
51
+
52
+ ## 1.0.14
53
+ Wed, 03 Dec 2025 01:12:28 GMT
54
+
55
+ _Version update only_
56
+
57
+ ## 1.0.13
58
+ Fri, 21 Nov 2025 16:13:56 GMT
59
+
60
+ _Version update only_
61
+
62
+ ## 1.0.12
63
+ Wed, 12 Nov 2025 01:57:54 GMT
64
+
65
+ _Version update only_
66
+
67
+ ## 1.0.11
68
+ Wed, 12 Nov 2025 01:12:56 GMT
69
+
70
+ _Version update only_
71
+
72
+ ## 1.0.10
73
+ Tue, 11 Nov 2025 16:13:26 GMT
74
+
75
+ _Version update only_
76
+
77
+ ## 1.0.9
78
+ Mon, 10 Nov 2025 16:12:32 GMT
79
+
80
+ _Version update only_
81
+
82
+ ## 1.0.8
83
+ Tue, 04 Nov 2025 08:15:15 GMT
84
+
85
+ _Version update only_
86
+
87
+ ## 1.0.7
88
+ Fri, 24 Oct 2025 11:22:09 GMT
89
+
90
+ _Version update only_
91
+
92
+ ## 1.0.6
93
+ Fri, 24 Oct 2025 00:13:38 GMT
94
+
95
+ _Version update only_
96
+
97
+ ## 1.0.5
98
+ Wed, 22 Oct 2025 00:57:54 GMT
99
+
100
+ _Version update only_
101
+
102
+ ## 1.0.4
103
+ Tue, 14 Oct 2025 15:13:22 GMT
104
+
105
+ _Version update only_
106
+
107
+ ## 1.0.3
108
+ Mon, 13 Oct 2025 15:13:02 GMT
109
+
110
+ _Version update only_
111
+
112
+ ## 1.0.2
113
+ Wed, 08 Oct 2025 00:13:29 GMT
114
+
115
+ _Version update only_
116
+
117
+ ## 1.0.1
118
+ Fri, 03 Oct 2025 20:10:00 GMT
119
+
120
+ _Version update only_
121
+
122
+ ## 1.0.0
123
+ Tue, 30 Sep 2025 23:57:45 GMT
124
+
125
+ ### Breaking changes
126
+
127
+ - Release Heft version 1.0.0
128
+
129
+ ## 0.2.8
130
+ Tue, 30 Sep 2025 20:33:51 GMT
131
+
132
+ _Version update only_
133
+
134
+ ## 0.2.7
135
+ Fri, 12 Sep 2025 15:13:07 GMT
136
+
137
+ _Version update only_
138
+
139
+ ## 0.2.6
140
+ Thu, 11 Sep 2025 00:22:31 GMT
141
+
142
+ _Version update only_
143
+
144
+ ## 0.2.5
145
+ Fri, 29 Aug 2025 00:08:01 GMT
146
+
147
+ ### Patches
148
+
149
+ - add extraPackagingFlags plugin option
150
+
151
+ ## 0.2.4
152
+ Thu, 21 Aug 2025 00:12:45 GMT
153
+
154
+ ### Patches
155
+
156
+ - Add support for verifying extension signature.
157
+
158
+ ## 0.2.3
159
+ Tue, 19 Aug 2025 20:45:02 GMT
160
+
161
+ _Version update only_
162
+
163
+ ## 0.2.2
164
+ Fri, 01 Aug 2025 00:12:49 GMT
165
+
166
+ _Version update only_
167
+
168
+ ## 0.2.1
169
+ Mon, 28 Jul 2025 15:11:56 GMT
170
+
171
+ _Version update only_
172
+
173
+ ## 0.2.0
174
+ Sat, 26 Jul 2025 00:12:22 GMT
175
+
176
+ ### Minor changes
177
+
178
+ - Add support for generating extension manifest.
179
+ - Add VSIX publish plugin.
180
+
181
+ ## 0.1.0
182
+ Wed, 23 Jul 2025 20:55:57 GMT
183
+
184
+ ### Minor changes
185
+
186
+ - Add new Heft plugin to package files into a VSIX file
187
+
package/heft-plugin.json CHANGED
@@ -3,12 +3,12 @@
3
3
  "taskPlugins": [
4
4
  {
5
5
  "pluginName": "vscode-extension-package-plugin",
6
- "entryPoint": "./lib/VSCodeExtensionPackagePlugin.js",
6
+ "entryPoint": "./lib-commonjs/VSCodeExtensionPackagePlugin.js",
7
7
  "parameterScope": "package"
8
8
  },
9
9
  {
10
10
  "pluginName": "vscode-extension-verify-signature-plugin",
11
- "entryPoint": "./lib/VSCodeExtensionVerifySignaturePlugin.js",
11
+ "entryPoint": "./lib-commonjs/VSCodeExtensionVerifySignaturePlugin.js",
12
12
  "parameterScope": "verify-signature",
13
13
  "parameters": [
14
14
  {
@@ -36,7 +36,7 @@
36
36
  },
37
37
  {
38
38
  "pluginName": "vscode-extension-publish-plugin",
39
- "entryPoint": "./lib/VSCodeExtensionPublishPlugin.js",
39
+ "entryPoint": "./lib-commonjs/VSCodeExtensionPublishPlugin.js",
40
40
  "parameterScope": "publish-vsix",
41
41
  "parameters": [
42
42
  {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionPackagePlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionPackagePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,gDAAkC;AAUlC,iCAA6D;AAyB7D,MAAM,WAAW,GAAsC,iCAAiC,CAAC;AAEzF,MAAqB,4BAA4B;IAGxC,KAAK,CACV,eAAiC,EACjC,iBAAoC,EACpC,aAAmD;QAEnD,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC9F,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;YAC/F,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC;YAC9C,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,eAAe,CAAC;YAEpB,QAAQ,CAAC,SAAS,CAAC,sBAAsB,qBAAc,EAAE,CAAC,CAAC;YAE3D,QAAQ,CAAC,SAAS,CAAC,uBAAuB,kBAAkB,OAAO,QAAQ,EAAE,CAAC,CAAC;YAC/E,MAAM,aAAa,GAA+B,MAAM,IAAA,0BAAmB,EACzE,QAAQ,EACR,MAAM,EACN;gBACE,qBAAc;gBACd,SAAS;gBACT,mBAAmB;gBACnB,OAAO;gBACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,GAAG,mBAAmB;aACvB,EACD;gBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC;aAC3E,CACF,CAAC;YACF,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YAElD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,cAAc,GAA+B,MAAM,IAAA,0BAAmB,EAC1E,QAAQ,EACR,MAAM,EACN;gBACE,qBAAc;gBACd,mBAAmB;gBACnB,eAAe;gBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,OAAO;gBACP,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;aAC3B,EACD;gBACE,uBAAuB,EAAE,eAAe;aACzC,CACF,CAAC;YACF,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAEvD,QAAQ,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AA9DD,+CA8DC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionPackagePluginOptions {\n /**\n * The folder where the unpacked VSIX files are located.\n * This is typically the output folder of the VSCode extension build.\n */\n unpackedFolderPath: string;\n /**\n * The path where the packaged VSIX file will be saved.\n * This can be a directory or a full vsix file path.\n * If a directory is provided, the VSIX file will be named based on the extension's `package.json` name and version.\n */\n vsixPath: string;\n /**\n * The path where the generated manifest file will be saved.\n * This manifest is used for signing the VS Code extension.\n */\n manifestPath: string;\n /**\n * Additional flags to pass to the VSCE packaging command.\n */\n extraPackagingFlags?: string[];\n}\n\nconst PLUGIN_NAME: 'vscode-extension-package-plugin' = 'vscode-extension-package-plugin';\n\nexport default class VSCodeExtensionPackagePlugin\n implements IHeftTaskPlugin<IVSCodeExtensionPackagePluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionPackagePluginOptions\n ): void {\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { unpackedFolderPath, vsixPath, manifestPath, extraPackagingFlags = [] } = pluginOptions;\n const { buildFolderPath } = heftConfiguration;\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n\n terminal.writeLine(`Packaging VSIX from ${unpackedFolderPath} to ${vsixPath}`);\n const packageResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'package',\n '--no-dependencies',\n '--out',\n path.resolve(vsixPath),\n ...extraPackagingFlags\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath, unpackedFolderPath)\n }\n );\n if (packageResult.exitCode !== 0) {\n throw new Error(`VSIX packaging failed with exit code ${packageResult.exitCode}`);\n }\n terminal.writeLine('VSIX successfully packaged.');\n\n terminal.writeLine(`Generating manifest at ${manifestPath}`);\n const manifestResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'generate-manifest',\n '--packagePath',\n path.resolve(vsixPath),\n '--out',\n path.resolve(manifestPath)\n ],\n {\n currentWorkingDirectory: buildFolderPath\n }\n );\n if (manifestResult.exitCode !== 0) {\n throw new Error(`Manifest generation failed with exit code ${manifestResult.exitCode}`);\n }\n terminal.writeLine('Manifest successfully generated.');\n\n terminal.writeLine(`VSIX package and manifest generation completed successfully.`);\n });\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionPublishPlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionPublishPlugin.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions,\n CommandLineStringParameter,\n CommandLineFlagParameter\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionPublishPluginOptions {}\n\nconst PLUGIN_NAME: 'vscode-extension-publish-plugin' = 'vscode-extension-publish-plugin';\n\nconst VSIX_PATH_PARAMETER_NAME: string = '--vsix-path';\nconst MANIFEST_PATH_PARAMETER_NAME: string = '--manifest-path';\nconst SIGNATURE_PATH_PARAMETER_NAME: string = '--signature-path';\nconst PUBLISH_UNSIGNED_PARAMETER_NAME: string = '--publish-unsigned';\n\nexport default class VSCodeExtensionPublishPlugin\n implements IHeftTaskPlugin<IVSCodeExtensionPublishPluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionPublishPluginOptions\n ): void {\n const vsixPathParameter: CommandLineStringParameter =\n heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);\n const manifestPathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n MANIFEST_PATH_PARAMETER_NAME\n );\n const signaturePathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n SIGNATURE_PATH_PARAMETER_NAME\n );\n const publishUnsignedParameter: CommandLineFlagParameter = heftTaskSession.parameters.getFlagParameter(\n PUBLISH_UNSIGNED_PARAMETER_NAME\n );\n\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n // required parameters defined in heft-plugin.json\n const vsixPath: string = vsixPathParameter.value!;\n\n // manifestPath and signaturePath are required if publishUnsigned is unset\n const manifestPath: string | undefined = manifestPathParameter.value;\n const signaturePath: string | undefined = signaturePathParameter.value;\n const publishUnsigned: boolean = publishUnsignedParameter.value;\n if (publishUnsigned) {\n terminal.writeLine(`Publishing unsigned VSIX ${vsixPath}`);\n } else {\n if (!manifestPath || !signaturePath) {\n throw new Error(\n `The parameters \"${MANIFEST_PATH_PARAMETER_NAME}\" and \"${SIGNATURE_PATH_PARAMETER_NAME}\" are required for the VSCodeExtensionPublishPlugin.`\n );\n }\n }\n\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { buildFolderPath } = heftConfiguration;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n terminal.writeLine(`Publishing VSIX ${vsixPath}`);\n\n let publishResult: IWaitForExitResult<string>;\n\n if (publishUnsigned) {\n publishResult = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'publish',\n '--no-dependencies',\n '--azure-credential',\n '--packagePath',\n path.resolve(vsixPath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n } else {\n if (!manifestPath) {\n throw new Error(`Missing manifest path for the VSCodeExtensionPublishPlugin.`);\n }\n if (!signaturePath) {\n throw new Error(`Missing signature path for the VSCodeExtensionPublishPlugin.`);\n }\n publishResult = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'publish',\n '--no-dependencies',\n '--azure-credential',\n '--packagePath',\n path.resolve(vsixPath),\n '--manifestPath',\n path.resolve(manifestPath),\n '--signaturePath',\n path.resolve(signaturePath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n }\n if (publishResult.exitCode !== 0) {\n throw new Error(`VSIX publishing failed with exit code ${publishResult.exitCode}`);\n }\n terminal.writeLine('VSIX successfully published.');\n });\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionVerifySignaturePlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionVerifySignaturePlugin.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAE3D,gDAAkC;AAWlC,iCAA6D;AAI7D,MAAM,WAAW,GAA+C,0CAA0C,CAAC;AAE3G,MAAM,wBAAwB,GAAW,aAAa,CAAC;AACvD,MAAM,4BAA4B,GAAW,iBAAiB,CAAC;AAC/D,MAAM,6BAA6B,GAAW,kBAAkB,CAAC;AAEjE,MAAqB,oCAAoC;IAGhD,KAAK,CACV,eAAiC,EACjC,iBAAoC,EACpC,aAA2D;QAE3D,MAAM,iBAAiB,GACrB,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QAC1E,MAAM,qBAAqB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACrG,4BAA4B,CAC7B,CAAC;QACF,MAAM,sBAAsB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACtG,6BAA6B,CAC9B,CAAC;QAEF,kDAAkD;QAClD,MAAM,QAAQ,GAAW,iBAAiB,CAAC,KAAM,CAAC;QAClD,MAAM,YAAY,GAAW,qBAAqB,CAAC,KAAM,CAAC;QAC1D,MAAM,aAAa,GAAW,sBAAsB,CAAC,KAAM,CAAC;QAE5D,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC9F,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC;YAC9C,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,eAAe,CAAC;YAEpB,QAAQ,CAAC,SAAS,CAAC,sBAAsB,qBAAc,EAAE,CAAC,CAAC;YAC3D,QAAQ,CAAC,SAAS,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;YAEtD,MAAM,qBAAqB,GAA+B,MAAM,IAAA,0BAAmB,EACjF,QAAQ,EACR,MAAM,EACN;gBACE,qBAAc;gBACd,kBAAkB;gBAClB,eAAe;gBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,gBAAgB;gBAChB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC1B,iBAAiB;gBACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;aAC5B,EACD;gBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;aACvD,CACF,CAAC;YACF,IAAI,qBAAqB,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,qDAAqD,qBAAqB,CAAC,QAAQ,EAAE,CACtF,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxDD,uDAwDC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions,\n CommandLineStringParameter\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionVerifySignaturePluginOptions {}\n\nconst PLUGIN_NAME: 'vscode-extension-verify-signature-plugin' = 'vscode-extension-verify-signature-plugin';\n\nconst VSIX_PATH_PARAMETER_NAME: string = '--vsix-path';\nconst MANIFEST_PATH_PARAMETER_NAME: string = '--manifest-path';\nconst SIGNATURE_PATH_PARAMETER_NAME: string = '--signature-path';\n\nexport default class VSCodeExtensionVerifySignaturePlugin\n implements IHeftTaskPlugin<IVSCodeExtensionVerifySignaturePluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionVerifySignaturePluginOptions\n ): void {\n const vsixPathParameter: CommandLineStringParameter =\n heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);\n const manifestPathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n MANIFEST_PATH_PARAMETER_NAME\n );\n const signaturePathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n SIGNATURE_PATH_PARAMETER_NAME\n );\n\n // required parameters defined in heft-plugin.json\n const vsixPath: string = vsixPathParameter.value!;\n const manifestPath: string = manifestPathParameter.value!;\n const signaturePath: string = signaturePathParameter.value!;\n\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { buildFolderPath } = heftConfiguration;\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n terminal.writeLine(`Verifying signature ${vsixPath}`);\n\n const verifySignatureResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'verify-signature',\n '--packagePath',\n path.resolve(vsixPath),\n '--manifestPath',\n path.resolve(manifestPath),\n '--signaturePath',\n path.resolve(signaturePath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n if (verifySignatureResult.exitCode !== 0) {\n throw new Error(\n `VSIX signature verification failed with exit code ${verifySignatureResult.exitCode}`\n );\n }\n terminal.writeLine('Successfully verified VSIX signature.');\n });\n }\n}\n"]}
@@ -37,16 +37,19 @@ var __importStar = (this && this.__importStar) || (function () {
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.vsceScriptPath = void 0;
39
39
  exports.executeAndWaitAsync = executeAndWaitAsync;
40
- const node_core_library_1 = require("@rushstack/node-core-library");
41
40
  const path = __importStar(require("node:path"));
41
+ const node_core_library_1 = require("@rushstack/node-core-library");
42
42
  const terminal_1 = require("@rushstack/terminal");
43
43
  async function executeAndWaitAsync(terminal, command, args, options = {}) {
44
44
  var _a, _b;
45
- const childProcess = node_core_library_1.Executable.spawn(command, args, Object.assign(Object.assign({}, options), { stdio: [
45
+ const childProcess = node_core_library_1.Executable.spawn(command, args, {
46
+ ...options,
47
+ stdio: [
46
48
  'ignore', // stdin
47
49
  'pipe', // stdout
48
50
  'pipe' // stderr
49
- ] }));
51
+ ]
52
+ });
50
53
  (_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.pipe(new terminal_1.TerminalStreamWritable({
51
54
  terminal,
52
55
  severity: terminal_1.TerminalProviderSeverity.log
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAAA,4FAA4F;AAC5F,2DAA2D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAY3D,kDA8BC;AAvCD,gDAAkC;AAElC,oEAIsC;AACtC,kDAAuG;AAEhG,KAAK,UAAU,mBAAmB,CACvC,QAAmB,EACnB,OAAe,EACf,IAAc,EACd,UAAkD,EAAE;;IAEpD,MAAM,YAAY,GAAiB,8BAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACjE,GAAG,OAAO;QACV,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;YACjB,MAAM,CAAC,SAAS;SACjB;KACF,CAAC,CAAC;IACH,MAAA,YAAY,CAAC,MAAM,0CAAE,IAAI,CACvB,IAAI,iCAAsB,CAAC;QACzB,QAAQ;QACR,QAAQ,EAAE,mCAAwB,CAAC,GAAG;KACvC,CAAC,CACH,CAAC;IACF,MAAA,YAAY,CAAC,MAAM,0CAAE,IAAI,CACvB,IAAI,iCAAsB,CAAC;QACzB,QAAQ;QACR,QAAQ,EAAE,mCAAwB,CAAC,KAAK;KACzC,CAAC,CACH,CAAC;IACF,MAAM,MAAM,GAA+B,MAAM,8BAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE;QACzF,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,mBAAmB,GAAW,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACpE,QAAA,cAAc,GAAW,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type { ChildProcess } from 'node:child_process';\nimport * as path from 'node:path';\n\nimport {\n Executable,\n type IExecutableSpawnOptions,\n type IWaitForExitResult\n} from '@rushstack/node-core-library';\nimport { TerminalStreamWritable, TerminalProviderSeverity, type ITerminal } from '@rushstack/terminal';\n\nexport async function executeAndWaitAsync(\n terminal: ITerminal,\n command: string,\n args: string[],\n options: Omit<IExecutableSpawnOptions, 'stdio'> = {}\n): Promise<IWaitForExitResult<string>> {\n const childProcess: ChildProcess = Executable.spawn(command, args, {\n ...options,\n stdio: [\n 'ignore', // stdin\n 'pipe', // stdout\n 'pipe' // stderr\n ]\n });\n childProcess.stdout?.pipe(\n new TerminalStreamWritable({\n terminal,\n severity: TerminalProviderSeverity.log\n })\n );\n childProcess.stderr?.pipe(\n new TerminalStreamWritable({\n terminal,\n severity: TerminalProviderSeverity.error\n })\n );\n const result: IWaitForExitResult<string> = await Executable.waitForExitAsync(childProcess, {\n encoding: 'utf8'\n });\n return result;\n}\n\nconst vsceBasePackagePath: string = require.resolve('@vscode/vsce/package.json');\nexport const vsceScriptPath: string = path.resolve(vsceBasePackagePath, '../vsce');\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"VSCodeExtensionPackagePlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionPackagePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,oCAAoC;IAC5C;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAID,MAAM,CAAC,OAAO,OAAO,4BACnB,YAAW,eAAe,CAAC,oCAAoC,CAAC;IAEzD,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oCAAoC,GAClD,IAAI;CAuDR"}
1
+ {"version":3,"file":"VSCodeExtensionPackagePlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionPackagePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAEjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,oCAAoC;IAC5C;;;OAGG;IACH,kBAAkB,EAAE,MAAM,CAAC;IAC3B;;;;OAIG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAID,MAAM,CAAC,OAAO,OAAO,4BACnB,YAAW,eAAe,CAAC,oCAAoC,CAAC;IAEzD,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oCAAoC,GAClD,IAAI;CAuDR"}
@@ -1 +1 @@
1
- {"version":3,"file":"VSCodeExtensionPublishPlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionPublishPlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,oCAAoC;CAAG;AASjD,MAAM,CAAC,OAAO,OAAO,4BACnB,YAAW,eAAe,CAAC,oCAAoC,CAAC;IAEzD,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oCAAoC,GAClD,IAAI;CA2FR"}
1
+ {"version":3,"file":"VSCodeExtensionPublishPlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionPublishPlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAIjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,oCAAoC;CAAG;AASjD,MAAM,CAAC,OAAO,OAAO,4BACnB,YAAW,eAAe,CAAC,oCAAoC,CAAC;IAEzD,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,oCAAoC,GAClD,IAAI;CA2FR"}
@@ -1 +1 @@
1
- {"version":3,"file":"VSCodeExtensionVerifySignaturePlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionVerifySignaturePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,4CAA4C;CAAG;AAQzD,MAAM,CAAC,OAAO,OAAO,oCACnB,YAAW,eAAe,CAAC,4CAA4C,CAAC;IAEjE,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,4CAA4C,GAC1D,IAAI;CAiDR"}
1
+ {"version":3,"file":"VSCodeExtensionVerifySignaturePlugin.d.ts","sourceRoot":"","sources":["../src/VSCodeExtensionVerifySignaturePlugin.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAGjB,MAAM,iBAAiB,CAAC;AAKzB,UAAU,4CAA4C;CAAG;AAQzD,MAAM,CAAC,OAAO,OAAO,oCACnB,YAAW,eAAe,CAAC,4CAA4C,CAAC;IAEjE,KAAK,CACV,eAAe,EAAE,gBAAgB,EACjC,iBAAiB,EAAE,iBAAiB,EACpC,aAAa,EAAE,4CAA4C,GAC1D,IAAI;CAiDR"}
@@ -1,5 +1,5 @@
1
- import { IExecutableSpawnOptions, IWaitForExitResult } from '@rushstack/node-core-library';
2
- import { ITerminal } from '@rushstack/terminal';
1
+ import { type IExecutableSpawnOptions, type IWaitForExitResult } from '@rushstack/node-core-library';
2
+ import { type ITerminal } from '@rushstack/terminal';
3
3
  export declare function executeAndWaitAsync(terminal: ITerminal, command: string, args: string[], options?: Omit<IExecutableSpawnOptions, 'stdio'>): Promise<IWaitForExitResult<string>>;
4
4
  export declare const vsceScriptPath: string;
5
5
  //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,EACxB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAoD,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEvG,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAM,GACnD,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAyBrC;AAGD,eAAO,MAAM,cAAc,EAAE,MAAqD,CAAC"}
@@ -0,0 +1,47 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
+ // See LICENSE in the project root for license information.
3
+ import * as path from 'node:path';
4
+ import { executeAndWaitAsync, vsceScriptPath } from './util';
5
+ const PLUGIN_NAME = 'vscode-extension-package-plugin';
6
+ export default class VSCodeExtensionPackagePlugin {
7
+ apply(heftTaskSession, heftConfiguration, pluginOptions) {
8
+ heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions) => {
9
+ const { unpackedFolderPath, vsixPath, manifestPath, extraPackagingFlags = [] } = pluginOptions;
10
+ const { buildFolderPath } = heftConfiguration;
11
+ const { logger: { terminal } } = heftTaskSession;
12
+ terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);
13
+ terminal.writeLine(`Packaging VSIX from ${unpackedFolderPath} to ${vsixPath}`);
14
+ const packageResult = await executeAndWaitAsync(terminal, 'node', [
15
+ vsceScriptPath,
16
+ 'package',
17
+ '--no-dependencies',
18
+ '--out',
19
+ path.resolve(vsixPath),
20
+ ...extraPackagingFlags
21
+ ], {
22
+ currentWorkingDirectory: path.resolve(buildFolderPath, unpackedFolderPath)
23
+ });
24
+ if (packageResult.exitCode !== 0) {
25
+ throw new Error(`VSIX packaging failed with exit code ${packageResult.exitCode}`);
26
+ }
27
+ terminal.writeLine('VSIX successfully packaged.');
28
+ terminal.writeLine(`Generating manifest at ${manifestPath}`);
29
+ const manifestResult = await executeAndWaitAsync(terminal, 'node', [
30
+ vsceScriptPath,
31
+ 'generate-manifest',
32
+ '--packagePath',
33
+ path.resolve(vsixPath),
34
+ '--out',
35
+ path.resolve(manifestPath)
36
+ ], {
37
+ currentWorkingDirectory: buildFolderPath
38
+ });
39
+ if (manifestResult.exitCode !== 0) {
40
+ throw new Error(`Manifest generation failed with exit code ${manifestResult.exitCode}`);
41
+ }
42
+ terminal.writeLine('Manifest successfully generated.');
43
+ terminal.writeLine(`VSIX package and manifest generation completed successfully.`);
44
+ });
45
+ }
46
+ }
47
+ //# sourceMappingURL=VSCodeExtensionPackagePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionPackagePlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionPackagePlugin.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2DAA2D;AAE3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAUlC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAyB7D,MAAM,WAAW,GAAsC,iCAAiC,CAAC;AAEzF,MAAM,CAAC,OAAO,OAAO,4BAA4B;IAGxC,KAAK,CACV,eAAiC,EACjC,iBAAoC,EACpC,aAAmD;QAEnD,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC9F,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,mBAAmB,GAAG,EAAE,EAAE,GAAG,aAAa,CAAC;YAC/F,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC;YAC9C,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,eAAe,CAAC;YAEpB,QAAQ,CAAC,SAAS,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;YAE3D,QAAQ,CAAC,SAAS,CAAC,uBAAuB,kBAAkB,OAAO,QAAQ,EAAE,CAAC,CAAC;YAC/E,MAAM,aAAa,GAA+B,MAAM,mBAAmB,CACzE,QAAQ,EACR,MAAM,EACN;gBACE,cAAc;gBACd,SAAS;gBACT,mBAAmB;gBACnB,OAAO;gBACP,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,GAAG,mBAAmB;aACvB,EACD;gBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,kBAAkB,CAAC;aAC3E,CACF,CAAC;YACF,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,wCAAwC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YACpF,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,6BAA6B,CAAC,CAAC;YAElD,QAAQ,CAAC,SAAS,CAAC,0BAA0B,YAAY,EAAE,CAAC,CAAC;YAC7D,MAAM,cAAc,GAA+B,MAAM,mBAAmB,CAC1E,QAAQ,EACR,MAAM,EACN;gBACE,cAAc;gBACd,mBAAmB;gBACnB,eAAe;gBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,OAAO;gBACP,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;aAC3B,EACD;gBACE,uBAAuB,EAAE,eAAe;aACzC,CACF,CAAC;YACF,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1F,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,kCAAkC,CAAC,CAAC;YAEvD,QAAQ,CAAC,SAAS,CAAC,8DAA8D,CAAC,CAAC;QACrF,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionPackagePluginOptions {\n /**\n * The folder where the unpacked VSIX files are located.\n * This is typically the output folder of the VSCode extension build.\n */\n unpackedFolderPath: string;\n /**\n * The path where the packaged VSIX file will be saved.\n * This can be a directory or a full vsix file path.\n * If a directory is provided, the VSIX file will be named based on the extension's `package.json` name and version.\n */\n vsixPath: string;\n /**\n * The path where the generated manifest file will be saved.\n * This manifest is used for signing the VS Code extension.\n */\n manifestPath: string;\n /**\n * Additional flags to pass to the VSCE packaging command.\n */\n extraPackagingFlags?: string[];\n}\n\nconst PLUGIN_NAME: 'vscode-extension-package-plugin' = 'vscode-extension-package-plugin';\n\nexport default class VSCodeExtensionPackagePlugin\n implements IHeftTaskPlugin<IVSCodeExtensionPackagePluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionPackagePluginOptions\n ): void {\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { unpackedFolderPath, vsixPath, manifestPath, extraPackagingFlags = [] } = pluginOptions;\n const { buildFolderPath } = heftConfiguration;\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n\n terminal.writeLine(`Packaging VSIX from ${unpackedFolderPath} to ${vsixPath}`);\n const packageResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'package',\n '--no-dependencies',\n '--out',\n path.resolve(vsixPath),\n ...extraPackagingFlags\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath, unpackedFolderPath)\n }\n );\n if (packageResult.exitCode !== 0) {\n throw new Error(`VSIX packaging failed with exit code ${packageResult.exitCode}`);\n }\n terminal.writeLine('VSIX successfully packaged.');\n\n terminal.writeLine(`Generating manifest at ${manifestPath}`);\n const manifestResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'generate-manifest',\n '--packagePath',\n path.resolve(vsixPath),\n '--out',\n path.resolve(manifestPath)\n ],\n {\n currentWorkingDirectory: buildFolderPath\n }\n );\n if (manifestResult.exitCode !== 0) {\n throw new Error(`Manifest generation failed with exit code ${manifestResult.exitCode}`);\n }\n terminal.writeLine('Manifest successfully generated.');\n\n terminal.writeLine(`VSIX package and manifest generation completed successfully.`);\n });\n }\n}\n"]}
@@ -0,0 +1,77 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
+ // See LICENSE in the project root for license information.
3
+ import * as path from 'node:path';
4
+ import { executeAndWaitAsync, vsceScriptPath } from './util';
5
+ const PLUGIN_NAME = 'vscode-extension-publish-plugin';
6
+ const VSIX_PATH_PARAMETER_NAME = '--vsix-path';
7
+ const MANIFEST_PATH_PARAMETER_NAME = '--manifest-path';
8
+ const SIGNATURE_PATH_PARAMETER_NAME = '--signature-path';
9
+ const PUBLISH_UNSIGNED_PARAMETER_NAME = '--publish-unsigned';
10
+ export default class VSCodeExtensionPublishPlugin {
11
+ apply(heftTaskSession, heftConfiguration, pluginOptions) {
12
+ const vsixPathParameter = heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);
13
+ const manifestPathParameter = heftTaskSession.parameters.getStringParameter(MANIFEST_PATH_PARAMETER_NAME);
14
+ const signaturePathParameter = heftTaskSession.parameters.getStringParameter(SIGNATURE_PATH_PARAMETER_NAME);
15
+ const publishUnsignedParameter = heftTaskSession.parameters.getFlagParameter(PUBLISH_UNSIGNED_PARAMETER_NAME);
16
+ const { logger: { terminal } } = heftTaskSession;
17
+ // required parameters defined in heft-plugin.json
18
+ const vsixPath = vsixPathParameter.value;
19
+ // manifestPath and signaturePath are required if publishUnsigned is unset
20
+ const manifestPath = manifestPathParameter.value;
21
+ const signaturePath = signaturePathParameter.value;
22
+ const publishUnsigned = publishUnsignedParameter.value;
23
+ if (publishUnsigned) {
24
+ terminal.writeLine(`Publishing unsigned VSIX ${vsixPath}`);
25
+ }
26
+ else {
27
+ if (!manifestPath || !signaturePath) {
28
+ throw new Error(`The parameters "${MANIFEST_PATH_PARAMETER_NAME}" and "${SIGNATURE_PATH_PARAMETER_NAME}" are required for the VSCodeExtensionPublishPlugin.`);
29
+ }
30
+ }
31
+ heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions) => {
32
+ const { buildFolderPath } = heftConfiguration;
33
+ terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);
34
+ terminal.writeLine(`Publishing VSIX ${vsixPath}`);
35
+ let publishResult;
36
+ if (publishUnsigned) {
37
+ publishResult = await executeAndWaitAsync(terminal, 'node', [
38
+ vsceScriptPath,
39
+ 'publish',
40
+ '--no-dependencies',
41
+ '--azure-credential',
42
+ '--packagePath',
43
+ path.resolve(vsixPath)
44
+ ], {
45
+ currentWorkingDirectory: path.resolve(buildFolderPath)
46
+ });
47
+ }
48
+ else {
49
+ if (!manifestPath) {
50
+ throw new Error(`Missing manifest path for the VSCodeExtensionPublishPlugin.`);
51
+ }
52
+ if (!signaturePath) {
53
+ throw new Error(`Missing signature path for the VSCodeExtensionPublishPlugin.`);
54
+ }
55
+ publishResult = await executeAndWaitAsync(terminal, 'node', [
56
+ vsceScriptPath,
57
+ 'publish',
58
+ '--no-dependencies',
59
+ '--azure-credential',
60
+ '--packagePath',
61
+ path.resolve(vsixPath),
62
+ '--manifestPath',
63
+ path.resolve(manifestPath),
64
+ '--signaturePath',
65
+ path.resolve(signaturePath)
66
+ ], {
67
+ currentWorkingDirectory: path.resolve(buildFolderPath)
68
+ });
69
+ }
70
+ if (publishResult.exitCode !== 0) {
71
+ throw new Error(`VSIX publishing failed with exit code ${publishResult.exitCode}`);
72
+ }
73
+ terminal.writeLine('VSIX successfully published.');
74
+ });
75
+ }
76
+ }
77
+ //# sourceMappingURL=VSCodeExtensionPublishPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionPublishPlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionPublishPlugin.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2DAA2D;AAE3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAYlC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAI7D,MAAM,WAAW,GAAsC,iCAAiC,CAAC;AAEzF,MAAM,wBAAwB,GAAW,aAAa,CAAC;AACvD,MAAM,4BAA4B,GAAW,iBAAiB,CAAC;AAC/D,MAAM,6BAA6B,GAAW,kBAAkB,CAAC;AACjE,MAAM,+BAA+B,GAAW,oBAAoB,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,4BAA4B;IAGxC,KAAK,CACV,eAAiC,EACjC,iBAAoC,EACpC,aAAmD;QAEnD,MAAM,iBAAiB,GACrB,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QAC1E,MAAM,qBAAqB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACrG,4BAA4B,CAC7B,CAAC;QACF,MAAM,sBAAsB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACtG,6BAA6B,CAC9B,CAAC;QACF,MAAM,wBAAwB,GAA6B,eAAe,CAAC,UAAU,CAAC,gBAAgB,CACpG,+BAA+B,CAChC,CAAC;QAEF,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,eAAe,CAAC;QAEpB,kDAAkD;QAClD,MAAM,QAAQ,GAAW,iBAAiB,CAAC,KAAM,CAAC;QAElD,0EAA0E;QAC1E,MAAM,YAAY,GAAuB,qBAAqB,CAAC,KAAK,CAAC;QACrE,MAAM,aAAa,GAAuB,sBAAsB,CAAC,KAAK,CAAC;QACvE,MAAM,eAAe,GAAY,wBAAwB,CAAC,KAAK,CAAC;QAChE,IAAI,eAAe,EAAE,CAAC;YACpB,QAAQ,CAAC,SAAS,CAAC,4BAA4B,QAAQ,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CACb,mBAAmB,4BAA4B,UAAU,6BAA6B,sDAAsD,CAC7I,CAAC;YACJ,CAAC;QACH,CAAC;QAED,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC9F,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC;YAE9C,QAAQ,CAAC,SAAS,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;YAC3D,QAAQ,CAAC,SAAS,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC;YAElD,IAAI,aAAyC,CAAC;YAE9C,IAAI,eAAe,EAAE,CAAC;gBACpB,aAAa,GAAG,MAAM,mBAAmB,CACvC,QAAQ,EACR,MAAM,EACN;oBACE,cAAc;oBACd,SAAS;oBACT,mBAAmB;oBACnB,oBAAoB;oBACpB,eAAe;oBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;iBACvB,EACD;oBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;iBACvD,CACF,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,YAAY,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;gBACjF,CAAC;gBACD,IAAI,CAAC,aAAa,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;gBAClF,CAAC;gBACD,aAAa,GAAG,MAAM,mBAAmB,CACvC,QAAQ,EACR,MAAM,EACN;oBACE,cAAc;oBACd,SAAS;oBACT,mBAAmB;oBACnB,oBAAoB;oBACpB,eAAe;oBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;oBACtB,gBAAgB;oBAChB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;oBAC1B,iBAAiB;oBACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;iBAC5B,EACD;oBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;iBACvD,CACF,CAAC;YACJ,CAAC;YACD,IAAI,aAAa,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,yCAAyC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;YACrF,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions,\n CommandLineStringParameter,\n CommandLineFlagParameter\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionPublishPluginOptions {}\n\nconst PLUGIN_NAME: 'vscode-extension-publish-plugin' = 'vscode-extension-publish-plugin';\n\nconst VSIX_PATH_PARAMETER_NAME: string = '--vsix-path';\nconst MANIFEST_PATH_PARAMETER_NAME: string = '--manifest-path';\nconst SIGNATURE_PATH_PARAMETER_NAME: string = '--signature-path';\nconst PUBLISH_UNSIGNED_PARAMETER_NAME: string = '--publish-unsigned';\n\nexport default class VSCodeExtensionPublishPlugin\n implements IHeftTaskPlugin<IVSCodeExtensionPublishPluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionPublishPluginOptions\n ): void {\n const vsixPathParameter: CommandLineStringParameter =\n heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);\n const manifestPathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n MANIFEST_PATH_PARAMETER_NAME\n );\n const signaturePathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n SIGNATURE_PATH_PARAMETER_NAME\n );\n const publishUnsignedParameter: CommandLineFlagParameter = heftTaskSession.parameters.getFlagParameter(\n PUBLISH_UNSIGNED_PARAMETER_NAME\n );\n\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n // required parameters defined in heft-plugin.json\n const vsixPath: string = vsixPathParameter.value!;\n\n // manifestPath and signaturePath are required if publishUnsigned is unset\n const manifestPath: string | undefined = manifestPathParameter.value;\n const signaturePath: string | undefined = signaturePathParameter.value;\n const publishUnsigned: boolean = publishUnsignedParameter.value;\n if (publishUnsigned) {\n terminal.writeLine(`Publishing unsigned VSIX ${vsixPath}`);\n } else {\n if (!manifestPath || !signaturePath) {\n throw new Error(\n `The parameters \"${MANIFEST_PATH_PARAMETER_NAME}\" and \"${SIGNATURE_PATH_PARAMETER_NAME}\" are required for the VSCodeExtensionPublishPlugin.`\n );\n }\n }\n\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { buildFolderPath } = heftConfiguration;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n terminal.writeLine(`Publishing VSIX ${vsixPath}`);\n\n let publishResult: IWaitForExitResult<string>;\n\n if (publishUnsigned) {\n publishResult = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'publish',\n '--no-dependencies',\n '--azure-credential',\n '--packagePath',\n path.resolve(vsixPath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n } else {\n if (!manifestPath) {\n throw new Error(`Missing manifest path for the VSCodeExtensionPublishPlugin.`);\n }\n if (!signaturePath) {\n throw new Error(`Missing signature path for the VSCodeExtensionPublishPlugin.`);\n }\n publishResult = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'publish',\n '--no-dependencies',\n '--azure-credential',\n '--packagePath',\n path.resolve(vsixPath),\n '--manifestPath',\n path.resolve(manifestPath),\n '--signaturePath',\n path.resolve(signaturePath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n }\n if (publishResult.exitCode !== 0) {\n throw new Error(`VSIX publishing failed with exit code ${publishResult.exitCode}`);\n }\n terminal.writeLine('VSIX successfully published.');\n });\n }\n}\n"]}
@@ -0,0 +1,42 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
+ // See LICENSE in the project root for license information.
3
+ import * as path from 'node:path';
4
+ import { executeAndWaitAsync, vsceScriptPath } from './util';
5
+ const PLUGIN_NAME = 'vscode-extension-verify-signature-plugin';
6
+ const VSIX_PATH_PARAMETER_NAME = '--vsix-path';
7
+ const MANIFEST_PATH_PARAMETER_NAME = '--manifest-path';
8
+ const SIGNATURE_PATH_PARAMETER_NAME = '--signature-path';
9
+ export default class VSCodeExtensionVerifySignaturePlugin {
10
+ apply(heftTaskSession, heftConfiguration, pluginOptions) {
11
+ const vsixPathParameter = heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);
12
+ const manifestPathParameter = heftTaskSession.parameters.getStringParameter(MANIFEST_PATH_PARAMETER_NAME);
13
+ const signaturePathParameter = heftTaskSession.parameters.getStringParameter(SIGNATURE_PATH_PARAMETER_NAME);
14
+ // required parameters defined in heft-plugin.json
15
+ const vsixPath = vsixPathParameter.value;
16
+ const manifestPath = manifestPathParameter.value;
17
+ const signaturePath = signaturePathParameter.value;
18
+ heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions) => {
19
+ const { buildFolderPath } = heftConfiguration;
20
+ const { logger: { terminal } } = heftTaskSession;
21
+ terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);
22
+ terminal.writeLine(`Verifying signature ${vsixPath}`);
23
+ const verifySignatureResult = await executeAndWaitAsync(terminal, 'node', [
24
+ vsceScriptPath,
25
+ 'verify-signature',
26
+ '--packagePath',
27
+ path.resolve(vsixPath),
28
+ '--manifestPath',
29
+ path.resolve(manifestPath),
30
+ '--signaturePath',
31
+ path.resolve(signaturePath)
32
+ ], {
33
+ currentWorkingDirectory: path.resolve(buildFolderPath)
34
+ });
35
+ if (verifySignatureResult.exitCode !== 0) {
36
+ throw new Error(`VSIX signature verification failed with exit code ${verifySignatureResult.exitCode}`);
37
+ }
38
+ terminal.writeLine('Successfully verified VSIX signature.');
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=VSCodeExtensionVerifySignaturePlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VSCodeExtensionVerifySignaturePlugin.js","sourceRoot":"","sources":["../src/VSCodeExtensionVerifySignaturePlugin.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2DAA2D;AAE3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAWlC,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAI7D,MAAM,WAAW,GAA+C,0CAA0C,CAAC;AAE3G,MAAM,wBAAwB,GAAW,aAAa,CAAC;AACvD,MAAM,4BAA4B,GAAW,iBAAiB,CAAC;AAC/D,MAAM,6BAA6B,GAAW,kBAAkB,CAAC;AAEjE,MAAM,CAAC,OAAO,OAAO,oCAAoC;IAGhD,KAAK,CACV,eAAiC,EACjC,iBAAoC,EACpC,aAA2D;QAE3D,MAAM,iBAAiB,GACrB,eAAe,CAAC,UAAU,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,CAAC;QAC1E,MAAM,qBAAqB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACrG,4BAA4B,CAC7B,CAAC;QACF,MAAM,sBAAsB,GAA+B,eAAe,CAAC,UAAU,CAAC,kBAAkB,CACtG,6BAA6B,CAC9B,CAAC;QAEF,kDAAkD;QAClD,MAAM,QAAQ,GAAW,iBAAiB,CAAC,KAAM,CAAC;QAClD,MAAM,YAAY,GAAW,qBAAqB,CAAC,KAAM,CAAC;QAC1D,MAAM,aAAa,GAAW,sBAAsB,CAAC,KAAM,CAAC;QAE5D,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,UAAmC,EAAE,EAAE;YAC9F,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,CAAC;YAC9C,MAAM,EACJ,MAAM,EAAE,EAAE,QAAQ,EAAE,EACrB,GAAG,eAAe,CAAC;YAEpB,QAAQ,CAAC,SAAS,CAAC,sBAAsB,cAAc,EAAE,CAAC,CAAC;YAC3D,QAAQ,CAAC,SAAS,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;YAEtD,MAAM,qBAAqB,GAA+B,MAAM,mBAAmB,CACjF,QAAQ,EACR,MAAM,EACN;gBACE,cAAc;gBACd,kBAAkB;gBAClB,eAAe;gBACf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACtB,gBAAgB;gBAChB,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;gBAC1B,iBAAiB;gBACjB,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;aAC5B,EACD;gBACE,uBAAuB,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;aACvD,CACF,CAAC;YACF,IAAI,qBAAqB,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBACzC,MAAM,IAAI,KAAK,CACb,qDAAqD,qBAAqB,CAAC,QAAQ,EAAE,CACtF,CAAC;YACJ,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,uCAAuC,CAAC,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport * as path from 'node:path';\n\nimport type {\n HeftConfiguration,\n IHeftTaskPlugin,\n IHeftTaskSession,\n IHeftTaskRunHookOptions,\n CommandLineStringParameter\n} from '@rushstack/heft';\nimport type { IWaitForExitResult } from '@rushstack/node-core-library';\n\nimport { executeAndWaitAsync, vsceScriptPath } from './util';\n\ninterface IVSCodeExtensionVerifySignaturePluginOptions {}\n\nconst PLUGIN_NAME: 'vscode-extension-verify-signature-plugin' = 'vscode-extension-verify-signature-plugin';\n\nconst VSIX_PATH_PARAMETER_NAME: string = '--vsix-path';\nconst MANIFEST_PATH_PARAMETER_NAME: string = '--manifest-path';\nconst SIGNATURE_PATH_PARAMETER_NAME: string = '--signature-path';\n\nexport default class VSCodeExtensionVerifySignaturePlugin\n implements IHeftTaskPlugin<IVSCodeExtensionVerifySignaturePluginOptions>\n{\n public apply(\n heftTaskSession: IHeftTaskSession,\n heftConfiguration: HeftConfiguration,\n pluginOptions: IVSCodeExtensionVerifySignaturePluginOptions\n ): void {\n const vsixPathParameter: CommandLineStringParameter =\n heftTaskSession.parameters.getStringParameter(VSIX_PATH_PARAMETER_NAME);\n const manifestPathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n MANIFEST_PATH_PARAMETER_NAME\n );\n const signaturePathParameter: CommandLineStringParameter = heftTaskSession.parameters.getStringParameter(\n SIGNATURE_PATH_PARAMETER_NAME\n );\n\n // required parameters defined in heft-plugin.json\n const vsixPath: string = vsixPathParameter.value!;\n const manifestPath: string = manifestPathParameter.value!;\n const signaturePath: string = signaturePathParameter.value!;\n\n heftTaskSession.hooks.run.tapPromise(PLUGIN_NAME, async (runOptions: IHeftTaskRunHookOptions) => {\n const { buildFolderPath } = heftConfiguration;\n const {\n logger: { terminal }\n } = heftTaskSession;\n\n terminal.writeLine(`Using VSCE script: ${vsceScriptPath}`);\n terminal.writeLine(`Verifying signature ${vsixPath}`);\n\n const verifySignatureResult: IWaitForExitResult<string> = await executeAndWaitAsync(\n terminal,\n 'node',\n [\n vsceScriptPath,\n 'verify-signature',\n '--packagePath',\n path.resolve(vsixPath),\n '--manifestPath',\n path.resolve(manifestPath),\n '--signaturePath',\n path.resolve(signaturePath)\n ],\n {\n currentWorkingDirectory: path.resolve(buildFolderPath)\n }\n );\n if (verifySignatureResult.exitCode !== 0) {\n throw new Error(\n `VSIX signature verification failed with exit code ${verifySignatureResult.exitCode}`\n );\n }\n terminal.writeLine('Successfully verified VSIX signature.');\n });\n }\n}\n"]}
@@ -0,0 +1,31 @@
1
+ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.
2
+ // See LICENSE in the project root for license information.
3
+ import * as path from 'node:path';
4
+ import { Executable } from '@rushstack/node-core-library';
5
+ import { TerminalStreamWritable, TerminalProviderSeverity } from '@rushstack/terminal';
6
+ export async function executeAndWaitAsync(terminal, command, args, options = {}) {
7
+ var _a, _b;
8
+ const childProcess = Executable.spawn(command, args, {
9
+ ...options,
10
+ stdio: [
11
+ 'ignore', // stdin
12
+ 'pipe', // stdout
13
+ 'pipe' // stderr
14
+ ]
15
+ });
16
+ (_a = childProcess.stdout) === null || _a === void 0 ? void 0 : _a.pipe(new TerminalStreamWritable({
17
+ terminal,
18
+ severity: TerminalProviderSeverity.log
19
+ }));
20
+ (_b = childProcess.stderr) === null || _b === void 0 ? void 0 : _b.pipe(new TerminalStreamWritable({
21
+ terminal,
22
+ severity: TerminalProviderSeverity.error
23
+ }));
24
+ const result = await Executable.waitForExitAsync(childProcess, {
25
+ encoding: 'utf8'
26
+ });
27
+ return result;
28
+ }
29
+ const vsceBasePackagePath = require.resolve('@vscode/vsce/package.json');
30
+ export const vsceScriptPath = path.resolve(vsceBasePackagePath, '../vsce');
31
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,2DAA2D;AAG3D,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EACL,UAAU,EAGX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAkB,MAAM,qBAAqB,CAAC;AAEvG,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,QAAmB,EACnB,OAAe,EACf,IAAc,EACd,UAAkD,EAAE;;IAEpD,MAAM,YAAY,GAAiB,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE;QACjE,GAAG,OAAO;QACV,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,MAAM,EAAE,SAAS;YACjB,MAAM,CAAC,SAAS;SACjB;KACF,CAAC,CAAC;IACH,MAAA,YAAY,CAAC,MAAM,0CAAE,IAAI,CACvB,IAAI,sBAAsB,CAAC;QACzB,QAAQ;QACR,QAAQ,EAAE,wBAAwB,CAAC,GAAG;KACvC,CAAC,CACH,CAAC;IACF,MAAA,YAAY,CAAC,MAAM,0CAAE,IAAI,CACvB,IAAI,sBAAsB,CAAC;QACzB,QAAQ;QACR,QAAQ,EAAE,wBAAwB,CAAC,KAAK;KACzC,CAAC,CACH,CAAC;IACF,MAAM,MAAM,GAA+B,MAAM,UAAU,CAAC,gBAAgB,CAAC,YAAY,EAAE;QACzF,QAAQ,EAAE,MAAM;KACjB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,mBAAmB,GAAW,OAAO,CAAC,OAAO,CAAC,2BAA2B,CAAC,CAAC;AACjF,MAAM,CAAC,MAAM,cAAc,GAAW,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,SAAS,CAAC,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license.\n// See LICENSE in the project root for license information.\n\nimport type { ChildProcess } from 'node:child_process';\nimport * as path from 'node:path';\n\nimport {\n Executable,\n type IExecutableSpawnOptions,\n type IWaitForExitResult\n} from '@rushstack/node-core-library';\nimport { TerminalStreamWritable, TerminalProviderSeverity, type ITerminal } from '@rushstack/terminal';\n\nexport async function executeAndWaitAsync(\n terminal: ITerminal,\n command: string,\n args: string[],\n options: Omit<IExecutableSpawnOptions, 'stdio'> = {}\n): Promise<IWaitForExitResult<string>> {\n const childProcess: ChildProcess = Executable.spawn(command, args, {\n ...options,\n stdio: [\n 'ignore', // stdin\n 'pipe', // stdout\n 'pipe' // stderr\n ]\n });\n childProcess.stdout?.pipe(\n new TerminalStreamWritable({\n terminal,\n severity: TerminalProviderSeverity.log\n })\n );\n childProcess.stderr?.pipe(\n new TerminalStreamWritable({\n terminal,\n severity: TerminalProviderSeverity.error\n })\n );\n const result: IWaitForExitResult<string> = await Executable.waitForExitAsync(childProcess, {\n encoding: 'utf8'\n });\n return result;\n}\n\nconst vsceBasePackagePath: string = require.resolve('@vscode/vsce/package.json');\nexport const vsceScriptPath: string = path.resolve(vsceBasePackagePath, '../vsce');\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rushstack/heft-vscode-extension-plugin",
3
- "version": "1.0.22",
3
+ "version": "1.1.0",
4
4
  "description": "Heft plugin for building vscode extensions.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -9,21 +9,34 @@
9
9
  },
10
10
  "homepage": "https://rushstack.io/pages/heft/overview/",
11
11
  "license": "MIT",
12
- "main": "lib/index.js",
13
- "types": "lib/index.d.ts",
14
- "peerDependencies": {
15
- "@rushstack/heft": "^1.1.14"
12
+ "exports": {
13
+ "./lib/*": {
14
+ "types": "./lib-dts/*.d.ts",
15
+ "import": "./lib-esm/*.js",
16
+ "require": "./lib-commonjs/*.js"
17
+ },
18
+ "./heft-plugin.json": "./heft-plugin.json",
19
+ "./package.json": "./package.json"
16
20
  },
17
- "devDependencies": {
18
- "eslint": "~9.37.0",
19
- "@types/node": "20.17.19",
20
- "@rushstack/heft-node-rig": "2.11.19",
21
- "@rushstack/heft": "1.1.14"
21
+ "typesVersions": {
22
+ "*": {
23
+ "lib/*": [
24
+ "lib-dts/*"
25
+ ]
26
+ }
27
+ },
28
+ "peerDependencies": {
29
+ "@rushstack/heft": "^1.2.0"
22
30
  },
23
31
  "dependencies": {
24
32
  "@vscode/vsce": "3.2.1",
25
- "@rushstack/node-core-library": "5.19.1",
26
- "@rushstack/terminal": "0.21.0"
33
+ "@rushstack/node-core-library": "5.20.0",
34
+ "@rushstack/terminal": "0.22.0"
35
+ },
36
+ "devDependencies": {
37
+ "eslint": "~9.37.0",
38
+ "@rushstack/heft": "1.2.0",
39
+ "local-node-rig": "1.0.0"
27
40
  },
28
41
  "sideEffects": false,
29
42
  "scripts": {
package/lib/util.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,EAAc,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAGvG,OAAO,EAAoD,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAElG,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,SAAS,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE,IAAI,CAAC,uBAAuB,EAAE,OAAO,CAAM,GACnD,OAAO,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAyBrC;AAGD,eAAO,MAAM,cAAc,EAAE,MAAqD,CAAC"}