@theia/plugin-utils 1.77.0-next.99 → 1.78.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/common/constants.js +12 -15
- package/lib/common/constants.js.map +1 -1
- package/lib/common/constants.spec.js +7 -9
- package/lib/common/constants.spec.js.map +1 -1
- package/lib/common/contribution-types.d.ts +8 -3
- package/lib/common/contribution-types.d.ts.map +1 -1
- package/lib/common/contribution-types.js +5 -7
- package/lib/common/contribution-types.js.map +1 -1
- package/lib/common/manifest-types.d.ts +1 -1
- package/lib/common/manifest-types.d.ts.map +1 -1
- package/lib/common/manifest-types.js +7 -11
- package/lib/common/manifest-types.js.map +1 -1
- package/lib/common/manifest-types.spec.js +7 -9
- package/lib/common/manifest-types.spec.js.map +1 -1
- package/lib/common/package-nls.js +6 -11
- package/lib/common/package-nls.js.map +1 -1
- package/lib/common/package-nls.spec.js +23 -25
- package/lib/common/package-nls.spec.js.map +1 -1
- package/lib/common/plugin-activation-events.d.ts +1 -1
- package/lib/common/plugin-activation-events.d.ts.map +1 -1
- package/lib/common/plugin-activation-events.js +14 -17
- package/lib/common/plugin-activation-events.js.map +1 -1
- package/lib/common/plugin-activation-events.spec.js +14 -16
- package/lib/common/plugin-activation-events.spec.js.map +1 -1
- package/lib/common/plugin-manifest.d.ts +1 -1
- package/lib/common/plugin-manifest.d.ts.map +1 -1
- package/lib/common/plugin-manifest.js +8 -12
- package/lib/common/plugin-manifest.js.map +1 -1
- package/lib/common/plugin-manifest.spec.js +21 -23
- package/lib/common/plugin-manifest.spec.js.map +1 -1
- package/lib/common/plugin-model.d.ts +1 -1
- package/lib/common/plugin-model.d.ts.map +1 -1
- package/lib/common/plugin-model.js +23 -37
- package/lib/common/plugin-model.js.map +1 -1
- package/lib/common/plugin-model.spec.js +66 -69
- package/lib/common/plugin-model.spec.js.map +1 -1
- package/lib/common/protocol-shims.js +3 -6
- package/lib/common/protocol-shims.js.map +1 -1
- package/lib/common/test-helpers.d.ts +2 -2
- package/lib/common/test-helpers.d.ts.map +1 -1
- package/lib/common/test-helpers.js +5 -9
- package/lib/common/test-helpers.js.map +1 -1
- package/lib/common/utils.js +6 -14
- package/lib/common/utils.js.map +1 -1
- package/lib/common/utils.spec.js +25 -27
- package/lib/common/utils.spec.js.map +1 -1
- package/lib/node/normalize-contributions.d.ts +3 -3
- package/lib/node/normalize-contributions.d.ts.map +1 -1
- package/lib/node/normalize-contributions.js +95 -129
- package/lib/node/normalize-contributions.js.map +1 -1
- package/lib/node/normalize-contributions.spec.js +184 -162
- package/lib/node/normalize-contributions.spec.js.map +1 -1
- package/lib/node/package-nls.d.ts +1 -1
- package/lib/node/package-nls.d.ts.map +1 -1
- package/lib/node/package-nls.js +9 -12
- package/lib/node/package-nls.js.map +1 -1
- package/lib/node/plugin-manifest.d.ts +2 -2
- package/lib/node/plugin-manifest.d.ts.map +1 -1
- package/lib/node/plugin-manifest.js +6 -9
- package/lib/node/plugin-manifest.js.map +1 -1
- package/lib/node/plugin-model.d.ts +1 -1
- package/lib/node/plugin-model.d.ts.map +1 -1
- package/lib/node/plugin-model.js +5 -8
- package/lib/node/plugin-model.js.map +1 -1
- package/lib/node/read-grammars.d.ts +2 -2
- package/lib/node/read-grammars.d.ts.map +1 -1
- package/lib/node/read-grammars.js +8 -12
- package/lib/node/read-grammars.js.map +1 -1
- package/lib/node/read-grammars.spec.js +25 -27
- package/lib/node/read-grammars.spec.js.map +1 -1
- package/package.json +11 -3
- package/src/common/constants.spec.ts +1 -1
- package/src/common/contribution-types.ts +9 -3
- package/src/common/manifest-types.spec.ts +1 -1
- package/src/common/manifest-types.ts +2 -2
- package/src/common/package-nls.spec.ts +4 -3
- package/src/common/package-nls.ts +1 -1
- package/src/common/plugin-activation-events.spec.ts +2 -2
- package/src/common/plugin-activation-events.ts +2 -2
- package/src/common/plugin-manifest.spec.ts +6 -5
- package/src/common/plugin-manifest.ts +3 -3
- package/src/common/plugin-model.spec.ts +4 -4
- package/src/common/plugin-model.ts +2 -2
- package/src/common/test-helpers.ts +3 -3
- package/src/common/utils.spec.ts +2 -2
- package/src/node/normalize-contributions.spec.ts +37 -7
- package/src/node/normalize-contributions.ts +15 -7
- package/src/node/package-nls.ts +4 -3
- package/src/node/plugin-manifest.ts +4 -3
- package/src/node/plugin-model.ts +1 -1
- package/src/node/read-grammars.spec.ts +3 -2
- package/src/node/read-grammars.ts +5 -4
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2023 TypeFox and others.
|
|
4
3
|
//
|
|
@@ -14,26 +13,24 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const utils_1 = require("./utils");
|
|
20
|
-
const manifest_types_1 = require("./manifest-types");
|
|
16
|
+
import { flatten, isObject, isStringArray } from './utils.js';
|
|
17
|
+
import { rawContributes } from './manifest-types.js';
|
|
21
18
|
/**
|
|
22
19
|
* Most activation events can be automatically deduced from the package manifest.
|
|
23
20
|
* This function will update the manifest based on the plugin contributions.
|
|
24
21
|
*/
|
|
25
|
-
function updateActivationEvents(manifest) {
|
|
26
|
-
if (!
|
|
22
|
+
export function updateActivationEvents(manifest) {
|
|
23
|
+
if (!isObject(manifest) || !isObject(manifest.contributes) || !manifest.contributes) {
|
|
27
24
|
return;
|
|
28
25
|
}
|
|
29
|
-
const activationEvents = new Set(
|
|
30
|
-
const contributes =
|
|
26
|
+
const activationEvents = new Set(isStringArray(manifest.activationEvents) ? manifest.activationEvents : []);
|
|
27
|
+
const contributes = rawContributes(manifest);
|
|
31
28
|
if (contributes.commands) {
|
|
32
29
|
const commands = Array.isArray(contributes.commands) ? contributes.commands : [contributes.commands];
|
|
33
30
|
updateCommandsContributions(commands, activationEvents);
|
|
34
31
|
}
|
|
35
|
-
if (
|
|
36
|
-
const views =
|
|
32
|
+
if (isObject(contributes.views) && !Array.isArray(contributes.views)) {
|
|
33
|
+
const views = flatten(Object.values(contributes.views));
|
|
37
34
|
updateViewsContribution(views, activationEvents);
|
|
38
35
|
}
|
|
39
36
|
if (Array.isArray(contributes.customEditors)) {
|
|
@@ -52,42 +49,42 @@ function updateActivationEvents(manifest) {
|
|
|
52
49
|
}
|
|
53
50
|
function updateViewsContribution(views, activationEvents) {
|
|
54
51
|
for (const view of views) {
|
|
55
|
-
if (
|
|
52
|
+
if (isObject(view) && typeof view.id === 'string') {
|
|
56
53
|
activationEvents.add(`onView:${view.id}`);
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
56
|
}
|
|
60
57
|
function updateCustomEditorsContribution(customEditors, activationEvents) {
|
|
61
58
|
for (const customEditor of customEditors) {
|
|
62
|
-
if (
|
|
59
|
+
if (isObject(customEditor) && typeof customEditor.viewType === 'string') {
|
|
63
60
|
activationEvents.add(`onCustomEditor:${customEditor.viewType}`);
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
63
|
}
|
|
67
64
|
function updateCommandsContributions(commands, activationEvents) {
|
|
68
65
|
for (const command of commands) {
|
|
69
|
-
if (
|
|
66
|
+
if (isObject(command) && typeof command.command === 'string') {
|
|
70
67
|
activationEvents.add(`onCommand:${command.command}`);
|
|
71
68
|
}
|
|
72
69
|
}
|
|
73
70
|
}
|
|
74
71
|
function updateAuthenticationProviderContributions(authProviders, activationEvents) {
|
|
75
72
|
for (const authProvider of authProviders) {
|
|
76
|
-
if (
|
|
73
|
+
if (isObject(authProvider) && typeof authProvider.id === 'string') {
|
|
77
74
|
activationEvents.add(`onAuthenticationRequest:${authProvider.id}`);
|
|
78
75
|
}
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
78
|
function updateLanguageContributions(languages, activationEvents) {
|
|
82
79
|
for (const language of languages) {
|
|
83
|
-
if (
|
|
80
|
+
if (isObject(language) && typeof language.id === 'string') {
|
|
84
81
|
activationEvents.add(`onLanguage:${language.id}`);
|
|
85
82
|
}
|
|
86
83
|
}
|
|
87
84
|
}
|
|
88
85
|
function updateNotebookContributions(notebooks, activationEvents) {
|
|
89
86
|
for (const notebook of notebooks) {
|
|
90
|
-
if (
|
|
87
|
+
if (isObject(notebook) && typeof notebook.type === 'string') {
|
|
91
88
|
activationEvents.add(`onNotebookSerializer:${notebook.type}`);
|
|
92
89
|
}
|
|
93
90
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-activation-events.js","sourceRoot":"","sources":["../../src/common/plugin-activation-events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-activation-events.js","sourceRoot":"","sources":["../../src/common/plugin-activation-events.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 Maksim Kachurin and others.
|
|
4
3
|
//
|
|
@@ -14,9 +13,8 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
const plugin_activation_events_1 = require("./plugin-activation-events");
|
|
16
|
+
import { expect } from 'chai';
|
|
17
|
+
import { updateActivationEvents } from './plugin-activation-events.js';
|
|
20
18
|
function manifest(partial) {
|
|
21
19
|
return {
|
|
22
20
|
activationEvents: partial.activationEvents ? [...partial.activationEvents] : undefined,
|
|
@@ -26,11 +24,11 @@ function manifest(partial) {
|
|
|
26
24
|
describe('plugin-activation-events', () => {
|
|
27
25
|
it('no-ops when contributes is missing or invalid', () => {
|
|
28
26
|
const empty = manifest({});
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
updateActivationEvents(empty);
|
|
28
|
+
expect(empty.activationEvents).to.equal(undefined);
|
|
31
29
|
const invalid = manifest({ contributes: 'bad' });
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
updateActivationEvents(invalid);
|
|
31
|
+
expect(invalid.activationEvents).to.equal(undefined);
|
|
34
32
|
});
|
|
35
33
|
it('derives activation events from contributed commands and languages', () => {
|
|
36
34
|
const pkg = manifest({
|
|
@@ -40,8 +38,8 @@ describe('plugin-activation-events', () => {
|
|
|
40
38
|
languages: [{ id: 'typescript', extensions: ['.ts'] }]
|
|
41
39
|
}
|
|
42
40
|
});
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
updateActivationEvents(pkg);
|
|
42
|
+
expect(pkg.activationEvents).to.include.members([
|
|
45
43
|
'onStartupFinished',
|
|
46
44
|
'onCommand:sample.run',
|
|
47
45
|
'onLanguage:typescript'
|
|
@@ -58,8 +56,8 @@ describe('plugin-activation-events', () => {
|
|
|
58
56
|
notebooks: [{ type: 'sample-notebook', displayName: 'Notebook' }]
|
|
59
57
|
}
|
|
60
58
|
});
|
|
61
|
-
|
|
62
|
-
|
|
59
|
+
updateActivationEvents(pkg);
|
|
60
|
+
expect(pkg.activationEvents).to.include.members([
|
|
63
61
|
'onView:sample.view',
|
|
64
62
|
'onCustomEditor:sample.editor',
|
|
65
63
|
'onAuthenticationRequest:github',
|
|
@@ -72,8 +70,8 @@ describe('plugin-activation-events', () => {
|
|
|
72
70
|
commands: { command: 'solo.run', title: 'Solo' }
|
|
73
71
|
}
|
|
74
72
|
});
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
updateActivationEvents(pkg);
|
|
74
|
+
expect(pkg.activationEvents).to.include('onCommand:solo.run');
|
|
77
75
|
});
|
|
78
76
|
it('ignores malformed views contributions that are not plain objects', () => {
|
|
79
77
|
const pkg = manifest({
|
|
@@ -82,8 +80,8 @@ describe('plugin-activation-events', () => {
|
|
|
82
80
|
views: 'not-an-object'
|
|
83
81
|
}
|
|
84
82
|
});
|
|
85
|
-
|
|
86
|
-
|
|
83
|
+
updateActivationEvents(pkg);
|
|
84
|
+
expect(pkg.activationEvents ?? []).to.be.empty;
|
|
87
85
|
});
|
|
88
86
|
});
|
|
89
87
|
//# sourceMappingURL=plugin-activation-events.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-activation-events.spec.js","sourceRoot":"","sources":["../../src/common/plugin-activation-events.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-activation-events.spec.js","sourceRoot":"","sources":["../../src/common/plugin-activation-events.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-manifest.d.ts","sourceRoot":"","sources":["../../src/common/plugin-manifest.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin-manifest.d.ts","sourceRoot":"","sources":["../../src/common/plugin-manifest.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,MAAM,WAAW,4BAA4B;IACzC,oBAAoB;IACpB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CACpC;AAED,KAAK,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,WAAW,GAAG,aAAa,GAAG,kBAAkB,CAAC,CAAC;AAEtG,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,IAAI,CAIzF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,cAAc,EAC1D,QAAQ,EAAE,CAAC,EACX,OAAO,CAAC,EAAE,4BAA4B,GACvC,CAAC,CAOH"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 Maksim Kachurin and others.
|
|
4
3
|
//
|
|
@@ -14,21 +13,18 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
function stripVscodeBuiltinNamePrefix(manifest) {
|
|
23
|
-
if (manifest?.name?.startsWith(constants_1.VSCODE_BUILTIN_NAME_PREFIX)) {
|
|
24
|
-
manifest.name = manifest.name.substring(constants_1.VSCODE_BUILTIN_NAME_PREFIX.length);
|
|
16
|
+
import { UNPUBLISHED, VSCODE_BUILTIN_NAME_PREFIX } from './constants.js';
|
|
17
|
+
import { updateActivationEvents } from './plugin-activation-events.js';
|
|
18
|
+
export function stripVscodeBuiltinNamePrefix(manifest) {
|
|
19
|
+
if (manifest?.name?.startsWith(VSCODE_BUILTIN_NAME_PREFIX)) {
|
|
20
|
+
manifest.name = manifest.name.substring(VSCODE_BUILTIN_NAME_PREFIX.length);
|
|
25
21
|
}
|
|
26
22
|
}
|
|
27
|
-
function prepareLoadedManifest(manifest, options) {
|
|
23
|
+
export function prepareLoadedManifest(manifest, options) {
|
|
28
24
|
stripVscodeBuiltinNamePrefix(manifest);
|
|
29
|
-
manifest.publisher ??=
|
|
25
|
+
manifest.publisher ??= UNPUBLISHED;
|
|
30
26
|
if (options?.updateActivationEvents !== false) {
|
|
31
|
-
|
|
27
|
+
updateActivationEvents(manifest);
|
|
32
28
|
}
|
|
33
29
|
return manifest;
|
|
34
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-manifest.js","sourceRoot":"","sources":["../../src/common/plugin-manifest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-manifest.js","sourceRoot":"","sources":["../../src/common/plugin-manifest.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,iDAAiD;AACjD,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,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AASvE,MAAM,UAAU,4BAA4B,CAAC,QAAsC;IAC/E,IAAI,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;QACzD,QAAQ,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IAC/E,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CACjC,QAAW,EACX,OAAsC;IAEtC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvC,QAAQ,CAAC,SAAS,KAAK,WAAW,CAAC;IACnC,IAAI,OAAO,EAAE,sBAAsB,KAAK,KAAK,EAAE,CAAC;QAC5C,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 Maksim Kachurin and others.
|
|
4
3
|
//
|
|
@@ -14,28 +13,27 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const path = tslib_1.__importStar(require("path"));
|
|
16
|
+
import { expect } from 'chai';
|
|
17
|
+
import { UNPUBLISHED, VSCODE_BUILTIN_NAME_PREFIX } from './constants.js';
|
|
18
|
+
import { prepareLoadedManifest, stripVscodeBuiltinNamePrefix } from './plugin-manifest.js';
|
|
19
|
+
import { loadManifest } from '../node/plugin-manifest.js';
|
|
20
|
+
// A CommonJS module whose exports cannot be detected statically, so it is imported as a whole.
|
|
21
|
+
import fs from 'fs-extra';
|
|
22
|
+
import * as os from 'os';
|
|
23
|
+
import * as path from 'path';
|
|
26
24
|
describe('plugin-manifest', () => {
|
|
27
25
|
describe('stripVscodeBuiltinNamePrefix', () => {
|
|
28
26
|
it('removes the vscode builtin prefix from package names', () => {
|
|
29
27
|
const manifest = {
|
|
30
|
-
name: `${
|
|
28
|
+
name: `${VSCODE_BUILTIN_NAME_PREFIX}json`
|
|
31
29
|
};
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
stripVscodeBuiltinNamePrefix(manifest);
|
|
31
|
+
expect(manifest.name).to.equal('json');
|
|
34
32
|
});
|
|
35
33
|
});
|
|
36
34
|
describe('prepareLoadedManifest', () => {
|
|
37
35
|
it('defaults publisher and derives activation events', () => {
|
|
38
|
-
const manifest =
|
|
36
|
+
const manifest = prepareLoadedManifest({
|
|
39
37
|
name: 'sample',
|
|
40
38
|
version: '1.0.0',
|
|
41
39
|
packagePath: '/tmp/sample',
|
|
@@ -43,11 +41,11 @@ describe('plugin-manifest', () => {
|
|
|
43
41
|
commands: [{ command: 'sample.run', title: 'Run' }]
|
|
44
42
|
}
|
|
45
43
|
});
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
expect(manifest.publisher).to.equal(UNPUBLISHED);
|
|
45
|
+
expect(manifest.activationEvents).to.include('onCommand:sample.run');
|
|
48
46
|
});
|
|
49
47
|
it('can skip activation event derivation', () => {
|
|
50
|
-
const manifest =
|
|
48
|
+
const manifest = prepareLoadedManifest({
|
|
51
49
|
name: 'sample',
|
|
52
50
|
version: '1.0.0',
|
|
53
51
|
packagePath: '/tmp/sample',
|
|
@@ -55,7 +53,7 @@ describe('plugin-manifest', () => {
|
|
|
55
53
|
commands: [{ command: 'sample.run', title: 'Run' }]
|
|
56
54
|
}
|
|
57
55
|
}, { updateActivationEvents: false });
|
|
58
|
-
|
|
56
|
+
expect(manifest.activationEvents).to.equal(undefined);
|
|
59
57
|
});
|
|
60
58
|
});
|
|
61
59
|
describe('loadManifest', () => {
|
|
@@ -68,16 +66,16 @@ describe('plugin-manifest', () => {
|
|
|
68
66
|
});
|
|
69
67
|
it('reads and prepares package.json from disk', async () => {
|
|
70
68
|
await fs.writeJson(path.join(pluginRoot, 'package.json'), {
|
|
71
|
-
name: `${
|
|
69
|
+
name: `${VSCODE_BUILTIN_NAME_PREFIX}json`,
|
|
72
70
|
version: '1.0.0',
|
|
73
71
|
contributes: {
|
|
74
72
|
commands: [{ command: 'json.format', title: 'Format JSON' }]
|
|
75
73
|
}
|
|
76
74
|
});
|
|
77
|
-
const manifest = await
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
75
|
+
const manifest = await loadManifest(pluginRoot);
|
|
76
|
+
expect(manifest.name).to.equal('json');
|
|
77
|
+
expect(manifest.publisher).to.equal(UNPUBLISHED);
|
|
78
|
+
expect(manifest.activationEvents).to.include('onCommand:json.format');
|
|
81
79
|
});
|
|
82
80
|
});
|
|
83
81
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-manifest.spec.js","sourceRoot":"","sources":["../../src/common/plugin-manifest.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-manifest.spec.js","sourceRoot":"","sources":["../../src/common/plugin-manifest.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PluginEntryPoint, PluginLifecycle, PluginModel, PluginManifest, PluginPackageCapabilities } from './manifest-types';
|
|
1
|
+
import type { PluginEntryPoint, PluginLifecycle, PluginModel, PluginManifest, PluginPackageCapabilities } from './manifest-types.js';
|
|
2
2
|
export interface PluginIdentifierSource {
|
|
3
3
|
publisher?: string;
|
|
4
4
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-model.d.ts","sourceRoot":"","sources":["../../src/common/plugin-model.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,yBAAyB,EAC5B,MAAM,
|
|
1
|
+
{"version":3,"file":"plugin-model.d.ts","sourceRoot":"","sources":["../../src/common/plugin-model.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACR,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,cAAc,EACd,yBAAyB,EAC5B,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IAC/B,6FAA6F;IAC7F,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAC;CAC9B;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAElE;AAyBD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAEjE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,GAAG,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAErF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,GAAG,aAAa,GAAG,QAAQ,CAQjF;AAED,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE;IAAE,YAAY,CAAC,EAAE,yBAAyB,CAAA;CAAE,EACtD,MAAM,EAAE;IAAE,0BAA0B,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,GAC7D,IAAI,CAKN;AAWD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,cAAc,GAAG,gBAAgB,CASlF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAejH;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,cAAc,GAAG,WAAW,CAoBxE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAoBvG;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,GAAG,QAAQ,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,WAAW,CAEpI;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,EAAE,aAAa,GAAG,QAAQ,GAAG,eAAe,CAe9G"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// *****************************************************************************
|
|
3
2
|
// Copyright (C) 2026 Maksim Kachurin and others.
|
|
4
3
|
//
|
|
@@ -14,22 +13,9 @@
|
|
|
14
13
|
//
|
|
15
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
15
|
// *****************************************************************************
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
exports.toPluginUrl = toPluginUrl;
|
|
21
|
-
exports.toPluginUri = toPluginUri;
|
|
22
|
-
exports.pickEngineType = pickEngineType;
|
|
23
|
-
exports.applyTrustExtraction = applyTrustExtraction;
|
|
24
|
-
exports.buildEntryPointForTheia = buildEntryPointForTheia;
|
|
25
|
-
exports.buildEntryPointForVsCode = buildEntryPointForVsCode;
|
|
26
|
-
exports.buildModelForTheia = buildModelForTheia;
|
|
27
|
-
exports.buildModelForVsCode = buildModelForVsCode;
|
|
28
|
-
exports.buildModel = buildModel;
|
|
29
|
-
exports.buildLifecycle = buildLifecycle;
|
|
30
|
-
const constants_1 = require("./constants");
|
|
31
|
-
function getPluginId(plugin) {
|
|
32
|
-
return `${plugin.publisher ?? constants_1.UNPUBLISHED}_${plugin.name}`.replace(/\W/g, '_');
|
|
16
|
+
import { PLUGINS_BASE_PATH, PLUGINS_SCHEME, THEIA_PLUGIN_START_METHOD, THEIA_PLUGIN_STOP_METHOD, UNPUBLISHED, VSCODE_EXTENSION_ACTIVATE, VSCODE_EXTENSION_DEACTIVATE, VSCODE_FRONTEND_INIT } from './constants.js';
|
|
17
|
+
export function getPluginId(plugin) {
|
|
18
|
+
return `${plugin.publisher ?? UNPUBLISHED}_${plugin.name}`.replace(/\W/g, '_');
|
|
33
19
|
}
|
|
34
20
|
/**
|
|
35
21
|
* Builds `<id>/<segments...>` for a plugin asset. Path separators stay literal `/`; each segment
|
|
@@ -58,25 +44,25 @@ function toPluginAssetPath(pck, relativePath) {
|
|
|
58
44
|
* appended to a URL unchanged. Encoding per segment rather than as a whole keeps `/` literal, which
|
|
59
45
|
* plain static file servers need, and preserves names containing `#`, `?` or `%`.
|
|
60
46
|
*/
|
|
61
|
-
function encodePluginAssetPath(decodedPath) {
|
|
47
|
+
export function encodePluginAssetPath(decodedPath) {
|
|
62
48
|
return decodedPath.split('/').map(encodeURIComponent).join('/');
|
|
63
49
|
}
|
|
64
50
|
/** Builds a static-friendly plugin asset URL: `hostedPlugin/<id>/<segments...>`. */
|
|
65
|
-
function toPluginUrl(pck, relativePath) {
|
|
66
|
-
return `${
|
|
51
|
+
export function toPluginUrl(pck, relativePath) {
|
|
52
|
+
return `${PLUGINS_BASE_PATH}/${toPluginAssetPath(pck, relativePath)}`;
|
|
67
53
|
}
|
|
68
54
|
/**
|
|
69
55
|
* Like {@link toPluginUrl}, but as a `PLUGINS_SCHEME` URI for the assets read through the
|
|
70
56
|
* `FileService` (color themes, icon themes, icon fonts). A bare relative path has no scheme for it
|
|
71
57
|
* to resolve.
|
|
72
58
|
*/
|
|
73
|
-
function toPluginUri(pck, relativePath) {
|
|
74
|
-
return `${
|
|
59
|
+
export function toPluginUri(pck, relativePath) {
|
|
60
|
+
return `${PLUGINS_SCHEME}:/${toPluginAssetPath(pck, relativePath)}`;
|
|
75
61
|
}
|
|
76
62
|
/**
|
|
77
63
|
* Explicit `theiaPlugin` engine takes priority over `vscode`.
|
|
78
64
|
*/
|
|
79
|
-
function pickEngineType(manifest) {
|
|
65
|
+
export function pickEngineType(manifest) {
|
|
80
66
|
if (manifest.engines?.theiaPlugin !== undefined) {
|
|
81
67
|
return 'theiaPlugin';
|
|
82
68
|
}
|
|
@@ -85,7 +71,7 @@ function pickEngineType(manifest) {
|
|
|
85
71
|
}
|
|
86
72
|
throw new Error(`No vscode or theiaPlugin engine in ${manifest.name}`);
|
|
87
73
|
}
|
|
88
|
-
function applyTrustExtraction(manifest, result) {
|
|
74
|
+
export function applyTrustExtraction(manifest, result) {
|
|
89
75
|
const untrustedWorkspacesSupport = manifest.capabilities?.untrustedWorkspaces?.supported;
|
|
90
76
|
if (untrustedWorkspacesSupport !== undefined) {
|
|
91
77
|
result.untrustedWorkspacesSupport = untrustedWorkspacesSupport;
|
|
@@ -99,7 +85,7 @@ function pathToFileUrlHref(absolutePath) {
|
|
|
99
85
|
}
|
|
100
86
|
return `file://${normalized.startsWith('/') ? normalized : `/${normalized}`}`;
|
|
101
87
|
}
|
|
102
|
-
function buildEntryPointForTheia(manifest) {
|
|
88
|
+
export function buildEntryPointForTheia(manifest) {
|
|
103
89
|
const result = {
|
|
104
90
|
frontend: manifest.theiaPlugin?.frontend,
|
|
105
91
|
backend: manifest.theiaPlugin?.backend
|
|
@@ -109,7 +95,7 @@ function buildEntryPointForTheia(manifest) {
|
|
|
109
95
|
}
|
|
110
96
|
return result;
|
|
111
97
|
}
|
|
112
|
-
function buildEntryPointForVsCode(manifest, options) {
|
|
98
|
+
export function buildEntryPointForVsCode(manifest, options) {
|
|
113
99
|
const entryPoint = {};
|
|
114
100
|
const preferFrontend = options?.uiKind === 'web'
|
|
115
101
|
&& manifest.extensionKind?.length === 1
|
|
@@ -125,8 +111,8 @@ function buildEntryPointForVsCode(manifest, options) {
|
|
|
125
111
|
}
|
|
126
112
|
return entryPoint;
|
|
127
113
|
}
|
|
128
|
-
function buildModelForTheia(manifest) {
|
|
129
|
-
const publisher = manifest.publisher ??
|
|
114
|
+
export function buildModelForTheia(manifest) {
|
|
115
|
+
const publisher = manifest.publisher ?? UNPUBLISHED;
|
|
130
116
|
const packageUri = manifest.packageUri ?? pathToFileUrlHref(manifest.packagePath);
|
|
131
117
|
return {
|
|
132
118
|
packagePath: manifest.packagePath,
|
|
@@ -145,8 +131,8 @@ function buildModelForTheia(manifest) {
|
|
|
145
131
|
entryPoint: buildEntryPointForTheia(manifest),
|
|
146
132
|
};
|
|
147
133
|
}
|
|
148
|
-
function buildModelForVsCode(manifest, options) {
|
|
149
|
-
const publisher = manifest.publisher ??
|
|
134
|
+
export function buildModelForVsCode(manifest, options) {
|
|
135
|
+
const publisher = manifest.publisher ?? UNPUBLISHED;
|
|
150
136
|
const packageUri = manifest.packageUri ?? pathToFileUrlHref(manifest.packagePath);
|
|
151
137
|
return {
|
|
152
138
|
packagePath: manifest.packagePath,
|
|
@@ -166,23 +152,23 @@ function buildModelForVsCode(manifest, options) {
|
|
|
166
152
|
iconUrl: manifest.icon ? toPluginUrl(manifest, manifest.icon) : undefined,
|
|
167
153
|
};
|
|
168
154
|
}
|
|
169
|
-
function buildModel(manifest, engineType, options) {
|
|
155
|
+
export function buildModel(manifest, engineType, options) {
|
|
170
156
|
return engineType === 'theiaPlugin' ? buildModelForTheia(manifest) : buildModelForVsCode(manifest, options);
|
|
171
157
|
}
|
|
172
|
-
function buildLifecycle(manifest, engineType) {
|
|
158
|
+
export function buildLifecycle(manifest, engineType) {
|
|
173
159
|
const frontendModuleName = getPluginId(manifest);
|
|
174
160
|
if (engineType === 'theiaPlugin') {
|
|
175
161
|
return {
|
|
176
|
-
startMethod:
|
|
177
|
-
stopMethod:
|
|
162
|
+
startMethod: THEIA_PLUGIN_START_METHOD,
|
|
163
|
+
stopMethod: THEIA_PLUGIN_STOP_METHOD,
|
|
178
164
|
frontendModuleName,
|
|
179
165
|
};
|
|
180
166
|
}
|
|
181
167
|
return {
|
|
182
|
-
startMethod:
|
|
183
|
-
stopMethod:
|
|
168
|
+
startMethod: VSCODE_EXTENSION_ACTIVATE,
|
|
169
|
+
stopMethod: VSCODE_EXTENSION_DEACTIVATE,
|
|
184
170
|
frontendModuleName,
|
|
185
|
-
frontendInitPath:
|
|
171
|
+
frontendInitPath: VSCODE_FRONTEND_INIT
|
|
186
172
|
};
|
|
187
173
|
}
|
|
188
174
|
//# sourceMappingURL=plugin-model.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-model.js","sourceRoot":"","sources":["../../src/common/plugin-model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-model.js","sourceRoot":"","sources":["../../src/common/plugin-model.ts"],"names":[],"mappings":"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"}
|