CLI v1.2.0
Added
- Add
--follow-symlinkstopublish, forwardingvsce's option of the same name so that the file walk recurses into symlinked directories instead of packing each symlink as a file. Needed for anode_modulesassembled out of symlinks, as pnpm's is (#368) - Add
searchcommand to search the registry for extensions, mirroring the web UI's search:--category,--target,--sort-byand--sort-ordernarrow the query,--sizeand--offsetpage through the results, and--jsonprints the registry's raw response (#2154) - Add
listcommand to print the extensions a namespace holds, sorted by name so the output stays stable across registries, with--jsonfor the raw namespace metadata (#2154) - Add
showcommand to print an extension's metadata, mirroringvsce show: identity, publisher, rating, notices and a version history listing each version's target platforms (#2149).namespace.extension@versionreports a single version,--targetscopes the report to one target platform,--all-versionslists every published version instead of the most recent few, and--jsonprints the registry's raw metadata - Add
unpublishcommand to delete an extension or some of its versions, mirroringvsce unpublish(#1958); requires a registry running version 1.2.0 or later, whichunpublishchecks for before deleting publishchecks the packaged extension's size against the limit reported by the registry's/api/versionendpoint before uploading, instead of failing only after the upload completes (#1953)- Add
verifycommand to check a downloaded.vsixpackage's signature against the registry's public key, mirroringvsce verify-signature(#993) - Add
verify-signaturecommand, verifying an already-extracted package/manifest/signature file trio entirely offline (no registry involved), matchingvsce verify-signature's own command shape (#993)
Fixed
-
Error messages naming a URL no longer include its query string, which for
createNamespace,verifyPat,publishanddeletecarried the personal access token straight to stderr and into CI logs (#2186) -
A connection lost after a JSON response has started no longer leaves the command waiting on a body that is not coming: the response's own error is now what settles the request, so it fails with the reset rather than hanging (#2186)
-
Requests now give up after 30 seconds without progress instead of hanging indefinitely when a server accepts a connection and then says nothing.
OVSX_TIMEOUToverrides the duration in milliseconds andOVSX_TIMEOUT=0disables it; it measures inactivity, so a large extension downloading slowly is unaffected, and it covers the trusted-publishing ID token request as well as the registry's own (#2186) -
Fix downloads that could be read before they were written.
downloadresolved when the response ended rather than when the file was closed, and a write stream opens and flushes asynchronously, so a caller reading the path immediately afterwards could find the file empty or absent - whichverifydid, intermittently failing to read the public key it had just fetched. A failed download no longer touches the target path: the body is written beside it and renamed into place only once it has arrived whole, so a 404 or a dropped connection leaves what was there alone. A connection dropped mid-download now rejects rather than leaving the caller waiting forever (#2185)
Changed
publish --trusted-publishingretries the token exchange when the registry answers that it could not verify the ID token (502, 503, 504), rather than failing the build on a blip reaching the identity provider. A refusal is never retriedpublish --trusted-publishingrequests a new token and retries once when the registry refuses the one it was publishing with. The issued token is short-lived and shared by every target platform of a release, so publishing a wide fan-out of large packages could outlive it and fail partway through. Targets that are refused together share one new token, and a token supplied with--patis never retried- Bump minimum supported Node.js version to 22, matching the webui component
Dependencies
- Bump fast-uri from 3.1.5 to 3.1.7
- Bump qs from 6.15.2 to 6.16.0
- Bump @humanfs/node from 0.16.6 to 0.16.8
- Bump js-yaml from 4.3.1 to 4.3.2
- Bump nanoid from 3.3.16 to 3.3.18