From c9b1849314819d33689fd1229926e6fb1a9bd606 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Sep 2022 08:36:23 -0400 Subject: [PATCH 1/3] Bump typescript from 4.8.2 to 4.8.3 (#6216) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c206996bbc..34df5c68e5 100644 --- a/package.json +++ b/package.json @@ -429,7 +429,7 @@ "typed-emitter": "^1.4.0", "typedoc": "0.23.14", "typedoc-plugin-markdown": "^3.13.1", - "typescript": "^4.8.2", + "typescript": "^4.8.3", "typescript-plugin-css-modules": "^3.4.0", "webpack": "^5.74.0", "webpack-cli": "^4.9.2", diff --git a/yarn.lock b/yarn.lock index d753fda2fb..2fcacf8460 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12639,10 +12639,10 @@ typescript-plugin-css-modules@^3.4.0: stylus "^0.54.8" tsconfig-paths "^3.9.0" -typescript@^4.8.2: - version "4.8.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" - integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw== +typescript@^4.8.3: + version "4.8.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.3.tgz#d59344522c4bc464a65a730ac695007fdb66dd88" + integrity sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig== typical@^4.0.0: version "4.0.0" From 2d6239123b4f32696e70c9bd09e9279c61a89a80 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Fri, 9 Sep 2022 16:15:28 +0300 Subject: [PATCH 2/3] Install all extensions via package.json (#6214) --- .../extension-discovery.ts | 28 +++++-------------- .../extension-installer.ts | 4 +-- 2 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/extensions/extension-discovery/extension-discovery.ts b/src/extensions/extension-discovery/extension-discovery.ts index 40df43ebdf..0d20db7d60 100644 --- a/src/extensions/extension-discovery/extension-discovery.ts +++ b/src/extensions/extension-discovery/extension-discovery.ts @@ -390,28 +390,11 @@ export class ExtensionDiscovery { async ensureExtensions(): Promise> { const bundledExtensions = await this.loadBundledExtensions(); - - await this.installBundledPackages(this.packageJsonPath, bundledExtensions); - const userExtensions = await this.loadFromFolder(this.localFolderPath, bundledExtensions.map((extension) => extension.manifest.name)); - - for (const extension of userExtensions) { - if (!(await this.dependencies.pathExists(extension.manifestPath))) { - try { - await this.dependencies.installExtension(extension.absolutePath); - } catch (error) { - const message = error instanceof Error - ? error.message - : String(error || "unknown error"); - const { name, version } = extension.manifest; - - this.dependencies.logger.error(`${logModule}: failed to install user extension ${name}@${version}: ${message}`); - } - } - } - const extensions = bundledExtensions.concat(userExtensions); + await this.installBundledPackages(this.packageJsonPath, extensions); + return this.extensions = new Map(extensions.map(extension => [extension.id, extension])); } @@ -420,10 +403,13 @@ export class ExtensionDiscovery { */ installBundledPackages(packageJsonPath: string, extensions: InstalledExtension[]): Promise { const dependencies = Object.fromEntries( - extensions.map(extension => [extension.manifest.name, extension.absolutePath]), + extensions.filter(extension => extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]), + ); + const optionalDependencies = Object.fromEntries( + extensions.filter(extension => !extension.isBundled).map(extension => [extension.manifest.name, extension.absolutePath]), ); - return this.dependencies.installExtensions(packageJsonPath, { dependencies }); + return this.dependencies.installExtensions(packageJsonPath, { dependencies, optionalDependencies }); } async loadBundledExtensions(): Promise { diff --git a/src/extensions/extension-installer/extension-installer.ts b/src/extensions/extension-installer/extension-installer.ts index a2781f15bc..1764435a54 100644 --- a/src/extensions/extension-installer/extension-installer.ts +++ b/src/extensions/extension-installer/extension-installer.ts @@ -42,7 +42,7 @@ export class ExtensionInstaller { }); logger.info(`${logModule} installing dependencies at ${this.dependencies.extensionPackageRootDirectory}`); - await this.npm(["install", "--no-audit", "--only=prod", "--prefer-offline", "--no-package-lock"]); + await this.npm(["install", "--audit=false", "--fund=false", "--only=prod", "--prefer-offline"]); logger.info(`${logModule} dependencies installed at ${this.dependencies.extensionPackageRootDirectory}`); } finally { this.installLock.release(); @@ -58,7 +58,7 @@ export class ExtensionInstaller { try { logger.info(`${logModule} installing package from ${name} to ${this.dependencies.extensionPackageRootDirectory}`); - await this.npm(["install", "--no-audit", "--only=prod", "--package-lock=false", "--prefer-offline", "--no-package-lock", name]); + await this.npm(["install", "--audit=false", "--fund=false", "--only=prod", "--prefer-offline", name]); logger.info(`${logModule} package ${name} installed to ${this.dependencies.extensionPackageRootDirectory}`); } finally { this.installLock.release(); From 23cb231c8f46f0defba007806657c102a55298ab Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Fri, 9 Sep 2022 16:05:16 -0400 Subject: [PATCH 3/3] Fix discovering extensions with with scopes (#6221) --- src/extensions/extension-discovery/extension-discovery.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/extensions/extension-discovery/extension-discovery.ts b/src/extensions/extension-discovery/extension-discovery.ts index 0d20db7d60..e6f500805a 100644 --- a/src/extensions/extension-discovery/extension-discovery.ts +++ b/src/extensions/extension-discovery/extension-discovery.ts @@ -363,7 +363,8 @@ export class ExtensionDiscovery { const id = this.getInstalledManifestPath(manifest.name); const isEnabled = this.dependencies.extensionsStore.isEnabled({ id, isBundled }); const extensionDir = path.dirname(manifestPath); - const npmPackage = path.join(extensionDir, `${manifest.name}-${manifest.version}.tgz`); + const packedName = manifest.name.replaceAll("@", "").replaceAll("/", "-"); + const npmPackage = path.join(extensionDir, `${packedName}-${manifest.version}.tgz`); const absolutePath = (isProduction && await this.dependencies.pathExists(npmPackage)) ? npmPackage : extensionDir; const isCompatible = isBundled || this.dependencies.isCompatibleExtension(manifest);