mirror of
https://github.com/coder/code-server.git
synced 2025-07-24 01:48:22 +08:00

* Update Code to 1.94.2 * Convert from yarn to npm This is to match VS Code. We were already partially using npm for the releases so this is some nice alignment. * Update caniuse-lite This was complaining on every unit test. * Update eslint I was having a bunch of dependency conflicts and eslint seemed to be the culprit so I just removed it and set it up again, since it seems things have changed quite a bit. * Update test dependencies I was getting oom when running the unit tests...updating seems to work. * Remove package.json `scripts` property in release The new pre-install script was being included, which is dev-only. This was always the intent; did not realize jq's merge was recursive. * Remove jest and devDependencies in release as well * Update test extension dependencies This appears to be conflicting with the root dependencies. * Fix playwright exec npm does not let you run binaries like yarn does, as far as I know. * Fix import of server-main.js * Fix several tests by waiting for selectors
93 lines
4.5 KiB
Diff
93 lines
4.5 KiB
Diff
Add Open VSX default and an env var for marketplace, fix old marketplace
|
|
|
|
Our old marketplace only supports `serviceUrl` but this causes the marketplace
|
|
to be disabled entirely so this moves the template var check to fix that.
|
|
|
|
This also removes serverRootPath from the web extension route because that will
|
|
include the commit. When you update code-server (including this update) the web
|
|
extension will continue using the old path since it is stored in the browser but
|
|
the path will 404 because the commit no longer matches. This change is only to
|
|
support current installations though because this patch also removes the
|
|
in-between and has web extensions install directly from the marketplace.
|
|
|
|
This can be tested by setting EXTENSIONS_GALLERY set to:
|
|
|
|
'{"serviceUrl": "https://my-extensions/api"}'
|
|
|
|
|
|
Index: code-server/lib/vscode/src/vs/platform/product/common/product.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/platform/product/common/product.ts
|
|
+++ code-server/lib/vscode/src/vs/platform/product/common/product.ts
|
|
@@ -47,6 +47,16 @@ else if (globalThis._VSCODE_PRODUCT_JSON
|
|
version: pkg.version
|
|
});
|
|
}
|
|
+
|
|
+ Object.assign(product, {
|
|
+ extensionsGallery: env.EXTENSIONS_GALLERY ? JSON.parse(env.EXTENSIONS_GALLERY) : (product.extensionsGallery || {
|
|
+ serviceUrl: "https://open-vsx.org/vscode/gallery",
|
|
+ itemUrl: "https://open-vsx.org/vscode/item",
|
|
+ resourceUrlTemplate: "https://open-vsx.org/vscode/asset/{publisher}/{name}/{version}/Microsoft.VisualStudio.Code.WebResources/{path}",
|
|
+ controlUrl: "",
|
|
+ recommendationsUrl: "",
|
|
+ })
|
|
+ });
|
|
}
|
|
|
|
// Web environment or unknown
|
|
Index: code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
+++ code-server/lib/vscode/src/vs/server/node/webClientServer.ts
|
|
@@ -116,7 +116,7 @@ export class WebClientServer {
|
|
|
|
this._staticRoute = `${serverRootPath}/static`;
|
|
this._callbackRoute = `${serverRootPath}/callback`;
|
|
- this._webExtensionRoute = `${serverRootPath}/web-extension-resource`;
|
|
+ this._webExtensionRoute = `/web-extension-resource`;
|
|
}
|
|
|
|
/**
|
|
@@ -314,14 +314,7 @@ export class WebClientServer {
|
|
codeServerVersion: this._productService.codeServerVersion,
|
|
rootEndpoint: base,
|
|
embedderIdentifier: 'server-distro',
|
|
- extensionsGallery: this._webExtensionResourceUrlTemplate && this._productService.extensionsGallery ? {
|
|
- ...this._productService.extensionsGallery,
|
|
- resourceUrlTemplate: this._webExtensionResourceUrlTemplate.with({
|
|
- scheme: 'http',
|
|
- authority: remoteAuthority,
|
|
- path: `${this._webExtensionRoute}/${this._webExtensionResourceUrlTemplate.authority}${this._webExtensionResourceUrlTemplate.path}`
|
|
- }).toString(true)
|
|
- } : undefined
|
|
+ extensionsGallery: this._productService.extensionsGallery,
|
|
} satisfies Partial<IProductConfiguration>;
|
|
|
|
if (!this._environmentService.isBuilt) {
|
|
Index: code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
===================================================================
|
|
--- code-server.orig/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
+++ code-server/lib/vscode/src/vs/platform/extensionResourceLoader/common/extensionResourceLoader.ts
|
|
@@ -15,7 +15,6 @@ import { getServiceMachineId } from '../
|
|
import { IStorageService } from '../../storage/common/storage.js';
|
|
import { TelemetryLevel } from '../../telemetry/common/telemetry.js';
|
|
import { getTelemetryLevel, supportsTelemetry } from '../../telemetry/common/telemetryUtils.js';
|
|
-import { RemoteAuthorities } from '../../../base/common/network.js';
|
|
import { TargetPlatform } from '../../extensions/common/extensions.js';
|
|
|
|
const WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT = '/web-extension-resource/';
|
|
@@ -140,9 +139,9 @@ export abstract class AbstractExtensionR
|
|
}
|
|
|
|
protected _isWebExtensionResourceEndPoint(uri: URI): boolean {
|
|
- const uriPath = uri.path, serverRootPath = RemoteAuthorities.getServerRootPath();
|
|
- // test if the path starts with the server root path followed by the web extension resource end point segment
|
|
- return uriPath.startsWith(serverRootPath) && uriPath.startsWith(WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT, serverRootPath.length);
|
|
+ const uriPath = uri.path;
|
|
+ // test if the path starts with the web extension resource end point segment
|
|
+ return uriPath.startsWith(WEB_EXTENSION_RESOURCE_END_POINT_SEGMENT);
|
|
}
|
|
|
|
}
|