ovsx 1.2.0 → 1.4.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 (76) hide show
  1. package/README.md +7 -1
  2. package/lib/check-license.d.ts.map +1 -1
  3. package/lib/check-license.js +5 -4
  4. package/lib/check-license.js.map +1 -1
  5. package/lib/create-namespace.d.ts.map +1 -1
  6. package/lib/create-namespace.js +3 -1
  7. package/lib/create-namespace.js.map +1 -1
  8. package/lib/get.js +5 -5
  9. package/lib/get.js.map +1 -1
  10. package/lib/http.d.ts +32 -0
  11. package/lib/http.d.ts.map +1 -0
  12. package/lib/http.js +170 -0
  13. package/lib/http.js.map +1 -0
  14. package/lib/index.d.ts +0 -3
  15. package/lib/index.d.ts.map +1 -1
  16. package/lib/index.js +0 -3
  17. package/lib/index.js.map +1 -1
  18. package/lib/main.js +50 -61
  19. package/lib/main.js.map +1 -1
  20. package/lib/oidc.d.ts.map +1 -1
  21. package/lib/oidc.js +5 -47
  22. package/lib/oidc.js.map +1 -1
  23. package/lib/pat.d.ts +6 -1
  24. package/lib/pat.d.ts.map +1 -1
  25. package/lib/pat.js +16 -7
  26. package/lib/pat.js.map +1 -1
  27. package/lib/publish.d.ts +6 -0
  28. package/lib/publish.d.ts.map +1 -1
  29. package/lib/publish.js +147 -40
  30. package/lib/publish.js.map +1 -1
  31. package/lib/registry.d.ts +50 -12
  32. package/lib/registry.d.ts.map +1 -1
  33. package/lib/registry.js +131 -126
  34. package/lib/registry.js.map +1 -1
  35. package/lib/trusted-publishing-options.d.ts +5 -0
  36. package/lib/trusted-publishing-options.d.ts.map +1 -1
  37. package/lib/trusted-publishing.js +28 -4
  38. package/lib/trusted-publishing.js.map +1 -1
  39. package/lib/unpublish.d.ts.map +1 -1
  40. package/lib/unpublish.js +5 -8
  41. package/lib/unpublish.js.map +1 -1
  42. package/lib/util.d.ts +19 -15
  43. package/lib/util.d.ts.map +1 -1
  44. package/lib/util.js +51 -71
  45. package/lib/util.js.map +1 -1
  46. package/lib/verify-pat.d.ts.map +1 -1
  47. package/lib/verify-pat.js +3 -1
  48. package/lib/verify-pat.js.map +1 -1
  49. package/lib/verify.js +2 -2
  50. package/lib/verify.js.map +1 -1
  51. package/lib/zip.d.ts.map +1 -1
  52. package/lib/zip.js +2 -10
  53. package/lib/zip.js.map +1 -1
  54. package/package.json +19 -14
  55. package/src/check-license.ts +5 -4
  56. package/src/create-namespace.ts +3 -1
  57. package/src/get.ts +6 -6
  58. package/src/http.ts +176 -0
  59. package/src/index.ts +0 -3
  60. package/src/main.ts +54 -63
  61. package/src/oidc.ts +5 -47
  62. package/src/pat.ts +22 -9
  63. package/src/publish.ts +187 -44
  64. package/src/registry.ts +153 -126
  65. package/src/trusted-publishing-options.ts +5 -0
  66. package/src/trusted-publishing.ts +33 -5
  67. package/src/unpublish.ts +4 -7
  68. package/src/util.ts +47 -73
  69. package/src/verify-pat.ts +3 -1
  70. package/src/verify.ts +3 -3
  71. package/src/zip.ts +2 -12
  72. package/lib/version.d.ts +0 -2
  73. package/lib/version.d.ts.map +0 -1
  74. package/lib/version.js +0 -5
  75. package/lib/version.js.map +0 -1
  76. package/src/version.ts +0 -1
package/lib/publish.js CHANGED
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PACKAGING_OPTIONS = void 0;
3
4
  exports.publish = publish;
4
5
  /********************************************************************************
5
6
  * Copyright (c) 2019 TypeFox and others
@@ -11,6 +12,7 @@ exports.publish = publish;
11
12
  * SPDX-License-Identifier: EPL-2.0
12
13
  ********************************************************************************/
13
14
  const fs = require("fs");
15
+ const semver = require("semver");
14
16
  const vsce_1 = require("@vscode/vsce");
15
17
  const pat_1 = require("./pat");
16
18
  const util_1 = require("./util");
@@ -18,30 +20,77 @@ const registry_1 = require("./registry");
18
20
  const check_license_1 = require("./check-license");
19
21
  const zip_1 = require("./zip");
20
22
  const trusted_publishing_1 = require("./trusted-publishing");
23
+ /** Registries older than this cannot report the limit that applies to a namespace. */
24
+ const MIN_SIZE_LIMIT_REGISTRY_VERSION = '1.3.0';
21
25
  /**
22
26
  * Publishes an extension.
23
27
  */
24
28
  async function publish(options = {}) {
25
29
  (0, util_1.addEnvOptions)(options);
26
30
  (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));
29
31
  const internalPublishOptions = [];
32
+ const prepackagedFiles = [];
30
33
  const packagePaths = options.packagePath || [undefined];
31
34
  const targets = options.targets || [undefined];
32
35
  for (const packagePath of packagePaths) {
33
- for (const target of targets) {
34
- internalPublishOptions.push({ ...options, packagePath: packagePath, target: target, maxExtensionSize });
36
+ const extensionFile = options.extensionFile ?? (packagePath?.endsWith('.vsix') ? packagePath : undefined);
37
+ if (extensionFile !== undefined) {
38
+ prepackagedFiles.push(extensionFile);
39
+ // A package is already built for its target, so it is published once, not once per target.
40
+ internalPublishOptions.push({ ...options, extensionFile, packagePath: undefined, target: undefined });
41
+ }
42
+ else {
43
+ for (const target of targets) {
44
+ internalPublishOptions.push({ ...options, packagePath, target });
45
+ }
35
46
  }
36
47
  }
37
- return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(publishOptions)));
48
+ // Before the registry is contacted, so a slow or failing lookup cannot keep these from being seen.
49
+ warnIgnoredPackagingOptions(options, prepackagedFiles);
50
+ // Shared by every target/package below, rather than one per artifact: besides saving the extra
51
+ // `/api/version` round trips, it's also where the registry's reported version is cached (see
52
+ // Registry.tokenQuery), so a wide fan-out doesn't repeat that lookup once per target either.
53
+ const registry = new registry_1.Registry(options);
54
+ const maxExtensionSize = await getMaxExtensionSize(registry);
55
+ return Promise.allSettled(internalPublishOptions.map(publishOptions => doPublish(registry, { ...publishOptions, maxExtensionSize })));
38
56
  }
39
57
  /**
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.
58
+ * Names the files in the warning: next to a directory being packaged, the options still apply to that.
59
+ */
60
+ function warnIgnoredPackagingOptions(options, prepackagedFiles) {
61
+ const files = [...new Set(prepackagedFiles)];
62
+ if (files.length === 0) {
63
+ return;
64
+ }
65
+ const subject = `${files.length === 1 ? 'extension' : 'extensions'} ${files.map(file => `'${file}'`).join(', ')}`;
66
+ for (const [flag, key] of exports.PACKAGING_OPTIONS) {
67
+ // An explicit `false` is not a flag that was given.
68
+ if (options[key] !== undefined && options[key] !== false) {
69
+ console.warn(`Ignoring option '${flag}' for prepackaged ${subject}.`);
70
+ }
71
+ }
72
+ }
73
+ /**
74
+ * Options that only affect packaging, with the CLI flag that sets each, in the order they are reported
75
+ * as ignored for a prepackaged extension. `--no-dependencies` is left out: the CLI always sets
76
+ * `dependencies`, so whether it was given cannot be told apart.
77
+ */
78
+ exports.PACKAGING_OPTIONS = [
79
+ ['--target', 'targets'],
80
+ ['--baseContentUrl', 'baseContentUrl'],
81
+ ['--baseImagesUrl', 'baseImagesUrl'],
82
+ ['--yarn', 'yarn'],
83
+ ['--follow-symlinks', 'followSymlinks'],
84
+ ['--packageVersion', 'packageVersion'],
85
+ ['--allow-missing-repository', 'allowMissingRepository'],
86
+ ['--pre-release', 'preRelease']
87
+ ];
88
+ /**
89
+ * Looks up the registry's default extension size limit, so an oversized package can be flagged
90
+ * before the upload instead of after transferring the whole payload.
42
91
  *
43
92
  * 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.
93
+ * `undefined` here, and nothing is said about the size.
45
94
  */
46
95
  async function getMaxExtensionSize(registry) {
47
96
  try {
@@ -51,38 +100,51 @@ async function getMaxExtensionSize(registry) {
51
100
  return undefined;
52
101
  }
53
102
  }
54
- async function doPublish(options = {}) {
55
- // if the packagePath is a link to a vsix, don't need to package it
56
- if (options.packagePath?.endsWith('.vsix')) {
57
- options.extensionFile = options.packagePath;
58
- delete options.packagePath;
59
- delete options.target;
60
- }
61
- const registry = new registry_1.Registry(options);
62
- if (!options.extensionFile) {
63
- await packageExtension(options, registry);
64
- console.log(); // new line
103
+ async function doPublish(registry, options = {}) {
104
+ // Only a package created here is a temp file; one the user supplied must never be deleted.
105
+ const packaged = !options.extensionFile;
106
+ try {
107
+ if (packaged) {
108
+ await packageExtension(options, registry);
109
+ console.log(); // new line
110
+ }
111
+ await publishExtensionFile(registry, options);
65
112
  }
66
- else if (options.preRelease) {
67
- console.warn("Ignoring option '--pre-release' for prepackaged extension.");
113
+ finally {
114
+ if (packaged && options.extensionFile) {
115
+ // Caught rather than awaited plainly: a failure here (e.g. the temp dir is locked or
116
+ // read-only) must not replace whatever error publishExtensionFile already threw above.
117
+ await fs.promises.rm(options.extensionFile, { force: true }).catch(err => {
118
+ console.warn(`Could not delete temporary file ${options.extensionFile}: ${err.message}`);
119
+ });
120
+ }
68
121
  }
69
- await ensureWithinSizeLimit(options.extensionFile, options.maxExtensionSize, registry.url);
122
+ }
123
+ async function publishExtensionFile(registry, options) {
124
+ // Read up front rather than only when a token has to be obtained: the size limit is looked up per
125
+ // namespace, and the namespace lives in the manifest.
126
+ const manifest = await (0, zip_1.readVSIXPackage)(options.extensionFile);
70
127
  // Set only when this publish obtained the token itself through trusted publishing, which is the one
71
128
  // case where a refusal can be answered by asking for a new token.
72
129
  let exchanged;
73
130
  if (!options.pat) {
74
- const manifest = await (0, zip_1.readVSIXPackage)(options.extensionFile);
75
131
  if ((0, trusted_publishing_1.useTrustedPublishing)(options)) {
76
132
  exchanged = { namespace: manifest.publisher, extension: manifest.name };
77
133
  options.pat = await (0, trusted_publishing_1.getTrustedPublishingToken)(registry, manifest.publisher, manifest.name, options);
78
134
  }
79
135
  else {
80
- options.pat = await (0, pat_1.getPAT)(manifest.publisher, options);
136
+ // getPAT has verified a prompted token already, so it can be stored before publishing
137
+ const { pat, save } = await (0, pat_1.getPAT)(manifest.publisher, options);
138
+ options.pat = pat;
139
+ await save();
81
140
  }
82
141
  }
142
+ // After the token is resolved, because the lookup is authenticated - and by here a token always
143
+ // exists, whether supplied, fetched, or exchanged through trusted publishing.
144
+ const sizeLimit = await ensureWithinSizeLimit(registry, options, manifest);
83
145
  let extension;
84
146
  try {
85
- extension = await doRegistryPublish(registry, options, exchanged);
147
+ extension = await doRegistryPublish(registry, options, exchanged, sizeLimit);
86
148
  }
87
149
  catch (err) {
88
150
  if (options.skipDuplicate && err.message.endsWith('is already published.')) {
@@ -115,9 +177,9 @@ async function doPublish(options = {}) {
115
177
  * Only ever retried once, and only for a token obtained here: nothing this can do makes a token the
116
178
  * user supplied valid, and a second refusal means the token is not the problem.
117
179
  */
118
- async function doRegistryPublish(registry, options, exchanged) {
180
+ async function doRegistryPublish(registry, options, exchanged, sizeLimit) {
119
181
  try {
120
- return await registry.publish(options.extensionFile, options.pat);
182
+ return await registry.publish(options.extensionFile, options.pat, sizeLimit);
121
183
  }
122
184
  catch (err) {
123
185
  if (!exchanged || err?.status !== 401) {
@@ -125,30 +187,75 @@ async function doRegistryPublish(registry, options, exchanged) {
125
187
  }
126
188
  console.log('The registry refused the publishing token, requesting a new one');
127
189
  options.pat = await (0, trusted_publishing_1.refreshTrustedPublishingToken)(registry, exchanged.namespace, exchanged.extension, options, options.pat);
128
- return registry.publish(options.extensionFile, options.pat);
190
+ return registry.publish(options.extensionFile, options.pat, sizeLimit);
129
191
  }
130
192
  }
131
193
  /**
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.
194
+ * Refuses a package the registry would reject anyway, before uploading it, and reports how many
195
+ * bytes it has concluded may be sent - the caller raises the transport cap to that, so nothing we
196
+ * decided to upload is then refused locally.
197
+ *
198
+ * The limit is the one that applies to this package's namespace and extension, which a size override
199
+ * can raise above the registry default. Registries older than
200
+ * {@link MIN_SIZE_LIMIT_REGISTRY_VERSION} cannot report it, so there the check stays advisory: it
201
+ * warns against the default and publishes, rather than refusing an upload those registries would
202
+ * have accepted.
136
203
  */
137
- async function ensureWithinSizeLimit(extensionFile, maxSize, registryUrl) {
138
- if (!maxSize) {
139
- return;
204
+ async function ensureWithinSizeLimit(registry, options, manifest) {
205
+ const { size } = await fs.promises.stat(options.extensionFile);
206
+ const limit = await resolveSizeLimit(registry, options, manifest);
207
+ if (limit.kind === 'failed') {
208
+ // Always said, however small the package: a size override can lower a limit as well as raise
209
+ // it, so there is no size from which it follows that this upload is fine. Staying quiet here
210
+ // left a registry whose /api/-/* routes never arrive indistinguishable from a working one.
211
+ console.warn(`Could not check the size limit for ${manifest.publisher}.${manifest.name} at ${registry.url} `
212
+ + `(${limit.reason}). Publishing anyway: the registry enforces its own limit, so an oversized `
213
+ + `package is refused after the upload rather than before it.`);
214
+ }
215
+ else if (limit.kind === 'unsupported') {
216
+ const fallback = options.maxExtensionSize;
217
+ if (fallback && size > fallback) {
218
+ console.warn(`The extension package (${(0, util_1.formatBytes)(size)}, ${size} bytes) exceeds the default size limit of `
219
+ + `${(0, util_1.formatBytes)(fallback)} (${fallback} bytes) `
220
+ + `reported by the registry at ${registry.url}, which is too old to report the limit for a `
221
+ + `single namespace. Publishing anyway: the namespace may have a different limit configured, `
222
+ + `and the registry decides.`);
223
+ }
140
224
  }
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}.`);
225
+ if (limit.kind !== 'resolved') {
226
+ // The allowance is this package, not the built-in publish size: having decided to send it and
227
+ // let the registry answer, the transport cap must not be what refuses it instead. An older
228
+ // registry whose default is above 512 MiB would otherwise reject a package it would accept.
229
+ return size;
230
+ }
231
+ if (size > limit.limit) {
232
+ throw new Error(`The extension package (${(0, util_1.formatBytes)(size)}, ${size} bytes) exceeds the size limit of `
233
+ + `${(0, util_1.formatBytes)(limit.limit)} (${limit.limit} bytes) `
234
+ + `for ${manifest.publisher}.${manifest.name} at ${registry.url}.`);
235
+ }
236
+ return limit.limit;
237
+ }
238
+ async function resolveSizeLimit(registry, options, manifest) {
239
+ const reported = await registry.getRegistryVersion().catch(() => undefined);
240
+ const version = reported?.version ? semver.coerce(reported.version) : undefined;
241
+ if (!version || semver.lt(version, MIN_SIZE_LIMIT_REGISTRY_VERSION)) {
242
+ return { kind: 'unsupported' };
243
+ }
244
+ try {
245
+ const { maxSize } = await registry.getSizeLimit(manifest.publisher, manifest.name, options.pat);
246
+ return { kind: 'resolved', limit: maxSize };
247
+ }
248
+ catch (err) {
249
+ // The registry claims to be new enough but could not answer. It enforces the limit itself
250
+ // regardless, so publish rather than refusing on a failed lookup.
251
+ return { kind: 'failed', reason: err instanceof Error ? err.message : String(err) };
145
252
  }
146
253
  }
147
254
  async function packageExtension(options, registry) {
148
255
  if (registry.requiresLicense) {
149
256
  await (0, check_license_1.checkLicense)(options.packagePath);
150
257
  }
151
- options.extensionFile = await (0, util_1.createTempFile)({ postfix: '.vsix' });
258
+ options.extensionFile = (0, util_1.getTempFilePath)('.vsix');
152
259
  const packageOptions = {
153
260
  packagePath: options.extensionFile,
154
261
  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,13 +29,35 @@ 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 once it has succeeded - 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>;
32
- requestTrustedPublishingToken(namespace: string, extension: string, idToken: string): Promise<AccessToken>;
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;
60
+ requestTrustedPublishingToken(namespace: string, extension: string, idToken: string, registrationCode?: string): Promise<AccessToken>;
33
61
  /**
34
62
  * Deletes extension versions. Omitting `targetVersions` deletes the extension as a whole,
35
63
  * i.e. all versions the personal access token's user is allowed to delete.
@@ -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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"}