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/util.d.ts CHANGED
@@ -7,12 +7,9 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ********************************************************************************/
10
- import * as fs from 'fs';
11
- import * as tmp from 'tmp';
12
10
  import * as http from 'http';
13
11
  import { RegistryOptions } from './registry-options';
14
12
  import { TrustedPublishingOptions } from './trusted-publishing-options';
15
- export { promisify } from 'util';
16
13
  export declare function addEnvOptions(options: RegistryOptions): void;
17
14
  export declare function addTrustedPublishingEnvOptions(options: TrustedPublishingOptions): void;
18
15
  /** How long a request may make no progress before it is abandoned; see RegistryOptions.timeout. */
@@ -29,15 +26,22 @@ export declare function configuredTimeout(): number;
29
26
  */
30
27
  export declare function parseNonNegativeInt(value: string): number;
31
28
  export declare function matchExtensionId(id: string): RegExpExecArray | null;
32
- export declare function optionalStat(path: fs.PathLike): Promise<fs.Stats | undefined>;
33
- export declare function makeDirs(path: fs.PathLike): Promise<void>;
34
- export declare function createTempFile(options: tmp.TmpNameOptions): Promise<string>;
29
+ /**
30
+ * Levenshtein distance between `a` and `b`: the minimum number of single-character insertions,
31
+ * deletions or substitutions needed to turn one into the other. Used to suggest the closest known
32
+ * command for a typo.
33
+ */
34
+ export declare function levenshtein(a: string, b: string): number;
35
+ /**
36
+ * Returns a random, not-yet-created file path ending in `postfix`, directly in the OS temp directory.
37
+ */
38
+ export declare function getTempFilePath(postfix?: string): string;
35
39
  export declare function rejectError(err: any): Promise<never>;
36
40
  export declare function handleError(debug?: boolean, additionalMessage?: string, exit?: boolean): (reason: any) => void;
37
41
  /**
38
- * Formats a byte count for display, e.g. `1536` -> `1.5 KB`. Mirrors the registry's own
39
- * `FileUtils.byteCountToDisplaySize` formatting so client- and server-side size limit messages read
40
- * the same way.
42
+ * Formats a byte count for display, rounding down, e.g. `1536` -> `1 KB` and `1048577` -> `1 MB`.
43
+ * Mirrors the registry's own `FileUtils.byteCountToDisplaySize` formatting so client- and
44
+ * server-side size limit messages read the same way.
41
45
  */
42
46
  export declare function formatBytes(bytes: number): string;
43
47
  /**
@@ -51,17 +55,17 @@ export declare function withStatus(error: Error, status?: number): StatusError;
51
55
  /**
52
56
  * A URL in the form it can safely be printed: no user info and no query string.
53
57
  *
54
- * `createNamespace`, `verifyPat`, `publish` and `delete` all put the personal access token in a
55
- * `token` query parameter, and an error message goes straight to stderr and from there into CI logs.
56
- * The query carries nothing an error needs, so it is dropped whole rather than filtered key by key -
57
- * a filter has to be kept in step with every parameter anyone ever adds.
58
+ * The personal access token travels in a header now, but `createNamespace`, `verifyPat`, `publish`
59
+ * and `delete` still carry it in the query string too when talking to a registry too old to resolve
60
+ * it from the header (see `Registry.tokenQuery`, #1344). An error message goes straight to stderr
61
+ * and from there into CI logs, and the query carries nothing an error needs - so it stays dropped
62
+ * whole rather than filtered key by key, a filter having to be kept in step with every parameter
63
+ * anyone ever adds.
58
64
  */
59
65
  export declare function redactUrl(url: URL | string): string;
60
66
  export declare function statusError(response: http.IncomingMessage): StatusError;
61
- export declare function readFile(name: string, packagePath?: string, encoding?: BufferEncoding): Promise<string>;
62
67
  export declare function readManifest(packagePath?: string): Promise<Manifest>;
63
68
  export declare function validateManifest(manifest: Manifest): void;
64
- export declare function writeFile(name: string, content: string, packagePath?: string, encoding?: BufferEncoding): Promise<void>;
65
69
  export declare function writeManifest(manifest: Manifest, packagePath?: string): Promise<void>;
66
70
  export interface Manifest {
67
71
  publisher: string;
package/lib/util.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAM5D;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAItF;AAED,mGAAmG;AACnG,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAmBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAEnE;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,CAI7E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAazD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAS3E;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,kBAGnC;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAmBpH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAIrE;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,CAQnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,WAAW,CAKvE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAchH;AAED,wBAAsB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG1E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAUzD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAehI;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAMlF,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAM5D;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,GAAG,IAAI,CAKtF;AAED,mGAAmG;AACnG,eAAO,MAAM,eAAe,QAAS,CAAC;AAEtC;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAmBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOzD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAEnE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAqBxD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,SAAK,GAAG,MAAM,CAEpD;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,kBAGnC;AAED,wBAAgB,WAAW,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,OAAc,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAmBpH;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;;GAGG;AACH,MAAM,WAAW,WAAY,SAAQ,KAAK;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,WAAW,CAIrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,GAAG,MAAM,CAQnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,WAAW,CAKvE;AAED,wBAAsB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAG1E;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAUzD;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGrF;AAED,MAAM,WAAW,QAAQ;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CACpB"}
package/lib/util.js CHANGED
@@ -9,31 +9,28 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  ********************************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.DEFAULT_TIMEOUT = exports.promisify = void 0;
12
+ exports.DEFAULT_TIMEOUT = void 0;
13
13
  exports.addEnvOptions = addEnvOptions;
14
14
  exports.addTrustedPublishingEnvOptions = addTrustedPublishingEnvOptions;
15
15
  exports.configuredTimeout = configuredTimeout;
16
16
  exports.parseNonNegativeInt = parseNonNegativeInt;
17
17
  exports.matchExtensionId = matchExtensionId;
18
- exports.optionalStat = optionalStat;
19
- exports.makeDirs = makeDirs;
20
- exports.createTempFile = createTempFile;
18
+ exports.levenshtein = levenshtein;
19
+ exports.getTempFilePath = getTempFilePath;
21
20
  exports.rejectError = rejectError;
22
21
  exports.handleError = handleError;
23
22
  exports.formatBytes = formatBytes;
24
23
  exports.withStatus = withStatus;
25
24
  exports.redactUrl = redactUrl;
26
25
  exports.statusError = statusError;
27
- exports.readFile = readFile;
28
26
  exports.readManifest = readManifest;
29
27
  exports.validateManifest = validateManifest;
30
- exports.writeFile = writeFile;
31
28
  exports.writeManifest = writeManifest;
29
+ const crypto = require("crypto");
32
30
  const fs = require("fs");
31
+ const os = require("os");
33
32
  const path = require("path");
34
- const tmp = require("tmp");
35
- var util_1 = require("util");
36
- Object.defineProperty(exports, "promisify", { enumerable: true, get: function () { return util_1.promisify; } });
33
+ const commander_1 = require("commander");
37
34
  function addEnvOptions(options) {
38
35
  options.registryUrl ?? (options.registryUrl = process.env.OVSX_REGISTRY_URL);
39
36
  options.pat ?? (options.pat = process.env.OVSX_PAT);
@@ -45,6 +42,7 @@ function addTrustedPublishingEnvOptions(options) {
45
42
  options.trustedPublishing ?? (options.trustedPublishing = parseBooleanEnv(process.env.OVSX_TRUSTED_PUBLISHING));
46
43
  options.idToken ?? (options.idToken = process.env.OVSX_ID_TOKEN);
47
44
  options.oidcAudience ?? (options.oidcAudience = process.env.OVSX_OIDC_AUDIENCE);
45
+ options.registrationCode ?? (options.registrationCode = process.env.OVSX_REGISTRATION_CODE);
48
46
  }
49
47
  /** How long a request may make no progress before it is abandoned; see RegistryOptions.timeout. */
50
48
  exports.DEFAULT_TIMEOUT = 30000;
@@ -78,42 +76,46 @@ function parseBooleanEnv(value) {
78
76
  function parseNonNegativeInt(value) {
79
77
  const parsed = Number(value);
80
78
  if (!Number.isInteger(parsed) || parsed < 0) {
81
- throw new Error(`Expected a non-negative whole number, got '${value}'.`);
79
+ // Commander prints only this error type as a usage message; anything else escapes as a stack trace.
80
+ throw new commander_1.InvalidArgumentError(`Expected a non-negative whole number, got '${value}'.`);
82
81
  }
83
82
  return parsed;
84
83
  }
85
84
  function matchExtensionId(id) {
86
85
  return /^([\w-]+)(?:\.|\/)([\w-]+)$/.exec(id);
87
86
  }
88
- function optionalStat(path) {
89
- return new Promise((resolve, reject) => {
90
- fs.stat(path, (err, stats) => resolve(stats));
91
- });
92
- }
93
- function makeDirs(path) {
94
- return new Promise((resolve, reject) => {
95
- if (fs.existsSync(path)) {
96
- resolve();
97
- }
98
- else {
99
- fs.mkdir(path, { recursive: true }, (err) => {
100
- if (err)
101
- reject(err);
102
- else
103
- resolve();
104
- });
87
+ /**
88
+ * Levenshtein distance between `a` and `b`: the minimum number of single-character insertions,
89
+ * deletions or substitutions needed to turn one into the other. Used to suggest the closest known
90
+ * command for a typo.
91
+ */
92
+ function levenshtein(a, b) {
93
+ if (a === b) {
94
+ return 0;
95
+ }
96
+ // The distance is symmetric, so keep the shorter string in `b` to bound the row size.
97
+ if (b.length > a.length) {
98
+ [a, b] = [b, a];
99
+ }
100
+ // A single row of the edit distance matrix, seeded with the distance between the empty prefix
101
+ // of `a` and every prefix of `b`.
102
+ const row = Array.from({ length: b.length + 1 }, (_, j) => j);
103
+ for (let i = 1; i <= a.length; i++) {
104
+ let diagonal = row[0];
105
+ row[0] = i;
106
+ for (let j = 1; j <= b.length; j++) {
107
+ const above = row[j];
108
+ row[j] = Math.min(row[j - 1] + 1, above + 1, diagonal + (a[i - 1] === b[j - 1] ? 0 : 1));
109
+ diagonal = above;
105
110
  }
106
- });
107
- }
108
- function createTempFile(options) {
109
- return new Promise((resolve, reject) => {
110
- tmp.tmpName(options, (err, name) => {
111
- if (err)
112
- reject(err);
113
- else
114
- resolve(name);
115
- });
116
- });
111
+ }
112
+ return row[b.length];
113
+ }
114
+ /**
115
+ * Returns a random, not-yet-created file path ending in `postfix`, directly in the OS temp directory.
116
+ */
117
+ function getTempFilePath(postfix = '') {
118
+ return path.join(os.tmpdir(), `ovsx-${crypto.randomUUID()}${postfix}`);
117
119
  }
118
120
  function rejectError(err) {
119
121
  const reason = err instanceof Error ? err : new Error(String(err));
@@ -142,9 +144,9 @@ function handleError(debug, additionalMessage, exit = true) {
142
144
  };
143
145
  }
144
146
  /**
145
- * Formats a byte count for display, e.g. `1536` -> `1.5 KB`. Mirrors the registry's own
146
- * `FileUtils.byteCountToDisplaySize` formatting so client- and server-side size limit messages read
147
- * the same way.
147
+ * Formats a byte count for display, rounding down, e.g. `1536` -> `1 KB` and `1048577` -> `1 MB`.
148
+ * Mirrors the registry's own `FileUtils.byteCountToDisplaySize` formatting so client- and
149
+ * server-side size limit messages read the same way.
148
150
  */
149
151
  function formatBytes(bytes) {
150
152
  const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB'];
@@ -164,10 +166,12 @@ function withStatus(error, status) {
164
166
  /**
165
167
  * A URL in the form it can safely be printed: no user info and no query string.
166
168
  *
167
- * `createNamespace`, `verifyPat`, `publish` and `delete` all put the personal access token in a
168
- * `token` query parameter, and an error message goes straight to stderr and from there into CI logs.
169
- * The query carries nothing an error needs, so it is dropped whole rather than filtered key by key -
170
- * a filter has to be kept in step with every parameter anyone ever adds.
169
+ * The personal access token travels in a header now, but `createNamespace`, `verifyPat`, `publish`
170
+ * and `delete` still carry it in the query string too when talking to a registry too old to resolve
171
+ * it from the header (see `Registry.tokenQuery`, #1344). An error message goes straight to stderr
172
+ * and from there into CI logs, and the query carries nothing an error needs - so it stays dropped
173
+ * whole rather than filtered key by key, a filter having to be kept in step with every parameter
174
+ * anyone ever adds.
171
175
  */
172
176
  function redactUrl(url) {
173
177
  try {
@@ -185,20 +189,8 @@ function statusError(response) {
185
189
  : `The server responded with status ${response.statusCode}.`;
186
190
  return withStatus(new Error(message), response.statusCode);
187
191
  }
188
- function readFile(name, packagePath, encoding = 'utf-8') {
189
- return new Promise((resolve, reject) => {
190
- fs.readFile(path.join(packagePath ?? process.cwd(), name), { encoding }, (err, content) => {
191
- if (err) {
192
- reject(err);
193
- }
194
- else {
195
- resolve(content);
196
- }
197
- });
198
- });
199
- }
200
192
  async function readManifest(packagePath) {
201
- const content = await readFile('package.json', packagePath);
193
+ const content = await fs.promises.readFile(path.join(packagePath ?? process.cwd(), 'package.json'), 'utf-8');
202
194
  return JSON.parse(content);
203
195
  }
204
196
  function validateManifest(manifest) {
@@ -212,20 +204,8 @@ function validateManifest(manifest) {
212
204
  throw new Error("Missing required field 'version'.");
213
205
  }
214
206
  }
215
- function writeFile(name, content, packagePath, encoding = 'utf-8') {
216
- return new Promise((resolve, reject) => {
217
- fs.writeFile(path.join(packagePath ?? process.cwd(), name), content, { encoding }, (err) => {
218
- if (err) {
219
- reject(err);
220
- }
221
- else {
222
- resolve();
223
- }
224
- });
225
- });
226
- }
227
207
  function writeManifest(manifest, packagePath) {
228
208
  const content = JSON.stringify(manifest, null, 4);
229
- return writeFile('package.json', content, packagePath);
209
+ return fs.promises.writeFile(path.join(packagePath ?? process.cwd(), 'package.json'), content, 'utf-8');
230
210
  }
231
211
  //# sourceMappingURL=util.js.map
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"verify-pat.d.ts","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAIlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE"}
1
+ {"version":3,"file":"verify-pat.d.ts","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAIlF,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBxE"}
package/lib/verify-pat.js CHANGED
@@ -30,7 +30,9 @@ async function verifyPat(options) {
30
30
  (error ? `\n\n${error}` : ''));
31
31
  }
32
32
  }
33
- options.pat = await (0, pat_1.getPAT)(options.namespace, options, false);
33
+ const { pat, save } = await (0, pat_1.getPAT)(options.namespace, options, false);
34
+ options.pat = pat;
34
35
  await (0, pat_1.doVerifyPat)(options);
36
+ await save();
35
37
  }
36
38
  //# sourceMappingURL=verify-pat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-pat.js","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;AASlF,8BAoBC;AA3BD,+BAA4C;AAC5C,iCAAqD;AAGrD;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,OAAyB;IACrD,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACD,OAAO,CAAC,SAAS,GAAG,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,6GAA6G;gBAC7G,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChC,CAAC;QACN,CAAC;IACL,CAAC;IAED,OAAO,CAAC,GAAG,GAAG,MAAM,IAAA,YAAM,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"verify-pat.js","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;AASlF,8BAsBC;AA7BD,+BAA4C;AAC5C,iCAAqD;AAGrD;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,OAAyB;IACrD,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QACrB,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACD,OAAO,CAAC,SAAS,GAAG,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC,SAAS,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,6GAA6G;gBAC7G,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAChC,CAAC;QACN,CAAC;IACL,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,MAAM,IAAA,YAAM,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,GAAG,GAAG,CAAC;IAClB,MAAM,IAAA,iBAAW,EAAC,OAAO,CAAC,CAAC;IAC3B,MAAM,IAAI,EAAE,CAAC;AACjB,CAAC"}
package/lib/verify.js CHANGED
@@ -70,7 +70,7 @@ async function resolveVersion(registry, extension, version) {
70
70
  return registry.getJson(new URL(versionUrl));
71
71
  }
72
72
  async function downloadSignature(registry, url) {
73
- const sigzipPath = await (0, util_1.createTempFile)({ postfix: '.sigzip' });
73
+ const sigzipPath = (0, util_1.getTempFilePath)('.sigzip');
74
74
  try {
75
75
  await registry.download(sigzipPath, new URL(url));
76
76
  const entries = await (0, zip_1.readZip)(sigzipPath, name => name === SIGNATURE_ENTRY);
@@ -85,7 +85,7 @@ async function downloadSignature(registry, url) {
85
85
  }
86
86
  }
87
87
  async function downloadPublicKey(registry, url) {
88
- const publicKeyPath = await (0, util_1.createTempFile)({ postfix: '.pem' });
88
+ const publicKeyPath = (0, util_1.getTempFilePath)('.pem');
89
89
  try {
90
90
  await registry.download(publicKeyPath, new URL(url));
91
91
  return await fs.promises.readFile(publicKeyPath, 'utf-8');
package/lib/verify.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;+EAW+E;;AAiB/E,wBAsCC;AArDD,iCAAiC;AACjC,yBAAyB;AACzB,yCAAiD;AACjD,iCAAuD;AACvD,+BAAiD;AAGjD,MAAM,eAAe,GAAG,gBAAgB,CAAC;AAEzC;;;;;GAKG;AACI,KAAK,UAAU,MAAM,CAAC,OAAsB;IAC/C,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,MAAM,IAAA,qBAAe,EAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;IACrC,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;IAEpC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC3E,MAAM,WAAW,GAAG,GAAG,SAAS,IAAI,aAAa,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;IAE1E,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC;IAC/C,IAAI,CAAC,YAAY,IAAI,CAAC,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,GAAG,WAAW,8DAA8D,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAChD,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC;QACzC,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC;KAC5C,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAEzE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACX,GAAG,WAAW,4CAA4C,QAAQ,CAAC,GAAG,IAAI;cACxE,8EAA8E,CACnF,CAAC;IACN,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,mCAAmC,WAAW,oBAAoB,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;AACnG,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,cAAc,CAAC,QAAkB,EAAE,SAAoB,EAAE,OAAe;IACnF,IAAI,SAAS,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;QAChC,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,MAAM,UAAU,GAAG,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,8BAA8B,OAAO,IAAI,CAAC,CAAC;IACvG,CAAC;IACD,OAAO,QAAQ,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAkB,EAAE,GAAW;IAC5D,MAAM,UAAU,GAAG,MAAM,IAAA,qBAAc,EAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC;QACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,MAAM,IAAA,aAAO,EAAC,UAAU,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC;QAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC/C,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,eAAe,UAAU,CAAC,CAAC;QAC5F,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;AACL,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,QAAkB,EAAE,GAAW;IAC5D,MAAM,aAAa,GAAG,MAAM,IAAA,qBAAc,EAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAChE,IAAI,CAAC;QACD,MAAM,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;YAAS,CAAC;QACP,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"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"}
package/lib/zip.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAWlC,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAiBlH;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBzF;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQ5E"}
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAgBlH;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAkBzF;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQ5E"}
package/lib/zip.js CHANGED
@@ -14,15 +14,8 @@ exports.readVSIXPackage = readVSIXPackage;
14
14
  ********************************************************************************/
15
15
  const crypto = require("crypto");
16
16
  const yauzl = require("yauzl-promise");
17
+ const consumers_1 = require("stream/consumers");
17
18
  const promises_1 = require("stream/promises");
18
- async function bufferStream(stream) {
19
- return await new Promise((resolve, reject) => {
20
- const buffers = [];
21
- stream.on('data', buffer => buffers.push(buffer));
22
- stream.once('error', reject);
23
- stream.once('end', () => resolve(Buffer.concat(buffers)));
24
- });
25
- }
26
19
  async function readZip(packagePath, filter) {
27
20
  const result = new Map();
28
21
  const zipfile = await yauzl.open(packagePath);
@@ -31,8 +24,7 @@ async function readZip(packagePath, filter) {
31
24
  const name = entry.filename.toLowerCase();
32
25
  if (filter(name)) {
33
26
  const stream = await zipfile.openReadStream(entry);
34
- const buffer = await bufferStream(stream);
35
- result.set(name, buffer);
27
+ result.set(name, await (0, consumers_1.buffer)(stream));
36
28
  }
37
29
  }
38
30
  }
package/lib/zip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":";;AAeA,0BAgBC;AAUD,8CAkBC;AAED,0CAQC;AArED;;;;;;;;kFAQkF;AAClF,iCAAiC;AACjC,uCAAuC;AACvC,gDAA0C;AAC1C,8CAA2C;AAGpC,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,MAAiC;IACnF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YACnC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBACnD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,IAAA,kBAAM,EAAC,MAAM,CAAC,CAAC,CAAC;YACxC,CAAC;QACF,CAAC;IACF,CAAC;YAAS,CAAC;QACV,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IAC1D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,IAAI,CAAC;QACJ,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YACnC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClC,SAAS;YACV,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YACzC,MAAM,IAAA,mBAAQ,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACnD,CAAC;IACF,CAAC;YAAS,CAAC;QACV,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,WAAmB;IACxD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACzF,MAAM,WAAW,GAAG,GAAG,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACtD,IAAI,CAAC,WAAW,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;AAC7D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ovsx",
3
- "version": "1.2.0",
3
+ "version": "1.4.0",
4
4
  "description": "Command line interface for Eclipse Open VSX",
5
5
  "keywords": [
6
6
  "cli",
@@ -21,6 +21,14 @@
21
21
  "name": "Miro Spönemann",
22
22
  "email": "miro.spoenemann@typefox.io",
23
23
  "url": "https://www.typefox.io"
24
+ },
25
+ {
26
+ "name": "Thomas Neidhart",
27
+ "email": "thomas.neidhart@eclipse-foundation.org"
28
+ },
29
+ {
30
+ "name": "Jordi Gómez Hidalgo",
31
+ "email": "jordi.gomez@eclipse-foundation.org"
24
32
  }
25
33
  ],
26
34
  "files": [
@@ -35,25 +43,19 @@
35
43
  },
36
44
  "dependencies": {
37
45
  "@inquirer/prompts": "^7.10.1",
38
- "@vscode/vsce": "^3.7.1",
39
- "commander": "^6.2.1",
46
+ "@vscode/vsce": "^4.0.0",
47
+ "ci-info": "^4.4.0",
48
+ "commander": "^14.0.3",
40
49
  "cross-keychain": "^1.1.0",
41
- "follow-redirects": "^1.16.0",
42
- "is-ci": "^2.0.0",
43
- "leven": "^3.1.0",
44
50
  "semver": "^7.6.0",
45
- "tmp": "^0.2.3",
46
51
  "yauzl-promise": "^4.0.0"
47
52
  },
48
53
  "devDependencies": {
49
54
  "@eslint/eslintrc": "^3.2.0",
50
55
  "@eslint/js": "^9.15.0",
51
56
  "@stylistic/eslint-plugin": "^2.11.0",
52
- "@types/follow-redirects": "^1.13.1",
53
- "@types/is-ci": "^2.0.0",
54
57
  "@types/node": "^22.0.0",
55
58
  "@types/semver": "^7.5.8",
56
- "@types/tmp": "^0.2.2",
57
59
  "@types/yauzl-promise": "^4",
58
60
  "@types/yazl": "^3.3.1",
59
61
  "@typescript-eslint/eslint-plugin": "^8.15.0",
@@ -62,20 +64,23 @@
62
64
  "limiter": "^2.1.0",
63
65
  "rimraf": "^6.0.1",
64
66
  "typescript": "^5.6.3",
65
- "vitest": "^4.1.11",
67
+ "vite": "^8.3.5",
68
+ "vitest": "^5.0.3",
66
69
  "yazl": "^3.3.1"
67
70
  },
68
71
  "scripts": {
69
72
  "clean": "rimraf lib",
70
- "prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
71
73
  "build": "tsc -p ./tsconfig.json && yarn run lint",
72
74
  "watch": "tsc -w -p ./tsconfig.json",
73
75
  "test": "vitest run",
74
76
  "lint": "eslint -c ./configs/eslintrc.mjs src test",
75
- "prepare": "yarn run clean && yarn run prebuild && yarn run build",
77
+ "prepare": "yarn run clean && yarn run build",
76
78
  "publish:next": "yarn npm publish --tag next",
77
79
  "publish:latest": "yarn npm publish --tag latest",
78
80
  "load-extensions": "node scripts/load-test-extensions.js"
79
81
  },
80
- "packageManager": "yarn@4.9.1"
82
+ "resolutions": {
83
+ "@azure/msal-node": "^7.1.1"
84
+ },
85
+ "packageManager": "yarn@4.18.1"
81
86
  }
@@ -9,10 +9,11 @@
9
9
  ********************************************************************************/
10
10
 
11
11
  import * as fs from 'fs';
12
- import * as isCI from 'is-ci';
12
+ import * as path from 'path';
13
+ import { isCI } from 'ci-info';
13
14
  import { input, select } from '@inquirer/prompts';
14
15
  import {
15
- readManifest, writeManifest, Manifest, writeFile, validateManifest, promisify
16
+ readManifest, writeManifest, Manifest, validateManifest
16
17
  } from './util';
17
18
 
18
19
  async function addLicense(packagePath: string, manifest: Manifest): Promise<void> {
@@ -87,14 +88,14 @@ async function useMITLicense(manifest: Manifest, packagePath?: string) {
87
88
  manifest.license = 'MIT';
88
89
  await writeManifest(manifest, packagePath);
89
90
  const license = MIT_LICENSE_TEXT.replace('<YEAR> <COPYRIGHT HOLDER>', copyright);
90
- await writeFile('LICENSE', license, packagePath);
91
+ await fs.promises.writeFile(path.join(packagePath ?? process.cwd(), 'LICENSE'), license, 'utf-8');
91
92
  console.log('LICENSE file has been written. Please commit it to the source repository.');
92
93
  }
93
94
 
94
95
  const LICENSE_FILE_NAMES = ['license.md', 'license', 'license.txt', 'licence.md', 'licence', 'licence.txt'];
95
96
 
96
97
  async function hasLicenseFile(packagePath?: string): Promise<boolean> {
97
- const fileNames = await promisify(fs.readdir)(packagePath ?? '.');
98
+ const fileNames = await fs.promises.readdir(packagePath ?? '.');
98
99
  for (const fileName of fileNames) {
99
100
  for (const licFileName of LICENSE_FILE_NAMES) {
100
101
  if (fileName.toLowerCase() === licFileName) {
@@ -22,12 +22,14 @@ export async function createNamespace(options: CreateNamespaceOptions = {}): Pro
22
22
  throw new Error('The namespace name is mandatory.');
23
23
  }
24
24
 
25
- options.pat = await getPAT(options.name, options, false);
25
+ const { pat, save } = await getPAT(options.name, options, false);
26
+ options.pat = pat;
26
27
 
27
28
  const registry = new Registry(options);
28
29
  const result = await registry.createNamespace(options.name, options.pat);
29
30
  if (result.error) {
30
31
  throw new Error(result.error);
31
32
  }
33
+ await save();
32
34
  console.log(`\ud83d\ude80 Created namespace ${options.name}`);
33
35
  }
package/src/get.ts CHANGED
@@ -12,7 +12,7 @@ import * as fs from 'fs';
12
12
  import * as path from 'path';
13
13
  import * as semver from 'semver';
14
14
  import { Registry, Extension } from "./registry";
15
- import { promisify, matchExtensionId, optionalStat, makeDirs, addEnvOptions, rejectError } from './util';
15
+ import { matchExtensionId, addEnvOptions, rejectError } from './util';
16
16
  import { GetOptions } from './get-options';
17
17
 
18
18
  /**
@@ -70,15 +70,15 @@ async function printMetadata(registry: Registry, extension: Extension, output?:
70
70
  return;
71
71
  }
72
72
  let filePath: string | undefined;
73
- const stats = await optionalStat(output);
73
+ const stats = fs.statSync(output, { throwIfNoEntry: false });
74
74
  if (stats?.isDirectory() || !stats && output.endsWith(path.sep)) {
75
75
  const fileName = `${extension.namespace}.${extension.name}-${extension.version}.json`;
76
76
  filePath = path.resolve(process.cwd(), output, fileName);
77
77
  } else {
78
78
  filePath = path.resolve(process.cwd(), output);
79
79
  }
80
- await makeDirs(path.dirname(filePath));
81
- await promisify(fs.writeFile)(filePath, metadata);
80
+ await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
81
+ await fs.promises.writeFile(filePath, metadata);
82
82
  }
83
83
 
84
84
  async function download(registry: Registry, extension: Extension, output?: string): Promise<void> {
@@ -90,7 +90,7 @@ async function download(registry: Registry, extension: Extension, output?: strin
90
90
  const fileName = decodeURIComponent(downloadUrl.substring(fileNameIndex + 1));
91
91
  let filePath: string | undefined;
92
92
  if (output) {
93
- const stats = await optionalStat(output);
93
+ const stats = fs.statSync(output, { throwIfNoEntry: false });
94
94
  if (stats?.isDirectory() || !stats && output.endsWith(path.sep)) {
95
95
  filePath = path.resolve(process.cwd(), output, fileName);
96
96
  } else {
@@ -99,7 +99,7 @@ async function download(registry: Registry, extension: Extension, output?: strin
99
99
  } else {
100
100
  filePath = path.resolve(process.cwd(), fileName);
101
101
  }
102
- await makeDirs(path.dirname(filePath));
102
+ await fs.promises.mkdir(path.dirname(filePath), { recursive: true });
103
103
  const target = extension.targetPlatform !== 'universal' ? '@' + extension.targetPlatform : '';
104
104
  console.log(`Downloading ${extension.namespace}.${extension.name}-${extension.version}${target} to ${filePath}`);
105
105
  await registry.download(filePath, new URL(downloadUrl));