ovsx 1.2.0 → 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.
package/lib/oidc.js CHANGED
@@ -14,7 +14,7 @@
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.hasIdTokenSource = hasIdTokenSource;
16
16
  exports.getIdToken = getIdToken;
17
- const followRedirects = require("follow-redirects");
17
+ const http_1 = require("./http");
18
18
  const util_1 = require("./util");
19
19
  /**
20
20
  * Whether an OIDC ID token can be obtained without user interaction.
@@ -45,57 +45,15 @@ async function getGitHubActionsIdToken(audience) {
45
45
  // the request URL already carries an api-version query parameter, so keep its query intact
46
46
  const url = new URL(process.env.ACTIONS_ID_TOKEN_REQUEST_URL);
47
47
  url.searchParams.set('audience', audience);
48
- const response = await getJson(url, {
48
+ // Sent with only these headers, so none of the registry's credentials reach the CI system's
49
+ // token service. OVSX_TIMEOUT still applies, as there are no registry options to read it from.
50
+ const response = await (0, http_1.getJson)(url, {
49
51
  'Authorization': `Bearer ${process.env.ACTIONS_ID_TOKEN_REQUEST_TOKEN}`,
50
52
  'Accept': 'application/json'
51
- });
53
+ }, (0, util_1.configuredTimeout)());
52
54
  if (!response.value) {
53
55
  throw new Error('GitHub Actions did not return an OIDC ID token.');
54
56
  }
55
57
  return response.value;
56
58
  }
57
- /**
58
- * Minimal JSON GET that is not bound to the registry: the request must not carry any registry
59
- * credentials, as it is sent to the CI system's token service.
60
- */
61
- function getJson(url, headers) {
62
- return new Promise((resolve, reject) => {
63
- const protocol = url.protocol === 'https:' ? followRedirects.https : followRedirects.http;
64
- // OVSX_TIMEOUT covers this request too. Read here rather than taken from the registry's
65
- // options, since this one carries none of the registry's configuration - only the clock is
66
- // shared, and having two of those to explain would be worse.
67
- const timeout = (0, util_1.configuredTimeout)();
68
- const request = protocol.request(url, { method: 'GET', headers, timeout }, response => {
69
- response.setEncoding('utf-8');
70
- let json = '';
71
- // See Registry.getJsonResponse: a connection lost mid-body never fires 'end', so the
72
- // response's own error has to be what settles the promise.
73
- response.on('error', reject);
74
- response.on('data', chunk => json += chunk);
75
- response.on('end', () => {
76
- if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
77
- reject((0, util_1.statusError)(response));
78
- }
79
- else {
80
- try {
81
- resolve(JSON.parse(json));
82
- }
83
- catch (err) {
84
- reject(err);
85
- }
86
- }
87
- });
88
- });
89
- request.on('error', reject);
90
- // The timeout option only raises an event, so the request has to be destroyed for it to mean
91
- // anything; the error then arrives at the handler above.
92
- request.on('timeout', () => {
93
- // Rejected before the teardown, so the timeout is what the caller sees rather than
94
- // whichever error destroying the request happens to raise first.
95
- reject(new Error(`No response from ${(0, util_1.redactUrl)(url)} for ${timeout} ms.`));
96
- request.destroy();
97
- });
98
- request.end();
99
- });
100
- }
101
59
  //# sourceMappingURL=oidc.js.map
package/lib/oidc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../src/oidc.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;+EAW+E;;AAS/E,4CAEC;AAKD,gCAYC;AA1BD,iCAAiC;AAEjC,iCAA2C;AAE3C;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAiC;IAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,+BAA+B,EAAE,CAAC;AACzE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,QAAgB,EAAE,OAAiC;IAChF,wFAAwF;IACxF,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,OAAO,OAAO,CAAC,OAAO,CAAC;IAC3B,CAAC;IACD,IAAI,+BAA+B,EAAE,EAAE,CAAC;QACpC,OAAO,uBAAuB,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,sDAAsD;UAChE,sEAAsE;UACtE,oEAAoE;UACpE,4CAA4C,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,+BAA+B;IACpC,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA4B,IAAI,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AAC3G,CAAC;AAED,KAAK,UAAU,uBAAuB,CAAC,QAAgB;IACnD,2FAA2F;IAC3F,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,4BAA6B,CAAC,CAAC;IAC/D,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC3C,4FAA4F;IAC5F,+FAA+F;IAC/F,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAO,EAAwB,GAAG,EAAE;QACvD,eAAe,EAAE,UAAU,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE;QACvE,QAAQ,EAAE,kBAAkB;KAC/B,EAAE,IAAA,wBAAiB,GAAE,CAAC,CAAC;IACxB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,QAAQ,CAAC,KAAK,CAAC;AAC1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAwB,MAAM,mBAAmB,CAAC;AAGzE;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAiBjG"}
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"AAwBA,OAAO,EAAE,cAAc,EAAwB,MAAM,mBAAmB,CAAC;AAMzE;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC,CAoBjG"}
package/lib/publish.js CHANGED
@@ -11,6 +11,7 @@ exports.publish = publish;
11
11
  * SPDX-License-Identifier: EPL-2.0
12
12
  ********************************************************************************/
13
13
  const fs = require("fs");
14
+ const semver = require("semver");
14
15
  const vsce_1 = require("@vscode/vsce");
15
16
  const pat_1 = require("./pat");
16
17
  const util_1 = require("./util");
@@ -18,14 +19,19 @@ const registry_1 = require("./registry");
18
19
  const check_license_1 = require("./check-license");
19
20
  const zip_1 = require("./zip");
20
21
  const trusted_publishing_1 = require("./trusted-publishing");
22
+ /** Registries older than this cannot report the limit that applies to a namespace. */
23
+ const MIN_SIZE_LIMIT_REGISTRY_VERSION = '1.3.0';
21
24
  /**
22
25
  * Publishes an extension.
23
26
  */
24
27
  async function publish(options = {}) {
25
28
  (0, util_1.addEnvOptions)(options);
26
29
  (0, util_1.addTrustedPublishingEnvOptions)(options);
27
- // Looked up once and shared by every target/package below, rather than once per artifact.
28
- const maxExtensionSize = await getMaxExtensionSize(new registry_1.Registry(options));
30
+ // Shared by every target/package below, rather than one per artifact: besides saving the extra
31
+ // `/api/version` round trips, it's also where the registry's reported version is cached (see
32
+ // Registry.tokenQuery), so a wide fan-out doesn't repeat that lookup once per target either.
33
+ const registry = new registry_1.Registry(options);
34
+ const maxExtensionSize = await getMaxExtensionSize(registry);
29
35
  const internalPublishOptions = [];
30
36
  const packagePaths = options.packagePath || [undefined];
31
37
  const targets = options.targets || [undefined];
@@ -34,14 +40,14 @@ async function publish(options = {}) {
34
40
  internalPublishOptions.push({ ...options, packagePath: packagePath, target: target, maxExtensionSize });
35
41
  }
36
42
  }
37
- return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(publishOptions)));
43
+ return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(registry, publishOptions)));
38
44
  }
39
45
  /**
40
- * Looks up the registry's configured extension size limit, so an oversized package can be rejected
41
- * locally before the upload instead of after transferring the whole payload.
46
+ * Looks up the registry's default extension size limit, so an oversized package can be flagged
47
+ * before the upload instead of after transferring the whole payload.
42
48
  *
43
49
  * Best-effort: registries that don't expose `/api/version`, or don't report a limit, return
44
- * `undefined` here, and the upload proceeds to let the server enforce its own limit as before.
50
+ * `undefined` here, and nothing is said about the size.
45
51
  */
46
52
  async function getMaxExtensionSize(registry) {
47
53
  try {
@@ -51,27 +57,43 @@ async function getMaxExtensionSize(registry) {
51
57
  return undefined;
52
58
  }
53
59
  }
54
- async function doPublish(options = {}) {
60
+ async function doPublish(registry, options = {}) {
55
61
  // if the packagePath is a link to a vsix, don't need to package it
56
62
  if (options.packagePath?.endsWith('.vsix')) {
57
63
  options.extensionFile = options.packagePath;
58
64
  delete options.packagePath;
59
65
  delete options.target;
60
66
  }
61
- const registry = new registry_1.Registry(options);
62
- if (!options.extensionFile) {
63
- await packageExtension(options, registry);
64
- console.log(); // new line
65
- }
66
- else if (options.preRelease) {
67
- console.warn("Ignoring option '--pre-release' for prepackaged extension.");
67
+ // Only a package created here is a temp file; one the user supplied must never be deleted.
68
+ const packaged = !options.extensionFile;
69
+ try {
70
+ if (packaged) {
71
+ await packageExtension(options, registry);
72
+ console.log(); // new line
73
+ }
74
+ else if (options.preRelease) {
75
+ console.warn("Ignoring option '--pre-release' for prepackaged extension.");
76
+ }
77
+ await publishExtensionFile(registry, options);
78
+ }
79
+ finally {
80
+ if (packaged && options.extensionFile) {
81
+ // Caught rather than awaited plainly: a failure here (e.g. the temp dir is locked or
82
+ // read-only) must not replace whatever error publishExtensionFile already threw above.
83
+ await fs.promises.rm(options.extensionFile, { force: true }).catch(err => {
84
+ console.warn(`Could not delete temporary file ${options.extensionFile}: ${err.message}`);
85
+ });
86
+ }
68
87
  }
69
- await ensureWithinSizeLimit(options.extensionFile, options.maxExtensionSize, registry.url);
88
+ }
89
+ async function publishExtensionFile(registry, options) {
90
+ // Read up front rather than only when a token has to be obtained: the size limit is looked up per
91
+ // namespace, and the namespace lives in the manifest.
92
+ const manifest = await (0, zip_1.readVSIXPackage)(options.extensionFile);
70
93
  // Set only when this publish obtained the token itself through trusted publishing, which is the one
71
94
  // case where a refusal can be answered by asking for a new token.
72
95
  let exchanged;
73
96
  if (!options.pat) {
74
- const manifest = await (0, zip_1.readVSIXPackage)(options.extensionFile);
75
97
  if ((0, trusted_publishing_1.useTrustedPublishing)(options)) {
76
98
  exchanged = { namespace: manifest.publisher, extension: manifest.name };
77
99
  options.pat = await (0, trusted_publishing_1.getTrustedPublishingToken)(registry, manifest.publisher, manifest.name, options);
@@ -80,9 +102,12 @@ async function doPublish(options = {}) {
80
102
  options.pat = await (0, pat_1.getPAT)(manifest.publisher, options);
81
103
  }
82
104
  }
105
+ // After the token is resolved, because the lookup is authenticated - and by here a token always
106
+ // exists, whether supplied, fetched, or exchanged through trusted publishing.
107
+ const sizeLimit = await ensureWithinSizeLimit(registry, options, manifest);
83
108
  let extension;
84
109
  try {
85
- extension = await doRegistryPublish(registry, options, exchanged);
110
+ extension = await doRegistryPublish(registry, options, exchanged, sizeLimit);
86
111
  }
87
112
  catch (err) {
88
113
  if (options.skipDuplicate && err.message.endsWith('is already published.')) {
@@ -115,9 +140,9 @@ async function doPublish(options = {}) {
115
140
  * Only ever retried once, and only for a token obtained here: nothing this can do makes a token the
116
141
  * user supplied valid, and a second refusal means the token is not the problem.
117
142
  */
118
- async function doRegistryPublish(registry, options, exchanged) {
143
+ async function doRegistryPublish(registry, options, exchanged, sizeLimit) {
119
144
  try {
120
- return await registry.publish(options.extensionFile, options.pat);
145
+ return await registry.publish(options.extensionFile, options.pat, sizeLimit);
121
146
  }
122
147
  catch (err) {
123
148
  if (!exchanged || err?.status !== 401) {
@@ -125,30 +150,73 @@ async function doRegistryPublish(registry, options, exchanged) {
125
150
  }
126
151
  console.log('The registry refused the publishing token, requesting a new one');
127
152
  options.pat = await (0, trusted_publishing_1.refreshTrustedPublishingToken)(registry, exchanged.namespace, exchanged.extension, options, options.pat);
128
- return registry.publish(options.extensionFile, options.pat);
153
+ return registry.publish(options.extensionFile, options.pat, sizeLimit);
129
154
  }
130
155
  }
131
156
  /**
132
- * Fails fast with an actionable message when the packaged extension is already known to exceed the
133
- * registry's configured size limit, rather than uploading the whole file only to have the server
134
- * reject it. `maxSize` is `undefined` when the limit couldn't be determined, in which case the check
135
- * is skipped and the upload is left to the server to accept or reject.
157
+ * Refuses a package the registry would reject anyway, before uploading it, and reports how many
158
+ * bytes it has concluded may be sent - the caller raises the transport cap to that, so nothing we
159
+ * decided to upload is then refused locally.
160
+ *
161
+ * The limit is the one that applies to this package's namespace and extension, which a size override
162
+ * can raise above the registry default. Registries older than
163
+ * {@link MIN_SIZE_LIMIT_REGISTRY_VERSION} cannot report it, so there the check stays advisory: it
164
+ * warns against the default and publishes, rather than refusing an upload those registries would
165
+ * have accepted.
136
166
  */
137
- async function ensureWithinSizeLimit(extensionFile, maxSize, registryUrl) {
138
- if (!maxSize) {
139
- return;
167
+ async function ensureWithinSizeLimit(registry, options, manifest) {
168
+ const { size } = await fs.promises.stat(options.extensionFile);
169
+ const limit = await resolveSizeLimit(registry, options, manifest);
170
+ if (limit.kind === 'failed') {
171
+ // Always said, however small the package: a size override can lower a limit as well as raise
172
+ // it, so there is no size from which it follows that this upload is fine. Staying quiet here
173
+ // left a registry whose /api/-/* routes never arrive indistinguishable from a working one.
174
+ console.warn(`Could not check the size limit for ${manifest.publisher}.${manifest.name} at ${registry.url} `
175
+ + `(${limit.reason}). Publishing anyway: the registry enforces its own limit, so an oversized `
176
+ + `package is refused after the upload rather than before it.`);
177
+ }
178
+ else if (limit.kind === 'unsupported') {
179
+ const fallback = options.maxExtensionSize;
180
+ if (fallback && size > fallback) {
181
+ console.warn(`The extension package (${(0, util_1.formatBytes)(size)}) exceeds the default size limit of ${(0, util_1.formatBytes)(fallback)} `
182
+ + `reported by the registry at ${registry.url}, which is too old to report the limit for a `
183
+ + `single namespace. Publishing anyway: the namespace may have a different limit configured, `
184
+ + `and the registry decides.`);
185
+ }
186
+ }
187
+ if (limit.kind !== 'resolved') {
188
+ // The allowance is this package, not the built-in publish size: having decided to send it and
189
+ // let the registry answer, the transport cap must not be what refuses it instead. An older
190
+ // registry whose default is above 512 MiB would otherwise reject a package it would accept.
191
+ return size;
192
+ }
193
+ if (size > limit.limit) {
194
+ throw new Error(`The extension package (${(0, util_1.formatBytes)(size)}) exceeds the size limit of ${(0, util_1.formatBytes)(limit.limit)} `
195
+ + `for ${manifest.publisher}.${manifest.name} at ${registry.url}.`);
196
+ }
197
+ return limit.limit;
198
+ }
199
+ async function resolveSizeLimit(registry, options, manifest) {
200
+ const reported = await registry.getRegistryVersion().catch(() => undefined);
201
+ const version = reported?.version ? semver.coerce(reported.version) : undefined;
202
+ if (!version || semver.lt(version, MIN_SIZE_LIMIT_REGISTRY_VERSION)) {
203
+ return { kind: 'unsupported' };
204
+ }
205
+ try {
206
+ const { maxSize } = await registry.getSizeLimit(manifest.publisher, manifest.name, options.pat);
207
+ return { kind: 'resolved', limit: maxSize };
140
208
  }
141
- const { size } = await fs.promises.stat(extensionFile);
142
- if (size > maxSize) {
143
- throw new Error(`The extension package (${(0, util_1.formatBytes)(size)}) exceeds the size limit of ${(0, util_1.formatBytes)(maxSize)} `
144
- + `accepted by the registry at ${registryUrl}.`);
209
+ catch (err) {
210
+ // The registry claims to be new enough but could not answer. It enforces the limit itself
211
+ // regardless, so publish rather than refusing on a failed lookup.
212
+ return { kind: 'failed', reason: err instanceof Error ? err.message : String(err) };
145
213
  }
146
214
  }
147
215
  async function packageExtension(options, registry) {
148
216
  if (registry.requiresLicense) {
149
217
  await (0, check_license_1.checkLicense)(options.packagePath);
150
218
  }
151
- options.extensionFile = await (0, util_1.createTempFile)({ postfix: '.vsix' });
219
+ options.extensionFile = (0, util_1.getTempFilePath)('.vsix');
152
220
  const packageOptions = {
153
221
  packagePath: options.extensionFile,
154
222
  target: options.target,
@@ -1 +1 @@
1
- {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../src/publish.ts"],"names":[],"mappings":"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"}
package/lib/registry.d.ts CHANGED
@@ -16,6 +16,12 @@ export declare const DEFAULT_PUBLISH_SIZE: number;
16
16
  export { DEFAULT_TIMEOUT };
17
17
  export declare const DEFAULT_TOKEN_REQUEST_SIZE: number;
18
18
  export declare const DEFAULT_DELETE_SIZE: number;
19
+ /**
20
+ * Oldest registry version that resolves the personal access token from a header (see #1344).
21
+ * Registries older than this only look at the `token` query parameter, so `tokenQuery` keeps
22
+ * sending it to anything below this version.
23
+ */
24
+ export declare const MIN_TOKEN_HEADER_REGISTRY_VERSION = "1.3.0";
19
25
  export declare class Registry {
20
26
  readonly url: string;
21
27
  readonly maxNamespaceSize: number;
@@ -23,12 +29,34 @@ export declare class Registry {
23
29
  readonly timeout: number;
24
30
  readonly username?: string;
25
31
  readonly password?: string;
32
+ /** Whether the caller pinned a publish size, which then wins over any limit the registry reports. */
33
+ private readonly publishSizePinned;
34
+ private registryVersion?;
35
+ private tokenHeaderSupport?;
26
36
  constructor(options?: RegistryOptions);
27
37
  get requiresLicense(): boolean;
28
38
  createNamespace(name: string, pat: string): Promise<Response>;
29
39
  verifyPat(namespace: string, pat: string): Promise<Response>;
40
+ /**
41
+ * The size limit that applies to this namespace/extension, which a size override can raise above
42
+ * the registry default. Neither needs to exist yet - a first publish asks about both before
43
+ * creating either.
44
+ */
45
+ getSizeLimit(namespace: string, extension: string, pat: string): Promise<SizeLimit>;
46
+ /**
47
+ * Cached per `Registry` instance - callers like `tokenQuery` and `unpublish`'s own version check
48
+ * would otherwise each fetch it separately, doubling the round trip for a single command.
49
+ */
30
50
  getRegistryVersion(): Promise<RegistryVersion>;
31
- publish(file: string, pat: string): Promise<Extension>;
51
+ /**
52
+ * `sizeLimit` is the limit the registry reports for this package, when it could report one. The
53
+ * transport body cap is raised to it, because a namespace granted more than the default would
54
+ * otherwise have its upload refused here - by the body size check, before anything reached the
55
+ * registry that allowed it.
56
+ */
57
+ publish(file: string, pat: string, sizeLimit?: number): Promise<Extension>;
58
+ /** The body cap for a publish. A pinned `maxPublishSize` wins; otherwise it never sits below the registry's own limit. */
59
+ publishBodyLimit(sizeLimit?: number): number;
32
60
  requestTrustedPublishingToken(namespace: string, extension: string, idToken: string): Promise<AccessToken>;
33
61
  /**
34
62
  * Deletes extension versions. Omitting `targetVersions` deletes the extension as a whole,
@@ -50,21 +78,28 @@ export declare class Registry {
50
78
  /** Returns a namespace and the extensions published in it. */
51
79
  getNamespace(namespace: string): Promise<Namespace>;
52
80
  download(file: string, url: URL): Promise<void>;
53
- getJson<T extends Response>(url: URL): Promise<T>;
81
+ getJson<T extends Response>(url: URL, headers?: http.OutgoingHttpHeaders): Promise<T>;
54
82
  post<T extends Response>(content: string | Buffer | Uint8Array, url: URL, headers?: http.OutgoingHttpHeaders, maxBodyLength?: number): Promise<T>;
55
83
  postFile<T extends Response>(file: string, url: URL, headers?: http.OutgoingHttpHeaders, maxBodyLength?: number): Promise<T>;
56
- private getUrl;
57
- private getProtocol;
58
84
  /**
59
- * Node's `timeout` option only raises an event - the request stays open, which is why a server
60
- * that accepts a connection and then says nothing used to hold a command open indefinitely.
61
- * Destroying the request with an error routes through the error handling each caller already
62
- * has, so a stalled request rejects the way any other failure does. With a timeout of zero the
63
- * event never fires and this does nothing.
85
+ * The header a personal access token travels in. `Authorization: Bearer` is standard and what
86
+ * log/proxy redaction and secret scanners already expect, so it's preferred - except when
87
+ * `username`/`password` are set, where `Authorization` is already claimed by Basic auth to a
88
+ * fronting reverse proxy (see `getRequestOptions`) and the token falls back to `TOKEN_HEADER`.
89
+ */
90
+ private tokenHeaders;
91
+ /**
92
+ * The `token` query parameter to add alongside the header, for registries that predate header
93
+ * support (see #1344) - empty once the registry is known to be new enough to not need it.
94
+ *
95
+ * Best-effort and cached per `Registry` instance: a registry that doesn't expose `/api/version`,
96
+ * or reports a version that doesn't parse as semver, is assumed too old to know about the header,
97
+ * same as before this method existed - the query parameter is kept rather than risking a request
98
+ * that only carries a header such a registry never looks at.
64
99
  */
65
- private failOnTimeout;
100
+ private tokenQuery;
101
+ private getUrl;
66
102
  private getRequestOptions;
67
- private getJsonResponse;
68
103
  }
69
104
  export interface Response {
70
105
  success?: string;
@@ -126,6 +161,9 @@ export interface RegistryVersion extends Response {
126
161
  maxExtensionSize: number;
127
162
  trustedPublishingAudience?: string;
128
163
  }
164
+ export interface SizeLimit extends Response {
165
+ maxSize: number;
166
+ }
129
167
  export interface AccessToken extends Response {
130
168
  id: number;
131
169
  value?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}