ovsx 1.1.1 → 1.3.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 (132) hide show
  1. package/README.md +73 -1
  2. package/lib/check-license.d.ts.map +1 -1
  3. package/lib/check-license.js +3 -2
  4. package/lib/check-license.js.map +1 -1
  5. package/lib/get.js +6 -6
  6. package/lib/get.js.map +1 -1
  7. package/lib/http.d.ts +32 -0
  8. package/lib/http.d.ts.map +1 -0
  9. package/lib/http.js +170 -0
  10. package/lib/http.js.map +1 -0
  11. package/lib/index.d.ts +4 -0
  12. package/lib/index.d.ts.map +1 -1
  13. package/lib/index.js +4 -0
  14. package/lib/index.js.map +1 -1
  15. package/lib/list-options.d.ts +24 -0
  16. package/lib/list-options.d.ts.map +1 -0
  17. package/lib/list-options.js +15 -0
  18. package/lib/list-options.js.map +1 -0
  19. package/lib/list.d.ts +18 -0
  20. package/lib/list.d.ts.map +1 -0
  21. package/lib/list.js +46 -0
  22. package/lib/list.js.map +1 -0
  23. package/lib/main.js +111 -32
  24. package/lib/main.js.map +1 -1
  25. package/lib/oidc.d.ts +22 -0
  26. package/lib/oidc.d.ts.map +1 -0
  27. package/lib/oidc.js +59 -0
  28. package/lib/oidc.js.map +1 -0
  29. package/lib/publish-options.d.ts +8 -1
  30. package/lib/publish-options.d.ts.map +1 -1
  31. package/lib/publish.d.ts.map +1 -1
  32. package/lib/publish.js +150 -13
  33. package/lib/publish.js.map +1 -1
  34. package/lib/registry-options.d.ts +8 -0
  35. package/lib/registry-options.d.ts.map +1 -1
  36. package/lib/registry.d.ts +161 -5
  37. package/lib/registry.d.ts.map +1 -1
  38. package/lib/registry.js +259 -100
  39. package/lib/registry.js.map +1 -1
  40. package/lib/search-options.d.ts +48 -0
  41. package/lib/search-options.d.ts.map +1 -0
  42. package/lib/search-options.js +15 -0
  43. package/lib/search-options.js.map +1 -0
  44. package/lib/search.d.ts +22 -0
  45. package/lib/search.d.ts.map +1 -0
  46. package/lib/search.js +86 -0
  47. package/lib/search.js.map +1 -0
  48. package/lib/show-options.d.ts +33 -0
  49. package/lib/show-options.d.ts.map +1 -0
  50. package/lib/show-options.js +15 -0
  51. package/lib/show-options.js.map +1 -0
  52. package/lib/show.d.ts +18 -0
  53. package/lib/show.d.ts.map +1 -0
  54. package/lib/show.js +289 -0
  55. package/lib/show.js.map +1 -0
  56. package/lib/table.d.ts +27 -0
  57. package/lib/table.d.ts.map +1 -0
  58. package/lib/table.js +56 -0
  59. package/lib/table.js.map +1 -0
  60. package/lib/trusted-publishing-options.d.ts +30 -0
  61. package/lib/trusted-publishing-options.d.ts.map +1 -0
  62. package/lib/trusted-publishing-options.js +15 -0
  63. package/lib/trusted-publishing-options.js.map +1 -0
  64. package/lib/trusted-publishing.d.ts +35 -0
  65. package/lib/trusted-publishing.d.ts.map +1 -0
  66. package/lib/trusted-publishing.js +112 -0
  67. package/lib/trusted-publishing.js.map +1 -0
  68. package/lib/unpublish-options.d.ts +34 -0
  69. package/lib/unpublish-options.d.ts.map +1 -0
  70. package/lib/unpublish-options.js +15 -0
  71. package/lib/unpublish-options.js.map +1 -0
  72. package/lib/unpublish.d.ts +22 -0
  73. package/lib/unpublish.d.ts.map +1 -0
  74. package/lib/unpublish.js +137 -0
  75. package/lib/unpublish.js.map +1 -0
  76. package/lib/util.d.ts +51 -9
  77. package/lib/util.d.ts.map +1 -1
  78. package/lib/util.js +130 -67
  79. package/lib/util.js.map +1 -1
  80. package/lib/verify-options.d.ts +24 -0
  81. package/lib/verify-options.d.ts.map +1 -0
  82. package/lib/verify-options.js +15 -0
  83. package/lib/verify-options.js.map +1 -0
  84. package/lib/verify-signature-options.d.ts +32 -0
  85. package/lib/verify-signature-options.d.ts.map +1 -0
  86. package/lib/verify-signature-options.js +15 -0
  87. package/lib/verify-signature-options.js.map +1 -0
  88. package/lib/verify-signature.d.ts +28 -0
  89. package/lib/verify-signature.d.ts.map +1 -0
  90. package/lib/verify-signature.js +105 -0
  91. package/lib/verify-signature.js.map +1 -0
  92. package/lib/verify.d.ts +21 -0
  93. package/lib/verify.d.ts.map +1 -0
  94. package/lib/verify.js +97 -0
  95. package/lib/verify.js.map +1 -0
  96. package/lib/zip.d.ts +10 -0
  97. package/lib/zip.d.ts.map +1 -1
  98. package/lib/zip.js +33 -10
  99. package/lib/zip.js.map +1 -1
  100. package/package.json +21 -14
  101. package/src/check-license.ts +4 -3
  102. package/src/get.ts +7 -7
  103. package/src/http.ts +176 -0
  104. package/src/index.ts +4 -0
  105. package/src/list-options.ts +25 -0
  106. package/src/list.ts +48 -0
  107. package/src/main.ts +125 -34
  108. package/src/oidc.ts +65 -0
  109. package/src/publish-options.ts +8 -1
  110. package/src/publish.ts +208 -14
  111. package/src/registry-options.ts +8 -0
  112. package/src/registry.ts +379 -98
  113. package/src/search-options.ts +49 -0
  114. package/src/search.ts +95 -0
  115. package/src/show-options.ts +34 -0
  116. package/src/show.ts +328 -0
  117. package/src/table.ts +53 -0
  118. package/src/trusted-publishing-options.ts +30 -0
  119. package/src/trusted-publishing.ts +148 -0
  120. package/src/unpublish-options.ts +35 -0
  121. package/src/unpublish.ts +160 -0
  122. package/src/util.ts +138 -70
  123. package/src/verify-options.ts +25 -0
  124. package/src/verify-signature-options.ts +32 -0
  125. package/src/verify-signature.ts +124 -0
  126. package/src/verify.ts +107 -0
  127. package/src/zip.ts +33 -13
  128. package/lib/version.d.ts +0 -2
  129. package/lib/version.d.ts.map +0 -1
  130. package/lib/version.js +0 -5
  131. package/lib/version.js.map +0 -1
  132. package/src/version.ts +0 -1
package/lib/registry.js CHANGED
@@ -9,13 +9,28 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  ********************************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.Registry = exports.DEFAULT_PUBLISH_SIZE = exports.DEFAULT_NAMESPACE_SIZE = exports.DEFAULT_URL = void 0;
12
+ exports.Registry = exports.MIN_TOKEN_HEADER_REGISTRY_VERSION = exports.DEFAULT_DELETE_SIZE = exports.DEFAULT_TOKEN_REQUEST_SIZE = exports.DEFAULT_TIMEOUT = exports.DEFAULT_PUBLISH_SIZE = exports.DEFAULT_NAMESPACE_SIZE = exports.DEFAULT_URL = void 0;
13
13
  const fs = require("fs");
14
- const followRedirects = require("follow-redirects");
14
+ const semver = require("semver");
15
+ const stream_1 = require("stream");
16
+ const http_1 = require("./http");
15
17
  const util_1 = require("./util");
18
+ Object.defineProperty(exports, "DEFAULT_TIMEOUT", { enumerable: true, get: function () { return util_1.DEFAULT_TIMEOUT; } });
16
19
  exports.DEFAULT_URL = 'https://open-vsx.org';
17
20
  exports.DEFAULT_NAMESPACE_SIZE = 1024;
18
21
  exports.DEFAULT_PUBLISH_SIZE = 512 * 1024 * 1024;
22
+ exports.DEFAULT_TOKEN_REQUEST_SIZE = 8 * 1024;
23
+ exports.DEFAULT_DELETE_SIZE = 64 * 1024;
24
+ // Fallback only, for when Authorization is already claimed by Basic auth to a fronting proxy (see
25
+ // tokenHeaders/getRequestOptions).
26
+ // Must stay in the credential headers http.ts drops on a cross-origin redirect.
27
+ const TOKEN_HEADER = 'X-OpenVSX-Token';
28
+ /**
29
+ * Oldest registry version that resolves the personal access token from a header (see #1344).
30
+ * Registries older than this only look at the `token` query parameter, so `tokenQuery` keeps
31
+ * sending it to anything below this version.
32
+ */
33
+ exports.MIN_TOKEN_HEADER_REGISTRY_VERSION = '1.3.0';
19
34
  class Registry {
20
35
  constructor(options = {}) {
21
36
  if (options.registryUrl?.endsWith('/'))
@@ -25,7 +40,9 @@ class Registry {
25
40
  else
26
41
  this.url = exports.DEFAULT_URL;
27
42
  this.maxNamespaceSize = options.maxNamespaceSize ?? exports.DEFAULT_NAMESPACE_SIZE;
43
+ this.publishSizePinned = options.maxPublishSize !== undefined;
28
44
  this.maxPublishSize = options.maxPublishSize ?? exports.DEFAULT_PUBLISH_SIZE;
45
+ this.timeout = options.timeout ?? util_1.DEFAULT_TIMEOUT;
29
46
  this.username = options.username;
30
47
  this.password = options.password;
31
48
  }
@@ -33,112 +50,287 @@ class Registry {
33
50
  const url = new URL(this.url);
34
51
  return url.hostname === 'open-vsx.org' || url.hostname.endsWith('.open-vsx.org');
35
52
  }
36
- createNamespace(name, pat) {
53
+ async createNamespace(name, pat) {
37
54
  try {
38
- const url = this.getUrl(['api', '-', 'namespace', 'create'], { token: pat });
55
+ const url = this.getUrl(['api', '-', 'namespace', 'create'], await this.tokenQuery(pat));
39
56
  const namespace = { name };
40
- return this.post(JSON.stringify(namespace), url, {
41
- 'Content-Type': 'application/json'
57
+ return await this.post(JSON.stringify(namespace), url, {
58
+ 'Content-Type': 'application/json',
59
+ ...this.tokenHeaders(pat)
42
60
  }, this.maxNamespaceSize);
43
61
  }
44
62
  catch (err) {
45
63
  return (0, util_1.rejectError)(err);
46
64
  }
47
65
  }
48
- verifyPat(namespace, pat) {
66
+ async verifyPat(namespace, pat) {
67
+ try {
68
+ const url = this.getUrl(['api', namespace, 'verify-pat'], await this.tokenQuery(pat));
69
+ return await this.getJson(url, this.tokenHeaders(pat));
70
+ }
71
+ catch (err) {
72
+ return (0, util_1.rejectError)(err);
73
+ }
74
+ }
75
+ /**
76
+ * The size limit that applies to this namespace/extension, which a size override can raise above
77
+ * the registry default. Neither needs to exist yet - a first publish asks about both before
78
+ * creating either.
79
+ */
80
+ async getSizeLimit(namespace, extension, pat) {
81
+ try {
82
+ const query = { namespace, extension, ...(await this.tokenQuery(pat)) };
83
+ const url = this.getUrl(['api', '-', 'size-limit'], query);
84
+ return await this.getJson(url, this.tokenHeaders(pat));
85
+ }
86
+ catch (err) {
87
+ return (0, util_1.rejectError)(err);
88
+ }
89
+ }
90
+ /**
91
+ * Cached per `Registry` instance - callers like `tokenQuery` and `unpublish`'s own version check
92
+ * would otherwise each fetch it separately, doubling the round trip for a single command.
93
+ */
94
+ getRegistryVersion() {
49
95
  try {
50
- return this.getJson(this.getUrl(['api', namespace, 'verify-pat'], { token: pat }));
96
+ return this.registryVersion ?? (this.registryVersion = this.getJson(this.getUrl(['api', 'version'])));
51
97
  }
52
98
  catch (err) {
53
99
  return (0, util_1.rejectError)(err);
54
100
  }
55
101
  }
56
- publish(file, pat) {
102
+ /**
103
+ * `sizeLimit` is the limit the registry reports for this package, when it could report one. The
104
+ * transport body cap is raised to it, because a namespace granted more than the default would
105
+ * otherwise have its upload refused here - by the body size check, before anything reached the
106
+ * registry that allowed it.
107
+ */
108
+ async publish(file, pat, sizeLimit) {
57
109
  try {
58
- const url = this.getUrl(['api', '-', 'publish'], { token: pat });
59
- return this.postFile(file, url, {
60
- 'Content-Type': 'application/octet-stream'
61
- }, this.maxPublishSize);
110
+ const url = this.getUrl(['api', '-', 'publish'], await this.tokenQuery(pat));
111
+ return await this.postFile(file, url, {
112
+ 'Content-Type': 'application/octet-stream',
113
+ ...this.tokenHeaders(pat)
114
+ }, this.publishBodyLimit(sizeLimit));
62
115
  }
63
116
  catch (err) {
64
117
  return (0, util_1.rejectError)(err);
65
118
  }
66
119
  }
67
- getMetadata(namespace, extension, target) {
120
+ /** The body cap for a publish. A pinned `maxPublishSize` wins; otherwise it never sits below the registry's own limit. */
121
+ publishBodyLimit(sizeLimit) {
122
+ if (this.publishSizePinned || sizeLimit === undefined) {
123
+ return this.maxPublishSize;
124
+ }
125
+ return Math.max(this.maxPublishSize, sizeLimit);
126
+ }
127
+ requestTrustedPublishingToken(namespace, extension, idToken) {
128
+ try {
129
+ const url = this.getUrl(['api', '-', 'trusted-publishing', 'token']);
130
+ const request = { namespace, extension, token: idToken };
131
+ return this.post(JSON.stringify(request), url, {
132
+ 'Content-Type': 'application/json'
133
+ }, exports.DEFAULT_TOKEN_REQUEST_SIZE);
134
+ }
135
+ catch (err) {
136
+ return (0, util_1.rejectError)(err);
137
+ }
138
+ }
139
+ /**
140
+ * Deletes extension versions. Omitting `targetVersions` deletes the extension as a whole,
141
+ * i.e. all versions the personal access token's user is allowed to delete.
142
+ */
143
+ async deleteExtension(namespace, extension, targetVersions, pat) {
144
+ try {
145
+ if (!targetVersions) {
146
+ const query = { ...await this.tokenQuery(pat), allVersions: 'true' };
147
+ const url = this.getUrl(['api', namespace, extension, 'delete'], query);
148
+ return await this.post('', url, this.tokenHeaders(pat), exports.DEFAULT_DELETE_SIZE);
149
+ }
150
+ const url = this.getUrl(['api', namespace, extension, 'delete'], await this.tokenQuery(pat));
151
+ return await this.post(JSON.stringify(targetVersions), url, {
152
+ 'Content-Type': 'application/json',
153
+ ...this.tokenHeaders(pat)
154
+ }, exports.DEFAULT_DELETE_SIZE);
155
+ }
156
+ catch (err) {
157
+ return (0, util_1.rejectError)(err);
158
+ }
159
+ }
160
+ getMetadata(namespace, extension, target, version) {
68
161
  try {
69
162
  const segments = ['api', namespace, extension];
70
163
  if (target) {
71
164
  segments.push(target);
72
165
  }
166
+ if (version) {
167
+ segments.push(version);
168
+ }
73
169
  return this.getJson(this.getUrl(segments));
74
170
  }
75
171
  catch (err) {
76
172
  return (0, util_1.rejectError)(err);
77
173
  }
78
174
  }
175
+ /**
176
+ * Returns a page of an extension's published versions, newest first, one entry per version and
177
+ * target platform. `allVersions` on the metadata response carries version numbers and links
178
+ * only, so this is what makes the target platforms of each version available.
179
+ */
180
+ getVersionReferences(namespace, extension, target, size, offset) {
181
+ try {
182
+ const segments = ['api', namespace, extension];
183
+ if (target) {
184
+ segments.push(target);
185
+ }
186
+ segments.push('version-references');
187
+ return this.getJson(this.getUrl(segments, {
188
+ size: String(size),
189
+ offset: String(offset)
190
+ }));
191
+ }
192
+ catch (err) {
193
+ return (0, util_1.rejectError)(err);
194
+ }
195
+ }
196
+ /**
197
+ * Full-text search across the registry. Returns the purpose-built summary shape rather than
198
+ * whole extension records, so a page of results stays small.
199
+ */
200
+ search(options) {
201
+ try {
202
+ const query = {
203
+ size: String(options.size),
204
+ offset: String(options.offset)
205
+ };
206
+ if (options.query) {
207
+ query.query = options.query;
208
+ }
209
+ if (options.category) {
210
+ query.category = options.category;
211
+ }
212
+ if (options.targetPlatform) {
213
+ query.targetPlatform = options.targetPlatform;
214
+ }
215
+ if (options.sortBy) {
216
+ query.sortBy = options.sortBy;
217
+ }
218
+ if (options.sortOrder) {
219
+ query.sortOrder = options.sortOrder;
220
+ }
221
+ return this.getJson(this.getUrl(['api', '-', 'search'], query));
222
+ }
223
+ catch (err) {
224
+ return (0, util_1.rejectError)(err);
225
+ }
226
+ }
227
+ /** Returns a namespace and the extensions published in it. */
228
+ getNamespace(namespace) {
229
+ try {
230
+ return this.getJson(this.getUrl(['api', namespace]));
231
+ }
232
+ catch (err) {
233
+ return (0, util_1.rejectError)(err);
234
+ }
235
+ }
79
236
  download(file, url) {
80
237
  return new Promise((resolve, reject) => {
81
- const stream = fs.createWriteStream(file);
82
- const requestOptions = this.getRequestOptions();
83
- const request = this.getProtocol(url)
84
- .request(url, requestOptions, response => {
85
- response.on('end', () => {
86
- if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
87
- reject((0, util_1.statusError)(response));
238
+ // Written beside the target and renamed into place on success, so the caller's path holds
239
+ // either what it held before or the whole download, never part of one. Deferring the open
240
+ // until the status is known is not enough on its own: a connection dropped mid-body has
241
+ // already truncated the file by then, and `get` is handed a path the user chose.
242
+ const partial = `${file}.part`;
243
+ let stream;
244
+ // Claimed synchronously, before the cleanup that has to happen before rejecting. A timeout
245
+ // mid-body drives both the request's error handler and pipeline's callback, and each used
246
+ // to wait on its own fs.rm - so whichever landed first decided what the caller was told,
247
+ // and the partial was removed twice.
248
+ let failed = false;
249
+ const fail = (err) => {
250
+ if (failed) {
251
+ return;
252
+ }
253
+ failed = true;
254
+ stream?.destroy();
255
+ fs.rm(partial, { force: true }, () => reject(err));
256
+ };
257
+ (0, http_1.send)(url, this.getRequestOptions(), undefined, response => {
258
+ if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
259
+ response.resume();
260
+ reject((0, util_1.statusError)(response));
261
+ return;
262
+ }
263
+ stream = fs.createWriteStream(partial);
264
+ // pipeline rather than response.pipe: pipe installs its own error handler on the
265
+ // source, so a connection dropped mid-body is swallowed - the write stream is never
266
+ // ended, nothing settles, and the caller waits for a file that will never arrive.
267
+ // pipeline propagates that error and tears both ends down. Its callback also waits
268
+ // for the file to close, which matters in its own right: a write stream opens and
269
+ // flushes asynchronously, so the last byte having arrived says nothing about the
270
+ // file being on disk.
271
+ (0, stream_1.pipeline)(response, stream, (err) => {
272
+ if (err) {
273
+ fail(err);
274
+ }
275
+ else if (!response.complete) {
276
+ // A body cut short still ends the stream cleanly; `complete` is what tells
277
+ // that apart from having received all of it.
278
+ fail(new Error(`The connection closed before the whole of ${(0, util_1.redactUrl)(url)} was received.`));
88
279
  }
89
280
  else {
90
- resolve();
281
+ fs.rename(partial, file, renameErr => renameErr ? fail(renameErr) : resolve());
91
282
  }
92
283
  });
93
- response.pipe(stream);
94
- });
95
- stream.on('error', (err) => {
96
- request.abort();
97
- reject(err);
98
- });
99
- request.on('error', (err) => {
100
- stream.close();
101
- reject(err);
102
- });
103
- request.end();
284
+ }, fail);
104
285
  });
105
286
  }
106
- getJson(url) {
287
+ getJson(url, headers) {
107
288
  return new Promise((resolve, reject) => {
108
- const requestOptions = this.getRequestOptions();
109
- const request = this.getProtocol(url)
110
- .request(url, requestOptions, this.getJsonResponse(resolve, reject));
111
- request.on('error', reject);
112
- request.end();
289
+ (0, http_1.send)(url, this.getRequestOptions('GET', headers), undefined, (0, http_1.jsonResponse)(resolve, reject), reject);
113
290
  });
114
291
  }
115
292
  post(content, url, headers, maxBodyLength) {
116
293
  return new Promise((resolve, reject) => {
117
- const requestOptions = this.getRequestOptions('POST', headers, maxBodyLength);
118
- const request = this.getProtocol(url)
119
- .request(url, requestOptions, this.getJsonResponse(resolve, reject));
120
- request.on('error', reject);
121
- request.write(content);
122
- request.end();
294
+ const size = typeof content === 'string' ? Buffer.byteLength(content) : content.byteLength;
295
+ checkBodySize(size, maxBodyLength);
296
+ (0, http_1.send)(url, this.getRequestOptions('POST', headers), () => content, (0, http_1.jsonResponse)(resolve, reject), reject);
123
297
  });
124
298
  }
125
- postFile(file, url, headers, maxBodyLength) {
299
+ async postFile(file, url, headers, maxBodyLength) {
300
+ checkBodySize((await fs.promises.stat(file)).size, maxBodyLength);
126
301
  return new Promise((resolve, reject) => {
127
- const stream = fs.createReadStream(file);
128
- const requestOptions = this.getRequestOptions('POST', headers, maxBodyLength);
129
- const request = this.getProtocol(url)
130
- .request(url, requestOptions, this.getJsonResponse(resolve, reject));
131
- stream.on('error', (err) => {
132
- request.abort();
133
- reject(err);
134
- });
135
- request.on('error', (err) => {
136
- stream.close();
137
- reject(err);
138
- });
139
- stream.on('open', () => stream.pipe(request));
302
+ // a stream can be read once, so each redirect hop opens the file again
303
+ (0, http_1.send)(url, this.getRequestOptions('POST', headers), () => fs.createReadStream(file), (0, http_1.jsonResponse)(resolve, reject), reject);
140
304
  });
141
305
  }
306
+ /**
307
+ * The header a personal access token travels in. `Authorization: Bearer` is standard and what
308
+ * log/proxy redaction and secret scanners already expect, so it's preferred - except when
309
+ * `username`/`password` are set, where `Authorization` is already claimed by Basic auth to a
310
+ * fronting reverse proxy (see `getRequestOptions`) and the token falls back to `TOKEN_HEADER`.
311
+ */
312
+ tokenHeaders(pat) {
313
+ return (this.username && this.password)
314
+ ? { [TOKEN_HEADER]: pat }
315
+ : { Authorization: `Bearer ${pat}` };
316
+ }
317
+ /**
318
+ * The `token` query parameter to add alongside the header, for registries that predate header
319
+ * support (see #1344) - empty once the registry is known to be new enough to not need it.
320
+ *
321
+ * Best-effort and cached per `Registry` instance: a registry that doesn't expose `/api/version`,
322
+ * or reports a version that doesn't parse as semver, is assumed too old to know about the header,
323
+ * same as before this method existed - the query parameter is kept rather than risking a request
324
+ * that only carries a header such a registry never looks at.
325
+ */
326
+ tokenQuery(pat) {
327
+ return (this.tokenHeaderSupport ?? (this.tokenHeaderSupport = this.getRegistryVersion()
328
+ .then(({ version }) => {
329
+ const parsed = semver.coerce(version);
330
+ return !!parsed && semver.gte(parsed, exports.MIN_TOKEN_HEADER_REGISTRY_VERSION);
331
+ })
332
+ .catch(() => false))).then(supported => supported ? {} : { token: pat });
333
+ }
142
334
  getUrl(segments, query) {
143
335
  const url = new URL(this.url);
144
336
  const basePath = url.pathname.replace(/\/+$/, '');
@@ -149,10 +341,7 @@ class Registry {
149
341
  }
150
342
  return url;
151
343
  }
152
- getProtocol(url) {
153
- return url.protocol === 'https:' ? followRedirects.https : followRedirects.http;
154
- }
155
- getRequestOptions(method, headers, maxBodyLength) {
344
+ getRequestOptions(method, headers) {
156
345
  if (this.username && this.password) {
157
346
  headers ?? (headers = {});
158
347
  const credentials = Buffer.from(this.username + ':' + this.password).toString('base64');
@@ -161,45 +350,15 @@ class Registry {
161
350
  return {
162
351
  method,
163
352
  headers,
164
- maxBodyLength
165
- };
166
- }
167
- getJsonResponse(resolve, reject) {
168
- return response => {
169
- response.setEncoding('utf-8');
170
- let json = '';
171
- response.on('data', chunk => json += chunk);
172
- response.on('end', () => {
173
- if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
174
- if (json.startsWith('{')) {
175
- try {
176
- const parsed = JSON.parse(json);
177
- const message = parsed.message || parsed.error;
178
- if (message) {
179
- reject(new Error(message));
180
- return;
181
- }
182
- }
183
- catch (err) {
184
- // Ignore the error and reject with response status
185
- }
186
- }
187
- reject((0, util_1.statusError)(response));
188
- }
189
- else if (json.startsWith('<!DOCTYPE html>')) {
190
- reject(json);
191
- }
192
- else {
193
- try {
194
- resolve(JSON.parse(json));
195
- }
196
- catch (err) {
197
- reject(err);
198
- }
199
- }
200
- });
353
+ timeout: this.timeout
201
354
  };
202
355
  }
203
356
  }
204
357
  exports.Registry = Registry;
358
+ /** Refuses a request body larger than `maxBodyLength` before anything is sent. */
359
+ function checkBodySize(size, maxBodyLength) {
360
+ if (maxBodyLength !== undefined && size > maxBodyLength) {
361
+ throw new Error(`The request body of ${size} bytes is larger than the limit of ${maxBodyLength} bytes.`);
362
+ }
363
+ }
205
364
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /******************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ *****************************************************************************/
13
+ import { RegistryOptions } from './registry-options';
14
+ export interface SearchOptions extends RegistryOptions {
15
+ /**
16
+ * Text to search for. Omit to browse, which is what makes `--category` useful on its own.
17
+ */
18
+ text?: string;
19
+ /**
20
+ * Restrict results to a category, e.g. `Programming Languages`.
21
+ */
22
+ category?: string;
23
+ /**
24
+ * Restrict results to extensions published for a target platform.
25
+ */
26
+ target?: string;
27
+ /**
28
+ * Sort key: `relevance`, `timestamp`, `rating` or `downloadCount`.
29
+ */
30
+ sortBy?: string;
31
+ /**
32
+ * `asc` or `desc`.
33
+ */
34
+ sortOrder?: string;
35
+ /**
36
+ * Number of results to return.
37
+ */
38
+ size?: number;
39
+ /**
40
+ * Index of the first result, for paging through a large result set.
41
+ */
42
+ offset?: number;
43
+ /**
44
+ * Print the raw results as JSON instead of a table.
45
+ */
46
+ json?: boolean;
47
+ }
48
+ //# sourceMappingURL=search-options.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-options.d.ts","sourceRoot":"","sources":["../src/search-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;+EAW+E;AAE/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,MAAM,WAAW,aAAc,SAAQ,eAAe;IAClD;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ /******************************************************************************
3
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
4
+ *
5
+ * See the NOTICE file(s) distributed with this work for additional
6
+ * information regarding copyright ownership.
7
+ *
8
+ * This program and the accompanying materials are made available under the
9
+ * terms of the Eclipse Public License 2.0 which is available at
10
+ * https://www.eclipse.org/legal/epl-2.0.
11
+ *
12
+ * SPDX-License-Identifier: EPL-2.0
13
+ *****************************************************************************/
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ //# sourceMappingURL=search-options.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-options.js","sourceRoot":"","sources":["../src/search-options.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;+EAW+E"}
@@ -0,0 +1,22 @@
1
+ /******************************************************************************
2
+ * Copyright (c) 2026 Contributors to the Eclipse Foundation.
3
+ *
4
+ * See the NOTICE file(s) distributed with this work for additional
5
+ * information regarding copyright ownership.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License 2.0 which is available at
9
+ * https://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * SPDX-License-Identifier: EPL-2.0
12
+ *****************************************************************************/
13
+ import { SearchOptions } from './search-options';
14
+ /** Sort keys the registry accepts, for an up-front check with a better message than a 400. */
15
+ export declare const SORT_KEYS: string[];
16
+ export declare const SORT_ORDERS: string[];
17
+ export declare const DEFAULT_SEARCH_SIZE = 20;
18
+ /**
19
+ * Searches the registry for extensions.
20
+ */
21
+ export declare function search(options: SearchOptions): Promise<void>;
22
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;+EAW+E;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAIjD,8FAA8F;AAC9F,eAAO,MAAM,SAAS,UAAwD,CAAC;AAE/E,eAAO,MAAM,WAAW,UAAkB,CAAC;AAE3C,eAAO,MAAM,mBAAmB,KAAK,CAAC;AAKtC;;GAEG;AACH,wBAAsB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BlE"}