@theia/application-manager 1.75.0-next.8 → 1.75.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/application-package-manager.d.ts +1 -0
- package/lib/application-package-manager.d.ts.map +1 -1
- package/lib/application-package-manager.js +14 -9
- package/lib/application-package-manager.js.map +1 -1
- package/lib/browser-only/prepare-browser-only-plugins.d.ts +12 -0
- package/lib/browser-only/prepare-browser-only-plugins.d.ts.map +1 -0
- package/lib/browser-only/prepare-browser-only-plugins.js +313 -0
- package/lib/browser-only/prepare-browser-only-plugins.js.map +1 -0
- package/lib/browser-only/prepare-browser-only-plugins.spec.d.ts +2 -0
- package/lib/browser-only/prepare-browser-only-plugins.spec.d.ts.map +1 -0
- package/lib/browser-only/prepare-browser-only-plugins.spec.js +136 -0
- package/lib/browser-only/prepare-browser-only-plugins.spec.js.map +1 -0
- package/lib/browser-only/write-browser-only-extensions-list.d.ts +7 -0
- package/lib/browser-only/write-browser-only-extensions-list.d.ts.map +1 -0
- package/lib/browser-only/write-browser-only-extensions-list.js +28 -0
- package/lib/browser-only/write-browser-only-extensions-list.js.map +1 -0
- package/lib/generator/bundler-generator.d.ts +7 -8
- package/lib/generator/bundler-generator.d.ts.map +1 -1
- package/lib/generator/bundler-generator.js +32 -563
- package/lib/generator/bundler-generator.js.map +1 -1
- package/lib/generator/frontend-generator.d.ts.map +1 -1
- package/lib/generator/frontend-generator.js +1 -3
- package/lib/generator/frontend-generator.js.map +1 -1
- package/package.json +11 -33
- package/src/application-package-manager.ts +16 -8
- package/src/browser-only/prepare-browser-only-plugins.spec.ts +169 -0
- package/src/browser-only/prepare-browser-only-plugins.ts +376 -0
- package/src/browser-only/write-browser-only-extensions-list.ts +27 -0
- package/src/generator/bundler-generator.ts +36 -568
- package/src/generator/frontend-generator.ts +1 -3
- package/lib/expose-loader.d.ts +0 -9
- package/lib/expose-loader.d.ts.map +0 -1
- package/lib/expose-loader.js +0 -73
- package/lib/expose-loader.js.map +0 -1
- package/src/expose-loader.ts +0 -83
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundler-generator.js","sourceRoot":"","sources":["../../src/generator/bundler-generator.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
|
|
1
|
+
{"version":3,"file":"bundler-generator.js","sourceRoot":"","sources":["../../src/generator/bundler-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"frontend-generator.d.ts","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG3E,qBAAa,iBAAkB,SAAQ,iBAAiB;IAE9C,QAAQ,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUzD,SAAS,CAAC,mBAAmB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;cAc3D,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;cAevE,gBAAgB,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IASvF,SAAS,CAAC,cAAc,CAAC,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAgGnH,SAAS,CAAC,eAAe,IAAI,MAAM;IAInC,mEAAmE;IACnE,SAAS,CAAC,0BAA0B,IAAI,MAAM;IAoC9C,SAAS,CAAC,uBAAuB,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM;IAgBtF,gBAAgB,IAAI,MAAM;CAM7B"}
|
|
@@ -20,7 +20,6 @@ exports.FrontendGenerator = void 0;
|
|
|
20
20
|
const os_1 = require("os");
|
|
21
21
|
const abstract_generator_1 = require("./abstract-generator");
|
|
22
22
|
const fs_1 = require("fs");
|
|
23
|
-
const bundler_generator_1 = require("./bundler-generator");
|
|
24
23
|
class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
25
24
|
async generate(options) {
|
|
26
25
|
await this.write(this.pck.frontend('index.html'), await this.compileIndexHtml(this.pck.targetFrontendModules));
|
|
@@ -57,12 +56,11 @@ class FrontendGenerator extends abstract_generator_1.AbstractGenerator {
|
|
|
57
56
|
</html>`;
|
|
58
57
|
}
|
|
59
58
|
async compileIndexHead(frontendModules) {
|
|
60
|
-
const preferEsbuild = await new bundler_generator_1.BundlerGenerator(this.pck, this.options).preferESBuild();
|
|
61
59
|
return `
|
|
62
60
|
<meta charset="UTF-8">
|
|
63
61
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
64
62
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
65
|
-
|
|
63
|
+
<link rel="stylesheet" href="./bundle.css">
|
|
66
64
|
<title>${this.pck.props.frontend.config.applicationName}</title>`;
|
|
67
65
|
}
|
|
68
66
|
compileIndexJs(frontendModules, frontendPreloadModules) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.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,8CAA8C;AAE9C,2BAAyB;AACzB,6DAA2E;AAC3E,2BAA8C;
|
|
1
|
+
{"version":3,"file":"frontend-generator.js","sourceRoot":"","sources":["../../src/generator/frontend-generator.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/application-manager",
|
|
3
|
-
"version": "1.75.0
|
|
3
|
+
"version": "1.75.0",
|
|
4
4
|
"description": "Theia application manager API.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -29,42 +29,20 @@
|
|
|
29
29
|
"watch": "theiaext watch"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@
|
|
33
|
-
"@
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@
|
|
37
|
-
"@theia/application-package": "1.75.0-next.8+c4452ce29",
|
|
38
|
-
"@theia/bundle-plugin": "1.75.0-next.8+c4452ce29",
|
|
39
|
-
"@theia/ffmpeg": "1.75.0-next.8+c4452ce29",
|
|
32
|
+
"@electron/rebuild": "^4.2.0",
|
|
33
|
+
"@theia/application-package": "1.75.0",
|
|
34
|
+
"@theia/bundle-plugin": "1.75.0",
|
|
35
|
+
"@theia/ffmpeg": "1.75.0",
|
|
36
|
+
"@theia/plugin-utils": "1.75.0",
|
|
40
37
|
"@types/fs-extra": "^4.0.15",
|
|
41
|
-
"@types/semver": "^7.
|
|
42
|
-
"
|
|
43
|
-
"buffer": "^6.0.3",
|
|
44
|
-
"compression-webpack-plugin": "^12.0.0",
|
|
45
|
-
"copy-webpack-plugin": "^14.0.0",
|
|
46
|
-
"css-loader": "^6.11.0",
|
|
47
|
-
"esbuild": "^0.28.0",
|
|
38
|
+
"@types/semver": "^7.8.0",
|
|
39
|
+
"esbuild": "^0.28.2",
|
|
48
40
|
"esbuild-plugin-copy": "^2.1.1",
|
|
49
|
-
"esbuild-plugins-node-modules-polyfill": "^1.8.
|
|
41
|
+
"esbuild-plugins-node-modules-polyfill": "^1.8.3",
|
|
50
42
|
"fs-extra": "^4.0.3",
|
|
51
43
|
"http-server": "^14.1.1",
|
|
52
|
-
"ignore-loader": "^0.1.2",
|
|
53
|
-
"less": "^3.13.1",
|
|
54
|
-
"mini-css-extract-plugin": "^2.10.2",
|
|
55
|
-
"node-loader": "^2.1.0",
|
|
56
|
-
"path-browserify": "^1.0.1",
|
|
57
44
|
"semver": "^7.8.5",
|
|
58
|
-
"source-map": "^0.6.1",
|
|
59
|
-
"source-map-loader": "^2.0.2",
|
|
60
|
-
"source-map-support": "^0.5.21",
|
|
61
|
-
"string-replace-loader": "^3.3.0",
|
|
62
|
-
"style-loader": "^2.0.0",
|
|
63
45
|
"tslib": "^2.8.1",
|
|
64
|
-
"umd-compat-loader": "^2.1.2",
|
|
65
|
-
"webpack": "^5.108.3",
|
|
66
|
-
"webpack-cli": "4.7.0",
|
|
67
|
-
"worker-loader": "^3.0.8",
|
|
68
46
|
"yargs": "^17.7.3"
|
|
69
47
|
},
|
|
70
48
|
"peerDependencies": {
|
|
@@ -76,10 +54,10 @@
|
|
|
76
54
|
}
|
|
77
55
|
},
|
|
78
56
|
"devDependencies": {
|
|
79
|
-
"@theia/ext-scripts": "1.
|
|
57
|
+
"@theia/ext-scripts": "1.75.0"
|
|
80
58
|
},
|
|
81
59
|
"nyc": {
|
|
82
60
|
"extends": "../../configs/nyc.json"
|
|
83
61
|
},
|
|
84
|
-
"gitHead": "
|
|
62
|
+
"gitHead": "6d8e911f05f0fd9a13d76797e79b21ee3f038bc2"
|
|
85
63
|
}
|
|
@@ -19,6 +19,8 @@ import * as fs from 'fs-extra';
|
|
|
19
19
|
import * as cp from 'child_process';
|
|
20
20
|
import * as semver from 'semver';
|
|
21
21
|
import { ApplicationPackage, ApplicationPackageOptions } from '@theia/application-package';
|
|
22
|
+
import { prepareBrowserOnlyPlugins } from './browser-only/prepare-browser-only-plugins';
|
|
23
|
+
import { writeBrowserOnlyExtensionsList } from './browser-only/write-browser-only-extensions-list';
|
|
22
24
|
import { BundlerGenerator, FrontendGenerator, BackendGenerator } from './generator';
|
|
23
25
|
import { ApplicationProcess } from './application-process';
|
|
24
26
|
import { GeneratorOptions } from './generator/abstract-generator';
|
|
@@ -77,8 +79,9 @@ export class ApplicationPackageManager {
|
|
|
77
79
|
await Promise.all([
|
|
78
80
|
this.remove(this.pck.lib()),
|
|
79
81
|
this.remove(this.pck.srcGen()),
|
|
80
|
-
|
|
81
|
-
this.remove(
|
|
82
|
+
// Generated by Theia < 1.75.0, when the application was still bundled with webpack.
|
|
83
|
+
this.remove(this.pck.path('gen-webpack.config.js')),
|
|
84
|
+
this.remove(this.pck.path('gen-webpack.node.config.js')),
|
|
82
85
|
this.remove(bundlerGenerator.genESBuildBrowserPath),
|
|
83
86
|
this.remove(bundlerGenerator.genESBuildNodePath),
|
|
84
87
|
this.remove(bundlerGenerator.genESBuildElectronPath),
|
|
@@ -111,18 +114,23 @@ export class ApplicationPackageManager {
|
|
|
111
114
|
async copy(): Promise<void> {
|
|
112
115
|
await fs.ensureDir(this.pck.lib('frontend'));
|
|
113
116
|
await fs.copy(this.pck.frontend('index.html'), this.pck.lib('frontend', 'index.html'));
|
|
117
|
+
|
|
118
|
+
if (this.pck.isBrowserOnly()) {
|
|
119
|
+
await this.prepareBrowserOnly();
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
protected async prepareBrowserOnly(): Promise<void> {
|
|
124
|
+
await prepareBrowserOnlyPlugins(this.pck);
|
|
125
|
+
await writeBrowserOnlyExtensionsList(this.pck);
|
|
114
126
|
}
|
|
115
127
|
|
|
116
128
|
async build(args: string[] = [], options: GeneratorOptions = {}): Promise<void> {
|
|
117
129
|
const bundlerGenerator = new BundlerGenerator(this.pck);
|
|
118
130
|
await this.generate(options);
|
|
119
131
|
await this.copy();
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
return this.__process.promisify('esbuild', process);
|
|
123
|
-
} else {
|
|
124
|
-
return this.__process.run('webpack', args);
|
|
125
|
-
}
|
|
132
|
+
const process = this.__process.spawn('node', [bundlerGenerator.esbuildPath, ...args]);
|
|
133
|
+
return this.__process.promisify('esbuild', process);
|
|
126
134
|
}
|
|
127
135
|
|
|
128
136
|
start(args: string[] = []): cp.ChildProcess {
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
// *****************************************************************************
|
|
2
|
+
// Copyright (C) 2026 Maksim Kachurin 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 { expect } from 'chai';
|
|
18
|
+
import * as fs from 'fs-extra';
|
|
19
|
+
import * as os from 'os';
|
|
20
|
+
import * as path from 'path';
|
|
21
|
+
import { pathToFileURL } from 'url';
|
|
22
|
+
import { PLUGINS_BASE_PATH } from '@theia/plugin-utils/lib/common/constants';
|
|
23
|
+
import type { PluginManifest } from '@theia/plugin-utils/lib/common/manifest-types';
|
|
24
|
+
import {
|
|
25
|
+
resolvePluginEntryFileSync,
|
|
26
|
+
resolvePluginRoot,
|
|
27
|
+
shouldCopyPluginPath,
|
|
28
|
+
shouldIncludePluginInBrowserOnlyBuild,
|
|
29
|
+
getBrowserOnlySkipReason,
|
|
30
|
+
toHostedPluginUri,
|
|
31
|
+
} from './prepare-browser-only-plugins';
|
|
32
|
+
|
|
33
|
+
describe('prepare-browser-only-plugins helpers', () => {
|
|
34
|
+
|
|
35
|
+
let tmpRoot: string;
|
|
36
|
+
|
|
37
|
+
beforeEach(async () => {
|
|
38
|
+
tmpRoot = await fs.mkdtemp(path.join(os.tmpdir(), 'theia-prepare-plugins-'));
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
afterEach(async () => {
|
|
42
|
+
await fs.remove(tmpRoot);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe('resolvePluginRoot', () => {
|
|
46
|
+
it('resolves root, extension/, and package/ layouts (root wins)', async () => {
|
|
47
|
+
await fs.writeJson(path.join(tmpRoot, 'package.json'), { name: 'direct' });
|
|
48
|
+
expect(resolvePluginRoot(tmpRoot)).to.equal(tmpRoot);
|
|
49
|
+
|
|
50
|
+
await fs.ensureDir(path.join(tmpRoot, 'extension'));
|
|
51
|
+
await fs.writeJson(path.join(tmpRoot, 'extension', 'package.json'), { name: 'nested' });
|
|
52
|
+
expect(resolvePluginRoot(tmpRoot)).to.equal(tmpRoot);
|
|
53
|
+
|
|
54
|
+
const onlyExt = path.join(tmpRoot, 'only-ext');
|
|
55
|
+
await fs.ensureDir(path.join(onlyExt, 'extension'));
|
|
56
|
+
await fs.writeJson(path.join(onlyExt, 'extension', 'package.json'), { name: 'ext' });
|
|
57
|
+
expect(resolvePluginRoot(onlyExt)).to.equal(path.join(onlyExt, 'extension'));
|
|
58
|
+
|
|
59
|
+
const onlyPkg = path.join(tmpRoot, 'only-pkg');
|
|
60
|
+
await fs.ensureDir(path.join(onlyPkg, 'package'));
|
|
61
|
+
await fs.writeJson(path.join(onlyPkg, 'package', 'package.json'), { name: 'pkg' });
|
|
62
|
+
expect(resolvePluginRoot(onlyPkg)).to.equal(path.join(onlyPkg, 'package'));
|
|
63
|
+
|
|
64
|
+
expect(resolvePluginRoot(path.join(tmpRoot, 'empty'))).to.equal(undefined);
|
|
65
|
+
});
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
describe('shouldIncludePluginInBrowserOnlyBuild', () => {
|
|
69
|
+
it('includes frontend/browser and declarative contributes; excludes backend-only even with contributes', () => {
|
|
70
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
71
|
+
name: 'fe', version: '1', packagePath: '', theiaPlugin: { frontend: 'lib/fe.js' },
|
|
72
|
+
})).to.equal(true);
|
|
73
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
74
|
+
name: 'br', version: '1', packagePath: '', browser: 'dist/br.js',
|
|
75
|
+
})).to.equal(true);
|
|
76
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
77
|
+
name: 'both', version: '1', packagePath: '', main: 'lib/node.js', browser: 'dist/br.js',
|
|
78
|
+
})).to.equal(true);
|
|
79
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
80
|
+
name: 'themes', version: '1', packagePath: '',
|
|
81
|
+
contributes: { themes: [{ path: './theme.json' }] },
|
|
82
|
+
} as PluginManifest)).to.equal(true);
|
|
83
|
+
|
|
84
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
85
|
+
name: '', version: '1', packagePath: '', browser: 'x.js',
|
|
86
|
+
})).to.equal(false);
|
|
87
|
+
expect(getBrowserOnlySkipReason({
|
|
88
|
+
name: '', version: '1', packagePath: '', browser: 'x.js',
|
|
89
|
+
})).to.equal('malformed');
|
|
90
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
91
|
+
name: 'be', version: '1', packagePath: '', theiaPlugin: { backend: 'lib/node.js' },
|
|
92
|
+
})).to.equal(false);
|
|
93
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
94
|
+
name: 'git', version: '1', packagePath: '', main: './out/main.js',
|
|
95
|
+
contributes: { commands: [{ command: 'git.status', title: 'Status' }] },
|
|
96
|
+
} as PluginManifest)).to.equal(false);
|
|
97
|
+
expect(shouldIncludePluginInBrowserOnlyBuild({
|
|
98
|
+
name: 'empty', version: '1', packagePath: '', contributes: {},
|
|
99
|
+
} as PluginManifest)).to.equal(false);
|
|
100
|
+
expect(getBrowserOnlySkipReason({
|
|
101
|
+
name: 'empty', version: '1', packagePath: '', contributes: {},
|
|
102
|
+
} as PluginManifest)).to.equal('no-browser-surface');
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
describe('resolvePluginEntryFileSync', () => {
|
|
107
|
+
it('resolves exact, extensionless, and .js→.cjs/.mjs fallbacks', async () => {
|
|
108
|
+
const exact = path.join(tmpRoot, 'main.js');
|
|
109
|
+
await fs.writeFile(exact, '');
|
|
110
|
+
expect(resolvePluginEntryFileSync(exact)).to.equal(exact);
|
|
111
|
+
|
|
112
|
+
const base = path.join(tmpRoot, 'entry');
|
|
113
|
+
await fs.writeFile(`${base}.js`, '');
|
|
114
|
+
expect(resolvePluginEntryFileSync(base)).to.equal(`${base}.js`);
|
|
115
|
+
|
|
116
|
+
const bothJs = path.join(tmpRoot, 'both.js');
|
|
117
|
+
const bothCjs = path.join(tmpRoot, 'both.cjs');
|
|
118
|
+
await fs.writeFile(bothJs, '');
|
|
119
|
+
await fs.writeFile(bothCjs, '');
|
|
120
|
+
expect(resolvePluginEntryFileSync(bothJs)).to.equal(bothJs);
|
|
121
|
+
|
|
122
|
+
const onlyCjs = path.join(tmpRoot, 'cjs-only.js');
|
|
123
|
+
await fs.writeFile(path.join(tmpRoot, 'cjs-only.cjs'), '');
|
|
124
|
+
expect(resolvePluginEntryFileSync(onlyCjs)).to.equal(path.join(tmpRoot, 'cjs-only.cjs'));
|
|
125
|
+
|
|
126
|
+
const onlyMjs = path.join(tmpRoot, 'mjs-only.js');
|
|
127
|
+
await fs.writeFile(path.join(tmpRoot, 'mjs-only.mjs'), '');
|
|
128
|
+
expect(resolvePluginEntryFileSync(onlyMjs)).to.equal(path.join(tmpRoot, 'mjs-only.mjs'));
|
|
129
|
+
|
|
130
|
+
expect(resolvePluginEntryFileSync(path.join(tmpRoot, 'missing.js'))).to.equal(undefined);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
describe('toHostedPluginUri', () => {
|
|
135
|
+
it('rewrites file URIs under the plugin root; leaves others alone', () => {
|
|
136
|
+
const pluginRoot = path.join(tmpRoot, 'my-plugin');
|
|
137
|
+
const nested = path.join(pluginRoot, 'media', 'icon.png');
|
|
138
|
+
expect(toHostedPluginUri(pathToFileURL(nested).href, pluginRoot, 'id')).to.equal(
|
|
139
|
+
`${PLUGINS_BASE_PATH}/id/media/icon.png`
|
|
140
|
+
);
|
|
141
|
+
expect(toHostedPluginUri(pathToFileURL(pluginRoot).href, pluginRoot, 'id')).to.equal(
|
|
142
|
+
`${PLUGINS_BASE_PATH}/id/`
|
|
143
|
+
);
|
|
144
|
+
expect(toHostedPluginUri('https://example.com/icon.png', pluginRoot, 'id')).to.equal(
|
|
145
|
+
'https://example.com/icon.png'
|
|
146
|
+
);
|
|
147
|
+
|
|
148
|
+
const outside = path.join(tmpRoot, 'other', 'license.txt');
|
|
149
|
+
const outsideUri = pathToFileURL(outside).href;
|
|
150
|
+
expect(toHostedPluginUri(outsideUri, pluginRoot, 'id')).to.equal(outsideUri);
|
|
151
|
+
|
|
152
|
+
// Sibling prefix must not match (`/plugin` vs `/plugin-evil`).
|
|
153
|
+
const sibling = path.join(tmpRoot, 'my-plugin-evil', 'readme.md');
|
|
154
|
+
const siblingUri = pathToFileURL(sibling).href;
|
|
155
|
+
expect(toHostedPluginUri(siblingUri, pluginRoot, 'id')).to.equal(siblingUri);
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
|
|
159
|
+
describe('shouldCopyPluginPath', () => {
|
|
160
|
+
it('allows plugin files and skips nested node_modules/.git even when root sits under node_modules', () => {
|
|
161
|
+
// Mimics post-realpath absolute paths under a workspace node_modules tree.
|
|
162
|
+
const pluginRoot = path.join(tmpRoot, 'node_modules', 'hosted', 'my-plugin');
|
|
163
|
+
expect(shouldCopyPluginPath(path.join(pluginRoot, 'dist', 'ext.js'), pluginRoot)).to.equal(true);
|
|
164
|
+
expect(shouldCopyPluginPath(pluginRoot, pluginRoot)).to.equal(true);
|
|
165
|
+
expect(shouldCopyPluginPath(path.join(pluginRoot, 'node_modules', 'dep', 'index.js'), pluginRoot)).to.equal(false);
|
|
166
|
+
expect(shouldCopyPluginPath(path.join(pluginRoot, '.git', 'config'), pluginRoot)).to.equal(false);
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
});
|