@theia/ovsx-client 1.51.0 → 1.53.0-next.18

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/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export { OVSXApiFilter, OVSXApiFilterImpl, OVSXApiFilterProvider } from './ovsx-api-filter';
2
- export { OVSXHttpClient } from './ovsx-http-client';
2
+ export { OVSXHttpClient, OVSX_RATE_LIMIT } from './ovsx-http-client';
3
3
  export { OVSXMockClient } from './ovsx-mock-client';
4
4
  export { OVSXRouterClient, OVSXRouterConfig, OVSXRouterFilterFactory as FilterFactory } from './ovsx-router-client';
5
5
  export * from './ovsx-router-filters';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpH,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,uBAAuB,IAAI,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACpH,cAAc,uBAAuB,CAAC;AACtC,cAAc,cAAc,CAAC"}
package/lib/index.js CHANGED
@@ -15,7 +15,7 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.OVSXRouterClient = exports.OVSXMockClient = exports.OVSXHttpClient = exports.OVSXApiFilterProvider = exports.OVSXApiFilterImpl = exports.OVSXApiFilter = void 0;
18
+ exports.OVSXRouterClient = exports.OVSXMockClient = exports.OVSX_RATE_LIMIT = exports.OVSXHttpClient = exports.OVSXApiFilterProvider = exports.OVSXApiFilterImpl = exports.OVSXApiFilter = void 0;
19
19
  const tslib_1 = require("tslib");
20
20
  var ovsx_api_filter_1 = require("./ovsx-api-filter");
21
21
  Object.defineProperty(exports, "OVSXApiFilter", { enumerable: true, get: function () { return ovsx_api_filter_1.OVSXApiFilter; } });
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "OVSXApiFilterImpl", { enumerable: true, get: fun
23
23
  Object.defineProperty(exports, "OVSXApiFilterProvider", { enumerable: true, get: function () { return ovsx_api_filter_1.OVSXApiFilterProvider; } });
24
24
  var ovsx_http_client_1 = require("./ovsx-http-client");
25
25
  Object.defineProperty(exports, "OVSXHttpClient", { enumerable: true, get: function () { return ovsx_http_client_1.OVSXHttpClient; } });
26
+ Object.defineProperty(exports, "OVSX_RATE_LIMIT", { enumerable: true, get: function () { return ovsx_http_client_1.OVSX_RATE_LIMIT; } });
26
27
  var ovsx_mock_client_1 = require("./ovsx-mock-client");
27
28
  Object.defineProperty(exports, "OVSXMockClient", { enumerable: true, get: function () { return ovsx_mock_client_1.OVSXMockClient; } });
28
29
  var ovsx_router_client_1 = require("./ovsx-router-client");
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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;;;;AAEhF,qDAA4F;AAAnF,gHAAA,aAAa,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAChE,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,2DAAoH;AAA3G,sHAAA,gBAAgB,OAAA;AACzB,gEAAsC;AACtC,uDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.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;;;;AAEhF,qDAA4F;AAAnF,gHAAA,aAAa,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AAAE,wHAAA,qBAAqB,OAAA;AAChE,uDAAqE;AAA5D,kHAAA,cAAc,OAAA;AAAE,mHAAA,eAAe,OAAA;AACxC,uDAAoD;AAA3C,kHAAA,cAAc,OAAA;AACvB,2DAAoH;AAA3G,sHAAA,gBAAgB,OAAA;AACzB,gEAAsC;AACtC,uDAA6B"}
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-api-filter.d.ts","sourceRoot":"","sources":["../src/ovsx-api-filter.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAElI,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAEjE,eAAO,MAAM,aAAa,eAA0B,CAAC;AACrD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAC5F;;;;;;;OAOG;IACH,4BAA4B,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,SAAS,CAAC;IACzF,0BAA0B,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;CACvF;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAGxC,MAAM,EAAE,UAAU;IAClB,mBAAmB,EAAE,MAAM;gBAD3B,MAAM,EAAE,UAAU,EAClB,mBAAmB,EAAE,MAAM;IAGhC,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAkBjF,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAqB5G,4BAA4B,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,SAAS;IAUxF,0BAA0B,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS;IAkBnF,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxD;;OAEG;IACH,SAAS,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IASpE,SAAS,CAAC,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;CAGzE"}
1
+ {"version":3,"file":"ovsx-api-filter.d.ts","sourceRoot":"","sources":["../src/ovsx-api-filter.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAwB,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAElI,eAAO,MAAM,qBAAqB,eAAkC,CAAC;AAErE,MAAM,MAAM,qBAAqB,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;AAEjE,eAAO,MAAM,aAAa,eAA0B,CAAC;AACrD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC,CAAC;IAC5F;;;;;;;OAOG;IACH,4BAA4B,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,SAAS,CAAC;IACzF,0BAA0B,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS,CAAC;CACvF;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAGxC,MAAM,EAAE,UAAU;IAClB,mBAAmB,EAAE,MAAM;gBAD3B,MAAM,EAAE,UAAU,EAClB,mBAAmB,EAAE,MAAM;IAGhC,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;cAkBjF,8BAA8B,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAyB5G,4BAA4B,CAAC,UAAU,EAAE,eAAe,EAAE,GAAG,eAAe,GAAG,SAAS;IAUxF,0BAA0B,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,GAAG,SAAS;IAkBnF,SAAS,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIxD;;OAEG;IACH,SAAS,CAAC,2BAA2B,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO;IASpE,SAAS,CAAC,2BAA2B,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;CAGzE"}
@@ -44,11 +44,13 @@ class OVSXApiFilterImpl {
44
44
  }
45
45
  async queryLatestCompatibleExtension(query) {
46
46
  let offset = 0;
47
+ let size = 5;
47
48
  let loop = true;
48
49
  while (loop) {
49
50
  const queryOptions = {
50
51
  ...query,
51
- offset
52
+ offset,
53
+ size // there is a great chance that the newest version will work
52
54
  };
53
55
  const results = await this.client.query(queryOptions);
54
56
  const compatibleExtension = this.getLatestCompatibleExtension(results.extensions);
@@ -59,6 +61,8 @@ class OVSXApiFilterImpl {
59
61
  offset += results.extensions.length;
60
62
  // Continue querying if there are more extensions available
61
63
  loop = results.totalSize > offset;
64
+ // Adjust the size to fetch more extensions next time
65
+ size = Math.min(size * 2, 100);
62
66
  }
63
67
  return undefined;
64
68
  }
@@ -67,7 +71,7 @@ class OVSXApiFilterImpl {
67
71
  return;
68
72
  }
69
73
  else if (this.isBuiltinNamespace(extensions[0].namespace.toLowerCase())) {
70
- return extensions.find(extension => this.versionGreaterThanOrEqualTo(extension.version, this.supportedApiVersion));
74
+ return extensions.find(extension => this.versionGreaterThanOrEqualTo(this.supportedApiVersion, extension.version));
71
75
  }
72
76
  else {
73
77
  return extensions.find(extension => { var _a, _b; return this.supportedVscodeApiSatisfies((_b = (_a = extension.engines) === null || _a === void 0 ? void 0 : _a.vscode) !== null && _b !== void 0 ? _b : '*'); });
@@ -85,7 +89,7 @@ class OVSXApiFilterImpl {
85
89
  }
86
90
  }
87
91
  if (this.isBuiltinNamespace(searchEntry.namespace)) {
88
- return getLatestCompatibleVersion(allVersions => this.versionGreaterThanOrEqualTo(allVersions.version, this.supportedApiVersion));
92
+ return getLatestCompatibleVersion(allVersions => this.versionGreaterThanOrEqualTo(this.supportedApiVersion, allVersions.version));
89
93
  }
90
94
  else {
91
95
  return getLatestCompatibleVersion(allVersions => { var _a, _b; return this.supportedVscodeApiSatisfies((_b = (_a = allVersions.engines) === null || _a === void 0 ? void 0 : _a.vscode) !== null && _b !== void 0 ? _b : '*'); });
@@ -103,7 +107,7 @@ class OVSXApiFilterImpl {
103
107
  if (!versionA || !versionB) {
104
108
  return false;
105
109
  }
106
- return semver.lte(versionA, versionB);
110
+ return semver.gte(versionA, versionB);
107
111
  }
108
112
  supportedVscodeApiSatisfies(vscodeApiRange) {
109
113
  return semver.satisfies(this.supportedApiVersion, vscodeApiRange);
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-api-filter.js","sourceRoot":"","sources":["../src/ovsx-api-filter.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;;;AAEhF,iCAAiC;AACjC,6CAAkI;AAErH,QAAA,qBAAqB,GAAG,MAAM,CAAC,uBAAuB,CAAC,CAAC;AAIxD,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAmBrD,MAAa,iBAAiB;IAE1B,YACW,MAAkB,EAClB,mBAA2B;QAD3B,WAAM,GAAN,MAAM,CAAY;QAClB,wBAAmB,GAAnB,mBAAmB,CAAQ;IAClC,CAAC;IAEL,KAAK,CAAC,6BAA6B,CAAC,KAAsB;QACtD,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QACD,MAAM,wBAAwB,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAClF,IAAI,eAA4C,CAAC;QACjD,IAAI,cAAc,KAAK,WAAW,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;YAC7D,oFAAoF;YACpF,eAAe,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QAC3G,CAAC;QACD,IAAI,wBAAwB,IAAI,eAAe,EAAE,CAAC;YAC9C,gGAAgG;YAChG,OAAO,IAAI,CAAC,2BAA2B,CAAC,wBAAwB,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,eAAe,CAAC;QACpJ,CAAC;QACD,OAAO,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GAAI,eAAe,CAAC;IACvD,CAAC;IAES,KAAK,CAAC,8BAA8B,CAAC,KAAsB;QACjE,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,OAAO,IAAI,EAAE,CAAC;YACV,MAAM,YAAY,GAAG;gBACjB,GAAG,KAAK;gBACR,MAAM;aACT,CAAC;YACF,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,mBAAmB,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAClF,IAAI,mBAAmB,EAAE,CAAC;gBACtB,OAAO,mBAAmB,CAAC;YAC/B,CAAC;YACD,qDAAqD;YACrD,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;YACpC,2DAA2D;YAC3D,IAAI,GAAG,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC;QACtC,CAAC;QACD,OAAO,SAAS,CAAC;IACrB,CAAC;IAED,4BAA4B,CAAC,UAA6B;QACtD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACX,CAAC;aAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACxE,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACvH,CAAC;aAAM,CAAC;YACJ,OAAO,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,eAAC,OAAA,IAAI,CAAC,2BAA2B,CAAC,MAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,MAAM,mCAAI,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;QAC5G,CAAC;IACL,CAAC;IAED,0BAA0B,CAAC,WAA2B;QAClD,SAAS,0BAA0B,CAAC,SAAmD;YACnF,IAAI,WAAW,CAAC,WAAW,EAAE,CAAC;gBAC1B,OAAO,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACnD,CAAC;YACD,0DAA0D;YAC1D,8DAA8D;YAC9D,IAAI,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzB,OAAO,WAAW,CAAC;YACvB,CAAC;QACL,CAAC;QACD,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;YACjD,OAAO,0BAA0B,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;QACtI,CAAC;aAAM,CAAC;YACJ,OAAO,0BAA0B,CAAC,WAAW,CAAC,EAAE,eAAC,OAAA,IAAI,CAAC,2BAA2B,CAAC,MAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,MAAM,mCAAI,GAAG,CAAC,CAAA,EAAA,CAAC,CAAC;QAC3H,CAAC;IACL,CAAC;IAES,kBAAkB,CAAC,SAAiB;QAC1C,OAAO,iCAAoB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACO,2BAA2B,CAAC,CAAS,EAAE,CAAS;QACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAES,2BAA2B,CAAC,cAAsB;QACxD,OAAO,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,mBAAmB,EAAE,cAAc,CAAC,CAAC;IACtE,CAAC;CACJ;AA7FD,8CA6FC"}
1
+ {"version":3,"file":"ovsx-api-filter.js","sourceRoot":"","sources":["../src/ovsx-api-filter.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,17 @@
1
1
  import { OVSXClient, VSXQueryOptions, VSXQueryResult, VSXSearchOptions, VSXSearchResult } from './ovsx-types';
2
2
  import { RequestService } from '@theia/request';
3
+ import { RateLimiter } from 'limiter';
4
+ export declare const OVSX_RATE_LIMIT = 15;
3
5
  export declare class OVSXHttpClient implements OVSXClient {
4
6
  protected vsxRegistryUrl: string;
5
7
  protected requestService: RequestService;
8
+ protected rateLimiter: RateLimiter;
6
9
  /**
7
10
  * @param requestService
8
11
  * @returns factory that will cache clients based on the requested input URL.
9
12
  */
10
- static createClientFactory(requestService: RequestService): (url: string) => OVSXClient;
11
- constructor(vsxRegistryUrl: string, requestService: RequestService);
13
+ static createClientFactory(requestService: RequestService, rateLimiter?: RateLimiter): (url: string) => OVSXClient;
14
+ constructor(vsxRegistryUrl: string, requestService: RequestService, rateLimiter?: RateLimiter);
12
15
  search(searchOptions?: VSXSearchOptions): Promise<VSXSearchResult>;
13
16
  query(queryOptions?: VSXQueryOptions): Promise<VSXQueryResult>;
14
17
  protected requestJson<R>(url: string): Promise<R>;
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-http-client.d.ts","sourceRoot":"","sources":["../src/ovsx-http-client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAkB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhE,qBAAa,cAAe,YAAW,UAAU;IAazC,SAAS,CAAC,cAAc,EAAE,MAAM;IAChC,SAAS,CAAC,cAAc,EAAE,cAAc;IAZ5C;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU;gBAOzE,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,cAAc;IAGtC,MAAM,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAYlE,KAAK,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;cAYpD,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAOvD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvD,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;CAc3D"}
1
+ {"version":3,"file":"ovsx-http-client.d.ts","sourceRoot":"","sources":["../src/ovsx-http-client.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC9G,OAAO,EAAkB,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,qBAAa,cAAe,YAAW,UAAU;IAazC,SAAS,CAAC,cAAc,EAAE,MAAM;IAChC,SAAS,CAAC,cAAc,EAAE,cAAc;IACxC,SAAS,CAAC,WAAW;IAbzB;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,UAAU;gBAOpG,cAAc,EAAE,MAAM,EACtB,cAAc,EAAE,cAAc,EAC9B,WAAW,cAA8E;IAGvG,MAAM,CAAC,aAAa,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAIlE,KAAK,CAAC,YAAY,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;cAI9C,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IAsBvD,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAIvD,SAAS,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM;CAc3D"}
@@ -15,51 +15,51 @@
15
15
  // SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
16
16
  // *****************************************************************************
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.OVSXHttpClient = void 0;
18
+ exports.OVSXHttpClient = exports.OVSX_RATE_LIMIT = void 0;
19
19
  const request_1 = require("@theia/request");
20
+ const limiter_1 = require("limiter");
21
+ exports.OVSX_RATE_LIMIT = 15;
20
22
  class OVSXHttpClient {
21
23
  /**
22
24
  * @param requestService
23
25
  * @returns factory that will cache clients based on the requested input URL.
24
26
  */
25
- static createClientFactory(requestService) {
27
+ static createClientFactory(requestService, rateLimiter) {
26
28
  // eslint-disable-next-line no-null/no-null
27
29
  const cachedClients = Object.create(null);
28
- return url => { var _a; return (_a = cachedClients[url]) !== null && _a !== void 0 ? _a : (cachedClients[url] = new this(url, requestService)); };
30
+ return url => { var _a; return (_a = cachedClients[url]) !== null && _a !== void 0 ? _a : (cachedClients[url] = new this(url, requestService, rateLimiter)); };
29
31
  }
30
- constructor(vsxRegistryUrl, requestService) {
32
+ constructor(vsxRegistryUrl, requestService, rateLimiter = new limiter_1.RateLimiter({ tokensPerInterval: exports.OVSX_RATE_LIMIT, interval: 'second' })) {
31
33
  this.vsxRegistryUrl = vsxRegistryUrl;
32
34
  this.requestService = requestService;
35
+ this.rateLimiter = rateLimiter;
33
36
  }
34
- async search(searchOptions) {
35
- try {
36
- return await this.requestJson(this.buildUrl('api/-/search', searchOptions));
37
- }
38
- catch (err) {
39
- return {
40
- error: (err === null || err === void 0 ? void 0 : err.message) || String(err),
41
- offset: -1,
42
- extensions: []
43
- };
44
- }
37
+ search(searchOptions) {
38
+ return this.requestJson(this.buildUrl('api/-/search', searchOptions));
45
39
  }
46
- async query(queryOptions) {
47
- try {
48
- return await this.requestJson(this.buildUrl('api/v2/-/query', queryOptions));
49
- }
50
- catch (error) {
51
- return {
52
- offset: 0,
53
- totalSize: 0,
54
- extensions: []
55
- };
56
- }
40
+ query(queryOptions) {
41
+ return this.requestJson(this.buildUrl('api/v2/-/query', queryOptions));
57
42
  }
58
43
  async requestJson(url) {
59
- return request_1.RequestContext.asJson(await this.requestService.request({
60
- url,
61
- headers: { 'Accept': 'application/json' }
62
- }));
44
+ const attempts = 5;
45
+ for (let i = 0; i < attempts; i++) {
46
+ // Use 1, 2, 4, 8, 16 tokens for each attempt
47
+ const tokenCount = Math.pow(2, i);
48
+ await this.rateLimiter.removeTokens(tokenCount);
49
+ const context = await this.requestService.request({
50
+ url,
51
+ headers: { 'Accept': 'application/json' }
52
+ });
53
+ if (context.res.statusCode === 429) {
54
+ console.warn('OVSX rate limit exceeded. Consider reducing the rate limit.');
55
+ // If there are still more attempts left, retry the request with a higher token count
56
+ if (i < attempts - 1) {
57
+ continue;
58
+ }
59
+ }
60
+ return request_1.RequestContext.asJson(context);
61
+ }
62
+ throw new Error('Failed to fetch data from OVSX.');
63
63
  }
64
64
  buildUrl(url, query) {
65
65
  return new URL(`${url}${this.buildQueryString(query)}`, this.vsxRegistryUrl).toString();
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-http-client.js","sourceRoot":"","sources":["../src/ovsx-http-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ovsx-http-client.js","sourceRoot":"","sources":["../src/ovsx-http-client.ts"],"names":[],"mappings":"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"}
@@ -69,7 +69,6 @@ export interface VSXSearchOptions {
69
69
  * Should be aligned with https://github.com/eclipse/openvsx/blob/e8f64fe145fc05d2de1469735d50a7a90e400bc4/server/src/main/java/org/eclipse/openvsx/json/SearchResultJson.java
70
70
  */
71
71
  export interface VSXSearchResult {
72
- error?: string;
73
72
  offset: number;
74
73
  extensions: VSXSearchEntry[];
75
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-types.d.ts","sourceRoot":"","sources":["../src/ovsx-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ovsx-types.d.ts","sourceRoot":"","sources":["../src/ovsx-types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ovsx-types.js","sourceRoot":"","sources":["../src/ovsx-types.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;;;AAShF,IAAiB,aAAa,CAoB7B;AApBD,WAAiB,aAAa;IAC1B,SAAgB,EAAE,CAA0B,SAAY;QACpD,OAAO,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAFe,gBAAE,KAEjB,CAAA;IACD,SAAgB,aAAa,CAA0B,SAAY;QAC/D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;IALe,2BAAa,gBAK5B,CAAA;IACD,wDAAwD;IACxD,SAAgB,MAAM,CAAC,EAAU;QAC7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO;YACH,IAAI;YACJ,SAAS;YACT,OAAO;SACV,CAAC;IACN,CAAC;IARe,oBAAM,SAQrB,CAAA;AACL,CAAC,EApBgB,aAAa,6BAAb,aAAa,QAoB7B;AA0OD,IAAiB,gBAAgB,CAIhC;AAJD,WAAiB,gBAAgB;IAC7B,SAAgB,EAAE,CAAC,KAAc;QAC7B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA0B,CAAC,UAAU,KAAK,QAAQ,CAAC;IAC9G,CAAC;IAFe,mBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,gBAAgB,gCAAhB,gBAAgB,QAIhC;AAED;;GAEG;AACH,IAAiB,oBAAoB,CAqBpC;AArBD,WAAiB,oBAAoB;IAEjC;;OAEG;IACU,2BAAM,GAAG,QAAQ,CAAC;IAE/B;;;OAGG;IACU,0BAAK,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAgB,EAAE,CAAC,SAAiB;QAChC,OAAO,SAAS,KAAK,qBAAA,MAAM;eACpB,SAAS,KAAK,qBAAA,KAAK,CAAC;IAC/B,CAAC;IAHe,uBAAE,KAGjB,CAAA;AACL,CAAC,EArBgB,oBAAoB,oCAApB,oBAAoB,QAqBpC"}
1
+ {"version":3,"file":"ovsx-types.js","sourceRoot":"","sources":["../src/ovsx-types.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;;;AAShF,IAAiB,aAAa,CAoB7B;AApBD,WAAiB,aAAa;IAC1B,SAAgB,EAAE,CAA0B,SAAY;QACpD,OAAO,GAAG,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC;IACtD,CAAC;IAFe,gBAAE,KAEjB,CAAA;IACD,SAAgB,aAAa,CAA0B,SAAY;QAC/D,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAChF,CAAC;QACD,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,OAAO,EAAE,CAAC;IACnD,CAAC;IALe,2BAAa,gBAK5B,CAAA;IACD,wDAAwD;IACxD,SAAgB,MAAM,CAAC,EAAU;QAC7B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACzC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC7C,OAAO;YACH,IAAI;YACJ,SAAS;YACT,OAAO;SACV,CAAC;IACN,CAAC;IARe,oBAAM,SAQrB,CAAA;AACL,CAAC,EApBgB,aAAa,6BAAb,aAAa,QAoB7B;AAyOD,IAAiB,gBAAgB,CAIhC;AAJD,WAAiB,gBAAgB;IAC7B,SAAgB,EAAE,CAAC,KAAc;QAC7B,OAAO,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAQ,KAA0B,CAAC,UAAU,KAAK,QAAQ,CAAC;IAC9G,CAAC;IAFe,mBAAE,KAEjB,CAAA;AACL,CAAC,EAJgB,gBAAgB,gCAAhB,gBAAgB,QAIhC;AAED;;GAEG;AACH,IAAiB,oBAAoB,CAqBpC;AArBD,WAAiB,oBAAoB;IAEjC;;OAEG;IACU,2BAAM,GAAG,QAAQ,CAAC;IAE/B;;;OAGG;IACU,0BAAK,GAAG,eAAe,CAAC;IAErC;;;OAGG;IACH,SAAgB,EAAE,CAAC,SAAiB;QAChC,OAAO,SAAS,KAAK,qBAAA,MAAM;eACpB,SAAS,KAAK,qBAAA,KAAK,CAAC;IAC/B,CAAC;IAHe,uBAAE,KAGjB,CAAA;AACL,CAAC,EArBgB,oBAAoB,oCAApB,oBAAoB,QAqBpC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@theia/ovsx-client",
3
- "version": "1.51.0",
3
+ "version": "1.53.0-next.18+c3ffc5fa8",
4
4
  "description": "Theia Open-VSX Client",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -29,9 +29,10 @@
29
29
  "watch": "theiaext watch"
30
30
  },
31
31
  "dependencies": {
32
- "@theia/request": "1.51.0",
32
+ "@theia/request": "1.53.0-next.18+c3ffc5fa8",
33
+ "limiter": "^2.1.0",
33
34
  "semver": "^7.5.4",
34
35
  "tslib": "^2.6.2"
35
36
  },
36
- "gitHead": "fe70ec5d445d733038564d81357c78aedf5c7e0e"
37
+ "gitHead": "c3ffc5fa81879943e3b3ad3caec3738ed2d0e5f9"
37
38
  }
package/src/index.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  // *****************************************************************************
16
16
 
17
17
  export { OVSXApiFilter, OVSXApiFilterImpl, OVSXApiFilterProvider } from './ovsx-api-filter';
18
- export { OVSXHttpClient } from './ovsx-http-client';
18
+ export { OVSXHttpClient, OVSX_RATE_LIMIT } from './ovsx-http-client';
19
19
  export { OVSXMockClient } from './ovsx-mock-client';
20
20
  export { OVSXRouterClient, OVSXRouterConfig, OVSXRouterFilterFactory as FilterFactory } from './ovsx-router-client';
21
21
  export * from './ovsx-router-filters';
@@ -67,11 +67,13 @@ export class OVSXApiFilterImpl implements OVSXApiFilter {
67
67
 
68
68
  protected async queryLatestCompatibleExtension(query: VSXQueryOptions): Promise<VSXExtensionRaw | undefined> {
69
69
  let offset = 0;
70
+ let size = 5;
70
71
  let loop = true;
71
72
  while (loop) {
72
- const queryOptions = {
73
+ const queryOptions: VSXQueryOptions = {
73
74
  ...query,
74
- offset
75
+ offset,
76
+ size // there is a great chance that the newest version will work
75
77
  };
76
78
  const results = await this.client.query(queryOptions);
77
79
  const compatibleExtension = this.getLatestCompatibleExtension(results.extensions);
@@ -82,6 +84,8 @@ export class OVSXApiFilterImpl implements OVSXApiFilter {
82
84
  offset += results.extensions.length;
83
85
  // Continue querying if there are more extensions available
84
86
  loop = results.totalSize > offset;
87
+ // Adjust the size to fetch more extensions next time
88
+ size = Math.min(size * 2, 100);
85
89
  }
86
90
  return undefined;
87
91
  }
@@ -90,7 +94,7 @@ export class OVSXApiFilterImpl implements OVSXApiFilter {
90
94
  if (extensions.length === 0) {
91
95
  return;
92
96
  } else if (this.isBuiltinNamespace(extensions[0].namespace.toLowerCase())) {
93
- return extensions.find(extension => this.versionGreaterThanOrEqualTo(extension.version, this.supportedApiVersion));
97
+ return extensions.find(extension => this.versionGreaterThanOrEqualTo(this.supportedApiVersion, extension.version));
94
98
  } else {
95
99
  return extensions.find(extension => this.supportedVscodeApiSatisfies(extension.engines?.vscode ?? '*'));
96
100
  }
@@ -108,7 +112,7 @@ export class OVSXApiFilterImpl implements OVSXApiFilter {
108
112
  }
109
113
  }
110
114
  if (this.isBuiltinNamespace(searchEntry.namespace)) {
111
- return getLatestCompatibleVersion(allVersions => this.versionGreaterThanOrEqualTo(allVersions.version, this.supportedApiVersion));
115
+ return getLatestCompatibleVersion(allVersions => this.versionGreaterThanOrEqualTo(this.supportedApiVersion, allVersions.version));
112
116
  } else {
113
117
  return getLatestCompatibleVersion(allVersions => this.supportedVscodeApiSatisfies(allVersions.engines?.vscode ?? '*'));
114
118
  }
@@ -127,7 +131,7 @@ export class OVSXApiFilterImpl implements OVSXApiFilter {
127
131
  if (!versionA || !versionB) {
128
132
  return false;
129
133
  }
130
- return semver.lte(versionA, versionB);
134
+ return semver.gte(versionA, versionB);
131
135
  }
132
136
 
133
137
  protected supportedVscodeApiSatisfies(vscodeApiRange: string): boolean {
@@ -16,6 +16,9 @@
16
16
 
17
17
  import { OVSXClient, VSXQueryOptions, VSXQueryResult, VSXSearchOptions, VSXSearchResult } from './ovsx-types';
18
18
  import { RequestContext, RequestService } from '@theia/request';
19
+ import { RateLimiter } from 'limiter';
20
+
21
+ export const OVSX_RATE_LIMIT = 15;
19
22
 
20
23
  export class OVSXHttpClient implements OVSXClient {
21
24
 
@@ -23,46 +26,46 @@ export class OVSXHttpClient implements OVSXClient {
23
26
  * @param requestService
24
27
  * @returns factory that will cache clients based on the requested input URL.
25
28
  */
26
- static createClientFactory(requestService: RequestService): (url: string) => OVSXClient {
29
+ static createClientFactory(requestService: RequestService, rateLimiter?: RateLimiter): (url: string) => OVSXClient {
27
30
  // eslint-disable-next-line no-null/no-null
28
31
  const cachedClients: Record<string, OVSXClient> = Object.create(null);
29
- return url => cachedClients[url] ??= new this(url, requestService);
32
+ return url => cachedClients[url] ??= new this(url, requestService, rateLimiter);
30
33
  }
31
34
 
32
35
  constructor(
33
36
  protected vsxRegistryUrl: string,
34
- protected requestService: RequestService
37
+ protected requestService: RequestService,
38
+ protected rateLimiter = new RateLimiter({ tokensPerInterval: OVSX_RATE_LIMIT, interval: 'second' })
35
39
  ) { }
36
40
 
37
- async search(searchOptions?: VSXSearchOptions): Promise<VSXSearchResult> {
38
- try {
39
- return await this.requestJson(this.buildUrl('api/-/search', searchOptions));
40
- } catch (err) {
41
- return {
42
- error: err?.message || String(err),
43
- offset: -1,
44
- extensions: []
45
- };
46
- }
41
+ search(searchOptions?: VSXSearchOptions): Promise<VSXSearchResult> {
42
+ return this.requestJson(this.buildUrl('api/-/search', searchOptions));
47
43
  }
48
44
 
49
- async query(queryOptions?: VSXQueryOptions): Promise<VSXQueryResult> {
50
- try {
51
- return await this.requestJson(this.buildUrl('api/v2/-/query', queryOptions));
52
- } catch (error) {
53
- return {
54
- offset: 0,
55
- totalSize: 0,
56
- extensions: []
57
- };
58
- }
45
+ query(queryOptions?: VSXQueryOptions): Promise<VSXQueryResult> {
46
+ return this.requestJson(this.buildUrl('api/v2/-/query', queryOptions));
59
47
  }
60
48
 
61
49
  protected async requestJson<R>(url: string): Promise<R> {
62
- return RequestContext.asJson<R>(await this.requestService.request({
63
- url,
64
- headers: { 'Accept': 'application/json' }
65
- }));
50
+ const attempts = 5;
51
+ for (let i = 0; i < attempts; i++) {
52
+ // Use 1, 2, 4, 8, 16 tokens for each attempt
53
+ const tokenCount = Math.pow(2, i);
54
+ await this.rateLimiter.removeTokens(tokenCount);
55
+ const context = await this.requestService.request({
56
+ url,
57
+ headers: { 'Accept': 'application/json' }
58
+ });
59
+ if (context.res.statusCode === 429) {
60
+ console.warn('OVSX rate limit exceeded. Consider reducing the rate limit.');
61
+ // If there are still more attempts left, retry the request with a higher token count
62
+ if (i < attempts - 1) {
63
+ continue;
64
+ }
65
+ }
66
+ return RequestContext.asJson<R>(context);
67
+ }
68
+ throw new Error('Failed to fetch data from OVSX.');
66
69
  }
67
70
 
68
71
  protected buildUrl(url: string, query?: object): string {
package/src/ovsx-types.ts CHANGED
@@ -105,7 +105,6 @@ export interface VSXSearchOptions {
105
105
  * Should be aligned with https://github.com/eclipse/openvsx/blob/e8f64fe145fc05d2de1469735d50a7a90e400bc4/server/src/main/java/org/eclipse/openvsx/json/SearchResultJson.java
106
106
  */
107
107
  export interface VSXSearchResult {
108
- error?: string;
109
108
  offset: number;
110
109
  extensions: VSXSearchEntry[];
111
110
  }