@theia/vsx-registry 1.53.0-next.5 → 1.53.0-next.55

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 (49) hide show
  1. package/README.md +45 -45
  2. package/lib/common/vsx-environment.d.ts +1 -0
  3. package/lib/common/vsx-environment.d.ts.map +1 -1
  4. package/lib/common/vsx-registry-common-module.d.ts.map +1 -1
  5. package/lib/common/vsx-registry-common-module.js +9 -3
  6. package/lib/common/vsx-registry-common-module.js.map +1 -1
  7. package/lib/node/vsx-cli.d.ts +1 -0
  8. package/lib/node/vsx-cli.d.ts.map +1 -1
  9. package/lib/node/vsx-cli.js +4 -0
  10. package/lib/node/vsx-cli.js.map +1 -1
  11. package/lib/node/vsx-environment-impl.d.ts +1 -0
  12. package/lib/node/vsx-environment-impl.d.ts.map +1 -1
  13. package/lib/node/vsx-environment-impl.js +3 -0
  14. package/lib/node/vsx-environment-impl.js.map +1 -1
  15. package/lib/node/vsx-extension-resolver.js +3 -3
  16. package/lib/node/vsx-extension-resolver.js.map +1 -1
  17. package/package.json +12 -11
  18. package/src/browser/recommended-extensions/preference-provider-overrides.ts +99 -99
  19. package/src/browser/recommended-extensions/recommended-extensions-json-schema.ts +74 -74
  20. package/src/browser/recommended-extensions/recommended-extensions-preference-contribution.ts +68 -68
  21. package/src/browser/style/extensions.svg +4 -4
  22. package/src/browser/style/index.css +436 -436
  23. package/src/browser/vsx-extension-argument-processor.ts +32 -32
  24. package/src/browser/vsx-extension-commands.ts +68 -68
  25. package/src/browser/vsx-extension-editor-manager.ts +42 -42
  26. package/src/browser/vsx-extension-editor.tsx +96 -96
  27. package/src/browser/vsx-extension.tsx +710 -710
  28. package/src/browser/vsx-extensions-contribution.ts +373 -373
  29. package/src/browser/vsx-extensions-model.ts +456 -456
  30. package/src/browser/vsx-extensions-preferences.ts +58 -58
  31. package/src/browser/vsx-extensions-search-bar.tsx +107 -107
  32. package/src/browser/vsx-extensions-search-model.ts +61 -61
  33. package/src/browser/vsx-extensions-source.ts +83 -83
  34. package/src/browser/vsx-extensions-view-container.ts +179 -179
  35. package/src/browser/vsx-extensions-widget.tsx +165 -165
  36. package/src/browser/vsx-language-quick-pick-service.ts +112 -112
  37. package/src/browser/vsx-registry-frontend-module.ts +113 -113
  38. package/src/common/index.ts +19 -19
  39. package/src/common/ovsx-client-provider.ts +35 -35
  40. package/src/common/vsx-environment.ts +28 -27
  41. package/src/common/vsx-extension-uri.ts +20 -20
  42. package/src/common/vsx-registry-common-module.ts +85 -78
  43. package/src/node/vsx-cli-deployer-participant.ts +46 -46
  44. package/src/node/vsx-cli.ts +55 -51
  45. package/src/node/vsx-environment-impl.ts +54 -50
  46. package/src/node/vsx-extension-resolver.ts +134 -134
  47. package/src/node/vsx-registry-backend-module.ts +38 -38
  48. package/src/node/vsx-remote-cli.ts +39 -39
  49. package/src/package.spec.ts +29 -29
package/README.md CHANGED
@@ -1,45 +1,45 @@
1
- <div align='center'>
2
-
3
- <br />
4
-
5
- <img src='https://raw.githubusercontent.com/eclipse-theia/theia/master/logo/theia.svg?sanitize=true' alt='theia-ext-logo' width='100px' />
6
-
7
- <h2>ECLIPSE THEIA - Open VSX Registry Extension</h2>
8
-
9
- <hr />
10
-
11
- </div>
12
-
13
- ## Description
14
-
15
- The `@theia/vsx-registry` extension provides integration with the Open VSX Registry.
16
-
17
- ### Configuration
18
-
19
- The extension connects to the public Open VSX Registry hosted on `http://open-vsx.org/`.
20
- One can host own instance of a [registry](https://github.com/eclipse/openvsx#eclipse-open-vsx)
21
- and configure `VSX_REGISTRY_URL` environment variable to use it.
22
-
23
- ### Using multiple registries
24
-
25
- It is possible to target multiple registries by specifying a CLI argument when
26
- running the backend: `--ovsx-router-config=<path>` where `path` must point to
27
- a json defining an `OVSXRouterConfig` object.
28
-
29
- See `@theia/ovsx-client`'s documentation to read more about `OVSXRouterClient`
30
- and its `OVSXRouterConfig` configuration.
31
-
32
- ## Additional Information
33
-
34
- - [API documentation for `@theia/vsx-registry`](https://eclipse-theia.github.io/theia/docs/next/modules/vsx-registry.html)
35
- - [Theia - GitHub](https://github.com/eclipse-theia/theia)
36
- - [Theia - Website](https://theia-ide.org/)
37
-
38
- ## License
39
-
40
- - [Eclipse Public License 2.0](http://www.eclipse.org/legal/epl-2.0/)
41
- - [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
42
-
43
- ## Trademark
44
- "Theia" is a trademark of the Eclipse Foundation
45
- https://www.eclipse.org/theia
1
+ <div align='center'>
2
+
3
+ <br />
4
+
5
+ <img src='https://raw.githubusercontent.com/eclipse-theia/theia/master/logo/theia.svg?sanitize=true' alt='theia-ext-logo' width='100px' />
6
+
7
+ <h2>ECLIPSE THEIA - Open VSX Registry Extension</h2>
8
+
9
+ <hr />
10
+
11
+ </div>
12
+
13
+ ## Description
14
+
15
+ The `@theia/vsx-registry` extension provides integration with the Open VSX Registry.
16
+
17
+ ### Configuration
18
+
19
+ The extension connects to the public Open VSX Registry hosted on `http://open-vsx.org/`.
20
+ One can host own instance of a [registry](https://github.com/eclipse/openvsx#eclipse-open-vsx)
21
+ and configure `VSX_REGISTRY_URL` environment variable to use it.
22
+
23
+ ### Using multiple registries
24
+
25
+ It is possible to target multiple registries by specifying a CLI argument when
26
+ running the backend: `--ovsx-router-config=<path>` where `path` must point to
27
+ a json defining an `OVSXRouterConfig` object.
28
+
29
+ See `@theia/ovsx-client`'s documentation to read more about `OVSXRouterClient`
30
+ and its `OVSXRouterConfig` configuration.
31
+
32
+ ## Additional Information
33
+
34
+ - [API documentation for `@theia/vsx-registry`](https://eclipse-theia.github.io/theia/docs/next/modules/vsx-registry.html)
35
+ - [Theia - GitHub](https://github.com/eclipse-theia/theia)
36
+ - [Theia - Website](https://theia-ide.org/)
37
+
38
+ ## License
39
+
40
+ - [Eclipse Public License 2.0](http://www.eclipse.org/legal/epl-2.0/)
41
+ - [一 (Secondary) GNU General Public License, version 2 with the GNU Classpath Exception](https://projects.eclipse.org/license/secondary-gpl-2.0-cp)
42
+
43
+ ## Trademark
44
+ "Theia" is a trademark of the Eclipse Foundation
45
+ https://www.eclipse.org/theia
@@ -2,6 +2,7 @@ import type { OVSXRouterConfig } from '@theia/ovsx-client';
2
2
  export declare const VSX_ENVIRONMENT_PATH = "/services/vsx-environment";
3
3
  export declare const VSXEnvironment: unique symbol;
4
4
  export interface VSXEnvironment {
5
+ getRateLimit(): Promise<number>;
5
6
  getRegistryUri(): Promise<string>;
6
7
  getRegistryApiUri(): Promise<string>;
7
8
  getVscodeApiVersion(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-environment.d.ts","sourceRoot":"","sources":["../../src/common/vsx-environment.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAEhE,eAAO,MAAM,cAAc,eAA2B,CAAC;AACvD,MAAM,WAAW,cAAc;IAC3B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,mBAAmB,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;CACjE"}
1
+ {"version":3,"file":"vsx-environment.d.ts","sourceRoot":"","sources":["../../src/common/vsx-environment.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,eAAO,MAAM,oBAAoB,8BAA8B,CAAC;AAEhE,eAAO,MAAM,cAAc,eAA2B,CAAC;AACvD,MAAM,WAAW,cAAc;IAC3B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAClC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,mBAAmB,CAAC,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CAAC;CACjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-registry-common-module.d.ts","sourceRoot":"","sources":["../../src/common/vsx-registry-common-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAQ/D,wBAqDG"}
1
+ {"version":3,"file":"vsx-registry-common-module.d.ts","sourceRoot":"","sources":["../../src/common/vsx-registry-common-module.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;;AAS/D,wBA2DG"}
@@ -20,6 +20,7 @@ const common_1 = require("../common");
20
20
  const request_1 = require("@theia/core/shared/@theia/request");
21
21
  const ovsx_client_1 = require("@theia/ovsx-client");
22
22
  const vsx_environment_1 = require("./vsx-environment");
23
+ const limiter_1 = require("limiter");
23
24
  exports.default = new inversify_1.ContainerModule(bind => {
24
25
  bind(common_1.OVSXUrlResolver)
25
26
  .toFunction(url => url);
@@ -33,13 +34,18 @@ exports.default = new inversify_1.ContainerModule(bind => {
33
34
  .all([
34
35
  vsxEnvironment.getRegistryApiUri(),
35
36
  (_a = vsxEnvironment.getOvsxRouterConfig) === null || _a === void 0 ? void 0 : _a.call(vsxEnvironment),
37
+ vsxEnvironment.getRateLimit()
36
38
  ])
37
- .then(async ([apiUrl, ovsxRouterConfig]) => {
39
+ .then(async ([apiUrl, ovsxRouterConfig, rateLimit]) => {
40
+ const rateLimiter = new limiter_1.RateLimiter({
41
+ interval: 'second',
42
+ tokensPerInterval: rateLimit
43
+ });
38
44
  if (ovsxRouterConfig) {
39
- const clientFactory = ovsx_client_1.OVSXHttpClient.createClientFactory(requestService);
45
+ const clientFactory = ovsx_client_1.OVSXHttpClient.createClientFactory(requestService, rateLimiter);
40
46
  return ovsx_client_1.OVSXRouterClient.FromConfig(ovsxRouterConfig, async (url) => clientFactory(await urlResolver(url)), [ovsx_client_1.RequestContainsFilterFactory, ovsx_client_1.ExtensionIdMatchesFilterFactory]);
41
47
  }
42
- return new ovsx_client_1.OVSXHttpClient(await urlResolver(apiUrl), requestService);
48
+ return new ovsx_client_1.OVSXHttpClient(await urlResolver(apiUrl), requestService, rateLimiter);
43
49
  });
44
50
  // reuse the promise for subsequent calls to this provider
45
51
  return () => clientPromise;
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-registry-common-module.js","sourceRoot":"","sources":["../../src/common/vsx-registry-common-module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vsx-registry-common-module.js","sourceRoot":"","sources":["../../src/common/vsx-registry-common-module.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { Argv } from '@theia/core/shared/yargs';
4
4
  import { OVSXRouterConfig } from '@theia/ovsx-client';
5
5
  export declare class VsxCli implements CliContribution {
6
6
  ovsxRouterConfig: OVSXRouterConfig | undefined;
7
+ ovsxRateLimit: number;
7
8
  pluginsToInstall: string[];
8
9
  configure(conf: Argv<{}>): void;
9
10
  setArguments(args: Record<string, unknown>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-cli.d.ts","sourceRoot":"","sources":["../../src/node/vsx-cli.ts"],"names":[],"mappings":";AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,qBACa,MAAO,YAAW,eAAe;IAE1C,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC/C,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IASzB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAanE"}
1
+ {"version":3,"file":"vsx-cli.d.ts","sourceRoot":"","sources":["../../src/node/vsx-cli.ts"],"names":[],"mappings":";AAgBA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAmB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGvE,qBACa,MAAO,YAAW,eAAe;IAE1C,gBAAgB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,EAAE,CAAM;IAEhC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI;IAUzB,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAenE"}
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.VsxCli = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  const inversify_1 = require("@theia/core/shared/inversify");
21
+ const ovsx_client_1 = require("@theia/ovsx-client");
21
22
  const fs = require("fs");
22
23
  let VsxCli = class VsxCli {
23
24
  constructor() {
@@ -25,6 +26,7 @@ let VsxCli = class VsxCli {
25
26
  }
26
27
  configure(conf) {
27
28
  conf.option('ovsx-router-config', { description: 'JSON configuration file for the OVSX router client', type: 'string' });
29
+ conf.option('ovsx-rate-limit', { description: 'Limits the number of requests to OVSX per second', type: 'number', default: ovsx_client_1.OVSX_RATE_LIMIT });
28
30
  conf.option('install-plugin', {
29
31
  alias: 'install-extension',
30
32
  nargs: 1,
@@ -43,6 +45,8 @@ let VsxCli = class VsxCli {
43
45
  if (Array.isArray(pluginsToInstall)) {
44
46
  this.pluginsToInstall = pluginsToInstall;
45
47
  }
48
+ const ovsxRateLimit = args.ovsxRateLimit;
49
+ this.ovsxRateLimit = typeof ovsxRateLimit === 'number' ? ovsxRateLimit : ovsx_client_1.OVSX_RATE_LIMIT;
46
50
  }
47
51
  };
48
52
  exports.VsxCli = VsxCli;
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-cli.js","sourceRoot":"","sources":["../../src/node/vsx-cli.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAA0D;AAG1D,yBAAyB;AAGlB,IAAM,MAAM,GAAZ,MAAM,MAAM;IAAZ;QAGH,qBAAgB,GAAa,EAAE,CAAC;IAwBpC,CAAC;IAtBG,SAAS,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC1B,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,2HAA2H;SACpI,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA6B;QAC5C,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QACxD,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACvC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC7C,CAAC;IACL,CAAC;CACJ,CAAA;AA3BY,wBAAM;iBAAN,MAAM;IADlB,IAAA,sBAAU,GAAE;GACA,MAAM,CA2BlB"}
1
+ {"version":3,"file":"vsx-cli.js","sourceRoot":"","sources":["../../src/node/vsx-cli.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAGhF,4DAA0D;AAE1D,oDAAuE;AACvE,yBAAyB;AAGlB,IAAM,MAAM,GAAZ,MAAM,MAAM;IAAZ;QAIH,qBAAgB,GAAa,EAAE,CAAC;IA2BpC,CAAC;IAzBG,SAAS,CAAC,IAAc;QACpB,IAAI,CAAC,MAAM,CAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACzH,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,kDAAkD,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,6BAAe,EAAE,CAAC,CAAC;QAC9I,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE;YAC1B,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,2HAA2H;SACpI,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA6B;QAC5C,MAAM,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;QACxD,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAC;QAC7F,CAAC;QACD,IAAI,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;QAC1C,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE,CAAC;YACvC,gBAAgB,GAAG,CAAC,gBAAgB,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,CAAC;YAClC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QAC7C,CAAC;QACD,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAI,CAAC,aAAa,GAAG,OAAO,aAAa,KAAK,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,6BAAe,CAAC;IAC7F,CAAC;CACJ,CAAA;AA/BY,wBAAM;iBAAN,MAAM;IADlB,IAAA,sBAAU,GAAE;GACA,MAAM,CA+BlB"}
@@ -7,6 +7,7 @@ export declare class VSXEnvironmentImpl implements VSXEnvironment {
7
7
  protected _registryUri: URI;
8
8
  protected readonly pluginVscodeCli: PluginVsCodeCliContribution;
9
9
  protected vsxCli: VsxCli;
10
+ getRateLimit(): Promise<number>;
10
11
  getRegistryUri(): Promise<string>;
11
12
  getRegistryApiUri(): Promise<string>;
12
13
  getVscodeApiVersion(): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-environment-impl.d.ts","sourceRoot":"","sources":["../../src/node/vsx-environment-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kEAAkE,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBACa,kBAAmB,YAAW,cAAc;IAErD,SAAS,CAAC,YAAY,MAA8E;IAGpG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IAGhE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEnB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAGrE"}
1
+ {"version":3,"file":"vsx-environment-impl.d.ts","sourceRoot":"","sources":["../../src/node/vsx-environment-impl.ts"],"names":[],"mappings":"AAgBA,OAAO,GAAG,MAAM,4BAA4B,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kEAAkE,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAEnC,qBACa,kBAAmB,YAAW,cAAc;IAErD,SAAS,CAAC,YAAY,MAA8E;IAGpG,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,2BAA2B,CAAC;IAGhE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAEnB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;IAI/B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIjC,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAIpC,mBAAmB,IAAI,OAAO,CAAC,MAAM,CAAC;IAItC,mBAAmB,IAAI,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;CAGrE"}
@@ -26,6 +26,9 @@ let VSXEnvironmentImpl = class VSXEnvironmentImpl {
26
26
  var _a;
27
27
  this._registryUri = new uri_1.default(((_a = process.env['VSX_REGISTRY_URL']) === null || _a === void 0 ? void 0 : _a.trim()) || 'https://open-vsx.org');
28
28
  }
29
+ async getRateLimit() {
30
+ return this.vsxCli.ovsxRateLimit;
31
+ }
29
32
  async getRegistryUri() {
30
33
  return this._registryUri.toString(true);
31
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-environment-impl.js","sourceRoot":"","sources":["../../src/node/vsx-environment-impl.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,oDAA6C;AAC7C,4DAAkE;AAElE,qHAA+G;AAE/G,uCAAmC;AAG5B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;;QAEO,iBAAY,GAAG,IAAI,aAAG,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,0CAAE,IAAI,EAAE,KAAI,sBAAsB,CAAC,CAAC;IAuBxG,CAAC;IAfG,KAAK,CAAC,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACxC,CAAC;CACJ,CAAA;AAzBY,gDAAkB;AAKR;IADlB,IAAA,kBAAM,EAAC,4DAA2B,CAAC;sCACA,4DAA2B;2DAAC;AAGtD;IADT,IAAA,kBAAM,EAAC,gBAAM,CAAC;sCACG,gBAAM;kDAAC;6BARhB,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CAyB9B"}
1
+ {"version":3,"file":"vsx-environment-impl.js","sourceRoot":"","sources":["../../src/node/vsx-environment-impl.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,yCAAyC;AACzC,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;;;AAEhF,oDAA6C;AAC7C,4DAAkE;AAElE,qHAA+G;AAE/G,uCAAmC;AAG5B,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAAxB;;QAEO,iBAAY,GAAG,IAAI,aAAG,CAAC,CAAA,MAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,0CAAE,IAAI,EAAE,KAAI,sBAAsB,CAAC,CAAC;IA2BxG,CAAC;IAnBG,KAAK,CAAC,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,cAAc;QAChB,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,iBAAiB;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,OAAO,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,mBAAmB;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC;IACxC,CAAC;CACJ,CAAA;AA7BY,gDAAkB;AAKR;IADlB,IAAA,kBAAM,EAAC,4DAA2B,CAAC;sCACA,4DAA2B;2DAAC;AAGtD;IADT,IAAA,kBAAM,EAAC,gBAAM,CAAC;sCACG,gBAAM;kDAAC;6BARhB,kBAAkB;IAD9B,IAAA,sBAAU,GAAE;GACA,kBAAkB,CA6B9B"}
@@ -44,7 +44,7 @@ let VSXExtensionResolver = VSXExtensionResolver_1 = class VSXExtensionResolver {
44
44
  const filter = await this.vsxApiFilter();
45
45
  const version = (options === null || options === void 0 ? void 0 : options.version) || id.version;
46
46
  if (version) {
47
- console.log(`[${id}]: trying to resolve version ${version}...`);
47
+ console.log(`[${id.id}]: trying to resolve version ${version}...`);
48
48
  extension = await filter.findLatestCompatibleExtension({
49
49
  extensionId: id.id,
50
50
  extensionVersion: version,
@@ -53,7 +53,7 @@ let VSXExtensionResolver = VSXExtensionResolver_1 = class VSXExtensionResolver {
53
53
  });
54
54
  }
55
55
  else {
56
- console.log(`[${id}]: trying to resolve latest version...`);
56
+ console.log(`[${id.id}]: trying to resolve latest version...`);
57
57
  extension = await filter.findLatestCompatibleExtension({
58
58
  extensionId: id.id,
59
59
  includeAllVersions: true,
@@ -72,7 +72,7 @@ let VSXExtensionResolver = VSXExtensionResolver_1 = class VSXExtensionResolver {
72
72
  if (!(options === null || options === void 0 ? void 0 : options.ignoreOtherVersions)) {
73
73
  const existingVersion = this.hasSameOrNewerVersion(id.id, extension);
74
74
  if (existingVersion) {
75
- console.log(`[${id}]: is already installed with the same or newer version '${existingVersion}'`);
75
+ console.log(`[${id.id}]: is already installed with the same or newer version '${existingVersion}'`);
76
76
  return;
77
77
  }
78
78
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vsx-extension-resolver.js","sourceRoot":"","sources":["../../src/node/vsx-extension-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vsx-extension-resolver.js","sourceRoot":"","sources":["../../src/node/vsx-extension-resolver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,16 +1,17 @@
1
1
  {
2
2
  "name": "@theia/vsx-registry",
3
- "version": "1.53.0-next.5+1e5fb536d",
3
+ "version": "1.53.0-next.55+d1a989a68c",
4
4
  "description": "Theia - VSX Registry",
5
5
  "dependencies": {
6
- "@theia/core": "1.53.0-next.5+1e5fb536d",
7
- "@theia/filesystem": "1.53.0-next.5+1e5fb536d",
8
- "@theia/navigator": "1.53.0-next.5+1e5fb536d",
9
- "@theia/ovsx-client": "1.53.0-next.5+1e5fb536d",
10
- "@theia/plugin-ext": "1.53.0-next.5+1e5fb536d",
11
- "@theia/plugin-ext-vscode": "1.53.0-next.5+1e5fb536d",
12
- "@theia/preferences": "1.53.0-next.5+1e5fb536d",
13
- "@theia/workspace": "1.53.0-next.5+1e5fb536d",
6
+ "@theia/core": "1.53.0-next.55+d1a989a68c",
7
+ "@theia/filesystem": "1.53.0-next.55+d1a989a68c",
8
+ "@theia/navigator": "1.53.0-next.55+d1a989a68c",
9
+ "@theia/ovsx-client": "1.53.0-next.55+d1a989a68c",
10
+ "@theia/plugin-ext": "1.53.0-next.55+d1a989a68c",
11
+ "@theia/plugin-ext-vscode": "1.53.0-next.55+d1a989a68c",
12
+ "@theia/preferences": "1.53.0-next.55+d1a989a68c",
13
+ "@theia/workspace": "1.53.0-next.55+d1a989a68c",
14
+ "limiter": "^2.1.0",
14
15
  "luxon": "^2.4.0",
15
16
  "p-debounce": "^2.1.0",
16
17
  "semver": "^7.5.4",
@@ -54,11 +55,11 @@
54
55
  "watch": "theiaext watch"
55
56
  },
56
57
  "devDependencies": {
57
- "@theia/ext-scripts": "1.52.0",
58
+ "@theia/ext-scripts": "1.53.0",
58
59
  "@types/luxon": "^2.3.2"
59
60
  },
60
61
  "nyc": {
61
62
  "extends": "../../configs/nyc.json"
62
63
  },
63
- "gitHead": "1e5fb536d65550ad8fa0fefcec731645b2afc74a"
64
+ "gitHead": "d1a989a68c1b5ec1f9098e9126653c6346844769"
64
65
  }
@@ -1,99 +1,99 @@
1
- // *****************************************************************************
2
- // Copyright (C) 2021 Ericsson 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
- // This Source Code may also be made available under the following Secondary
9
- // Licenses when the conditions for such availability set forth in the Eclipse
10
- // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
- // with the GNU Classpath Exception which is available at
12
- // https://www.gnu.org/software/classpath/license.html.
13
- //
14
- // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
- // *****************************************************************************
16
-
17
- import {
18
- FolderPreferenceProvider,
19
- FolderPreferenceProviderFactory,
20
- FolderPreferenceProviderFolder,
21
- UserPreferenceProvider,
22
- UserPreferenceProviderFactory
23
- } from '@theia/preferences/lib/browser';
24
- import { Container, injectable, interfaces } from '@theia/core/shared/inversify';
25
- import { extensionsConfigurationSchema } from './recommended-extensions-json-schema';
26
- import {
27
- WorkspaceFilePreferenceProvider,
28
- WorkspaceFilePreferenceProviderFactory,
29
- WorkspaceFilePreferenceProviderOptions
30
- } from '@theia/preferences/lib/browser/workspace-file-preference-provider';
31
- import { bindFactory } from '@theia/preferences/lib/browser/preference-bindings';
32
- import { SectionPreferenceProviderSection, SectionPreferenceProviderUri } from '@theia/preferences/lib/browser/section-preference-provider';
33
-
34
- /**
35
- * The overrides in this file are required because the base preference providers assume that a
36
- * section name (extensions) will not be used as a prefix (extensions.ignoreRecommendations).
37
- */
38
-
39
- @injectable()
40
- export class FolderPreferenceProviderWithExtensions extends FolderPreferenceProvider {
41
- protected override getPath(preferenceName: string): string[] | undefined {
42
- const path = super.getPath(preferenceName);
43
- if (this.section !== 'extensions' || !path?.length) {
44
- return path;
45
- }
46
- const isExtensionsField = path[0] in extensionsConfigurationSchema.properties!;
47
- if (isExtensionsField) {
48
- return path;
49
- }
50
- return undefined;
51
- }
52
- }
53
-
54
- @injectable()
55
- export class UserPreferenceProviderWithExtensions extends UserPreferenceProvider {
56
- protected override getPath(preferenceName: string): string[] | undefined {
57
- const path = super.getPath(preferenceName);
58
- if (this.section !== 'extensions' || !path?.length) {
59
- return path;
60
- }
61
- const isExtensionsField = path[0] in extensionsConfigurationSchema.properties!;
62
- if (isExtensionsField) {
63
- return path;
64
- }
65
- return undefined;
66
- }
67
- }
68
-
69
- @injectable()
70
- export class WorkspaceFilePreferenceProviderWithExtensions extends WorkspaceFilePreferenceProvider {
71
- protected override belongsInSection(firstSegment: string, remainder: string): boolean {
72
- if (firstSegment === 'extensions') {
73
- return remainder in extensionsConfigurationSchema.properties!;
74
- }
75
- return this.configurations.isSectionName(firstSegment);
76
- }
77
- }
78
-
79
- export function bindPreferenceProviderOverrides(bind: interfaces.Bind, unbind: interfaces.Unbind): void {
80
- unbind(UserPreferenceProviderFactory);
81
- unbind(FolderPreferenceProviderFactory);
82
- unbind(WorkspaceFilePreferenceProviderFactory);
83
- bindFactory(bind, UserPreferenceProviderFactory, UserPreferenceProviderWithExtensions, SectionPreferenceProviderUri, SectionPreferenceProviderSection);
84
- bindFactory(
85
- bind,
86
- FolderPreferenceProviderFactory,
87
- FolderPreferenceProviderWithExtensions,
88
- SectionPreferenceProviderUri,
89
- SectionPreferenceProviderSection,
90
- FolderPreferenceProviderFolder,
91
- );
92
- bind(WorkspaceFilePreferenceProviderFactory).toFactory(ctx => (options: WorkspaceFilePreferenceProviderOptions) => {
93
- const child = new Container({ defaultScope: 'Singleton' });
94
- child.parent = ctx.container;
95
- child.bind(WorkspaceFilePreferenceProvider).to(WorkspaceFilePreferenceProviderWithExtensions);
96
- child.bind(WorkspaceFilePreferenceProviderOptions).toConstantValue(options);
97
- return child.get(WorkspaceFilePreferenceProvider);
98
- });
99
- }
1
+ // *****************************************************************************
2
+ // Copyright (C) 2021 Ericsson 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
+ // This Source Code may also be made available under the following Secondary
9
+ // Licenses when the conditions for such availability set forth in the Eclipse
10
+ // Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ // with the GNU Classpath Exception which is available at
12
+ // https://www.gnu.org/software/classpath/license.html.
13
+ //
14
+ // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
15
+ // *****************************************************************************
16
+
17
+ import {
18
+ FolderPreferenceProvider,
19
+ FolderPreferenceProviderFactory,
20
+ FolderPreferenceProviderFolder,
21
+ UserPreferenceProvider,
22
+ UserPreferenceProviderFactory
23
+ } from '@theia/preferences/lib/browser';
24
+ import { Container, injectable, interfaces } from '@theia/core/shared/inversify';
25
+ import { extensionsConfigurationSchema } from './recommended-extensions-json-schema';
26
+ import {
27
+ WorkspaceFilePreferenceProvider,
28
+ WorkspaceFilePreferenceProviderFactory,
29
+ WorkspaceFilePreferenceProviderOptions
30
+ } from '@theia/preferences/lib/browser/workspace-file-preference-provider';
31
+ import { bindFactory } from '@theia/preferences/lib/browser/preference-bindings';
32
+ import { SectionPreferenceProviderSection, SectionPreferenceProviderUri } from '@theia/preferences/lib/browser/section-preference-provider';
33
+
34
+ /**
35
+ * The overrides in this file are required because the base preference providers assume that a
36
+ * section name (extensions) will not be used as a prefix (extensions.ignoreRecommendations).
37
+ */
38
+
39
+ @injectable()
40
+ export class FolderPreferenceProviderWithExtensions extends FolderPreferenceProvider {
41
+ protected override getPath(preferenceName: string): string[] | undefined {
42
+ const path = super.getPath(preferenceName);
43
+ if (this.section !== 'extensions' || !path?.length) {
44
+ return path;
45
+ }
46
+ const isExtensionsField = path[0] in extensionsConfigurationSchema.properties!;
47
+ if (isExtensionsField) {
48
+ return path;
49
+ }
50
+ return undefined;
51
+ }
52
+ }
53
+
54
+ @injectable()
55
+ export class UserPreferenceProviderWithExtensions extends UserPreferenceProvider {
56
+ protected override getPath(preferenceName: string): string[] | undefined {
57
+ const path = super.getPath(preferenceName);
58
+ if (this.section !== 'extensions' || !path?.length) {
59
+ return path;
60
+ }
61
+ const isExtensionsField = path[0] in extensionsConfigurationSchema.properties!;
62
+ if (isExtensionsField) {
63
+ return path;
64
+ }
65
+ return undefined;
66
+ }
67
+ }
68
+
69
+ @injectable()
70
+ export class WorkspaceFilePreferenceProviderWithExtensions extends WorkspaceFilePreferenceProvider {
71
+ protected override belongsInSection(firstSegment: string, remainder: string): boolean {
72
+ if (firstSegment === 'extensions') {
73
+ return remainder in extensionsConfigurationSchema.properties!;
74
+ }
75
+ return this.configurations.isSectionName(firstSegment);
76
+ }
77
+ }
78
+
79
+ export function bindPreferenceProviderOverrides(bind: interfaces.Bind, unbind: interfaces.Unbind): void {
80
+ unbind(UserPreferenceProviderFactory);
81
+ unbind(FolderPreferenceProviderFactory);
82
+ unbind(WorkspaceFilePreferenceProviderFactory);
83
+ bindFactory(bind, UserPreferenceProviderFactory, UserPreferenceProviderWithExtensions, SectionPreferenceProviderUri, SectionPreferenceProviderSection);
84
+ bindFactory(
85
+ bind,
86
+ FolderPreferenceProviderFactory,
87
+ FolderPreferenceProviderWithExtensions,
88
+ SectionPreferenceProviderUri,
89
+ SectionPreferenceProviderSection,
90
+ FolderPreferenceProviderFolder,
91
+ );
92
+ bind(WorkspaceFilePreferenceProviderFactory).toFactory(ctx => (options: WorkspaceFilePreferenceProviderOptions) => {
93
+ const child = new Container({ defaultScope: 'Singleton' });
94
+ child.parent = ctx.container;
95
+ child.bind(WorkspaceFilePreferenceProvider).to(WorkspaceFilePreferenceProviderWithExtensions);
96
+ child.bind(WorkspaceFilePreferenceProviderOptions).toConstantValue(options);
97
+ return child.get(WorkspaceFilePreferenceProvider);
98
+ });
99
+ }