ovsx 0.9.5 → 0.10.1

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 (61) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +14 -0
  3. package/lib/check-license.js +2 -3
  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 +2 -5
  7. package/lib/create-namespace.js.map +1 -1
  8. package/lib/get.js +1 -2
  9. package/lib/get.js.map +1 -1
  10. package/lib/login.d.ts +8 -1
  11. package/lib/login.d.ts.map +1 -1
  12. package/lib/login.js +19 -2
  13. package/lib/login.js.map +1 -1
  14. package/lib/logout.d.ts +2 -0
  15. package/lib/logout.d.ts.map +1 -0
  16. package/lib/logout.js +16 -0
  17. package/lib/logout.js.map +1 -0
  18. package/lib/main.js +20 -5
  19. package/lib/main.js.map +1 -1
  20. package/lib/ovsx +2 -2
  21. package/lib/publish.d.ts +4 -0
  22. package/lib/publish.d.ts.map +1 -1
  23. package/lib/publish.js +8 -6
  24. package/lib/publish.js.map +1 -1
  25. package/lib/registry.d.ts +0 -2
  26. package/lib/registry.d.ts.map +1 -1
  27. package/lib/registry.js +1 -4
  28. package/lib/registry.js.map +1 -1
  29. package/lib/store.d.ts +39 -0
  30. package/lib/store.d.ts.map +1 -0
  31. package/lib/store.js +115 -0
  32. package/lib/store.js.map +1 -0
  33. package/lib/util.d.ts +5 -3
  34. package/lib/util.d.ts.map +1 -1
  35. package/lib/util.js +39 -15
  36. package/lib/util.js.map +1 -1
  37. package/lib/verify-pat.d.ts +1 -0
  38. package/lib/verify-pat.d.ts.map +1 -1
  39. package/lib/verify-pat.js +10 -7
  40. package/lib/verify-pat.js.map +1 -1
  41. package/lib/version.d.ts +2 -0
  42. package/lib/version.d.ts.map +1 -0
  43. package/lib/version.js +5 -0
  44. package/lib/version.js.map +1 -0
  45. package/lib/zip.d.ts +4 -0
  46. package/lib/zip.d.ts.map +1 -0
  47. package/lib/zip.js +48 -0
  48. package/lib/zip.js.map +1 -0
  49. package/package.json +18 -11
  50. package/src/create-namespace.ts +3 -4
  51. package/src/login.ts +28 -1
  52. package/src/logout.ts +15 -0
  53. package/src/main.ts +23 -7
  54. package/src/ovsx +2 -2
  55. package/src/publish.ts +23 -16
  56. package/src/registry.ts +1 -5
  57. package/src/store.ts +142 -0
  58. package/src/util.ts +30 -0
  59. package/src/verify-pat.ts +22 -19
  60. package/src/version.ts +1 -0
  61. package/src/zip.ts +55 -0
package/lib/store.js ADDED
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.KeytarStore = exports.FileStore = void 0;
4
+ exports.openDefaultStore = openDefaultStore;
5
+ const fs = require("fs");
6
+ const path = require("path");
7
+ const os_1 = require("os");
8
+ class FileStore {
9
+ static async open(path = FileStore.DefaultPath) {
10
+ try {
11
+ const rawStore = await fs.promises.readFile(path, 'utf8');
12
+ return new FileStore(path, JSON.parse(rawStore).entries);
13
+ }
14
+ catch (err) {
15
+ if (err.code === 'ENOENT') {
16
+ return new FileStore(path, []);
17
+ }
18
+ else if (/SyntaxError/.test(err)) {
19
+ throw new Error(`Error parsing file store: ${path}.`);
20
+ }
21
+ throw err;
22
+ }
23
+ }
24
+ get size() {
25
+ return this.entries.length;
26
+ }
27
+ constructor(path, entries) {
28
+ this.path = path;
29
+ this.entries = entries;
30
+ }
31
+ async save() {
32
+ await fs.promises.writeFile(this.path, JSON.stringify({ entries: this.entries }), { mode: '0600' });
33
+ }
34
+ async deleteStore() {
35
+ try {
36
+ await fs.promises.unlink(this.path);
37
+ }
38
+ catch {
39
+ // noop
40
+ }
41
+ }
42
+ get(name) {
43
+ return this.entries.find(p => p.name === name)?.value;
44
+ }
45
+ async add(name, value) {
46
+ const newEntry = { name, value };
47
+ this.entries = [...this.entries.filter(p => p.name !== name), newEntry];
48
+ await this.save();
49
+ }
50
+ async delete(name) {
51
+ this.entries = this.entries.filter(p => p.name !== name);
52
+ await this.save();
53
+ }
54
+ [Symbol.iterator]() {
55
+ return this.entries[Symbol.iterator]();
56
+ }
57
+ }
58
+ exports.FileStore = FileStore;
59
+ FileStore.DefaultPath = path.join((0, os_1.homedir)(), '.ovsx');
60
+ class KeytarStore {
61
+ static async open(serviceName = 'ovsx') {
62
+ const keytar = await Promise.resolve().then(() => require('keytar'));
63
+ const creds = await keytar.findCredentials(serviceName);
64
+ return new KeytarStore(keytar, serviceName, creds.map(({ account, password }) => ({ name: account, value: password })));
65
+ }
66
+ get size() {
67
+ return this.entries.length;
68
+ }
69
+ constructor(keytar, serviceName, entries) {
70
+ this.keytar = keytar;
71
+ this.serviceName = serviceName;
72
+ this.entries = entries;
73
+ }
74
+ get(name) {
75
+ return this.entries.find(p => p.name === name)?.value;
76
+ }
77
+ async add(name, value) {
78
+ const newEntry = { name, value };
79
+ this.entries = [...this.entries.filter(p => p.name !== name), newEntry];
80
+ await this.keytar.setPassword(this.serviceName, name, value);
81
+ }
82
+ async delete(name) {
83
+ this.entries = this.entries.filter(p => p.name !== name);
84
+ await this.keytar.deletePassword(this.serviceName, name);
85
+ }
86
+ [Symbol.iterator]() {
87
+ return this.entries[Symbol.iterator]();
88
+ }
89
+ }
90
+ exports.KeytarStore = KeytarStore;
91
+ async function openDefaultStore() {
92
+ if (/^file$/i.test(process.env['OVSX_STORE'] ?? '')) {
93
+ return await FileStore.open();
94
+ }
95
+ let keytarStore;
96
+ try {
97
+ keytarStore = await KeytarStore.open();
98
+ }
99
+ catch (err) {
100
+ const store = await FileStore.open();
101
+ console.warn(`Failed to open credential store. Falling back to storing secrets clear-text in: ${store.path}.`);
102
+ return store;
103
+ }
104
+ const fileStore = await FileStore.open();
105
+ // migrate from file store
106
+ if (fileStore.size) {
107
+ for (const { name, value } of fileStore) {
108
+ await keytarStore.add(name, value);
109
+ }
110
+ await fileStore.deleteStore();
111
+ console.info(`Migrated ${fileStore.size} publishers to system credential manager. Deleted local store '${fileStore.path}'.`);
112
+ }
113
+ return keytarStore;
114
+ }
115
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../src/store.ts"],"names":[],"mappings":"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"}
package/lib/util.d.ts CHANGED
@@ -7,13 +7,13 @@
7
7
  *
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ********************************************************************************/
10
- /// <reference types="node" />
11
- /// <reference types="node" />
12
- /// <reference types="node" />
13
10
  import * as fs from 'fs';
14
11
  import * as tmp from 'tmp';
15
12
  import * as http from 'http';
16
13
  import { RegistryOptions } from './registry';
14
+ import { VerifyPatOptions } from './verify-pat';
15
+ import { PublishOptions } from './publish';
16
+ import { CreateNamespaceOptions } from './create-namespace';
17
17
  export { promisify } from 'util';
18
18
  export declare function addEnvOptions(options: RegistryOptions): void;
19
19
  export declare function matchExtensionId(id: string): RegExpExecArray | null;
@@ -35,4 +35,6 @@ export interface Manifest {
35
35
  }
36
36
  export declare function getUserInput(text: string): Promise<string>;
37
37
  export declare function getUserChoice<R extends string>(text: string, values: R[], defaultValue: R, lowerCase?: boolean): Promise<R>;
38
+ export declare function requestPAT(namespace: string, options: CreateNamespaceOptions | PublishOptions | VerifyPatOptions, verify?: boolean): Promise<string>;
39
+ export declare function getPAT(namespace: string, options: CreateNamespaceOptions | PublishOptions | VerifyPatOptions, verify?: boolean): Promise<string>;
38
40
  //# 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;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,EAAE,IAAI,GAAE,OAAc,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAmBpH;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,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;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"}
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;AAC7C,OAAO,EAAE,gBAAgB,EAAe,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,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,EAAE,IAAI,GAAE,OAAc,GAAG,CAAC,MAAM,EAAE,GAAG,KAAK,IAAI,CAmBpH;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,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;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;AAED,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,cAAc,GAAG,gBAAgB,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhK;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,sBAAsB,GAAG,cAAc,GAAG,gBAAgB,EAAE,MAAM,GAAE,OAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAe5J"}
package/lib/util.js CHANGED
@@ -9,11 +9,29 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  ********************************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getUserChoice = exports.getUserInput = exports.writeManifest = exports.writeFile = exports.validateManifest = exports.readManifest = exports.readFile = exports.statusError = exports.handleError = exports.createTempFile = exports.makeDirs = exports.optionalStat = exports.matchExtensionId = exports.addEnvOptions = exports.promisify = void 0;
12
+ exports.promisify = void 0;
13
+ exports.addEnvOptions = addEnvOptions;
14
+ exports.matchExtensionId = matchExtensionId;
15
+ exports.optionalStat = optionalStat;
16
+ exports.makeDirs = makeDirs;
17
+ exports.createTempFile = createTempFile;
18
+ exports.handleError = handleError;
19
+ exports.statusError = statusError;
20
+ exports.readFile = readFile;
21
+ exports.readManifest = readManifest;
22
+ exports.validateManifest = validateManifest;
23
+ exports.writeFile = writeFile;
24
+ exports.writeManifest = writeManifest;
25
+ exports.getUserInput = getUserInput;
26
+ exports.getUserChoice = getUserChoice;
27
+ exports.requestPAT = requestPAT;
28
+ exports.getPAT = getPAT;
13
29
  const fs = require("fs");
14
30
  const path = require("path");
15
31
  const tmp = require("tmp");
16
32
  const readline = require("readline");
33
+ const verify_pat_1 = require("./verify-pat");
34
+ const store_1 = require("./store");
17
35
  var util_1 = require("util");
18
36
  Object.defineProperty(exports, "promisify", { enumerable: true, get: function () { return util_1.promisify; } });
19
37
  function addEnvOptions(options) {
@@ -30,17 +48,14 @@ function addEnvOptions(options) {
30
48
  options.password = process.env.OVSX_PASSWORD;
31
49
  }
32
50
  }
33
- exports.addEnvOptions = addEnvOptions;
34
51
  function matchExtensionId(id) {
35
52
  return /^([\w-]+)(?:\.|\/)([\w-]+)$/.exec(id);
36
53
  }
37
- exports.matchExtensionId = matchExtensionId;
38
54
  function optionalStat(path) {
39
55
  return new Promise((resolve, reject) => {
40
56
  fs.stat(path, (err, stats) => resolve(stats));
41
57
  });
42
58
  }
43
- exports.optionalStat = optionalStat;
44
59
  function makeDirs(path) {
45
60
  return new Promise((resolve, reject) => {
46
61
  if (fs.existsSync(path)) {
@@ -56,7 +71,6 @@ function makeDirs(path) {
56
71
  }
57
72
  });
58
73
  }
59
- exports.makeDirs = makeDirs;
60
74
  function createTempFile(options) {
61
75
  return new Promise((resolve, reject) => {
62
76
  tmp.tmpName(options, (err, name) => {
@@ -67,7 +81,6 @@ function createTempFile(options) {
67
81
  });
68
82
  });
69
83
  }
70
- exports.createTempFile = createTempFile;
71
84
  function handleError(debug, additionalMessage, exit = true) {
72
85
  return reason => {
73
86
  if (reason instanceof Error && !debug) {
@@ -90,14 +103,12 @@ function handleError(debug, additionalMessage, exit = true) {
90
103
  }
91
104
  };
92
105
  }
93
- exports.handleError = handleError;
94
106
  function statusError(response) {
95
107
  if (response.statusMessage)
96
108
  return new Error(`The server responded with status ${response.statusCode}: ${response.statusMessage}`);
97
109
  else
98
110
  return new Error(`The server responded with status ${response.statusCode}.`);
99
111
  }
100
- exports.statusError = statusError;
101
112
  function readFile(name, packagePath, encoding = 'utf-8') {
102
113
  return new Promise((resolve, reject) => {
103
114
  fs.readFile(path.join(packagePath ?? process.cwd(), name), { encoding }, (err, content) => {
@@ -110,12 +121,10 @@ function readFile(name, packagePath, encoding = 'utf-8') {
110
121
  });
111
122
  });
112
123
  }
113
- exports.readFile = readFile;
114
124
  async function readManifest(packagePath) {
115
125
  const content = await readFile('package.json', packagePath);
116
126
  return JSON.parse(content);
117
127
  }
118
- exports.readManifest = readManifest;
119
128
  function validateManifest(manifest) {
120
129
  if (!manifest.publisher) {
121
130
  throw new Error("Missing required field 'publisher'.");
@@ -127,7 +136,6 @@ function validateManifest(manifest) {
127
136
  throw new Error("Missing required field 'version'.");
128
137
  }
129
138
  }
130
- exports.validateManifest = validateManifest;
131
139
  function writeFile(name, content, packagePath, encoding = 'utf-8') {
132
140
  return new Promise((resolve, reject) => {
133
141
  fs.writeFile(path.join(packagePath ?? process.cwd(), name), content, { encoding }, err => {
@@ -140,12 +148,10 @@ function writeFile(name, content, packagePath, encoding = 'utf-8') {
140
148
  });
141
149
  });
142
150
  }
143
- exports.writeFile = writeFile;
144
151
  function writeManifest(manifest, packagePath) {
145
152
  const content = JSON.stringify(manifest, null, 4);
146
153
  return writeFile('package.json', content, packagePath);
147
154
  }
148
- exports.writeManifest = writeManifest;
149
155
  function getUserInput(text) {
150
156
  return new Promise(resolve => {
151
157
  const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
@@ -155,7 +161,6 @@ function getUserInput(text) {
155
161
  });
156
162
  });
157
163
  }
158
- exports.getUserInput = getUserInput;
159
164
  async function getUserChoice(text, values, defaultValue, lowerCase = true) {
160
165
  const prompt = text + '\n' + values.map(v => v === defaultValue ? `[${v}]` : v).join('/') + ': ';
161
166
  const answer = await getUserInput(prompt);
@@ -170,5 +175,24 @@ async function getUserChoice(text, values, defaultValue, lowerCase = true) {
170
175
  }
171
176
  return defaultValue;
172
177
  }
173
- exports.getUserChoice = getUserChoice;
178
+ async function requestPAT(namespace, options, verify = true) {
179
+ const pat = await getUserInput(`Personal Access Token for namespace '${namespace}':`);
180
+ if (verify) {
181
+ await (0, verify_pat_1.doVerifyPat)({ ...options, namespace, pat });
182
+ }
183
+ return pat;
184
+ }
185
+ async function getPAT(namespace, options, verify = true) {
186
+ if (options?.pat) {
187
+ return options.pat;
188
+ }
189
+ const store = await (0, store_1.openDefaultStore)();
190
+ let pat = store.get(namespace);
191
+ if (pat) {
192
+ return pat;
193
+ }
194
+ pat = await requestPAT(namespace, options, verify);
195
+ await store.add(namespace, pat);
196
+ return pat;
197
+ }
174
198
  //# 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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"}
@@ -12,6 +12,7 @@ import { RegistryOptions } from './registry';
12
12
  * Validates that a Personal Access Token can publish to a namespace.
13
13
  */
14
14
  export declare function verifyPat(options: VerifyPatOptions): Promise<void>;
15
+ export declare function doVerifyPat(options: VerifyPatOptions): Promise<void>;
15
16
  export interface VerifyPatOptions extends RegistryOptions {
16
17
  /**
17
18
  * Name of the namespace.
@@ -1 +1 @@
1
- {"version":3,"file":"verify-pat.d.ts","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,OAAO,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BxE;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB"}
1
+ {"version":3,"file":"verify-pat.d.ts","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":"AAAA;;;;;;;;kFAQkF;AAElF,OAAO,EAAY,eAAe,EAAE,MAAM,YAAY,CAAC;AAGvD;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBxE;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,gBAAgB,iBAS1D;AAED,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACrD;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACrB"}
package/lib/verify-pat.js CHANGED
@@ -9,7 +9,8 @@
9
9
  * SPDX-License-Identifier: EPL-2.0
10
10
  ********************************************************************************/
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.verifyPat = void 0;
12
+ exports.verifyPat = verifyPat;
13
+ exports.doVerifyPat = doVerifyPat;
13
14
  const registry_1 = require("./registry");
14
15
  const util_1 = require("./util");
15
16
  /**
@@ -17,9 +18,6 @@ const util_1 = require("./util");
17
18
  */
18
19
  async function verifyPat(options) {
19
20
  (0, util_1.addEnvOptions)(options);
20
- if (!options.pat) {
21
- throw new Error("A personal access token must be given with the option '--pat'.");
22
- }
23
21
  if (!options.namespace) {
24
22
  let error;
25
23
  try {
@@ -33,12 +31,17 @@ async function verifyPat(options) {
33
31
  (error ? `\n\n${error}` : ''));
34
32
  }
35
33
  }
34
+ options.pat = await (0, util_1.getPAT)(options.namespace, options, false);
35
+ await doVerifyPat(options);
36
+ }
37
+ async function doVerifyPat(options) {
36
38
  const registry = new registry_1.Registry(options);
37
- const result = await registry.verifyPat(options.namespace, options.pat);
39
+ const namespace = options.namespace;
40
+ const pat = options.pat;
41
+ const result = await registry.verifyPat(namespace, pat);
38
42
  if (result.error) {
39
43
  throw new Error(result.error);
40
44
  }
41
- console.log(`\ud83d\ude80 PAT valid to publish at ${options.namespace}`);
45
+ console.log(`\ud83d\ude80 PAT valid to publish at ${namespace}`);
42
46
  }
43
- exports.verifyPat = verifyPat;
44
47
  //# sourceMappingURL=verify-pat.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"verify-pat.js","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;;AAElF,yCAAuD;AACvD,iCAAqD;AAErD;;GAEG;AACI,KAAK,UAAU,SAAS,CAAC,OAAyB;IACrD,IAAA,oBAAa,EAAC,OAAO,CAAC,CAAC;IACvB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC,CAAC;KACrF;IAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;QACtB,IAAI,KAAK,CAAC;QACV,IAAI;YACF,OAAO,CAAC,SAAS,GAAG,CAAC,MAAM,IAAA,mBAAY,GAAE,CAAC,CAAC,SAAS,CAAC;SACtD;QAAC,OAAO,CAAC,EAAE;YACV,KAAK,GAAG,CAAC,CAAC;SACX;QAED,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YACtB,MAAM,IAAI,KAAK,CACb,6GAA6G;gBAC7G,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC9B,CAAC;SACH;KACF;IAED,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACxE,IAAI,MAAM,CAAC,KAAK,EAAE;QACd,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;KACjC;IACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9E,CAAC;AA5BD,8BA4BC"}
1
+ {"version":3,"file":"verify-pat.js","sourceRoot":"","sources":["../src/verify-pat.ts"],"names":[],"mappings":";AAAA;;;;;;;;kFAQkF;;AAQlF,8BAoBC;AAED,kCASC;AArCD,yCAAuD;AACvD,iCAA6D;AAE7D;;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,aAAM,EAAC,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC9D,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/B,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,OAAyB;IACvD,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,OAAO,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAmB,CAAC;IAC9C,MAAM,GAAG,GAAG,OAAO,CAAC,GAAa,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IACxD,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,yCAAyC,SAAS,EAAE,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const LIB_VERSION = "0.10.1";
2
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,WAAW,CAAC"}
package/lib/version.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LIB_VERSION = void 0;
4
+ exports.LIB_VERSION = "0.10.1";
5
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,QAAQ,CAAC"}
package/lib/zip.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { Manifest } from './util';
2
+ export declare function readZip(packagePath: string, filter: (name: string) => boolean): Promise<Map<string, Buffer>>;
3
+ export declare function readVSIXPackage(packagePath: string): Promise<Manifest>;
4
+ //# sourceMappingURL=zip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"AAEA,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,CA+BlH;AAED,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAQ5E"}
package/lib/zip.js ADDED
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.readZip = readZip;
4
+ exports.readVSIXPackage = readVSIXPackage;
5
+ const yauzl_1 = require("yauzl");
6
+ async function bufferStream(stream) {
7
+ return await new Promise((resolve, reject) => {
8
+ const buffers = [];
9
+ stream.on('data', buffer => buffers.push(buffer));
10
+ stream.once('error', reject);
11
+ stream.once('end', () => resolve(Buffer.concat(buffers)));
12
+ });
13
+ }
14
+ async function readZip(packagePath, filter) {
15
+ const zipfile = await new Promise((resolve, reject) => (0, yauzl_1.open)(packagePath, { lazyEntries: true }, (err, zipfile) => (err ? reject(err) : resolve(zipfile))));
16
+ return await new Promise((resolve, reject) => {
17
+ const result = new Map();
18
+ zipfile.once('close', () => resolve(result));
19
+ zipfile.readEntry();
20
+ zipfile.on('entry', (entry) => {
21
+ const name = entry.fileName.toLowerCase();
22
+ if (filter(name)) {
23
+ zipfile.openReadStream(entry, (err, stream) => {
24
+ if (err) {
25
+ zipfile.close();
26
+ return reject(err);
27
+ }
28
+ bufferStream(stream).then(buffer => {
29
+ result.set(name, buffer);
30
+ zipfile.readEntry();
31
+ });
32
+ });
33
+ }
34
+ else {
35
+ zipfile.readEntry();
36
+ }
37
+ });
38
+ });
39
+ }
40
+ async function readVSIXPackage(packagePath) {
41
+ const map = await readZip(packagePath, name => /^extension\/package\.json$/i.test(name));
42
+ const rawManifest = map.get('extension/package.json');
43
+ if (!rawManifest) {
44
+ throw new Error('Manifest not found.');
45
+ }
46
+ return JSON.parse(rawManifest.toString('utf8'));
47
+ }
48
+ //# sourceMappingURL=zip.js.map
package/lib/zip.js.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":";;AAaA,0BA+BC;AAED,0CAQC;AAtDD,iCAA6C;AAI7C,KAAK,UAAU,YAAY,CAAC,MAAgB;IAC3C,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,OAAO,CAAC,WAAmB,EAAE,MAAiC;IACnF,MAAM,OAAO,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC9D,IAAA,YAAI,EAAC,WAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAClG,CAAC;IAEF,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC5C,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QAEzC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAE7C,OAAO,CAAC,SAAS,EAAE,CAAC;QACpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE;YACpC,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAE1C,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,OAAO,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;oBAC7C,IAAI,GAAG,EAAE,CAAC;wBACT,OAAO,CAAC,KAAK,EAAE,CAAC;wBAChB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;oBACpB,CAAC;oBAED,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;wBAClC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;wBACzB,OAAO,CAAC,SAAS,EAAE,CAAC;oBACrB,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACP,OAAO,CAAC,SAAS,EAAE,CAAC;YACrB,CAAC;QACF,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,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;IAEE,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAa,CAAC;AAChE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ovsx",
3
- "version": "0.9.5",
3
+ "version": "0.10.1",
4
4
  "description": "Command line interface for Eclipse Open VSX",
5
5
  "keywords": [
6
6
  "cli",
@@ -34,35 +34,42 @@
34
34
  "node": ">= 20"
35
35
  },
36
36
  "dependencies": {
37
- "@vscode/vsce": "^3.1.0",
37
+ "@vscode/vsce": "^3.2.1",
38
38
  "commander": "^6.2.1",
39
39
  "follow-redirects": "^1.14.6",
40
40
  "is-ci": "^2.0.0",
41
41
  "leven": "^3.1.0",
42
42
  "semver": "^7.6.0",
43
- "tmp": "^0.2.3"
43
+ "tmp": "^0.2.3",
44
+ "yauzl": "^3.1.3"
44
45
  },
45
46
  "devDependencies": {
47
+ "@eslint/eslintrc": "^3.2.0",
48
+ "@eslint/js": "^9.15.0",
49
+ "@stylistic/eslint-plugin": "^2.11.0",
46
50
  "@types/follow-redirects": "^1.13.1",
47
51
  "@types/is-ci": "^2.0.0",
48
52
  "@types/node": "^20.14.8",
49
53
  "@types/semver": "^7.5.8",
50
54
  "@types/tmp": "^0.2.2",
51
- "@typescript-eslint/eslint-plugin": "^5.44.0",
52
- "@typescript-eslint/parser": "^5.44.0",
53
- "eslint": "^8.28.0",
54
- "rimraf": "^3.0.2",
55
- "typescript": "^4.3.2"
55
+ "@types/yauzl": "^2.10.3",
56
+ "@typescript-eslint/eslint-plugin": "^8.15.0",
57
+ "@typescript-eslint/parser": "^8.15.0",
58
+ "eslint": "^9.15.0",
59
+ "limiter": "^2.1.0",
60
+ "rimraf": "^6.0.1",
61
+ "typescript": "^5.6.3"
56
62
  },
57
63
  "scripts": {
58
64
  "clean": "rimraf lib",
65
+ "prebuild": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/version.ts",
59
66
  "build": "tsc -p ./tsconfig.json && yarn run lint && cp src/ovsx lib/ovsx",
60
67
  "watch": "tsc -w -p ./tsconfig.json",
61
- "lint": "eslint -c ./configs/eslintrc.json --ext .ts src",
62
- "prepare": "yarn run clean && yarn run build",
68
+ "lint": "eslint -c ./configs/eslintrc.mjs src",
69
+ "prepare": "yarn run clean && yarn run prebuild && yarn run build",
63
70
  "publish:next": "yarn npm publish --tag next",
64
71
  "publish:latest": "yarn npm publish --tag latest",
65
72
  "load-extensions": "node scripts/load-test-extensions.js"
66
73
  },
67
- "packageManager": "yarn@4.3.1"
74
+ "packageManager": "yarn@4.5.1"
68
75
  }
@@ -9,7 +9,7 @@
9
9
  ********************************************************************************/
10
10
 
11
11
  import { Registry, RegistryOptions } from './registry';
12
- import { addEnvOptions } from './util';
12
+ import { addEnvOptions, getPAT } from './util';
13
13
 
14
14
  /**
15
15
  * Creates a namespace (corresponds to `publisher` in package.json).
@@ -19,9 +19,8 @@ export async function createNamespace(options: CreateNamespaceOptions = {}): Pro
19
19
  if (!options.name) {
20
20
  throw new Error('The namespace name is mandatory.');
21
21
  }
22
- if (!options.pat) {
23
- throw new Error("A personal access token must be given with the option '--pat'.");
24
- }
22
+
23
+ options.pat = await getPAT(options.name, options, false);
25
24
 
26
25
  const registry = new Registry(options);
27
26
  const result = await registry.createNamespace(options.name, options.pat);
package/src/login.ts CHANGED
@@ -8,7 +8,34 @@
8
8
  * SPDX-License-Identifier: EPL-2.0
9
9
  ********************************************************************************/
10
10
  import { } from '@vscode/vsce';
11
+ import { addEnvOptions, getUserInput, requestPAT } from './util';
12
+ import { openDefaultStore } from './store';
13
+ import { RegistryOptions } from './registry';
11
14
 
12
- export default function doLogin() {
15
+ export default async function login(options: LoginOptions) {
16
+ addEnvOptions(options);
17
+ if (!options.namespace) {
18
+ throw new Error('Missing namespace name.');
19
+ }
13
20
 
21
+ const store = await openDefaultStore();
22
+ let pat = store.get(options.namespace);
23
+ if (pat) {
24
+ console.log(`Namespace '${options.namespace}' is already known.`);
25
+ const answer = await getUserInput('Do you want to overwrite its PAT? [y/N] ');
26
+
27
+ if (!/^y$/i.test(answer)) {
28
+ throw new Error('Aborted.');
29
+ }
30
+ }
31
+
32
+ pat = await requestPAT(options.namespace, options);
33
+ await store.add(options.namespace, pat);
34
+ }
35
+
36
+ export interface LoginOptions extends RegistryOptions {
37
+ /**
38
+ * Name of the namespace.
39
+ */
40
+ namespace?: string
14
41
  }
package/src/logout.ts ADDED
@@ -0,0 +1,15 @@
1
+ import { openDefaultStore } from "./store";
2
+
3
+ export default async function logout(namespaceName: string) {
4
+ if (!namespaceName) {
5
+ throw new Error('Missing namespace name.');
6
+ }
7
+
8
+ const store = await openDefaultStore();
9
+ if (!store.get(namespaceName)) {
10
+ throw new Error(`Unknown namespace '${namespaceName}'.`);
11
+ }
12
+
13
+ await store.delete(namespaceName);
14
+ console.log(`\ud83d\ude80 ${namespaceName} removed from the list of known namespaces`);
15
+ }