@theia/vsx-registry 1.28.0-next.39 → 1.28.0-next.45
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/browser/vsx-extensions-source.d.ts +1 -0
- package/lib/browser/vsx-extensions-source.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-source.js +3 -0
- package/lib/browser/vsx-extensions-source.js.map +1 -1
- package/lib/browser/vsx-extensions-widget.d.ts +4 -1
- package/lib/browser/vsx-extensions-widget.d.ts.map +1 -1
- package/lib/browser/vsx-extensions-widget.js +12 -0
- package/lib/browser/vsx-extensions-widget.js.map +1 -1
- package/lib/node/vsx-extension-resolver.d.ts +4 -2
- package/lib/node/vsx-extension-resolver.d.ts.map +1 -1
- package/lib/node/vsx-extension-resolver.js +16 -12
- package/lib/node/vsx-extension-resolver.js.map +1 -1
- package/package.json +9 -9
- package/src/browser/vsx-extensions-source.ts +4 -0
- package/src/browser/{vsx-extensions-widget.ts → vsx-extensions-widget.tsx} +17 -1
- package/src/node/vsx-extension-resolver.ts +13 -23
|
@@ -13,6 +13,7 @@ export declare class VSXExtensionsSource extends TreeSource {
|
|
|
13
13
|
protected readonly model: VSXExtensionsModel;
|
|
14
14
|
protected init(): Promise<void>;
|
|
15
15
|
protected scheduleFireDidChange: import("lodash").DebouncedFunc<() => void>;
|
|
16
|
+
getModel(): VSXExtensionsModel;
|
|
16
17
|
getElements(): IterableIterator<TreeElement>;
|
|
17
18
|
protected doGetElements(): IterableIterator<string>;
|
|
18
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extensions-source.d.ts","sourceRoot":"","sources":["../../src/browser/vsx-extensions-source.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,qBACa,0BAA0B;IACnC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,QAAQ,SAAa;IAC5B,MAAM,CAAC,aAAa,SAAkB;IACtC,MAAM,CAAC,WAAW,SAAiB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACvB;AAED,qBACa,mBAAoB,SAAQ,UAAU;IAG/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;cAG7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,SAAS,CAAC,qBAAqB,6CAAiF;
|
|
1
|
+
{"version":3,"file":"vsx-extensions-source.d.ts","sourceRoot":"","sources":["../../src/browser/vsx-extensions-source.ts"],"names":[],"mappings":";AAiBA,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,qBACa,0BAA0B;IACnC,MAAM,CAAC,SAAS,SAAe;IAC/B,MAAM,CAAC,QAAQ,SAAa;IAC5B,MAAM,CAAC,aAAa,SAAkB;IACtC,MAAM,CAAC,WAAW,SAAiB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;CACvB;AAED,qBACa,mBAAoB,SAAQ,UAAU;IAG/C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;cAG7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrC,SAAS,CAAC,qBAAqB,6CAAiF;IAEhH,QAAQ,IAAI,kBAAkB;IAI7B,WAAW,IAAI,gBAAgB,CAAC,WAAW,CAAC;IAqB7C,SAAS,CAAC,aAAa,IAAI,gBAAgB,CAAC,MAAM,CAAC;CAUtD"}
|
|
@@ -48,6 +48,9 @@ let VSXExtensionsSource = class VSXExtensionsSource extends source_tree_1.TreeSo
|
|
|
48
48
|
this.fireDidChange();
|
|
49
49
|
this.toDispose.push(this.model.onDidChange(() => this.scheduleFireDidChange()));
|
|
50
50
|
}
|
|
51
|
+
getModel() {
|
|
52
|
+
return this.model;
|
|
53
|
+
}
|
|
51
54
|
*getElements() {
|
|
52
55
|
for (const id of this.doGetElements()) {
|
|
53
56
|
const extension = this.model.getExtension(id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extensions-source.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-source.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,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,4DAAiF;AACjF,qEAA8E;AAC9E,iEAA4D;AAC5D,+DAAgE;AAGhE,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;CAMtC,CAAA;AALU,oCAAS,GAAG,WAAW,CAAC;AACxB,mCAAQ,GAAG,SAAS,CAAC;AACrB,wCAAa,GAAG,cAAc,CAAC;AAC/B,sCAAW,GAAG,aAAa,CAAC;AAJ1B,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CAMtC;AANY,gEAA0B;AASvC,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,wBAAU;IAAnD;;QAcc,0BAAqB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"vsx-extensions-source.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-source.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,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,4DAAiF;AACjF,qEAA8E;AAC9E,iEAA4D;AAC5D,+DAAgE;AAGhE,IAAa,0BAA0B,GAAvC,MAAa,0BAA0B;CAMtC,CAAA;AALU,oCAAS,GAAG,WAAW,CAAC;AACxB,mCAAQ,GAAG,SAAS,CAAC;AACrB,wCAAa,GAAG,cAAc,CAAC;AAC/B,sCAAW,GAAG,aAAa,CAAC;AAJ1B,0BAA0B;IADtC,IAAA,sBAAU,GAAE;GACA,0BAA0B,CAMtC;AANY,gEAA0B;AASvC,IAAa,mBAAmB,GAAhC,MAAa,mBAAoB,SAAQ,wBAAU;IAAnD;;QAcc,0BAAqB,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAqCpH,CAAC;IA1Ca,KAAK,CAAC,IAAI;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAID,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,CAAC,WAAW;QACR,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,EAAE;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAC9C,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS;aACZ;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,0BAA0B,CAAC,WAAW,EAAE;gBAC5D,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE;oBAC5B,SAAS;iBACZ;aACJ;YACD,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,0BAA0B,CAAC,QAAQ,EAAE;gBACzD,IAAI,SAAS,CAAC,OAAO,EAAE;oBACnB,MAAM,SAAS,CAAC;iBACnB;aACJ;iBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;gBAC3B,MAAM,SAAS,CAAC;aACnB;SACJ;IACL,CAAC;IAES,aAAa;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,0BAA0B,CAAC,aAAa,EAAE;YAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;SAClC;QACD,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,KAAK,0BAA0B,CAAC,WAAW,EAAE;YAC5D,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;SACjC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;IAChC,CAAC;CAEJ,CAAA;AAhDG;IADC,IAAA,kBAAM,EAAC,0BAA0B,CAAC;8BACP,0BAA0B;oDAAC;AAGvD;IADC,IAAA,kBAAM,EAAC,yCAAkB,CAAC;8BACD,yCAAkB;kDAAC;AAG7C;IADC,IAAA,yBAAa,GAAE;;;;+CAIf;AAZQ,mBAAmB;IAD/B,IAAA,sBAAU,GAAE;GACA,mBAAmB,CAmD/B;AAnDY,kDAAmB"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
1
2
|
import { interfaces } from '@theia/core/shared/inversify';
|
|
2
|
-
import { TreeNode } from '@theia/core/lib/browser';
|
|
3
|
+
import { TreeModel, TreeNode } from '@theia/core/lib/browser';
|
|
3
4
|
import { SourceTreeWidget } from '@theia/core/lib/browser/source-tree';
|
|
4
5
|
import { VSXExtensionsSource, VSXExtensionsSourceOptions } from './vsx-extensions-source';
|
|
5
6
|
import { BadgeWidget } from '@theia/core/lib/browser/view-container';
|
|
6
7
|
import { Emitter } from '@theia/core/lib/common';
|
|
8
|
+
import * as React from '@theia/core/shared/react';
|
|
7
9
|
export declare class VSXExtensionsWidgetOptions extends VSXExtensionsSourceOptions {
|
|
8
10
|
title?: string;
|
|
9
11
|
}
|
|
@@ -22,5 +24,6 @@ export declare class VSXExtensionsWidget extends SourceTreeWidget implements Bad
|
|
|
22
24
|
protected resolveCount(): Promise<number | undefined>;
|
|
23
25
|
protected tapNode(node?: TreeNode): void;
|
|
24
26
|
protected handleDblClickEvent(): void;
|
|
27
|
+
protected renderTree(model: TreeModel): React.ReactNode;
|
|
25
28
|
}
|
|
26
29
|
//# sourceMappingURL=vsx-extensions-widget.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extensions-widget.d.ts","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.
|
|
1
|
+
{"version":3,"file":"vsx-extensions-widget.d.ts","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.tsx"],"names":[],"mappings":";AAgBA,OAAO,EAAc,UAAU,EAAyB,MAAM,8BAA8B,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,EAAE,WAAW,EAAE,MAAM,wCAAwC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,KAAK,KAAK,MAAM,0BAA0B,CAAC;AAElD,qBACa,0BAA2B,SAAQ,0BAA0B;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,yBAAyB,aAAc,MAAM,KAAG,MAAiD,CAAC;AAE/G,qBACa,mBAAoB,SAAQ,gBAAiB,YAAW,WAAW;IAE5E,MAAM,CAAC,EAAE,SAAoB;IAE7B,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,UAAU,CAAC,SAAS,EAAE,OAAO,EAAE,0BAA0B,GAAG,mBAAmB;IAc3G,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAGvD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;cAGtC,IAAI,IAAI,IAAI;IAkB/B,OAAO,CAAC,MAAM,CAAiC;IAC/C,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAGlC;IAEM,gBAAgB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAuB;IAE7D,SAAS,CAAC,YAAY,IAAI,MAAM;cAehB,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;cAQxC,OAAO,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI;cAK9B,mBAAmB,IAAI,IAAI;cAI3B,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,KAAK,CAAC,SAAS;CAanE"}
|
|
@@ -31,6 +31,8 @@ const source_tree_1 = require("@theia/core/lib/browser/source-tree");
|
|
|
31
31
|
const vsx_extensions_source_1 = require("./vsx-extensions-source");
|
|
32
32
|
const nls_1 = require("@theia/core/lib/common/nls");
|
|
33
33
|
const common_1 = require("@theia/core/lib/common");
|
|
34
|
+
const alert_message_1 = require("@theia/core/lib/browser/widgets/alert-message");
|
|
35
|
+
const React = require("@theia/core/shared/react");
|
|
34
36
|
let VSXExtensionsWidgetOptions = class VSXExtensionsWidgetOptions extends vsx_extensions_source_1.VSXExtensionsSourceOptions {
|
|
35
37
|
};
|
|
36
38
|
VSXExtensionsWidgetOptions = __decorate([
|
|
@@ -107,6 +109,16 @@ let VSXExtensionsWidget = VSXExtensionsWidget_1 = class VSXExtensionsWidget exte
|
|
|
107
109
|
handleDblClickEvent() {
|
|
108
110
|
// Don't open the editor view on a double click.
|
|
109
111
|
}
|
|
112
|
+
renderTree(model) {
|
|
113
|
+
if (this.options.id === vsx_extensions_source_1.VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
114
|
+
const searchError = this.extensionsSource.getModel().searchError;
|
|
115
|
+
if (!!searchError) {
|
|
116
|
+
const message = nls_1.nls.localize('theia/vsx-registry/errorFetching', 'Error fetching extensions.');
|
|
117
|
+
return React.createElement(alert_message_1.AlertMessage, { type: 'ERROR', header: `${message} ${searchError}` });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return super.renderTree(model);
|
|
121
|
+
}
|
|
110
122
|
};
|
|
111
123
|
VSXExtensionsWidget.ID = 'vsx-extensions';
|
|
112
124
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extensions-widget.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.
|
|
1
|
+
{"version":3,"file":"vsx-extensions-widget.js","sourceRoot":"","sources":["../../src/browser/vsx-extensions-widget.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@ import { PluginDeployerHandler, PluginDeployerResolver, PluginDeployerResolverCo
|
|
|
2
2
|
import { OVSXClientProvider } from '../common/ovsx-client-provider';
|
|
3
3
|
import { VSXExtensionRaw } from '@theia/ovsx-client';
|
|
4
4
|
import { RequestService } from '@theia/core/shared/@theia/request';
|
|
5
|
+
import { PluginVSCodeEnvironment } from '@theia/plugin-ext-vscode/lib/common/plugin-vscode-environment';
|
|
6
|
+
import { PluginUninstallationManager } from '@theia/plugin-ext/lib/main/node/plugin-uninstallation-manager';
|
|
5
7
|
export declare class VSXExtensionResolver implements PluginDeployerResolver {
|
|
6
8
|
protected clientProvider: OVSXClientProvider;
|
|
7
9
|
protected pluginDeployerHandler: PluginDeployerHandler;
|
|
8
10
|
protected requestService: RequestService;
|
|
9
|
-
protected readonly
|
|
10
|
-
|
|
11
|
+
protected readonly environment: PluginVSCodeEnvironment;
|
|
12
|
+
protected readonly uninstallationManager: PluginUninstallationManager;
|
|
11
13
|
accept(pluginId: string): boolean;
|
|
12
14
|
resolve(context: PluginDeployerResolverContext, options?: PluginDeployOptions): Promise<void>;
|
|
13
15
|
protected hasSameOrNewerVersion(id: string, extension: VSXExtensionRaw): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extension-resolver.d.ts","sourceRoot":"","sources":["../../src/node/vsx-extension-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vsx-extension-resolver.d.ts","sourceRoot":"","sources":["../../src/node/vsx-extension-resolver.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,mBAAmB,EAAqB,MAAM,8CAA8C,CAAC;AAEpL,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AACxG,OAAO,EAAE,2BAA2B,EAAE,MAAM,+DAA+D,CAAC;AAE5G,qBACa,oBAAqB,YAAW,sBAAsB;IAEnC,SAAS,CAAC,cAAc,EAAE,kBAAkB,CAAC;IAC1C,SAAS,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAC9D,SAAS,CAAC,cAAc,EAAE,cAAc,CAAC;IAChC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,uBAAuB,CAAC;IACpD,SAAS,CAAC,QAAQ,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;IAE3G,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI3B,OAAO,CAAC,OAAO,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0CnG,SAAS,CAAC,qBAAqB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,SAAS;cAa3E,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAYxF"}
|
|
@@ -25,23 +25,18 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
25
25
|
};
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.VSXExtensionResolver = void 0;
|
|
28
|
-
const os = require("os");
|
|
29
28
|
const path = require("path");
|
|
30
29
|
const semver = require("semver");
|
|
31
30
|
const fs = require("@theia/core/shared/fs-extra");
|
|
32
|
-
const uuid_1 = require("uuid");
|
|
33
31
|
const inversify_1 = require("@theia/core/shared/inversify");
|
|
34
32
|
const uri_1 = require("@theia/core/lib/common/uri");
|
|
35
33
|
const plugin_protocol_1 = require("@theia/plugin-ext/lib/common/plugin-protocol");
|
|
36
34
|
const plugin_vscode_uri_1 = require("@theia/plugin-ext-vscode/lib/common/plugin-vscode-uri");
|
|
37
35
|
const ovsx_client_provider_1 = require("../common/ovsx-client-provider");
|
|
38
36
|
const request_1 = require("@theia/core/shared/@theia/request");
|
|
37
|
+
const plugin_vscode_environment_1 = require("@theia/plugin-ext-vscode/lib/common/plugin-vscode-environment");
|
|
38
|
+
const plugin_uninstallation_manager_1 = require("@theia/plugin-ext/lib/main/node/plugin-uninstallation-manager");
|
|
39
39
|
let VSXExtensionResolver = class VSXExtensionResolver {
|
|
40
|
-
constructor() {
|
|
41
|
-
this.downloadPath = path.resolve(os.tmpdir(), (0, uuid_1.v4)());
|
|
42
|
-
fs.ensureDirSync(this.downloadPath);
|
|
43
|
-
fs.emptyDirSync(this.downloadPath);
|
|
44
|
-
}
|
|
45
40
|
accept(pluginId) {
|
|
46
41
|
return !!plugin_vscode_uri_1.VSCodeExtensionUri.toId(new uri_1.default(pluginId));
|
|
47
42
|
}
|
|
@@ -76,8 +71,9 @@ let VSXExtensionResolver = class VSXExtensionResolver {
|
|
|
76
71
|
return;
|
|
77
72
|
}
|
|
78
73
|
}
|
|
79
|
-
const
|
|
80
|
-
|
|
74
|
+
const downloadPath = (await this.environment.getExtensionsDirUri()).path.fsPath();
|
|
75
|
+
const extensionPath = path.resolve(downloadPath, path.basename(downloadUrl));
|
|
76
|
+
console.log(`[${resolvedId}]: trying to download from "${downloadUrl}"...`, 'to path', downloadPath);
|
|
81
77
|
if (!await this.download(downloadUrl, extensionPath)) {
|
|
82
78
|
console.log(`[${resolvedId}]: not found`);
|
|
83
79
|
return;
|
|
@@ -86,7 +82,8 @@ let VSXExtensionResolver = class VSXExtensionResolver {
|
|
|
86
82
|
context.addPlugin(resolvedId, extensionPath);
|
|
87
83
|
}
|
|
88
84
|
hasSameOrNewerVersion(id, extension) {
|
|
89
|
-
const existingPlugins = this.pluginDeployerHandler.getDeployedPluginsById(id)
|
|
85
|
+
const existingPlugins = this.pluginDeployerHandler.getDeployedPluginsById(id)
|
|
86
|
+
.filter(plugin => !this.uninstallationManager.isUninstalled(plugin_protocol_1.PluginIdentifiers.componentsToVersionedId(plugin.metadata.model)));
|
|
90
87
|
const sufficientVersion = existingPlugins.find(existingPlugin => {
|
|
91
88
|
const existingVersion = semver.clean(existingPlugin.metadata.model.version);
|
|
92
89
|
const desiredVersion = semver.clean(extension.version);
|
|
@@ -125,9 +122,16 @@ __decorate([
|
|
|
125
122
|
(0, inversify_1.inject)(request_1.RequestService),
|
|
126
123
|
__metadata("design:type", Object)
|
|
127
124
|
], VSXExtensionResolver.prototype, "requestService", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
(0, inversify_1.inject)(plugin_vscode_environment_1.PluginVSCodeEnvironment),
|
|
127
|
+
__metadata("design:type", plugin_vscode_environment_1.PluginVSCodeEnvironment)
|
|
128
|
+
], VSXExtensionResolver.prototype, "environment", void 0);
|
|
129
|
+
__decorate([
|
|
130
|
+
(0, inversify_1.inject)(plugin_uninstallation_manager_1.PluginUninstallationManager),
|
|
131
|
+
__metadata("design:type", plugin_uninstallation_manager_1.PluginUninstallationManager)
|
|
132
|
+
], VSXExtensionResolver.prototype, "uninstallationManager", void 0);
|
|
128
133
|
VSXExtensionResolver = __decorate([
|
|
129
|
-
(0, inversify_1.injectable)()
|
|
130
|
-
__metadata("design:paramtypes", [])
|
|
134
|
+
(0, inversify_1.injectable)()
|
|
131
135
|
], VSXExtensionResolver);
|
|
132
136
|
exports.VSXExtensionResolver = VSXExtensionResolver;
|
|
133
137
|
//# sourceMappingURL=vsx-extension-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vsx-extension-resolver.js","sourceRoot":"","sources":["../../src/node/vsx-extension-resolver.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,2EAA2E;AAC3E,gFAAgF;;;;;;;;;;;;AAEhF,
|
|
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,15 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/vsx-registry",
|
|
3
|
-
"version": "1.28.0-next.
|
|
3
|
+
"version": "1.28.0-next.45+cf1b71e1aa3",
|
|
4
4
|
"description": "Theia - VSX Registry",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/core": "1.28.0-next.
|
|
7
|
-
"@theia/filesystem": "1.28.0-next.
|
|
8
|
-
"@theia/ovsx-client": "1.28.0-next.
|
|
9
|
-
"@theia/plugin-ext": "1.28.0-next.
|
|
10
|
-
"@theia/plugin-ext-vscode": "1.28.0-next.
|
|
11
|
-
"@theia/preferences": "1.28.0-next.
|
|
12
|
-
"@theia/workspace": "1.28.0-next.
|
|
6
|
+
"@theia/core": "1.28.0-next.45+cf1b71e1aa3",
|
|
7
|
+
"@theia/filesystem": "1.28.0-next.45+cf1b71e1aa3",
|
|
8
|
+
"@theia/ovsx-client": "1.28.0-next.45+cf1b71e1aa3",
|
|
9
|
+
"@theia/plugin-ext": "1.28.0-next.45+cf1b71e1aa3",
|
|
10
|
+
"@theia/plugin-ext-vscode": "1.28.0-next.45+cf1b71e1aa3",
|
|
11
|
+
"@theia/preferences": "1.28.0-next.45+cf1b71e1aa3",
|
|
12
|
+
"@theia/workspace": "1.28.0-next.45+cf1b71e1aa3",
|
|
13
13
|
"luxon": "^2.4.0",
|
|
14
14
|
"p-debounce": "^2.1.0",
|
|
15
15
|
"semver": "^5.4.1",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"nyc": {
|
|
56
56
|
"extends": "../../configs/nyc.json"
|
|
57
57
|
},
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "cf1b71e1aa3d01577f3da851fcdee3cb60c57a06"
|
|
59
59
|
}
|
|
@@ -45,6 +45,10 @@ export class VSXExtensionsSource extends TreeSource {
|
|
|
45
45
|
|
|
46
46
|
protected scheduleFireDidChange = debounce(() => this.fireDidChange(), 100, { leading: false, trailing: true });
|
|
47
47
|
|
|
48
|
+
getModel(): VSXExtensionsModel {
|
|
49
|
+
return this.model;
|
|
50
|
+
}
|
|
51
|
+
|
|
48
52
|
*getElements(): IterableIterator<TreeElement> {
|
|
49
53
|
for (const id of this.doGetElements()) {
|
|
50
54
|
const extension = this.model.getExtension(id);
|
|
@@ -15,12 +15,14 @@
|
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
17
|
import { injectable, interfaces, postConstruct, inject } from '@theia/core/shared/inversify';
|
|
18
|
-
import { TreeNode } from '@theia/core/lib/browser';
|
|
18
|
+
import { TreeModel, TreeNode } from '@theia/core/lib/browser';
|
|
19
19
|
import { SourceTreeWidget } from '@theia/core/lib/browser/source-tree';
|
|
20
20
|
import { VSXExtensionsSource, VSXExtensionsSourceOptions } from './vsx-extensions-source';
|
|
21
21
|
import { nls } from '@theia/core/lib/common/nls';
|
|
22
22
|
import { BadgeWidget } from '@theia/core/lib/browser/view-container';
|
|
23
23
|
import { Emitter } from '@theia/core/lib/common';
|
|
24
|
+
import { AlertMessage } from '@theia/core/lib/browser/widgets/alert-message';
|
|
25
|
+
import * as React from '@theia/core/shared/react';
|
|
24
26
|
|
|
25
27
|
@injectable()
|
|
26
28
|
export class VSXExtensionsWidgetOptions extends VSXExtensionsSourceOptions {
|
|
@@ -115,4 +117,18 @@ export class VSXExtensionsWidget extends SourceTreeWidget implements BadgeWidget
|
|
|
115
117
|
protected override handleDblClickEvent(): void {
|
|
116
118
|
// Don't open the editor view on a double click.
|
|
117
119
|
}
|
|
120
|
+
|
|
121
|
+
protected override renderTree(model: TreeModel): React.ReactNode {
|
|
122
|
+
if (this.options.id === VSXExtensionsSourceOptions.SEARCH_RESULT) {
|
|
123
|
+
const searchError = this.extensionsSource.getModel().searchError;
|
|
124
|
+
if (!!searchError) {
|
|
125
|
+
const message = nls.localize('theia/vsx-registry/errorFetching', 'Error fetching extensions.');
|
|
126
|
+
return <AlertMessage
|
|
127
|
+
type='ERROR'
|
|
128
|
+
header={`${message} ${searchError}`}
|
|
129
|
+
/>;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return super.renderTree(model);
|
|
133
|
+
}
|
|
118
134
|
}
|
|
@@ -14,38 +14,27 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import * as os from 'os';
|
|
18
17
|
import * as path from 'path';
|
|
19
18
|
import * as semver from 'semver';
|
|
20
19
|
import * as fs from '@theia/core/shared/fs-extra';
|
|
21
|
-
import { v4 as uuidv4 } from 'uuid';
|
|
22
20
|
import { injectable, inject } from '@theia/core/shared/inversify';
|
|
23
21
|
import URI from '@theia/core/lib/common/uri';
|
|
24
|
-
import { PluginDeployerHandler, PluginDeployerResolver, PluginDeployerResolverContext, PluginDeployOptions } from '@theia/plugin-ext/lib/common/plugin-protocol';
|
|
22
|
+
import { PluginDeployerHandler, PluginDeployerResolver, PluginDeployerResolverContext, PluginDeployOptions, PluginIdentifiers } from '@theia/plugin-ext/lib/common/plugin-protocol';
|
|
25
23
|
import { VSCodeExtensionUri } from '@theia/plugin-ext-vscode/lib/common/plugin-vscode-uri';
|
|
26
24
|
import { OVSXClientProvider } from '../common/ovsx-client-provider';
|
|
27
25
|
import { VSXExtensionRaw } from '@theia/ovsx-client';
|
|
28
26
|
import { RequestService } from '@theia/core/shared/@theia/request';
|
|
27
|
+
import { PluginVSCodeEnvironment } from '@theia/plugin-ext-vscode/lib/common/plugin-vscode-environment';
|
|
28
|
+
import { PluginUninstallationManager } from '@theia/plugin-ext/lib/main/node/plugin-uninstallation-manager';
|
|
29
29
|
|
|
30
30
|
@injectable()
|
|
31
31
|
export class VSXExtensionResolver implements PluginDeployerResolver {
|
|
32
32
|
|
|
33
|
-
@inject(OVSXClientProvider)
|
|
34
|
-
protected
|
|
35
|
-
|
|
36
|
-
@inject(
|
|
37
|
-
protected
|
|
38
|
-
|
|
39
|
-
@inject(RequestService)
|
|
40
|
-
protected requestService: RequestService;
|
|
41
|
-
|
|
42
|
-
protected readonly downloadPath: string;
|
|
43
|
-
|
|
44
|
-
constructor() {
|
|
45
|
-
this.downloadPath = path.resolve(os.tmpdir(), uuidv4());
|
|
46
|
-
fs.ensureDirSync(this.downloadPath);
|
|
47
|
-
fs.emptyDirSync(this.downloadPath);
|
|
48
|
-
}
|
|
33
|
+
@inject(OVSXClientProvider) protected clientProvider: OVSXClientProvider;
|
|
34
|
+
@inject(PluginDeployerHandler) protected pluginDeployerHandler: PluginDeployerHandler;
|
|
35
|
+
@inject(RequestService) protected requestService: RequestService;
|
|
36
|
+
@inject(PluginVSCodeEnvironment) protected readonly environment: PluginVSCodeEnvironment;
|
|
37
|
+
@inject(PluginUninstallationManager) protected readonly uninstallationManager: PluginUninstallationManager;
|
|
49
38
|
|
|
50
39
|
accept(pluginId: string): boolean {
|
|
51
40
|
return !!VSCodeExtensionUri.toId(new URI(pluginId));
|
|
@@ -82,9 +71,9 @@ export class VSXExtensionResolver implements PluginDeployerResolver {
|
|
|
82
71
|
return;
|
|
83
72
|
}
|
|
84
73
|
}
|
|
85
|
-
|
|
86
|
-
const extensionPath = path.resolve(
|
|
87
|
-
console.log(`[${resolvedId}]: trying to download from "${downloadUrl}"...`, 'to path',
|
|
74
|
+
const downloadPath = (await this.environment.getExtensionsDirUri()).path.fsPath();
|
|
75
|
+
const extensionPath = path.resolve(downloadPath, path.basename(downloadUrl));
|
|
76
|
+
console.log(`[${resolvedId}]: trying to download from "${downloadUrl}"...`, 'to path', downloadPath);
|
|
88
77
|
if (!await this.download(downloadUrl, extensionPath)) {
|
|
89
78
|
console.log(`[${resolvedId}]: not found`);
|
|
90
79
|
return;
|
|
@@ -94,7 +83,8 @@ export class VSXExtensionResolver implements PluginDeployerResolver {
|
|
|
94
83
|
}
|
|
95
84
|
|
|
96
85
|
protected hasSameOrNewerVersion(id: string, extension: VSXExtensionRaw): string | undefined {
|
|
97
|
-
const existingPlugins = this.pluginDeployerHandler.getDeployedPluginsById(id)
|
|
86
|
+
const existingPlugins = this.pluginDeployerHandler.getDeployedPluginsById(id)
|
|
87
|
+
.filter(plugin => !this.uninstallationManager.isUninstalled(PluginIdentifiers.componentsToVersionedId(plugin.metadata.model)));
|
|
98
88
|
const sufficientVersion = existingPlugins.find(existingPlugin => {
|
|
99
89
|
const existingVersion = semver.clean(existingPlugin.metadata.model.version);
|
|
100
90
|
const desiredVersion = semver.clean(extension.version);
|