ovsx 0.1.0-next.e000fdb → 0.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/registry.d.ts CHANGED
@@ -16,7 +16,10 @@ export declare class Registry {
16
16
  readonly url: string;
17
17
  readonly maxNamespaceSize: number;
18
18
  readonly maxPublishSize: number;
19
+ readonly username?: string;
20
+ readonly password?: string;
19
21
  constructor(options?: RegistryOptions);
22
+ get requiresLicense(): boolean;
20
23
  createNamespace(name: string, pat: string): Promise<Response>;
21
24
  publish(file: string, pat: string): Promise<Extension>;
22
25
  getMetadata(namespace: string, extension: string): Promise<Extension>;
@@ -26,11 +29,33 @@ export declare class Registry {
26
29
  postFile<T extends Response>(file: string, url: URL, headers?: http.OutgoingHttpHeaders, maxBodyLength?: number): Promise<T>;
27
30
  private getUrl;
28
31
  private getProtocol;
32
+ private getRequestOptions;
29
33
  private getJsonResponse;
30
34
  }
31
35
  export interface RegistryOptions {
32
- url?: string;
36
+ /**
37
+ * The base URL of the registry API.
38
+ */
39
+ registryUrl?: string;
40
+ /**
41
+ * Personal access token.
42
+ */
43
+ pat?: string;
44
+ /**
45
+ * User name for basic authentication.
46
+ */
47
+ username?: string;
48
+ /**
49
+ * Password for basic authentication.
50
+ */
51
+ password?: string;
52
+ /**
53
+ * Maximal request body size for creating namespaces.
54
+ */
33
55
  maxNamespaceSize?: number;
56
+ /**
57
+ * Maximal request body size for publishing.
58
+ */
34
59
  maxPublishSize?: number;
35
60
  }
36
61
  export interface Response {
@@ -47,8 +72,7 @@ export interface Extension extends Response {
47
72
  namespace: string;
48
73
  version: string;
49
74
  publishedBy: UserData;
50
- unrelatedPublisher: boolean;
51
- namespaceAccess: 'public' | 'restricted';
75
+ verified: boolean;
52
76
  allVersions: {
53
77
  [version: string]: string;
54
78
  };
@@ -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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"}
package/lib/registry.js CHANGED
@@ -18,14 +18,20 @@ exports.DEFAULT_NAMESPACE_SIZE = 1024;
18
18
  exports.DEFAULT_PUBLISH_SIZE = 512 * 1024 * 1024;
19
19
  class Registry {
20
20
  constructor(options = {}) {
21
- if (options.url && options.url.endsWith('/'))
22
- this.url = options.url.substring(0, options.url.length - 1);
23
- else if (options.url)
24
- this.url = options.url;
21
+ if (options.registryUrl && options.registryUrl.endsWith('/'))
22
+ this.url = options.registryUrl.substring(0, options.registryUrl.length - 1);
23
+ else if (options.registryUrl)
24
+ this.url = options.registryUrl;
25
25
  else
26
26
  this.url = exports.DEFAULT_URL;
27
27
  this.maxNamespaceSize = options.maxNamespaceSize || exports.DEFAULT_NAMESPACE_SIZE;
28
28
  this.maxPublishSize = options.maxPublishSize || exports.DEFAULT_PUBLISH_SIZE;
29
+ this.username = options.username;
30
+ this.password = options.password;
31
+ }
32
+ get requiresLicense() {
33
+ const url = new URL(this.url);
34
+ return url.hostname === 'open-vsx.org' || url.hostname.endsWith('.open-vsx.org');
29
35
  }
30
36
  createNamespace(name, pat) {
31
37
  try {
@@ -64,8 +70,9 @@ class Registry {
64
70
  download(file, url) {
65
71
  return new Promise((resolve, reject) => {
66
72
  const stream = fs.createWriteStream(file);
73
+ const requestOptions = this.getRequestOptions();
67
74
  const request = this.getProtocol(url)
68
- .request(url, response => {
75
+ .request(url, requestOptions, response => {
69
76
  response.on('end', () => {
70
77
  if (response.statusCode !== undefined && (response.statusCode < 200 || response.statusCode > 299)) {
71
78
  reject(util_1.statusError(response));
@@ -89,15 +96,16 @@ class Registry {
89
96
  }
90
97
  getJson(url) {
91
98
  return new Promise((resolve, reject) => {
99
+ const requestOptions = this.getRequestOptions();
92
100
  const request = this.getProtocol(url)
93
- .request(url, this.getJsonResponse(resolve, reject));
101
+ .request(url, requestOptions, this.getJsonResponse(resolve, reject));
94
102
  request.on('error', reject);
95
103
  request.end();
96
104
  });
97
105
  }
98
106
  post(content, url, headers, maxBodyLength) {
99
107
  return new Promise((resolve, reject) => {
100
- const requestOptions = { method: 'POST', headers, maxBodyLength };
108
+ const requestOptions = this.getRequestOptions('POST', headers, maxBodyLength);
101
109
  const request = this.getProtocol(url)
102
110
  .request(url, requestOptions, this.getJsonResponse(resolve, reject));
103
111
  request.on('error', reject);
@@ -108,7 +116,7 @@ class Registry {
108
116
  postFile(file, url, headers, maxBodyLength) {
109
117
  return new Promise((resolve, reject) => {
110
118
  const stream = fs.createReadStream(file);
111
- const requestOptions = { method: 'POST', headers, maxBodyLength };
119
+ const requestOptions = this.getRequestOptions('POST', headers, maxBodyLength);
112
120
  const request = this.getProtocol(url)
113
121
  .request(url, requestOptions, this.getJsonResponse(resolve, reject));
114
122
  stream.on('error', err => {
@@ -136,6 +144,20 @@ class Registry {
136
144
  else
137
145
  return followRedirects.http;
138
146
  }
147
+ getRequestOptions(method, headers, maxBodyLength) {
148
+ if (this.username && this.password) {
149
+ if (!headers) {
150
+ headers = {};
151
+ }
152
+ const credentials = Buffer.from(this.username + ':' + this.password).toString('base64');
153
+ headers['Authorization'] = 'Basic ' + credentials;
154
+ }
155
+ return {
156
+ method,
157
+ headers,
158
+ maxBodyLength
159
+ };
160
+ }
139
161
  getJsonResponse(resolve, reject) {
140
162
  return response => {
141
163
  response.setEncoding('UTF-8');
@@ -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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"}
package/lib/util.d.ts CHANGED
@@ -11,11 +11,26 @@
11
11
  import * as fs from 'fs';
12
12
  import * as tmp from 'tmp';
13
13
  import * as http from 'http';
14
+ import { RegistryOptions } from './registry';
14
15
  export { promisify } from 'util';
16
+ export declare function addEnvOptions(options: RegistryOptions): void;
15
17
  export declare function matchExtensionId(id: string): RegExpExecArray | null;
16
18
  export declare function optionalStat(path: fs.PathLike): Promise<fs.Stats | undefined>;
17
19
  export declare function makeDirs(path: fs.PathLike): Promise<void>;
18
20
  export declare function createTempFile(options: tmp.TmpNameOptions): Promise<string>;
19
- export declare function handleError(debug?: boolean): (reason: any) => void;
21
+ export declare function handleError(debug?: boolean, additionalMessage?: string): (reason: any) => void;
20
22
  export declare function statusError(response: http.IncomingMessage): Error;
23
+ export declare function readFile(name: string, packagePath?: string, encoding?: string): Promise<string>;
24
+ export declare function readManifest(packagePath?: string): Promise<Manifest>;
25
+ export declare function validateManifest(manifest: Manifest): void;
26
+ export declare function writeFile(name: string, content: string, packagePath?: string, encoding?: string): Promise<void>;
27
+ export declare function writeManifest(manifest: Manifest, packagePath?: string): Promise<void>;
28
+ export interface Manifest {
29
+ publisher: string;
30
+ name: string;
31
+ version: string;
32
+ license?: string;
33
+ }
34
+ export declare function getUserInput(text: string): Promise<string>;
35
+ export declare function getUserChoice<R extends string>(text: string, values: R[], defaultValue: R, lowerCase?: boolean): Promise<R>;
21
36
  //# sourceMappingURL=util.d.ts.map
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;AACzB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,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,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAalE;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,CAKjE"}
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;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,wBAAgB,aAAa,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,CAa5D;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,KAAK,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAgB9F;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,GAAG,KAAK,CAKjE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,QAAQ,SAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAchG;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,SAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAehH;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;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1D;AAED,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,EACvE,YAAY,EAAE,CAAC,EAAE,SAAS,UAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAarD"}
package/lib/util.js CHANGED
@@ -8,11 +8,37 @@
8
8
  *
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  ********************************************************************************/
11
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
12
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
13
+ return new (P || (P = Promise))(function (resolve, reject) {
14
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
15
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
16
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
17
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
18
+ });
19
+ };
11
20
  Object.defineProperty(exports, "__esModule", { value: true });
12
21
  const fs = require("fs");
22
+ const path = require("path");
13
23
  const tmp = require("tmp");
24
+ const readline = require("readline");
14
25
  var util_1 = require("util");
15
26
  exports.promisify = util_1.promisify;
27
+ function addEnvOptions(options) {
28
+ if (!options.registryUrl) {
29
+ options.registryUrl = process.env.OVSX_REGISTRY_URL;
30
+ }
31
+ if (!options.pat) {
32
+ options.pat = process.env.OVSX_PAT;
33
+ }
34
+ if (!options.username) {
35
+ options.username = process.env.OVSX_USERNAME;
36
+ }
37
+ if (!options.password) {
38
+ options.password = process.env.OVSX_PASSWORD;
39
+ }
40
+ }
41
+ exports.addEnvOptions = addEnvOptions;
16
42
  function matchExtensionId(id) {
17
43
  return /^([\w-]+)(?:\.|\/)([\w-]+)$/.exec(id);
18
44
  }
@@ -50,10 +76,13 @@ function createTempFile(options) {
50
76
  });
51
77
  }
52
78
  exports.createTempFile = createTempFile;
53
- function handleError(debug) {
79
+ function handleError(debug, additionalMessage) {
54
80
  return reason => {
55
81
  if (reason instanceof Error && !debug) {
56
82
  console.error(`\u274c ${reason.message}`);
83
+ if (additionalMessage) {
84
+ console.error(additionalMessage);
85
+ }
57
86
  }
58
87
  else if (typeof reason === 'string') {
59
88
  console.error(`\u274c ${reason}`);
@@ -75,4 +104,81 @@ function statusError(response) {
75
104
  return new Error(`The server responded with status ${response.statusCode}.`);
76
105
  }
77
106
  exports.statusError = statusError;
107
+ function readFile(name, packagePath, encoding = 'utf-8') {
108
+ return new Promise((resolve, reject) => {
109
+ fs.readFile(path.join(packagePath || process.cwd(), name), { encoding }, (err, content) => {
110
+ if (err) {
111
+ reject(err);
112
+ }
113
+ else {
114
+ resolve(content);
115
+ }
116
+ });
117
+ });
118
+ }
119
+ exports.readFile = readFile;
120
+ function readManifest(packagePath) {
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ const content = yield readFile('package.json', packagePath);
123
+ return JSON.parse(content);
124
+ });
125
+ }
126
+ exports.readManifest = readManifest;
127
+ function validateManifest(manifest) {
128
+ if (!manifest.publisher) {
129
+ throw new Error("Missing required field 'publisher'.");
130
+ }
131
+ if (!manifest.name) {
132
+ throw new Error("Missing required field 'name'.");
133
+ }
134
+ if (!manifest.version) {
135
+ throw new Error("Missing required field 'version'.");
136
+ }
137
+ }
138
+ exports.validateManifest = validateManifest;
139
+ function writeFile(name, content, packagePath, encoding = 'utf-8') {
140
+ return new Promise((resolve, reject) => {
141
+ fs.writeFile(path.join(packagePath || process.cwd(), name), content, { encoding }, err => {
142
+ if (err) {
143
+ reject(err);
144
+ }
145
+ else {
146
+ resolve();
147
+ }
148
+ });
149
+ });
150
+ }
151
+ exports.writeFile = writeFile;
152
+ function writeManifest(manifest, packagePath) {
153
+ const content = JSON.stringify(manifest, null, 4);
154
+ return writeFile('package.json', content, packagePath);
155
+ }
156
+ exports.writeManifest = writeManifest;
157
+ function getUserInput(text) {
158
+ return new Promise(resolve => {
159
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
160
+ rl.question(text, answer => {
161
+ resolve(answer);
162
+ rl.close();
163
+ });
164
+ });
165
+ }
166
+ exports.getUserInput = getUserInput;
167
+ function getUserChoice(text, values, defaultValue, lowerCase = true) {
168
+ return __awaiter(this, void 0, void 0, function* () {
169
+ const prompt = text + '\n' + values.map(v => v === defaultValue ? `[${v}]` : v).join('/') + ': ';
170
+ const answer = yield getUserInput(prompt);
171
+ if (!answer) {
172
+ return defaultValue;
173
+ }
174
+ const lcAnswer = lowerCase ? answer.toLowerCase() : answer;
175
+ for (const value of values) {
176
+ if (value.startsWith(lcAnswer)) {
177
+ return value;
178
+ }
179
+ }
180
+ return defaultValue;
181
+ });
182
+ }
183
+ exports.getUserChoice = getUserChoice;
78
184
  //# 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":";AAAA;;;;;;;;kFAQkF;;AAElF,yBAAyB;AACzB,2BAA2B;AAG3B,6BAAiC;AAAxB,2BAAA,SAAS,CAAA;AAElB,SAAgB,gBAAgB,CAAC,EAAU;IACvC,OAAO,6BAA6B,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAFD,4CAEC;AAED,SAAgB,YAAY,CAAC,IAAiB;IAC1C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;AACP,CAAC;AAJD,oCAIC;AAED,SAAgB,QAAQ,CAAC,IAAiB;IACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACrB,OAAO,EAAE,CAAC;SACb;aAAM;YACH,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;gBACtC,IAAI,GAAG;oBACH,MAAM,CAAC,GAAG,CAAC,CAAC;;oBAEZ,OAAO,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAbD,4BAaC;AAED,SAAgB,cAAc,CAAC,OAA2B;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACnC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;YAC/B,IAAI,GAAG;gBACH,MAAM,CAAC,GAAG,CAAC,CAAC;;gBAEZ,OAAO,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC,CAAC;AACP,CAAC;AATD,wCASC;AAED,SAAgB,WAAW,CAAC,KAAe;IACvC,OAAO,MAAM,CAAC,EAAE;QACZ,IAAI,MAAM,YAAY,KAAK,IAAI,CAAC,KAAK,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;SAC9C;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;SACtC;aAAM,IAAI,MAAM,KAAK,SAAS,EAAE;YAC7B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACzB;aAAM;YACH,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;SAC/C;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,CAAC;AACN,CAAC;AAbD,kCAaC;AAED,SAAgB,WAAW,CAAC,QAA8B;IACtD,IAAI,QAAQ,CAAC,aAAa;QACtB,OAAO,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;;QAEvG,OAAO,IAAI,KAAK,CAAC,oCAAoC,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;AACrF,CAAC;AALD,kCAKC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ovsx",
3
- "version": "0.1.0-next.e000fdb",
3
+ "version": "0.3.0",
4
4
  "description": "Command line interface for Eclipse Open VSX",
5
5
  "keywords": [
6
6
  "cli",
@@ -33,14 +33,19 @@
33
33
  "ovsx": "lib/ovsx"
34
34
  },
35
35
  "engines": {
36
- "node": ">= 10"
36
+ "node": ">= 14"
37
37
  },
38
38
  "dependencies": {
39
- "follow-redirects": "^1.13.0",
40
- "vsce": "~1.79.5"
39
+ "commander": "^6.1.0",
40
+ "follow-redirects": "^1.13.2",
41
+ "is-ci": "^2.0.0",
42
+ "leven": "^3.1.0",
43
+ "tmp": "^0.2.1",
44
+ "vsce": "^2.6.3"
41
45
  },
42
46
  "devDependencies": {
43
47
  "@types/follow-redirects": "^1.13.0",
48
+ "@types/is-ci": "^2.0.0",
44
49
  "@types/node": "^10.14.18",
45
50
  "@types/semver": "^7.1.0",
46
51
  "@types/tmp": "^0.1.0",
@@ -56,7 +61,7 @@
56
61
  "watch": "tsc -w -p ./tsconfig.json",
57
62
  "lint": "eslint -c ./configs/eslintrc.json --ext .ts src",
58
63
  "prepare": "yarn run clean && yarn run build",
59
- "publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag latest --no-git-tag-version",
64
+ "publish:next": "yarn publish --new-version \"$(semver $npm_package_version -i minor)-next.$(git rev-parse --short HEAD)\" --tag next --no-git-tag-version",
60
65
  "publish:latest": "yarn publish --tag latest"
61
66
  }
62
67
  }
@@ -0,0 +1,119 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2020 TypeFox and others
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * SPDX-License-Identifier: EPL-2.0
9
+ ********************************************************************************/
10
+
11
+ import * as fs from 'fs';
12
+ import * as isCI from 'is-ci';
13
+ import {
14
+ readManifest, writeManifest, Manifest, getUserInput, getUserChoice, writeFile, validateManifest, promisify
15
+ } from './util';
16
+
17
+ async function addLicense(packagePath: string, manifest: Manifest): Promise<void> {
18
+ console.log('Extension ' + manifest.publisher + '.' + manifest.name + ' has no license. All Open VSX '
19
+ + 'Registry Content Offerings must be licensed. You may choose to publish this extension under '
20
+ + 'the MIT License (https://opensource.org/licenses/MIT). Please note you are responsible to '
21
+ + 'ensure that you have the necessary rights to permit this extension to be made available under '
22
+ + 'the MIT license and for compliance with that license.');
23
+ let answer: 'yes' | 'help' | 'no';
24
+ do {
25
+ console.log();
26
+ answer = await getUserChoice('Would you like to publish your extension '
27
+ + manifest.publisher + '.' + manifest.name
28
+ + ' under the MIT license?',
29
+ ['yes', 'help', 'no'], 'no');
30
+ switch (answer) {
31
+ case 'yes':
32
+ await useMITLicense(manifest, packagePath);
33
+ break;
34
+ case 'help':
35
+ console.log('If you select "yes" your extension will be published under the MIT License. '
36
+ + 'You must enter the Copyright Year and Copyright Holder information. This information '
37
+ + 'along with the text of the MIT License will be written to a LICENSE file and '
38
+ + 'packaged with the uploaded extension.\n');
39
+ console.log(MIT_LICENSE_TEXT);
40
+ break;
41
+ case 'no':
42
+ throw new Error('This extension cannot be accepted because it has no license.');
43
+ }
44
+ } while (answer === 'help');
45
+ }
46
+
47
+ export async function isLicenseOk(packagePath: string, manifest?: Manifest): Promise<boolean> {
48
+ // manifest is optional in order to use isLicenseOk function
49
+ // without need to read and parse manifest by the another step
50
+ manifest = manifest ?? await readManifest(packagePath);
51
+ validateManifest(manifest);
52
+
53
+ if (manifest.license) {
54
+ // The extension has a license identifier or a pointer to an alternative LICENSE file
55
+ return true;
56
+ }
57
+
58
+ if (await hasLicenseFile(packagePath)) {
59
+ // The extension has a LICENSE file that can be packaged
60
+ return true;
61
+ }
62
+
63
+ return false;
64
+ }
65
+
66
+ export async function checkLicense(packagePath: string): Promise<void> {
67
+ const manifest = await readManifest(packagePath);
68
+ if (!await isLicenseOk(packagePath, manifest) && !isCI) {
69
+ await addLicense(packagePath, manifest);
70
+ }
71
+ }
72
+
73
+ async function useMITLicense(manifest: Manifest, packagePath?: string) {
74
+ console.log('Please enter a value for Copyright Year and Copyright Holder.\n'
75
+ + 'Example: "Copyright 2020 John Doe"\n');
76
+ const copyright = await getUserInput('Copyright ');
77
+ if (!copyright) {
78
+ throw new Error('A copyright declaration is necessary for the MIT license.');
79
+ }
80
+ manifest.license = 'MIT';
81
+ await writeManifest(manifest, packagePath);
82
+ const license = MIT_LICENSE_TEXT.replace('<YEAR> <COPYRIGHT HOLDER>', copyright);
83
+ await writeFile('LICENSE', license, packagePath);
84
+ console.log('LICENSE file has been written. Please commit it to the source repository.');
85
+ }
86
+
87
+ const LICENSE_FILE_NAMES = ['license.md', 'license', 'license.txt', 'licence.md', 'licence', 'licence.txt'];
88
+
89
+ async function hasLicenseFile(packagePath?: string): Promise<boolean> {
90
+ const fileNames = await promisify(fs.readdir)(packagePath ?? '.');
91
+ for (const fileName of fileNames) {
92
+ for (const licFileName of LICENSE_FILE_NAMES) {
93
+ if (fileName.toLowerCase() === licFileName) {
94
+ return true;
95
+ }
96
+ }
97
+ }
98
+ return false;
99
+ }
100
+
101
+ const MIT_LICENSE_TEXT: string = `Copyright <YEAR> <COPYRIGHT HOLDER>
102
+
103
+ Permission is hereby granted, free of charge, to any person obtaining a copy
104
+ of this software and associated documentation files (the "Software"), to deal
105
+ in the Software without restriction, including without limitation the rights
106
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
107
+ copies of the Software, and to permit persons to whom the Software is
108
+ furnished to do so, subject to the following conditions:
109
+
110
+ The above copyright notice and this permission notice shall be included in all
111
+ copies or substantial portions of the Software.
112
+
113
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
114
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
115
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
116
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
117
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
118
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
119
+ SOFTWARE.`;
@@ -8,25 +8,22 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ********************************************************************************/
10
10
 
11
- import { Registry } from './registry';
11
+ import { Registry, RegistryOptions } from './registry';
12
+ import { addEnvOptions } from './util';
12
13
 
13
14
  /**
14
15
  * Creates a namespace (corresponds to `publisher` in package.json).
15
16
  */
16
17
  export async function createNamespace(options: CreateNamespaceOptions = {}): Promise<void> {
17
- if (!options.registryUrl) {
18
- options.registryUrl = process.env.OVSX_REGISTRY_URL;
19
- }
18
+ addEnvOptions(options);
20
19
  if (!options.name) {
21
20
  throw new Error('The namespace name is mandatory.');
22
21
  }
23
22
  if (!options.pat) {
24
- options.pat = process.env.OVSX_PAT;
25
- if (!options.pat) {
26
- throw new Error("A personal access token must be given with the option '--pat'.");
27
- }
23
+ throw new Error("A personal access token must be given with the option '--pat'.");
28
24
  }
29
- const registry = new Registry({ url: options.registryUrl });
25
+
26
+ const registry = new Registry(options);
30
27
  const result = await registry.createNamespace(options.name, options.pat);
31
28
  if (result.error) {
32
29
  throw new Error(result.error);
@@ -34,15 +31,7 @@ export async function createNamespace(options: CreateNamespaceOptions = {}): Pro
34
31
  console.log(`\ud83d\ude80 Created namespace ${options.name}`);
35
32
  }
36
33
 
37
- export interface CreateNamespaceOptions {
38
- /**
39
- * The base URL of the registry API.
40
- */
41
- registryUrl?: string;
42
- /**
43
- * Personal access token.
44
- */
45
- pat?: string;
34
+ export interface CreateNamespaceOptions extends RegistryOptions {
46
35
  /**
47
36
  * Name of the new namespace.
48
37
  */
package/src/get.ts CHANGED
@@ -11,29 +11,31 @@
11
11
  import * as fs from 'fs';
12
12
  import * as path from 'path';
13
13
  import * as semver from 'semver';
14
- import { Registry, Extension } from "./registry";
15
- import { promisify, matchExtensionId, optionalStat, makeDirs } from './util';
14
+ import { Registry, Extension, RegistryOptions } from "./registry";
15
+ import { promisify, matchExtensionId, optionalStat, makeDirs, addEnvOptions } from './util';
16
16
 
17
17
  /**
18
18
  * Downloads an extension or its metadata.
19
19
  */
20
20
  export async function getExtension(options: GetOptions): Promise<void> {
21
- if (!options.registryUrl) {
22
- options.registryUrl = process.env.OVSX_REGISTRY_URL;
23
- }
24
- const registry = new Registry({ url: options.registryUrl });
21
+ addEnvOptions(options);
22
+ const registry = new Registry(options);
23
+
25
24
  const match = matchExtensionId(options.extensionId);
26
25
  if (!match) {
27
26
  throw new Error('The extension identifier must have the form `namespace.extension`.');
28
27
  }
28
+
29
29
  const extension = await registry.getMetadata(match[1], match[2]);
30
30
  if (extension.error) {
31
31
  throw new Error(extension.error);
32
32
  }
33
+
33
34
  const matchingVersion = await findMatchingVersion(registry, extension, options.version);
34
35
  if (matchingVersion.error) {
35
36
  throw new Error(matchingVersion.error);
36
37
  }
38
+
37
39
  if (options.metadata) {
38
40
  await printMetadata(registry, matchingVersion, options.output);
39
41
  } else {
@@ -98,7 +100,7 @@ async function download(registry: Registry, extension: Extension, output?: strin
98
100
  await registry.download(filePath, new URL(downloadUrl));
99
101
  }
100
102
 
101
- export interface GetOptions {
103
+ export interface GetOptions extends RegistryOptions {
102
104
  /**
103
105
  * Identifier in the form `namespace.extension` or `namespace/extension`.
104
106
  */
@@ -107,10 +109,6 @@ export interface GetOptions {
107
109
  * An exact version or version range.
108
110
  */
109
111
  version?: string;
110
- /**
111
- * The base URL of the registry API.
112
- */
113
- registryUrl?: string;
114
112
  /**
115
113
  * Save the output in the specified file or directory.
116
114
  */
package/src/index.ts CHANGED
@@ -12,3 +12,5 @@ export * from './create-namespace';
12
12
  export * from './get';
13
13
  export * from './publish';
14
14
  export * from './registry';
15
+ export { isLicenseOk } from './check-license';
16
+ export { validateManifest, readManifest } from './util';