From 33b33fbab94e0d21350f59134a553664c1caa895 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 14 Oct 2024 21:16:08 -0400 Subject: [PATCH 01/18] initial vsc proxy work Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../src/profiles/ZoweExplorerZosmfApi.ts | 3 +++ .../src/vscode/ZoweVsCodeExtension.ts | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts index c2fad23677..ee22a94d00 100644 --- a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts +++ b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts @@ -20,6 +20,7 @@ import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; import { MainframeInteraction } from "../extend/MainframeInteraction"; import { FileManagement } from "../utils"; import { Types } from "../Types"; +import { ZoweVsCodeExtension } from "../vscode"; /** * Implementations of Zowe Explorer API for z/OSMF profiles @@ -56,6 +57,8 @@ export namespace ZoweExplorerZosmf { imperative.Logger.getAppLogger().error(error as string); } } + const VsCodeProxySettings = ZoweVsCodeExtension.getVsCodeProxySettings(); + this.session.ProxyVariables = VsCodeProxySettings; return this.session; } diff --git a/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts b/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts index 080d68422b..778265f8c7 100644 --- a/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts +++ b/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts @@ -282,6 +282,24 @@ export class ZoweVsCodeExtension { return true; } + public static async getVsCodeProxySettings(): Promise<{}> { + const proxySupport = (await vscode.workspace.getConfiguration("http").get("proxySupport")) || undefined; + if (proxySupport !== "on") { + return; + } + const noProxy = (await vscode.workspace.getConfiguration("http").get("noProxy")) || undefined; + const strictSsl = (await vscode.workspace.getConfiguration("http").get("proxyStrictSSL")) || undefined; + const proxyAuth = (await vscode.workspace.getConfiguration("http").get("proxyAuthorization")) || undefined; + const proxy = (await vscode.workspace.getConfiguration("http").get("proxy")) || undefined; + return { + http_proxy: proxy, + https_proxy: proxy, + no_proxy: noProxy, + proxy_authorization: proxyAuth, + proxy_strict_ssl: strictSsl, + }; + } + /** * This method is intended to be used for authentication (login, logout) purposes * From d536f51dd4334af343c41fb930a4fcca11153dfe Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 30 Oct 2024 10:38:05 -0400 Subject: [PATCH 02/18] fix circ dependency issues Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../src/profiles/ZoweExplorerZosmfApi.ts | 8 ++-- .../src/vscode/ZoweVsCodeExtension.ts | 22 +-------- .../src/vscode/doc/VscSettings.ts | 46 +++++++++++++++++++ 3 files changed, 53 insertions(+), 23 deletions(-) create mode 100644 packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts diff --git a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts index ee22a94d00..950c58bad6 100644 --- a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts +++ b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts @@ -20,7 +20,7 @@ import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; import { MainframeInteraction } from "../extend/MainframeInteraction"; import { FileManagement } from "../utils"; import { Types } from "../Types"; -import { ZoweVsCodeExtension } from "../vscode"; +import { VscSettings } from "../vscode/doc/VscSettings"; /** * Implementations of Zowe Explorer API for z/OSMF profiles @@ -57,8 +57,10 @@ export namespace ZoweExplorerZosmf { imperative.Logger.getAppLogger().error(error as string); } } - const VsCodeProxySettings = ZoweVsCodeExtension.getVsCodeProxySettings(); - this.session.ProxyVariables = VsCodeProxySettings; + const VsCodeProxySettings = new Promise((resolve) => { + resolve(VscSettings.getVsCodeProxySettings()); + }); + // this.session.proxy = VsCodeProxySettings; return this.session; } diff --git a/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts b/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts index 778265f8c7..015619fee7 100644 --- a/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts +++ b/packages/zowe-explorer-api/src/vscode/ZoweVsCodeExtension.ts @@ -11,13 +11,13 @@ import * as semver from "semver"; import * as vscode from "vscode"; -import { ProfilesCache } from "../profiles"; +import { ProfilesCache } from "../profiles/ProfilesCache"; import { Login, Logout } from "@zowe/core-for-zowe-sdk"; import * as imperative from "@zowe/imperative"; import { Gui } from "../globals/Gui"; import { PromptCredentialsOptions } from "./doc/PromptCredentials"; import { Types } from "../Types"; -import { BaseProfileAuthOptions } from "./doc"; +import { BaseProfileAuthOptions } from "./doc/BaseProfileAuth"; /** * Collection of utility functions for writing Zowe Explorer VS Code extensions. @@ -282,24 +282,6 @@ export class ZoweVsCodeExtension { return true; } - public static async getVsCodeProxySettings(): Promise<{}> { - const proxySupport = (await vscode.workspace.getConfiguration("http").get("proxySupport")) || undefined; - if (proxySupport !== "on") { - return; - } - const noProxy = (await vscode.workspace.getConfiguration("http").get("noProxy")) || undefined; - const strictSsl = (await vscode.workspace.getConfiguration("http").get("proxyStrictSSL")) || undefined; - const proxyAuth = (await vscode.workspace.getConfiguration("http").get("proxyAuthorization")) || undefined; - const proxy = (await vscode.workspace.getConfiguration("http").get("proxy")) || undefined; - return { - http_proxy: proxy, - https_proxy: proxy, - no_proxy: noProxy, - proxy_authorization: proxyAuth, - proxy_strict_ssl: strictSsl, - }; - } - /** * This method is intended to be used for authentication (login, logout) purposes * diff --git a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts new file mode 100644 index 0000000000..4cbb4ef157 --- /dev/null +++ b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts @@ -0,0 +1,46 @@ +/** + * This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-v20.html + * + * SPDX-License-Identifier: EPL-2.0 + * + * Copyright Contributors to the Zowe Project. + * + */ + +import * as vscode from "vscode"; + +export class VscSettings { + /** + * Retrieves a generic setting either in user or workspace. + * @param {string} key - The config property that needs retrieving + * @param {T} defaultValue - Default value if config property is undefined + */ + public static getDirectValue(key: string, defaultValue?: T): T { + const [first, ...rest] = key.split("."); + return vscode.workspace.getConfiguration(first).get(rest.join("."), defaultValue); + } + + // create mock ProxyVariables + public static proxyVars: { + http_proxy: string; + https_proxy: string; + no_proxy: string[]; + proxy_authorization: string; + proxy_strict_ssl: boolean; + }; + // Return will be Promise + // eslint-disable-next-line @typescript-eslint/explicit-function-return-type + public static getVsCodeProxySettings() { + const proxySupport = this.getDirectValue("http.proxySupport"); + if (proxySupport !== "on") { + return; + } + this.proxyVars.no_proxy = this.getDirectValue("http.noProxy"); + this.proxyVars.proxy_strict_ssl = this.getDirectValue("http.proxyStrictSSL"); + this.proxyVars.proxy_authorization = this.getDirectValue("http.proxyAuthorization"); + this.proxyVars.http_proxy = this.proxyVars.https_proxy = this.getDirectValue("http.proxy"); + return this.proxyVars; + } +} From b88c615d504446e31cdc4b7f5fc887ddd6a0eaf5 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 30 Oct 2024 14:53:24 -0400 Subject: [PATCH 03/18] update zosmf session obtaining methods Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../src/profiles/ZoweExplorerZosmfApi.ts | 10 ++++++---- .../zowe-explorer-api/src/vscode/doc/VscSettings.ts | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts index 950c58bad6..f62df535ca 100644 --- a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts +++ b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts @@ -45,6 +45,9 @@ export namespace ZoweExplorerZosmf { const sessCfg = zosmf.ZosmfSession.createSessCfgFromArgs(cmdArgs); imperative.ConnectionPropsForSessCfg.resolveSessCfgProps(sessCfg, cmdArgs); const sessionToUse = new imperative.Session(sessCfg); + const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); + // will be able to uncomment following line and assign with CLI udpates + // sessionToUse.ISession.proxy = VsCodeProxySettings; return sessionToUse; } @@ -57,10 +60,9 @@ export namespace ZoweExplorerZosmf { imperative.Logger.getAppLogger().error(error as string); } } - const VsCodeProxySettings = new Promise((resolve) => { - resolve(VscSettings.getVsCodeProxySettings()); - }); - // this.session.proxy = VsCodeProxySettings; + const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); + // will be able to uncomment following line and assign with CLI udpates + // this.session.ISession.proxy = VsCodeProxySettings; return this.session; } diff --git a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts index 4cbb4ef157..cc27866407 100644 --- a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts +++ b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts @@ -22,7 +22,7 @@ export class VscSettings { return vscode.workspace.getConfiguration(first).get(rest.join("."), defaultValue); } - // create mock ProxyVariables + // create mock ProxyVariables, able to remove after CLI changes adopted public static proxyVars: { http_proxy: string; https_proxy: string; From 7cd69de86b11234d6792141b3f120fd084795503 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Fri, 1 Nov 2024 12:23:41 -0400 Subject: [PATCH 04/18] update workflow and fix some unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../ZoweExplorerZosmfApi.unit.test.ts | 390 +++++++++--------- .../ZoweExplorerZosmfApi.unit.test.ts.snap | 4 + .../src/profiles/ProfilesCache.ts | 8 + .../src/profiles/ZoweExplorerZosmfApi.ts | 10 +- 4 files changed, 218 insertions(+), 194 deletions(-) diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts index ca00c29803..0d310d2ce1 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts @@ -20,6 +20,7 @@ import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; import { ZoweExplorerZosmf } from "../../../src/profiles/ZoweExplorerZosmfApi"; import { FileManagement } from "../../../src/utils/FileManagement"; import { MainframeInteraction } from "../../../src/extend"; +import { ProfilesCache } from "../../../src/profiles/ProfilesCache"; type ITestApi = { [K in keyof T]: { @@ -98,10 +99,13 @@ describe("ZosmfUssApi", () => { user: "aZosmfUser", }, } as imperative.IProfileLoaded; + const exampleSession = imperative.Session.createFromUrl(new URL("http://localhost")); + exampleSession.ISession.password = exampleProfile.profile?.password; + exampleSession.ISession.user = exampleProfile.profile?.user; + jest.spyOn(ProfilesCache, "getProfileSessionWithVscProxy").mockReturnValueOnce(exampleSession as any); it("should include profile properties in the built session object", () => { const api = new ZoweExplorerZosmf.UssApi(); - const transformedProps = { ...exampleProfile.profile, hostname: exampleProfile.profile?.host }; delete transformedProps["host"]; expect((api as any)._getSession(exampleProfile).mISession).toMatchObject(transformedProps); @@ -201,216 +205,224 @@ describe("ZosmfUssApi", () => { }); }); - it("uploads a file from buffer", async () => { - const uploadFileSpy = jest.spyOn(zosfiles.Upload, "bufferToUssFile").mockImplementation(); - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const buf = Buffer.from("123abc"); - await zosmfApi.uploadFromBuffer(buf, "/some/uss/path"); - expect(uploadFileSpy).toHaveBeenCalledWith(zosmfApi.getSession(), "/some/uss/path", buf, undefined); - }); + describe("misc", () => { + fakeSession.ISession.user = fakeProfile.user; + fakeSession.ISession.password = fakeProfile.password; + fakeSession.ISession.basePath = fakeProfile.basePath; + jest.spyOn(ProfilesCache, "getProfileSessionWithVscProxy").mockReturnValue(fakeSession as any); + + it("uploads a file from buffer", async () => { + const uploadFileSpy = jest.spyOn(zosfiles.Upload, "bufferToUssFile").mockImplementation(); + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + jest.spyOn(zosmfApi, "getSession").mockReturnValue(fakeSession); + const buf = Buffer.from("123abc"); + await zosmfApi.uploadFromBuffer(buf, "/some/uss/path"); + expect(uploadFileSpy).toHaveBeenCalledWith(zosmfApi.getSession(), "/some/uss/path", buf, undefined); + }); - it("constants should be unchanged", () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - expect(zosmfApi.getProfileTypeName()).toMatchSnapshot(); - expect(zosmfApi.getTokenTypeName()).toMatchSnapshot(); - }); + it("constants should be unchanged", () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + expect(zosmfApi.getProfileTypeName()).toMatchSnapshot(); + expect(zosmfApi.getTokenTypeName()).toMatchSnapshot(); + }); - it("getSessionFromCommandArgument should build session from arguments", () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const session = zosmfApi.getSessionFromCommandArgument(fakeProfile as unknown as imperative.ICommandArguments); - expect(session).toBeDefined(); - const sessCfg: imperative.ISession = { - ...fakeProfile, - hostname: fakeProfile.host, - type: imperative.SessConstants.AUTH_TYPE_BASIC, - }; - delete sessCfg["host"]; - expect(session.ISession).toMatchObject(sessCfg); - }); + it("getSessionFromCommandArgument should build session from arguments", () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const session = zosmfApi.getSessionFromCommandArgument(fakeProfile as unknown as imperative.ICommandArguments); + expect(session).toBeDefined(); + const sessCfg: imperative.ISession = { + ...fakeProfile, + hostname: fakeProfile.host, + type: imperative.SessConstants.AUTH_TYPE_BASIC, + }; + delete sessCfg["host"]; + expect(session.ISession).toMatchObject(sessCfg); + }); - it("getSession should build session from profile with user and password", () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi({ - profile: fakeProfile, - } as unknown as imperative.IProfileLoaded); - const session = zosmfApi.getSession(); - expect(session).toBeDefined(); - const sessCfg: Partial & { hostname: string; type: string } = { - ...fakeProfile, - hostname: fakeProfile.host, - type: imperative.SessConstants.AUTH_TYPE_BASIC, - }; - delete sessCfg.host; - expect(session.ISession).toMatchObject(sessCfg); - }); + it("getSession should build session from profile with user and password", () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi({ + profile: fakeProfile, + } as unknown as imperative.IProfileLoaded); + const session = zosmfApi.getSession(); + expect(session).toBeDefined(); + const sessCfg: Partial & { hostname: string; type: string } = { + ...fakeProfile, + hostname: fakeProfile.host, + type: imperative.SessConstants.AUTH_TYPE_BASIC, + }; + delete sessCfg.host; + expect(session.ISession).toMatchObject(sessCfg); + }); - it("getSession should build session from profile with token", () => { - const fakeProfileWithToken = { - ...fakeProfile, - tokenType: imperative.SessConstants.TOKEN_TYPE_JWT, - tokenValue: "fakeToken", - }; - delete fakeProfileWithToken.user; - delete fakeProfileWithToken.password; - const zosmfApi = new ZoweExplorerZosmf.UssApi({ - profile: fakeProfileWithToken, - } as unknown as imperative.IProfileLoaded); - const session = zosmfApi.getSession(); - expect(session).toBeDefined(); - const sessCfg: Partial & { hostname: string; type: string } = { - ...fakeProfileWithToken, - hostname: fakeProfileWithToken.host, - type: imperative.SessConstants.AUTH_TYPE_TOKEN, - }; - delete sessCfg.host; - expect(session.ISession).toMatchObject(sessCfg); - }); + it("getSession should build session from profile with token", () => { + const fakeProfileWithToken = { + ...fakeProfile, + tokenType: imperative.SessConstants.TOKEN_TYPE_JWT, + tokenValue: "fakeToken", + }; + delete fakeProfileWithToken.user; + delete fakeProfileWithToken.password; + const zosmfApi = new ZoweExplorerZosmf.UssApi({ + profile: fakeProfileWithToken, + } as unknown as imperative.IProfileLoaded); + const session = zosmfApi.getSession(); + expect(session).toBeDefined(); + const sessCfg: Partial & { hostname: string; type: string } = { + ...fakeProfileWithToken, + hostname: fakeProfileWithToken.host, + type: imperative.SessConstants.AUTH_TYPE_TOKEN, + }; + delete sessCfg.host; + expect(session.ISession).toMatchObject(sessCfg); + }); - it("getSession should log error when it fails", () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi({} as unknown as imperative.IProfileLoaded); - const loggerSpy = jest.spyOn(imperative.Logger.prototype, "error").mockReturnValue(""); - const session = zosmfApi.getSession(); - expect(session).toBeUndefined(); - expect(loggerSpy).toHaveBeenCalledTimes(1); - }); + it("getSession should log error when it fails", () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi({} as unknown as imperative.IProfileLoaded); + const loggerSpy = jest.spyOn(imperative.Logger.prototype, "error").mockReturnValue(""); + const session = zosmfApi.getSession(); + expect(session).toBeUndefined(); + expect(loggerSpy).toHaveBeenCalledTimes(1); + }); - it("getStatus should validate active profile", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const checkStatusSpy = jest.spyOn(zosmf.CheckStatus, "getZosmfInfo").mockResolvedValue({}); - const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "zosmf"); - expect(status).toBe("active"); - expect(checkStatusSpy).toHaveBeenCalledTimes(1); - }); + it("getStatus should validate active profile", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const checkStatusSpy = jest.spyOn(zosmf.CheckStatus, "getZosmfInfo").mockResolvedValue({}); + const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "zosmf"); + expect(status).toBe("active"); + expect(checkStatusSpy).toHaveBeenCalledTimes(1); + }); - it("getStatus should validate inactive profile", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const checkStatusSpy = jest.spyOn(zosmf.CheckStatus, "getZosmfInfo").mockResolvedValue(undefined as unknown as zosmf.IZosmfInfoResponse); - const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "zosmf"); - expect(status).toBe("inactive"); - expect(checkStatusSpy).toHaveBeenCalledTimes(1); - }); + it("getStatus should validate inactive profile", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const checkStatusSpy = jest.spyOn(zosmf.CheckStatus, "getZosmfInfo").mockResolvedValue(undefined as unknown as zosmf.IZosmfInfoResponse); + const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "zosmf"); + expect(status).toBe("inactive"); + expect(checkStatusSpy).toHaveBeenCalledTimes(1); + }); - it("should test that copy calls zowe.Utilities.putUSSPayload", async () => { - const api = new ZoweExplorerZosmf.UssApi(); - api.getSession = jest.fn(); - const response = Buffer.from("hello world!"); + it("should test that copy calls zowe.Utilities.putUSSPayload", async () => { + const api = new ZoweExplorerZosmf.UssApi(); + api.getSession = jest.fn(); + const response = Buffer.from("hello world!"); + + Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { + value: jest.fn().mockResolvedValue(response), + configurable: true, + }); - Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { - value: jest.fn().mockResolvedValue(response), - configurable: true, + await expect(api.copy("/")).resolves.toEqual(response); }); - await expect(api.copy("/")).resolves.toEqual(response); - }); + it("getStatus should validate unverified profile", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "sample"); + expect(status).toBe("unverified"); + }); - it("getStatus should validate unverified profile", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const status = await zosmfApi.getStatus({ profile: fakeProfile } as unknown as imperative.IProfileLoaded, "sample"); - expect(status).toBe("unverified"); - }); + it("login and logout should call APIML endpoints", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const loginSpy = jest.spyOn(Login, "apimlLogin").mockResolvedValue(""); + const logoutSpy = jest.spyOn(Logout, "apimlLogout").mockResolvedValue(); - it("login and logout should call APIML endpoints", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const loginSpy = jest.spyOn(Login, "apimlLogin").mockResolvedValue(""); - const logoutSpy = jest.spyOn(Logout, "apimlLogout").mockResolvedValue(); + await zosmfApi.login(fakeSession); + expect(loginSpy).toHaveBeenCalledWith(fakeSession); - await zosmfApi.login(fakeSession); - expect(loginSpy).toHaveBeenCalledWith(fakeSession); + await zosmfApi.logout(fakeSession); + expect(logoutSpy).toHaveBeenCalledWith(fakeSession); + }); - await zosmfApi.logout(fakeSession); - expect(logoutSpy).toHaveBeenCalledWith(fakeSession); - }); + it("should retrieve the tag of a file", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + jest.spyOn(JSON, "parse").mockReturnValue({ + stdout: ["-t UTF-8 tesfile.txt"], + }); - it("should retrieve the tag of a file", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - jest.spyOn(JSON, "parse").mockReturnValue({ - stdout: ["-t UTF-8 tesfile.txt"], + Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { + value: () => Buffer.from(""), + configurable: true, + }); + await expect(zosmfApi.getTag("testfile.txt")).resolves.toEqual("UTF-8"); }); - Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { - value: () => Buffer.from(""), - configurable: true, + it("should update the tag attribute when passed in", async () => { + const zosmfApi = new ZoweExplorerZosmf.UssApi(); + const changeTagSpy = jest.fn(); + Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { + value: changeTagSpy, + configurable: true, + }); + await expect(zosmfApi.updateAttributes("/test/path", { tag: "utf-8" })).resolves.not.toThrow(); + expect(changeTagSpy).toHaveBeenCalledTimes(1); }); - await expect(zosmfApi.getTag("testfile.txt")).resolves.toEqual("UTF-8"); - }); - it("should update the tag attribute when passed in", async () => { - const zosmfApi = new ZoweExplorerZosmf.UssApi(); - const changeTagSpy = jest.fn(); - Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { - value: changeTagSpy, - configurable: true, + it("calls putUSSPayload to move a directory from old path to new path", async () => { + const api = new ZoweExplorerZosmf.UssApi(); + const putUssPayloadSpy = jest.fn(); + Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { + value: putUssPayloadSpy, + configurable: true, + }); + await expect(api.move("/old/path", "/new/path")).resolves.not.toThrow(); + expect(putUssPayloadSpy).toHaveBeenCalledWith(api.getSession(), "/new/path", { request: "move", from: "/old/path" }); }); - await expect(zosmfApi.updateAttributes("/test/path", { tag: "utf-8" })).resolves.not.toThrow(); - expect(changeTagSpy).toHaveBeenCalledTimes(1); - }); - it("calls putUSSPayload to move a directory from old path to new path", async () => { - const api = new ZoweExplorerZosmf.UssApi(); - const putUssPayloadSpy = jest.fn(); - Object.defineProperty(zosfiles.Utilities, "putUSSPayload", { - value: putUssPayloadSpy, - configurable: true, - }); - await expect(api.move("/old/path", "/new/path")).resolves.not.toThrow(); - expect(putUssPayloadSpy).toHaveBeenCalledWith(api.getSession(), "/new/path", { request: "move", from: "/old/path" }); - }); - - const ussApis: ITestApi[] = [ - { - name: "isFileTagBinOrAscii", - spy: jest.spyOn(zosfiles.Utilities, "isFileTagBinOrAscii"), - args: ["ussPath"], - }, - { - name: "fileList", - spy: jest.spyOn(zosfiles.List, "fileList"), - args: ["ussPath"], - }, - { - name: "isFileTagBinOrAscii", - spy: jest.spyOn(zosfiles.Utilities, "isFileTagBinOrAscii"), - args: ["ussPath"], - }, - { - name: "getContents", - spy: jest.spyOn(zosfiles.Download, "ussFile"), - args: ["ussPath", {}], - }, - { - name: "putContent", - spy: jest.spyOn(zosfiles.Upload, "fileToUssFile"), - args: ["localPath", "ussPath", {}], - }, - { - name: "uploadDirectory", - spy: jest.spyOn(zosfiles.Upload, "dirToUSSDirRecursive"), - args: ["localPath", "ussPath", {}], - }, - { - name: "create", - spy: jest.spyOn(zosfiles.Create, "uss"), - args: ["ussPath", "file", "777"], - }, - { - name: "delete", - spy: jest.spyOn(zosfiles.Delete, "ussFile"), - args: ["/ussPath", false], - transform: (args) => [args[0].slice(1), args[1]], - }, - { - name: "delete", - spy: jest.spyOn(zosfiles.Delete, "ussFile"), - args: ["ussPath", false], - }, - { - name: "rename", - spy: jest.spyOn(zosfiles.Utilities, "renameUSSFile"), - args: ["ussPath1", "ussPath2"], - }, - ]; - ussApis.forEach((ussApi) => { - it(`${ussApi?.name} should inject session into Zowe API`, async () => { - await expectApiWithSession(ussApi, new ZoweExplorerZosmf.UssApi()); + const ussApis: ITestApi[] = [ + { + name: "isFileTagBinOrAscii", + spy: jest.spyOn(zosfiles.Utilities, "isFileTagBinOrAscii"), + args: ["ussPath"], + }, + { + name: "fileList", + spy: jest.spyOn(zosfiles.List, "fileList"), + args: ["ussPath"], + }, + { + name: "isFileTagBinOrAscii", + spy: jest.spyOn(zosfiles.Utilities, "isFileTagBinOrAscii"), + args: ["ussPath"], + }, + { + name: "getContents", + spy: jest.spyOn(zosfiles.Download, "ussFile"), + args: ["ussPath", {}], + }, + { + name: "putContent", + spy: jest.spyOn(zosfiles.Upload, "fileToUssFile"), + args: ["localPath", "ussPath", {}], + }, + { + name: "uploadDirectory", + spy: jest.spyOn(zosfiles.Upload, "dirToUSSDirRecursive"), + args: ["localPath", "ussPath", {}], + }, + { + name: "create", + spy: jest.spyOn(zosfiles.Create, "uss"), + args: ["ussPath", "file", "777"], + }, + { + name: "delete", + spy: jest.spyOn(zosfiles.Delete, "ussFile"), + args: ["/ussPath", false], + transform: (args) => [args[0].slice(1), args[1]], + }, + { + name: "delete", + spy: jest.spyOn(zosfiles.Delete, "ussFile"), + args: ["ussPath", false], + }, + { + name: "rename", + spy: jest.spyOn(zosfiles.Utilities, "renameUSSFile"), + args: ["ussPath1", "ussPath2"], + }, + ]; + ussApis.forEach((ussApi) => { + it(`${ussApi?.name} should inject session into Zowe API`, async () => { + await expectApiWithSession(ussApi, new ZoweExplorerZosmf.UssApi()); + }); }); }); }); diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap b/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap index 54a29025af..0ec89f0c2c 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap @@ -3,3 +3,7 @@ exports[`ZosmfUssApi constants should be unchanged 1`] = `"zosmf"`; exports[`ZosmfUssApi constants should be unchanged 2`] = `"apimlAuthenticationToken"`; + +exports[`ZosmfUssApi misc constants should be unchanged 1`] = `"zosmf"`; + +exports[`ZosmfUssApi misc constants should be unchanged 2`] = `"apimlAuthenticationToken"`; diff --git a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts index 6645767c64..0b0611aca0 100644 --- a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts +++ b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts @@ -17,6 +17,7 @@ import { ZosmfProfile } from "@zowe/zosmf-for-zowe-sdk"; import { ZosTsoProfile } from "@zowe/zos-tso-for-zowe-sdk"; import { ZosUssProfile } from "@zowe/zos-uss-for-zowe-sdk"; import { Types } from "../Types"; +import { VscSettings } from "../vscode/doc/VscSettings"; export class ProfilesCache { public profilesForValidation: Validation.IValidationProfile[] = []; @@ -387,6 +388,13 @@ export class ProfilesCache { return convertResult; } + public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session { + const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); + // will be able to uncomment following line and assign with CLI udpates + // session.ISession.proxy = VsCodeProxySettings; + return session; + } + protected getCoreProfileTypes(): imperative.IProfileTypeConfiguration[] { return [ZosmfProfile, ZosTsoProfile, ZosUssProfile]; } diff --git a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts index f62df535ca..8e0b161572 100644 --- a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts +++ b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts @@ -20,7 +20,7 @@ import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; import { MainframeInteraction } from "../extend/MainframeInteraction"; import { FileManagement } from "../utils"; import { Types } from "../Types"; -import { VscSettings } from "../vscode/doc/VscSettings"; +import { ProfilesCache } from "../profiles/ProfilesCache"; /** * Implementations of Zowe Explorer API for z/OSMF profiles @@ -45,10 +45,10 @@ export namespace ZoweExplorerZosmf { const sessCfg = zosmf.ZosmfSession.createSessCfgFromArgs(cmdArgs); imperative.ConnectionPropsForSessCfg.resolveSessCfgProps(sessCfg, cmdArgs); const sessionToUse = new imperative.Session(sessCfg); - const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); + // const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); // will be able to uncomment following line and assign with CLI udpates // sessionToUse.ISession.proxy = VsCodeProxySettings; - return sessionToUse; + return ProfilesCache.getProfileSessionWithVscProxy(sessionToUse); } public getSession(profile?: imperative.IProfileLoaded): imperative.Session { @@ -60,10 +60,10 @@ export namespace ZoweExplorerZosmf { imperative.Logger.getAppLogger().error(error as string); } } - const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); + // const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); // will be able to uncomment following line and assign with CLI udpates // this.session.ISession.proxy = VsCodeProxySettings; - return this.session; + return ProfilesCache.getProfileSessionWithVscProxy(this.session); } private _getSession(serviceProfile: imperative.IProfileLoaded): imperative.Session { From d196ff7f949f1340ce651a030b4563509f68c78f Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 4 Nov 2024 09:15:49 -0500 Subject: [PATCH 05/18] fix ZE API unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts | 6 ++++++ .../__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap | 4 ---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts index 0d310d2ce1..1bc7e88a25 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ZoweExplorerZosmfApi.unit.test.ts @@ -262,6 +262,11 @@ describe("ZosmfUssApi", () => { }; delete fakeProfileWithToken.user; delete fakeProfileWithToken.password; + fakeSession.ISession.tokenType = imperative.SessConstants.TOKEN_TYPE_JWT; + fakeSession.ISession.tokenValue = "fakeToken"; + fakeSession.ISession.type = "token"; + delete fakeSession.ISession.user; + delete fakeSession.ISession.password; const zosmfApi = new ZoweExplorerZosmf.UssApi({ profile: fakeProfileWithToken, } as unknown as imperative.IProfileLoaded); @@ -277,6 +282,7 @@ describe("ZosmfUssApi", () => { }); it("getSession should log error when it fails", () => { + jest.resetAllMocks(); const zosmfApi = new ZoweExplorerZosmf.UssApi({} as unknown as imperative.IProfileLoaded); const loggerSpy = jest.spyOn(imperative.Logger.prototype, "error").mockReturnValue(""); const session = zosmfApi.getSession(); diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap b/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap index 0ec89f0c2c..ed5e893386 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/__snapshots__/ZoweExplorerZosmfApi.unit.test.ts.snap @@ -1,9 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`ZosmfUssApi constants should be unchanged 1`] = `"zosmf"`; - -exports[`ZosmfUssApi constants should be unchanged 2`] = `"apimlAuthenticationToken"`; - exports[`ZosmfUssApi misc constants should be unchanged 1`] = `"zosmf"`; exports[`ZosmfUssApi misc constants should be unchanged 2`] = `"apimlAuthenticationToken"`; From 325d9d6ae9e09f4692cde09db46d4b676924cceb Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 4 Nov 2024 11:26:49 -0500 Subject: [PATCH 06/18] fix ZE unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../__unit__/configuration/Profiles.unit.test.ts | 16 +++++++++++++++- .../trees/dataset/DatasetActions.unit.test.ts | 3 ++- .../trees/dataset/DatasetTree.unit.test.ts | 1 + 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/zowe-explorer/__tests__/__unit__/configuration/Profiles.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/configuration/Profiles.unit.test.ts index 8f82c2a620..17a5cb428b 100644 --- a/packages/zowe-explorer/__tests__/__unit__/configuration/Profiles.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/configuration/Profiles.unit.test.ts @@ -28,7 +28,17 @@ import { } from "../../__mocks__/mockCreators/shared"; import { createDatasetSessionNode, createDatasetTree } from "../../__mocks__/mockCreators/datasets"; import { createProfileManager } from "../../__mocks__/mockCreators/profiles"; -import { imperative, Gui, ZoweTreeNode, ZoweVsCodeExtension, IZoweTree, IZoweTreeNode, Validation, FileManagement } from "@zowe/zowe-explorer-api"; +import { + imperative, + Gui, + ZoweTreeNode, + ZoweVsCodeExtension, + IZoweTree, + IZoweTreeNode, + Validation, + FileManagement, + ProfilesCache, +} from "@zowe/zowe-explorer-api"; import { Profiles } from "../../../src/configuration/Profiles"; import { ZoweExplorerExtender } from "../../../src/extending/ZoweExplorerExtender"; import { ZoweExplorerApiRegister } from "../../../src/extending/ZoweExplorerApiRegister"; @@ -196,6 +206,10 @@ function createGlobalMocks(): { [key: string]: any } { }), configurable: true, }); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { + value: jest.fn().mockReturnValue(newMocks.testSession), + configurable: true, + }); newMocks.testUSSTree = createUSSTree(undefined as any, [createUSSNode(newMocks.testSession, newMocks.testProfile)], createTreeView()); diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts index 9352efd1fc..e189bae1d4 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts @@ -11,7 +11,7 @@ import * as vscode from "vscode"; import * as zosfiles from "@zowe/zos-files-for-zowe-sdk"; -import { Gui, imperative, Validation, Types } from "@zowe/zowe-explorer-api"; +import { Gui, imperative, Validation, Types, ProfilesCache } from "@zowe/zowe-explorer-api"; import { DatasetFSProvider } from "../../../../src/trees/dataset/DatasetFSProvider"; import { bindMvsApi, createMvsApi } from "../../../__mocks__/mockCreators/api"; import { @@ -132,6 +132,7 @@ const createBlockMocksShared = () => { const testDatasetTree = createDatasetTree(datasetSessionNode, treeView); const mvsApi = createMvsApi(imperativeProfile); const fetchDsAtUri = jest.spyOn(DatasetFSProvider.instance, "fetchDatasetAtUri").mockImplementation(); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { value: jest.fn().mockReturnValue(zosmfSession), configurable: true }); bindMvsApi(mvsApi); return { diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetTree.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetTree.unit.test.ts index a9610200ee..2cad36dad7 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetTree.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetTree.unit.test.ts @@ -171,6 +171,7 @@ function createGlobalMocks() { Object.defineProperty(ZoweLogger, "warn", { value: jest.fn(), configurable: true }); Object.defineProperty(ZoweLogger, "info", { value: jest.fn(), configurable: true }); Object.defineProperty(ZoweLogger, "trace", { value: jest.fn(), configurable: true }); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { value: jest.fn().mockReturnValue(createISession()), configurable: true }); return globalMocks; } From a4e823abb43b25223d2320a7c094a6ca027c9183 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 4 Nov 2024 16:45:33 -0500 Subject: [PATCH 07/18] add VscSettings unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../zowe-explorer-api/__mocks__/vscode.ts | 3 +- .../vscode/doc/VscSettings.unit.test.ts | 57 +++++++++++++++++++ .../src/profiles/ZoweExplorerZosmfApi.ts | 6 -- .../src/vscode/doc/VscSettings.ts | 25 ++++---- .../trees/dataset/DatasetActions.unit.test.ts | 2 +- 5 files changed, 72 insertions(+), 21 deletions(-) create mode 100644 packages/zowe-explorer-api/__tests__/__unit__/vscode/doc/VscSettings.unit.test.ts diff --git a/packages/zowe-explorer-api/__mocks__/vscode.ts b/packages/zowe-explorer-api/__mocks__/vscode.ts index 839decdfa3..532f340e5d 100644 --- a/packages/zowe-explorer-api/__mocks__/vscode.ts +++ b/packages/zowe-explorer-api/__mocks__/vscode.ts @@ -1096,7 +1096,7 @@ export class FileSystemError extends Error { */ export namespace workspace { export const textDocuments: TextDocument[] = []; - export function getConfiguration(_configuration: string): { update: () => void; inspect: () => void } { + export function getConfiguration(_configuration: string) { return { update: () => { return; @@ -1104,6 +1104,7 @@ export namespace workspace { inspect: () => { return {}; }, + get: () => {}, }; } diff --git a/packages/zowe-explorer-api/__tests__/__unit__/vscode/doc/VscSettings.unit.test.ts b/packages/zowe-explorer-api/__tests__/__unit__/vscode/doc/VscSettings.unit.test.ts new file mode 100644 index 0000000000..c0d88837f7 --- /dev/null +++ b/packages/zowe-explorer-api/__tests__/__unit__/vscode/doc/VscSettings.unit.test.ts @@ -0,0 +1,57 @@ +/** + * This program and the accompanying materials are made available under the terms of the + * Eclipse Public License v2.0 which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-v20.html + * + * SPDX-License-Identifier: EPL-2.0 + * + * Copyright Contributors to the Zowe Project. + * + */ + +import * as vscode from "vscode"; +import { VscSettings } from "../../../../src/vscode/doc/VscSettings"; + +function createGlobalMocks() { + const globalMocks = { + vscConfSpy: jest.spyOn(vscode.workspace, "getConfiguration"), + getConfiguration: jest.fn(), + testProxyVars: { + http_proxy: "host.com", + https_proxy: "host.com", + no_proxy: ["fake.com"], + proxy_authorization: null, + proxy_strict_ssl: true, + }, + }; + globalMocks.getConfiguration = jest.fn().mockReturnValue({ + get: jest.fn(), + }); + globalMocks.vscConfSpy.mockImplementation(globalMocks.getConfiguration); + + return globalMocks; +} + +describe("VscSettings", () => { + describe("getVsCodeProxySettings", () => { + beforeEach(() => { + jest.resetAllMocks(); + }); + it("should return undefined with VSC proxy support off", () => { + const globalMocks = createGlobalMocks(); + globalMocks.getConfiguration().get.mockReturnValueOnce("off"); + const response = VscSettings.getVsCodeProxySettings(); + expect(response).not.toBeDefined(); + }); + it("should return undefined with VSC proxy support off", () => { + const globalMocks = createGlobalMocks(); + globalMocks.getConfiguration().get.mockReturnValueOnce("on"); + globalMocks.getConfiguration().get.mockReturnValueOnce("host.com"); + globalMocks.getConfiguration().get.mockReturnValueOnce(["fake.com"]); + globalMocks.getConfiguration().get.mockReturnValueOnce(true); + globalMocks.getConfiguration().get.mockReturnValueOnce(null); + const response = VscSettings.getVsCodeProxySettings(); + expect(response).toEqual(globalMocks.testProxyVars); + }); + }); +}); diff --git a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts index 8e0b161572..769357c125 100644 --- a/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts +++ b/packages/zowe-explorer-api/src/profiles/ZoweExplorerZosmfApi.ts @@ -45,9 +45,6 @@ export namespace ZoweExplorerZosmf { const sessCfg = zosmf.ZosmfSession.createSessCfgFromArgs(cmdArgs); imperative.ConnectionPropsForSessCfg.resolveSessCfgProps(sessCfg, cmdArgs); const sessionToUse = new imperative.Session(sessCfg); - // const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); - // will be able to uncomment following line and assign with CLI udpates - // sessionToUse.ISession.proxy = VsCodeProxySettings; return ProfilesCache.getProfileSessionWithVscProxy(sessionToUse); } @@ -60,9 +57,6 @@ export namespace ZoweExplorerZosmf { imperative.Logger.getAppLogger().error(error as string); } } - // const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); - // will be able to uncomment following line and assign with CLI udpates - // this.session.ISession.proxy = VsCodeProxySettings; return ProfilesCache.getProfileSessionWithVscProxy(this.session); } diff --git a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts index cc27866407..bf8b866de6 100644 --- a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts +++ b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts @@ -22,14 +22,6 @@ export class VscSettings { return vscode.workspace.getConfiguration(first).get(rest.join("."), defaultValue); } - // create mock ProxyVariables, able to remove after CLI changes adopted - public static proxyVars: { - http_proxy: string; - https_proxy: string; - no_proxy: string[]; - proxy_authorization: string; - proxy_strict_ssl: boolean; - }; // Return will be Promise // eslint-disable-next-line @typescript-eslint/explicit-function-return-type public static getVsCodeProxySettings() { @@ -37,10 +29,17 @@ export class VscSettings { if (proxySupport !== "on") { return; } - this.proxyVars.no_proxy = this.getDirectValue("http.noProxy"); - this.proxyVars.proxy_strict_ssl = this.getDirectValue("http.proxyStrictSSL"); - this.proxyVars.proxy_authorization = this.getDirectValue("http.proxyAuthorization"); - this.proxyVars.http_proxy = this.proxyVars.https_proxy = this.getDirectValue("http.proxy"); - return this.proxyVars; + const http_proxy = this.getDirectValue("http.proxy"); + const no_proxy = this.getDirectValue("http.noProxy"); + const proxy_strict_ssl = this.getDirectValue("http.proxyStrictSSL"); + const proxy_authorization = this.getDirectValue("http.proxyAuthorization"); + + return { + http_proxy, + https_proxy: http_proxy, + no_proxy, + proxy_authorization, + proxy_strict_ssl, + }; } } diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts index e189bae1d4..175c0a7e8b 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/dataset/DatasetActions.unit.test.ts @@ -132,8 +132,8 @@ const createBlockMocksShared = () => { const testDatasetTree = createDatasetTree(datasetSessionNode, treeView); const mvsApi = createMvsApi(imperativeProfile); const fetchDsAtUri = jest.spyOn(DatasetFSProvider.instance, "fetchDatasetAtUri").mockImplementation(); - Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { value: jest.fn().mockReturnValue(zosmfSession), configurable: true }); bindMvsApi(mvsApi); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { value: jest.fn().mockReturnValue(zosmfSession), configurable: true }); return { session, From 9907c0430f62172c43a3d75740da08e402a20ea1 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 4 Nov 2024 17:01:24 -0500 Subject: [PATCH 08/18] profilesCache unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../profiles/ProfilesCache.unit.test.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts index dbfd4a0cdb..f1c8ef8a4e 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts @@ -15,6 +15,7 @@ import * as imperative from "@zowe/imperative"; import { ProfilesCache } from "../../../src/profiles/ProfilesCache"; import { FileManagement, Types } from "../../../src"; import { mocked } from "../../../__mocks__/mockUtils"; +import { VscSettings } from "../../../src/vscode/doc/VscSettings"; jest.mock("fs"); @@ -529,6 +530,27 @@ describe("ProfilesCache", () => { }); }); + describe("getProfileSessionWithVscProxy", () => { + it("should return same session if no VSC proxy values", () => { + const fakeSession = imperative.Session.createFromUrl(new URL("https://example.com")); + jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(undefined); + expect(ProfilesCache.getProfileSessionWithVscProxy(fakeSession)).toEqual(fakeSession); + }); + // it("should return updated session if VSC proxy values", () => { + // const fakeSession = imperative.Session.createFromUrl(new URL("https://example.com")); + // const proxyValues = { + // http_proxy: "fake.com", + // https_proxy: "fake.com", + // no_proxy: ["zowe.com"], + // proxy_authorization: null, + // proxy_strict_ssl: true, + // }; + // fakeSession.ISession.proxy = proxyValues; + // jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(proxyValues); + // expect(ProfilesCache.getProfileSessionWithVscProxy(fakeSession)).toEqual(fakeSession); + // }); + }); + it("getProfileFromConfig should return profile attributes for given name", async () => { const profCache = new ProfilesCache(fakeLogger as unknown as imperative.Logger); jest.spyOn(profCache, "getProfileInfo").mockResolvedValue(createProfInfoMock([{ name: "lpar1", type: "zosmf" }])); From 3755ed1a8c5f0aec236ce8212cee05aaa28a1d13 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Mon, 4 Nov 2024 17:08:47 -0500 Subject: [PATCH 09/18] add CHANGELOGs Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-api/CHANGELOG.md | 2 ++ packages/zowe-explorer/CHANGELOG.md | 1 + 2 files changed, 3 insertions(+) diff --git a/packages/zowe-explorer-api/CHANGELOG.md b/packages/zowe-explorer-api/CHANGELOG.md index 9fb5d5010f..96dd3abb68 100644 --- a/packages/zowe-explorer-api/CHANGELOG.md +++ b/packages/zowe-explorer-api/CHANGELOG.md @@ -7,6 +7,8 @@ All notable changes to the "zowe-explorer-api" extension will be documented in t ### New features and enhancements - Update Zowe SDKs to `8.2.0` to get the latest enhancements from Imperative. +- Added support for extenders to obtain an updated Session that will includes VS Code proxy settings values if set, `getProfileSessionWithVscProxy`. [#3010](https://github.com/zowe/zowe-explorer-vscode/issues/3010) +- Added support for VS Code proxy settings with zosmf profile types. [#3010](https://github.com/zowe/zowe-explorer-vscode/issues/3010) ### Bug fixes diff --git a/packages/zowe-explorer/CHANGELOG.md b/packages/zowe-explorer/CHANGELOG.md index 7315dc1fe8..3e28adc6e7 100644 --- a/packages/zowe-explorer/CHANGELOG.md +++ b/packages/zowe-explorer/CHANGELOG.md @@ -10,6 +10,7 @@ All notable changes to the "vscode-extension-for-zowe" extension will be documen - Added expired JSON web token detection for profiles in each tree view (Data Sets, USS, Jobs). When a user performs a search on a profile, they are prompted to log in if their token expired. [#3175](https://github.com/zowe/zowe-explorer-vscode/issues/3175) - Add a data set or USS resource to a virtual workspace with the new "Add to Workspace" context menu option. [#3265](https://github.com/zowe/zowe-explorer-vscode/issues/3265) - Power users and developers can now build links to efficiently open mainframe resources in Zowe Explorer. Use the **Copy External Link** option in the context menu to get the URL for a data set or USS resource, or create a link in the format `vscode://Zowe.vscode-extension-for-zowe?`. For more information on building resource URIs, see the [FileSystemProvider wiki article](https://github.com/zowe/zowe-explorer-vscode/wiki/FileSystemProvider#file-paths-vs-uris). [#3271](https://github.com/zowe/zowe-explorer-vscode/pull/3271) +- Adopted support for VS Code proxy settings with zosmf profile types. [#3010](https://github.com/zowe/zowe-explorer-vscode/issues/3010) ### Bug fixes From 9df5df913363d50dce2b1ef9314fc807b5a18f7c Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:32:44 -0500 Subject: [PATCH 10/18] update sdks Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-api/package.json | 16 +-- .../src/profiles/ProfilesCache.ts | 3 +- .../src/vscode/doc/VscSettings.ts | 12 +- .../zowe-explorer-ftp-extension/package.json | 4 +- packages/zowe-explorer/package.json | 8 +- pnpm-lock.yaml | 122 +++++++++--------- 6 files changed, 82 insertions(+), 83 deletions(-) diff --git a/packages/zowe-explorer-api/package.json b/packages/zowe-explorer-api/package.json index f8a713dfc2..f752880d12 100644 --- a/packages/zowe-explorer-api/package.json +++ b/packages/zowe-explorer-api/package.json @@ -28,15 +28,15 @@ }, "dependencies": { "@types/vscode": "^1.53.2", - "@zowe/core-for-zowe-sdk": "^8.2.0", - "@zowe/imperative": "^8.2.0", + "@zowe/core-for-zowe-sdk": "^8.7.0", + "@zowe/imperative": "^8.7.0", "@zowe/secrets-for-zowe-sdk": "^8.1.2", - "@zowe/zos-console-for-zowe-sdk": "^8.2.0", - "@zowe/zos-files-for-zowe-sdk": "^8.2.0", - "@zowe/zos-jobs-for-zowe-sdk": "^8.2.0", - "@zowe/zos-tso-for-zowe-sdk": "^8.2.0", - "@zowe/zos-uss-for-zowe-sdk": "^8.2.0", - "@zowe/zosmf-for-zowe-sdk": "^8.2.0", + "@zowe/zos-console-for-zowe-sdk": "^8.7.0", + "@zowe/zos-files-for-zowe-sdk": "^8.7.0", + "@zowe/zos-jobs-for-zowe-sdk": "^8.7.0", + "@zowe/zos-tso-for-zowe-sdk": "^8.7.0", + "@zowe/zos-uss-for-zowe-sdk": "^8.7.0", + "@zowe/zosmf-for-zowe-sdk": "^8.7.0", "deep-object-diff": "^1.1.9", "mustache": "^4.2.0", "semver": "^7.6.0" diff --git a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts index 0b0611aca0..9a2b0ef614 100644 --- a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts +++ b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts @@ -390,8 +390,7 @@ export class ProfilesCache { public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session { const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); - // will be able to uncomment following line and assign with CLI udpates - // session.ISession.proxy = VsCodeProxySettings; + session.ISession.proxy = VsCodeProxySettings; return session; } diff --git a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts index bf8b866de6..3252ac30a8 100644 --- a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts +++ b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts @@ -10,6 +10,7 @@ */ import * as vscode from "vscode"; +import * as imperative from "@zowe/imperative"; export class VscSettings { /** @@ -22,17 +23,16 @@ export class VscSettings { return vscode.workspace.getConfiguration(first).get(rest.join("."), defaultValue); } - // Return will be Promise // eslint-disable-next-line @typescript-eslint/explicit-function-return-type - public static getVsCodeProxySettings() { + public static getVsCodeProxySettings(): imperative.ProxyVariables { const proxySupport = this.getDirectValue("http.proxySupport"); if (proxySupport !== "on") { return; } - const http_proxy = this.getDirectValue("http.proxy"); - const no_proxy = this.getDirectValue("http.noProxy"); - const proxy_strict_ssl = this.getDirectValue("http.proxyStrictSSL"); - const proxy_authorization = this.getDirectValue("http.proxyAuthorization"); + const http_proxy: string = this.getDirectValue("http.proxy"); + const no_proxy: string[] = this.getDirectValue("http.noProxy"); + const proxy_strict_ssl: boolean = this.getDirectValue("http.proxyStrictSSL"); + const proxy_authorization: string = this.getDirectValue("http.proxyAuthorization"); return { http_proxy, diff --git a/packages/zowe-explorer-ftp-extension/package.json b/packages/zowe-explorer-ftp-extension/package.json index 3a30ffcd1f..a188443066 100644 --- a/packages/zowe-explorer-ftp-extension/package.json +++ b/packages/zowe-explorer-ftp-extension/package.json @@ -52,9 +52,9 @@ "vscode": "^1.79.0" }, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "^8.2.0", + "@zowe/zos-files-for-zowe-sdk": "^8.7.0", "@zowe/zos-ftp-for-zowe-cli": "^3.0.0", - "@zowe/zos-jobs-for-zowe-sdk": "^8.2.0", + "@zowe/zos-jobs-for-zowe-sdk": "^8.7.0", "@zowe/zowe-explorer-api": "3.1.0-SNAPSHOT", "tmp": "0.2.3" }, diff --git a/packages/zowe-explorer/package.json b/packages/zowe-explorer/package.json index 2217747bf2..750bba37c5 100644 --- a/packages/zowe-explorer/package.json +++ b/packages/zowe-explorer/package.json @@ -1864,11 +1864,11 @@ }, "dependencies": { "@vscode/codicons": "^0.0.35", - "@zowe/core-for-zowe-sdk": "^8.2.0", + "@zowe/core-for-zowe-sdk": "^8.7.0", "@zowe/secrets-for-zowe-sdk": "^8.1.2", - "@zowe/zos-files-for-zowe-sdk": "^8.2.0", - "@zowe/zos-jobs-for-zowe-sdk": "^8.2.0", - "@zowe/zosmf-for-zowe-sdk": "^8.2.0", + "@zowe/zos-files-for-zowe-sdk": "^8.7.0", + "@zowe/zos-jobs-for-zowe-sdk": "^8.7.0", + "@zowe/zosmf-for-zowe-sdk": "^8.7.0", "@zowe/zowe-explorer-api": "3.1.0-SNAPSHOT", "dayjs": "^1.11.10", "fs-extra": "8.0.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ab810f064..9a296060fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -142,20 +142,20 @@ importers: specifier: ^0.0.35 version: 0.0.35 '@zowe/core-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/imperative@8.7.0) '@zowe/secrets-for-zowe-sdk': specifier: ^8.1.2 version: 8.1.2 '@zowe/zos-files-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-jobs-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zosmf-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zowe-explorer-api': specifier: 3.1.0-SNAPSHOT version: link:../zowe-explorer-api @@ -251,32 +251,32 @@ importers: specifier: ^1.53.2 version: 1.89.0 '@zowe/core-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/imperative@8.7.0) '@zowe/imperative': - specifier: ^8.2.0 - version: 8.2.0 + specifier: ^8.7.0 + version: 8.7.0 '@zowe/secrets-for-zowe-sdk': specifier: ^8.1.2 version: 8.1.2 '@zowe/zos-console-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-files-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-jobs-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-tso-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-uss-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/imperative@8.7.0) '@zowe/zosmf-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) deep-object-diff: specifier: ^1.1.9 version: 1.1.9 @@ -300,14 +300,14 @@ importers: packages/zowe-explorer-ftp-extension: dependencies: '@zowe/zos-files-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zos-ftp-for-zowe-cli': specifier: ^3.0.0 - version: 3.0.0(@zowe/imperative@8.2.0) + version: 3.0.0(@zowe/imperative@8.7.0) '@zowe/zos-jobs-for-zowe-sdk': - specifier: ^8.2.0 - version: 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + specifier: ^8.7.0 + version: 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) '@zowe/zowe-explorer-api': specifier: 3.1.0-SNAPSHOT version: link:../zowe-explorer-api @@ -3569,19 +3569,19 @@ packages: requiresBuild: true dev: true - /@zowe/core-for-zowe-sdk@8.2.0(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-pNSnJXmV8/OR8X2TXVF4nor8MdlyFCfU4WzPmtqlrpC+prwOvVMRbHpkS6CxibHh6O457L/dBEtBaQkEh46gBw==} + /@zowe/core-for-zowe-sdk@8.7.0(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-Yy0V588jdLwyrTQMBMzLt46dhg2xw0od2IdfyGCyfD2AGOXbrC9Q4V0LpGl7KAffCNV2eGEOXrkmHBuliXlzUg==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/imperative': 8.2.0 + '@zowe/imperative': 8.7.0 comment-json: 4.2.5 string-width: 4.2.3 dev: false - /@zowe/imperative@8.2.0: - resolution: {integrity: sha512-7noMZFgLe6gLeWGkt69Wyy5LOuo4mM9VClWpJibhCxkQp0L8KOz8TaW4wTu9Ze9gVm2bheE0rK3Nuv52Vaop4g==} + /@zowe/imperative@8.7.0: + resolution: {integrity: sha512-FQIaNiQo3qoX/JMESCk3PJmet/0HUxnKm6QnI5xkvECjW+B22NNfq+lL3YMuYJ/xWUdTvBq0WuSY5dMBypmiow==} engines: {node: '>=18.12.0'} dependencies: '@types/yargs': 17.0.33 @@ -3631,82 +3631,82 @@ packages: requiresBuild: true dev: false - /@zowe/zos-console-for-zowe-sdk@8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-9nW4UlrXRGLJkzDfWIhw6qu058eo1TaeuDkyd7XtRHbwm6fy4UCgWsalhoSqJsrTRsk9rEVtQklrxbTzbyHkMQ==} + /@zowe/zos-console-for-zowe-sdk@8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-ePcP+x1kx6v2DOUxZnxKCTWN08ZTSyTQQ4v46iGkOna0kTZNLTytDyYvjsZIhWLdWbztqjIBcemjtav7mEiZwA==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/core-for-zowe-sdk': ^8.0.0 '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/core-for-zowe-sdk': 8.2.0(@zowe/imperative@8.2.0) - '@zowe/imperative': 8.2.0 + '@zowe/core-for-zowe-sdk': 8.7.0(@zowe/imperative@8.7.0) + '@zowe/imperative': 8.7.0 dev: false - /@zowe/zos-files-for-zowe-sdk@8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-KRcSjbzOPZBo/Yvp1sOc7v1mirTJV8IuHAotSLEWCF1YTXv5e09w1O9T3IctmYDFUi32/bmlCLsK13HKNUwdQw==} + /@zowe/zos-files-for-zowe-sdk@8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-HD5BMmw9AzDC0uU4NtbGRwZDWGKYG2pdgFc0sDKE54OQjL2WOq8btvzMIcRuHBgAkc8T+DpHkIeIv0+SkRVy0w==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/core-for-zowe-sdk': ^8.0.0 '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/core-for-zowe-sdk': 8.2.0(@zowe/imperative@8.2.0) - '@zowe/imperative': 8.2.0 + '@zowe/core-for-zowe-sdk': 8.7.0(@zowe/imperative@8.7.0) + '@zowe/imperative': 8.7.0 lodash: 4.17.21 minimatch: 9.0.5 dev: false - /@zowe/zos-ftp-for-zowe-cli@3.0.0(@zowe/imperative@8.2.0): + /@zowe/zos-ftp-for-zowe-cli@3.0.0(@zowe/imperative@8.7.0): resolution: {integrity: sha512-lNt4t4VJMvnnjQXXusw5N5w5nVysbKZVSD+c7wvj/RJt6ceSV2aMH7QPeiyvTE0FEFErCkjCRl2AxeVtBkn82Q==} peerDependencies: '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/imperative': 8.2.0 + '@zowe/imperative': 8.7.0 zos-node-accessor: 2.0.11 dev: false - /@zowe/zos-jobs-for-zowe-sdk@8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-Hjh1r9PaJhyeubxcIjigkqTkYQ04dWPrcO4a5mWwkwRhgBIgSJU17xEenWv2+QrYbSEtiz//e3p6Y2sCvgAEKQ==} + /@zowe/zos-jobs-for-zowe-sdk@8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-nV5qCP+JEJSlRqxzGLV1GSvqpNGZ+hvpjLZdQdXqxWNVEVsTh65ncyyPz9ew3/RapoSQRU4yyT5Hwy1ZclhDWQ==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/core-for-zowe-sdk': ^8.0.0 '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/core-for-zowe-sdk': 8.2.0(@zowe/imperative@8.2.0) - '@zowe/imperative': 8.2.0 - '@zowe/zos-files-for-zowe-sdk': 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + '@zowe/core-for-zowe-sdk': 8.7.0(@zowe/imperative@8.7.0) + '@zowe/imperative': 8.7.0 + '@zowe/zos-files-for-zowe-sdk': 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) dev: false - /@zowe/zos-tso-for-zowe-sdk@8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-xY9VgGxsI1PGoBogIz/lw78s6+AvJmy1YfjZGpCWygy/0LgOj/A/Uk03Dusk0l+vVCn/XXLXgIl1NwU3AjcBuw==} + /@zowe/zos-tso-for-zowe-sdk@8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-BPxs/mxYRO1DXXDSIM2r9nYovKSp/AXTPxwbnIpFwd5vKsWWi8pGUfQsQkCT0cjSeMbMpZLO6ZYTT3/pftP12g==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/core-for-zowe-sdk': ^8.0.0 '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/core-for-zowe-sdk': 8.2.0(@zowe/imperative@8.2.0) - '@zowe/imperative': 8.2.0 - '@zowe/zosmf-for-zowe-sdk': 8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0) + '@zowe/core-for-zowe-sdk': 8.7.0(@zowe/imperative@8.7.0) + '@zowe/imperative': 8.7.0 + '@zowe/zosmf-for-zowe-sdk': 8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0) dev: false - /@zowe/zos-uss-for-zowe-sdk@8.2.0(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-fHsWjHaE9zPnDfdBH1MEuiN/mbeWDtdRECn0hbvC4ZrYfOyux54gr4wdN6F4sGr6YmHqu5OjfpXgyIhPskg8Pw==} + /@zowe/zos-uss-for-zowe-sdk@8.7.0(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-b31NxcKGq38cgLfROLLFqb+2fd8GELOTg2MU7MryI/6ywwBmjbkhqpfElcI9iUhFCikxZ6Az3UDwTyXv3E5yFg==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/imperative': 8.2.0 + '@zowe/imperative': 8.7.0 ssh2: 1.15.0 dev: false - /@zowe/zosmf-for-zowe-sdk@8.2.0(@zowe/core-for-zowe-sdk@8.2.0)(@zowe/imperative@8.2.0): - resolution: {integrity: sha512-h5n5wS7UX5cai2xeTf+M2bwMPm6/1u9P/7X+CjefqhOjys9ujurJCFzgUPYY6Xuq7SrCewVXgaYWQ0DO0nrWmA==} + /@zowe/zosmf-for-zowe-sdk@8.7.0(@zowe/core-for-zowe-sdk@8.7.0)(@zowe/imperative@8.7.0): + resolution: {integrity: sha512-SeWY+xMX/Z91zeTiPRGFwydYBZ7PcGdwD3gGO2tGfSpKKaG9w6b23gQZ3seAeDpbgamLsUBDmD8cMeJilcElfw==} engines: {node: '>=18.12.0'} peerDependencies: '@zowe/core-for-zowe-sdk': ^8.0.0 '@zowe/imperative': ^8.0.0 dependencies: - '@zowe/core-for-zowe-sdk': 8.2.0(@zowe/imperative@8.2.0) - '@zowe/imperative': 8.2.0 + '@zowe/core-for-zowe-sdk': 8.7.0(@zowe/imperative@8.7.0) + '@zowe/imperative': 8.7.0 dev: false /abbrev@1.1.1: From 371f76e55c12b727883db87c7c6e74affc844cc3 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 6 Nov 2024 09:43:24 -0500 Subject: [PATCH 11/18] fix unit tests Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../__unit__/extending/ZoweExplorerZosmfApi.unit.test.ts | 6 +++++- .../__tests__/__unit__/trees/job/JobActions.unit.test.ts | 6 +++++- .../__tests__/__unit__/trees/uss/USSTree.unit.test.ts | 4 ++++ .../__tests__/__unit__/trees/uss/ZoweUSSNode.unit.test.ts | 6 +++++- 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/packages/zowe-explorer/__tests__/__unit__/extending/ZoweExplorerZosmfApi.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/extending/ZoweExplorerZosmfApi.unit.test.ts index 1f2b445f09..0c13dcad2c 100644 --- a/packages/zowe-explorer/__tests__/__unit__/extending/ZoweExplorerZosmfApi.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/extending/ZoweExplorerZosmfApi.unit.test.ts @@ -10,7 +10,7 @@ */ import * as zosfiles from "@zowe/zos-files-for-zowe-sdk"; -import { imperative, ZoweExplorerZosmf } from "@zowe/zowe-explorer-api"; +import { imperative, ProfilesCache, ZoweExplorerZosmf } from "@zowe/zowe-explorer-api"; export declare enum TaskStage { IN_PROGRESS = 0, @@ -20,6 +20,10 @@ export declare enum TaskStage { } describe("Zosmf API tests", () => { + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { + value: jest.fn(), + configurable: true, + }); it("should test that copy data set uses default options", async () => { const dataSet = jest.fn((_session, _toDataSet, options) => { expect(options).toMatchSnapshot(); diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/job/JobActions.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/job/JobActions.unit.test.ts index ee043a6f07..150603791b 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/job/JobActions.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/job/JobActions.unit.test.ts @@ -13,7 +13,7 @@ import * as vscode from "vscode"; import * as zosconsole from "@zowe/zos-console-for-zowe-sdk"; import * as zosjobs from "@zowe/zos-jobs-for-zowe-sdk"; import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; -import { Gui, IZoweJobTreeNode, Sorting, Validation, ZoweScheme } from "@zowe/zowe-explorer-api"; +import { Gui, IZoweJobTreeNode, ProfilesCache, Sorting, Validation, ZoweScheme } from "@zowe/zowe-explorer-api"; import { createISession, createIProfile, @@ -134,6 +134,10 @@ function createGlobalMocks() { value: jest.fn().mockReturnValue([newMocks.imperativeProfile.name]), configurable: true, }); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { + value: jest.fn().mockReturnValue(newMocks.session), + configurable: true, + }); function settingJobObjects( job: zosjobs.IJob, setjobname: string, diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/uss/USSTree.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/uss/USSTree.unit.test.ts index e3709ba0aa..a915483984 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/uss/USSTree.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/uss/USSTree.unit.test.ts @@ -216,6 +216,10 @@ function createGlobalMocks() { value: jest.fn().mockReturnValue(true), configurable: true, }); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { + value: jest.fn().mockReturnValue(globalMocks.testSession), + configurable: true, + }); jest.spyOn(SharedTreeProviders, "providers", "get").mockReturnValue({ ds: { addSingleSession: jest.fn(), mSessionNodes: [...globalMocks.testTree.mSessionNodes], refresh: jest.fn() } as any, diff --git a/packages/zowe-explorer/__tests__/__unit__/trees/uss/ZoweUSSNode.unit.test.ts b/packages/zowe-explorer/__tests__/__unit__/trees/uss/ZoweUSSNode.unit.test.ts index 56f052c5b2..a421a6bd18 100644 --- a/packages/zowe-explorer/__tests__/__unit__/trees/uss/ZoweUSSNode.unit.test.ts +++ b/packages/zowe-explorer/__tests__/__unit__/trees/uss/ZoweUSSNode.unit.test.ts @@ -12,7 +12,7 @@ import * as vscode from "vscode"; import * as zosfiles from "@zowe/zos-files-for-zowe-sdk"; import * as zosmf from "@zowe/zosmf-for-zowe-sdk"; -import { Gui, imperative, UssDirectory, UssFile, Validation, ZoweScheme } from "@zowe/zowe-explorer-api"; +import { Gui, imperative, ProfilesCache, UssDirectory, UssFile, Validation, ZoweScheme } from "@zowe/zowe-explorer-api"; import { ZoweExplorerApiRegister } from "../../../../src/extending/ZoweExplorerApiRegister"; import { Profiles } from "../../../../src/configuration/Profiles"; import { ZoweUSSNode } from "../../../../src/trees/uss/ZoweUSSNode"; @@ -167,6 +167,10 @@ function createGlobalMocks() { }, configurable: true, }); + Object.defineProperty(ProfilesCache, "getProfileSessionWithVscProxy", { + value: jest.fn().mockReturnValue(globalMocks.session), + configurable: true, + }); return globalMocks; } From d15b808211491aa878c6b1d95afff2b2fa6cbc5c Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 6 Nov 2024 10:12:43 -0500 Subject: [PATCH 12/18] update sdk version in changelogs Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-api/CHANGELOG.md | 2 +- packages/zowe-explorer-ftp-extension/CHANGELOG.md | 2 ++ packages/zowe-explorer/CHANGELOG.md | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/zowe-explorer-api/CHANGELOG.md b/packages/zowe-explorer-api/CHANGELOG.md index 8cf30cb439..45b33fea7d 100644 --- a/packages/zowe-explorer-api/CHANGELOG.md +++ b/packages/zowe-explorer-api/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to the "zowe-explorer-api" extension will be documented in t ### New features and enhancements -- Update Zowe SDKs to `8.2.0` to get the latest enhancements from Imperative. +- Update Zowe SDKs to `8.7.0` to get the latest enhancements from Imperative. - Added support for extenders to obtain an updated Session that will includes VS Code proxy settings values if set, `getProfileSessionWithVscProxy`. [#3010](https://github.com/zowe/zowe-explorer-vscode/issues/3010) - Added support for VS Code proxy settings with zosmf profile types. [#3010](https://github.com/zowe/zowe-explorer-vscode/issues/3010) diff --git a/packages/zowe-explorer-ftp-extension/CHANGELOG.md b/packages/zowe-explorer-ftp-extension/CHANGELOG.md index 05e045d4f3..566469c3bd 100644 --- a/packages/zowe-explorer-ftp-extension/CHANGELOG.md +++ b/packages/zowe-explorer-ftp-extension/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to the "zowe-explorer-ftp-extension" extension will be docum ### New features and enhancements +- Update Zowe SDKs to `8.7.0` to get the latest enhancements from Imperative. + ### Bug fixes ## `3.0.2` diff --git a/packages/zowe-explorer/CHANGELOG.md b/packages/zowe-explorer/CHANGELOG.md index bd25f2953e..c484e2826f 100644 --- a/packages/zowe-explorer/CHANGELOG.md +++ b/packages/zowe-explorer/CHANGELOG.md @@ -6,7 +6,7 @@ All notable changes to the "vscode-extension-for-zowe" extension will be documen ### New features and enhancements -- Update Zowe SDKs to `8.2.0` to get the latest enhancements from Imperative. +- Update Zowe SDKs to `8.7.0` to get the latest enhancements from Imperative. - Added expired JSON web token detection for profiles in each tree view (Data Sets, USS, Jobs). When a user performs a search on a profile, they are prompted to log in if their token expired. [#3175](https://github.com/zowe/zowe-explorer-vscode/issues/3175) - Add a data set or USS resource to a virtual workspace with the new "Add to Workspace" context menu option. [#3265](https://github.com/zowe/zowe-explorer-vscode/issues/3265) - Power users and developers can now build links to efficiently open mainframe resources in Zowe Explorer. Use the **Copy External Link** option in the context menu to get the URL for a data set or USS resource, or create a link in the format `vscode://Zowe.vscode-extension-for-zowe?`. For more information on building resource URIs, see the [FileSystemProvider wiki article](https://github.com/zowe/zowe-explorer-vscode/wiki/FileSystemProvider#file-paths-vs-uris). [#3271](https://github.com/zowe/zowe-explorer-vscode/pull/3271) From 42c34abe1ca33a2c95b4ecb7e973c550e2b6a0a9 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Thu, 7 Nov 2024 15:50:55 -0500 Subject: [PATCH 13/18] run prepublish Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer/l10n/bundle.l10n.json | 84 ++++++++++---------- packages/zowe-explorer/l10n/poeditor.json | 20 ++--- 2 files changed, 52 insertions(+), 52 deletions(-) diff --git a/packages/zowe-explorer/l10n/bundle.l10n.json b/packages/zowe-explorer/l10n/bundle.l10n.json index 4e88316430..5625fac342 100644 --- a/packages/zowe-explorer/l10n/bundle.l10n.json +++ b/packages/zowe-explorer/l10n/bundle.l10n.json @@ -203,6 +203,48 @@ "Profile auth error": "Profile auth error", "Profile is not authenticated, please log in to continue": "Profile is not authenticated, please log in to continue", "Retrieving response from USS list API": "Retrieving response from USS list API", + "The 'move' function is not implemented for this USS API.": "The 'move' function is not implemented for this USS API.", + "Failed to move {0}/File path": { + "message": "Failed to move {0}", + "comment": [ + "File path" + ] + }, + "Failed to get contents for {0}/File path": { + "message": "Failed to get contents for {0}", + "comment": [ + "File path" + ] + }, + "Profile does not exist for this file.": "Profile does not exist for this file.", + "Saving USS file...": "Saving USS file...", + "Failed to rename {0}/File path": { + "message": "Failed to rename {0}", + "comment": [ + "File path" + ] + }, + "Failed to delete {0}/File name": { + "message": "Failed to delete {0}", + "comment": [ + "File name" + ] + }, + "No error details given": "No error details given", + "Error fetching destination {0} for paste action: {1}/USS pathError message": { + "message": "Error fetching destination {0} for paste action: {1}", + "comment": [ + "USS path", + "Error message" + ] + }, + "Failed to copy {0} to {1}/Source pathDestination path": { + "message": "Failed to copy {0} to {1}", + "comment": [ + "Source path", + "Destination path" + ] + }, "Downloaded: {0}/Download time": { "message": "Downloaded: {0}", "comment": [ @@ -273,48 +315,6 @@ "initializeUSSFavorites.error.buttonRemove": "initializeUSSFavorites.error.buttonRemove", "File does not exist. It may have been deleted.": "File does not exist. It may have been deleted.", "Pulling from Mainframe...": "Pulling from Mainframe...", - "The 'move' function is not implemented for this USS API.": "The 'move' function is not implemented for this USS API.", - "Failed to move {0}/File path": { - "message": "Failed to move {0}", - "comment": [ - "File path" - ] - }, - "Failed to get contents for {0}/File path": { - "message": "Failed to get contents for {0}", - "comment": [ - "File path" - ] - }, - "Profile does not exist for this file.": "Profile does not exist for this file.", - "Saving USS file...": "Saving USS file...", - "Failed to rename {0}/File path": { - "message": "Failed to rename {0}", - "comment": [ - "File path" - ] - }, - "Failed to delete {0}/File name": { - "message": "Failed to delete {0}", - "comment": [ - "File name" - ] - }, - "No error details given": "No error details given", - "Error fetching destination {0} for paste action: {1}/USS pathError message": { - "message": "Error fetching destination {0} for paste action: {1}", - "comment": [ - "USS path", - "Error message" - ] - }, - "Failed to copy {0} to {1}/Source pathDestination path": { - "message": "Failed to copy {0} to {1}", - "comment": [ - "Source path", - "Destination path" - ] - }, "{0} location/Node type": { "message": "{0} location", "comment": [ diff --git a/packages/zowe-explorer/l10n/poeditor.json b/packages/zowe-explorer/l10n/poeditor.json index e715a39d2f..c8083964f5 100644 --- a/packages/zowe-explorer/l10n/poeditor.json +++ b/packages/zowe-explorer/l10n/poeditor.json @@ -534,6 +534,16 @@ "Profile auth error": "", "Profile is not authenticated, please log in to continue": "", "Retrieving response from USS list API": "", + "The 'move' function is not implemented for this USS API.": "", + "Failed to move {0}": "", + "Failed to get contents for {0}": "", + "Profile does not exist for this file.": "", + "Saving USS file...": "", + "Failed to rename {0}": "", + "Failed to delete {0}": "", + "No error details given": "", + "Error fetching destination {0} for paste action: {1}": "", + "Failed to copy {0} to {1}": "", "Downloaded: {0}": "", "Encoding: {0}": "", "Binary": "", @@ -562,16 +572,6 @@ "initializeUSSFavorites.error.buttonRemove": "", "File does not exist. It may have been deleted.": "", "Pulling from Mainframe...": "", - "The 'move' function is not implemented for this USS API.": "", - "Failed to move {0}": "", - "Failed to get contents for {0}": "", - "Profile does not exist for this file.": "", - "Saving USS file...": "", - "Failed to rename {0}": "", - "Failed to delete {0}": "", - "No error details given": "", - "Error fetching destination {0} for paste action: {1}": "", - "Failed to copy {0} to {1}": "", "{0} location": "", "Choose a location to create the {0}": "", "Name of file or directory": "", From 415e801f3cfa08be1ae564021dc2361a3fe24b39 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 20 Nov 2024 12:41:58 -0500 Subject: [PATCH 14/18] address comments Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- .../profiles/ProfilesCache.unit.test.ts | 28 +++++++++---------- .../src/profiles/ProfilesCache.ts | 3 ++ .../src/vscode/doc/VscSettings.ts | 1 - 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts index d35ea78b67..7d69a86871 100644 --- a/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts +++ b/packages/zowe-explorer-api/__tests__/__unit__/profiles/ProfilesCache.unit.test.ts @@ -548,22 +548,22 @@ describe("ProfilesCache", () => { describe("getProfileSessionWithVscProxy", () => { it("should return same session if no VSC proxy values", () => { const fakeSession = imperative.Session.createFromUrl(new URL("https://example.com")); - jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(undefined); + jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(undefined as any); + expect(ProfilesCache.getProfileSessionWithVscProxy(fakeSession)).toEqual(fakeSession); + }); + it("should return updated session if VSC proxy values", () => { + const fakeSession = imperative.Session.createFromUrl(new URL("https://example.com")); + const proxyValues = { + http_proxy: "fake.com", + https_proxy: "fake.com", + no_proxy: ["zowe.com"], + proxy_authorization: null, + proxy_strict_ssl: true, + }; + fakeSession.ISession.proxy = proxyValues as any; + jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(proxyValues as any); expect(ProfilesCache.getProfileSessionWithVscProxy(fakeSession)).toEqual(fakeSession); }); - // it("should return updated session if VSC proxy values", () => { - // const fakeSession = imperative.Session.createFromUrl(new URL("https://example.com")); - // const proxyValues = { - // http_proxy: "fake.com", - // https_proxy: "fake.com", - // no_proxy: ["zowe.com"], - // proxy_authorization: null, - // proxy_strict_ssl: true, - // }; - // fakeSession.ISession.proxy = proxyValues; - // jest.spyOn(VscSettings, "getVsCodeProxySettings").mockReturnValue(proxyValues); - // expect(ProfilesCache.getProfileSessionWithVscProxy(fakeSession)).toEqual(fakeSession); - // }); }); it("getProfileFromConfig should return profile attributes for given name", async () => { diff --git a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts index 1e2099224f..83289c1b44 100644 --- a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts +++ b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts @@ -390,6 +390,9 @@ export class ProfilesCache { } public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session { + if (!session) { + return; + } const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); session.ISession.proxy = VsCodeProxySettings; return session; diff --git a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts index 3252ac30a8..e516e7ea1c 100644 --- a/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts +++ b/packages/zowe-explorer-api/src/vscode/doc/VscSettings.ts @@ -23,7 +23,6 @@ export class VscSettings { return vscode.workspace.getConfiguration(first).get(rest.join("."), defaultValue); } - // eslint-disable-next-line @typescript-eslint/explicit-function-return-type public static getVsCodeProxySettings(): imperative.ProxyVariables { const proxySupport = this.getDirectValue("http.proxySupport"); if (proxySupport !== "on") { From 16864bd2874bb1d9051e7c52c5aa3674586f3e3e Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 20 Nov 2024 12:50:30 -0500 Subject: [PATCH 15/18] get lock from main Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- pnpm-lock.yaml | 577 ++++++++++++------------------------------------- 1 file changed, 144 insertions(+), 433 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2a994f2fa6..0f2ca06718 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,10 +32,10 @@ importers: version: 1.89.0 '@typescript-eslint/eslint-plugin': specifier: ^5.53.0 - version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5) + version: 5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/parser': specifier: ^5.53.0 - version: 5.62.0(eslint@8.57.0)(typescript@5.4.5) + version: 5.62.0(eslint@8.57.0)(typescript@5.5.4) '@vscode/l10n-dev': specifier: ^0.0.35 version: 0.0.35 @@ -59,7 +59,7 @@ importers: version: 8.10.0(eslint@8.57.0) eslint-plugin-deprecation: specifier: ^2.0.0 - version: 2.0.0(eslint@8.57.0)(typescript@5.4.5) + version: 2.0.0(eslint@8.57.0)(typescript@5.5.4) eslint-plugin-prettier: specifier: ^4.2.1 version: 4.2.1(eslint-config-prettier@8.10.0)(eslint@8.57.0)(prettier@2.8.8) @@ -68,7 +68,7 @@ importers: version: link:packages/eslint-plugin-zowe-explorer fork-ts-checker-webpack-plugin: specifier: ^9.0.2 - version: 9.0.2(typescript@5.4.5)(webpack@5.94.0) + version: 9.0.2(typescript@5.5.4)(webpack@5.94.0) husky: specifier: ^6.0.0 version: 6.0.0 @@ -77,7 +77,7 @@ importers: version: 29.7.0(@types/node@20.17.6) jest-html-reporter: specifier: ^3.7.0 - version: 3.10.2(jest@29.7.0)(typescript@5.4.5) + version: 3.10.2(jest@29.7.0)(typescript@5.5.4) jest-junit: specifier: ^15.0.0 version: 15.0.0 @@ -89,7 +89,7 @@ importers: version: 2.5.1(@popperjs/core@2.11.8) madge: specifier: ^7.0.0 - version: 7.0.0(typescript@5.4.5) + version: 7.0.0(typescript@5.5.4) mocha: specifier: ^10.2.0 version: 10.4.0 @@ -113,13 +113,13 @@ importers: version: 5.3.10(webpack@5.94.0) ts-jest: specifier: ^29.0.3 - version: 29.1.2(@babel/core@7.24.5)(jest@29.7.0)(typescript@5.4.5) + version: 29.1.2(@babel/core@7.25.2)(jest@29.7.0)(typescript@5.5.4) tsx: specifier: ^4.9.3 version: 4.10.4 typescript: specifier: ^5.3.3 - version: 5.4.5 + version: 5.5.4 webpack: specifier: ^5.94.0 version: 5.94.0(webpack-cli@5.1.4) @@ -354,13 +354,13 @@ importers: version: 2.8.2(@babel/core@7.25.2)(preact@10.22.0)(vite@4.5.5) typescript: specifier: ^5.3.3 - version: 5.4.5 + version: 5.5.4 vite: specifier: ^4.5.5 version: 4.5.5(@types/node@20.17.6) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@4.5.5) + version: 0.6.4(eslint@8.57.0)(typescript@5.5.4)(vite@4.5.5) vite-plugin-static-copy: specifier: ^0.17.1 version: 0.17.1(vite@4.5.5) @@ -529,15 +529,7 @@ packages: /@babel/code-frame@7.12.11: resolution: {integrity: sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==} dependencies: - '@babel/highlight': 7.24.5 - dev: true - - /@babel/code-frame@7.24.2: - resolution: {integrity: sha512-y5+tLQyV8pg3fsiln67BVLD1P13Eg4lh5RW9mF0zUuvLrv9uIQ4MCL+CRT+FTsBlBjcIan6PGsLcBN0m3ClUyQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/highlight': 7.24.5 - picocolors: 1.0.1 + '@babel/highlight': 7.24.7 dev: true /@babel/code-frame@7.24.7: @@ -548,39 +540,11 @@ packages: picocolors: 1.1.0 dev: true - /@babel/compat-data@7.24.4: - resolution: {integrity: sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/compat-data@7.25.4: resolution: {integrity: sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/core@7.24.5: - resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} - engines: {node: '>=6.9.0'} - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-compilation-targets': 7.23.6 - '@babel/helper-module-transforms': 7.24.5(@babel/core@7.24.5) - '@babel/helpers': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - convert-source-map: 2.0.0 - debug: 4.3.6 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/core@7.25.2: resolution: {integrity: sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==} engines: {node: '>=6.9.0'} @@ -596,7 +560,7 @@ packages: '@babel/traverse': 7.25.6 '@babel/types': 7.25.6 convert-source-map: 2.0.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 @@ -604,16 +568,6 @@ packages: - supports-color dev: true - /@babel/generator@7.24.5: - resolution: {integrity: sha512-x32i4hEXvr+iI0NEoEfDKzlemF8AmtOP8CcrRaEcpzysWuoEb1KknpcvMsHKPONoKZiDuItklgWhB18xEhr9PA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - dev: true - /@babel/generator@7.25.6: resolution: {integrity: sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==} engines: {node: '>=6.9.0'} @@ -628,18 +582,7 @@ packages: resolution: {integrity: sha512-LvBTxu8bQSQkcyKOU+a1btnNFQ1dMAd0R6PyW3arXes06F6QLWLIrd681bxRPIXlrMGR3XYnW9JyML7dP3qgxg==} engines: {node: '>=6.9.0'} dependencies: - '@babel/types': 7.24.5 - dev: true - - /@babel/helper-compilation-targets@7.23.6: - resolution: {integrity: sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/compat-data': 7.24.4 - '@babel/helper-validator-option': 7.23.5 - browserslist: 4.23.0 - lru-cache: 5.1.1 - semver: 6.3.1 + '@babel/types': 7.25.6 dev: true /@babel/helper-compilation-targets@7.25.2: @@ -653,33 +596,6 @@ packages: semver: 6.3.1 dev: true - /@babel/helper-environment-visitor@7.22.20: - resolution: {integrity: sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==} - engines: {node: '>=6.9.0'} - dev: true - - /@babel/helper-function-name@7.23.0: - resolution: {integrity: sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/types': 7.24.5 - dev: true - - /@babel/helper-hoist-variables@7.22.5: - resolution: {integrity: sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: true - - /@babel/helper-module-imports@7.24.3: - resolution: {integrity: sha512-viKb0F9f2s0BCS22QSF308z/+1YWKV/76mwt61NBzS5izMzDPwdq1pTrzf+Li3npBWX9KdQbkeCt1jSAM7lZqg==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: true - /@babel/helper-module-imports@7.24.7: resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} engines: {node: '>=6.9.0'} @@ -690,20 +606,6 @@ packages: - supports-color dev: true - /@babel/helper-module-transforms@7.24.5(@babel/core@7.24.5): - resolution: {integrity: sha512-9GxeY8c2d2mdQUP1Dye0ks3VDyIMS98kt/llQ2nUId8IsWqTF0l1LkSX0/uP7l7MCDrzXS009Hyhe2gzTiGW8A==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-module-imports': 7.24.3 - '@babel/helper-simple-access': 7.24.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/helper-validator-identifier': 7.24.5 - dev: true - /@babel/helper-module-transforms@7.25.2(@babel/core@7.25.2): resolution: {integrity: sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==} engines: {node: '>=6.9.0'} @@ -724,13 +626,6 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/helper-simple-access@7.24.5: - resolution: {integrity: sha512-uH3Hmf5q5n7n8mz7arjUlDOCbttY/DW4DYhE6FUsjKJ/oYC1kQQUvwEQWxRwUpX9qQKRXeqLwWxrqilMrf32sQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: true - /@babel/helper-simple-access@7.24.7: resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} engines: {node: '>=6.9.0'} @@ -741,54 +636,21 @@ packages: - supports-color dev: true - /@babel/helper-split-export-declaration@7.24.5: - resolution: {integrity: sha512-5CHncttXohrHk8GWOFCcCl4oRD9fKosWlIRgWm4ql9VYioKm52Mk2xsmoohvm7f3JoiLSM5ZgJuRaf5QZZYd3Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/types': 7.24.5 - dev: true - - /@babel/helper-string-parser@7.24.1: - resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-string-parser@7.24.8: resolution: {integrity: sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-identifier@7.24.5: - resolution: {integrity: sha512-3q93SSKX2TWCG30M2G2kwaKeTYgEUp5Snjuj8qm729SObL6nbtUldAi37qbxkD5gg3xnBio+f9nqpSepGZMvxA==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-identifier@7.24.7: resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} engines: {node: '>=6.9.0'} dev: true - /@babel/helper-validator-option@7.23.5: - resolution: {integrity: sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==} - engines: {node: '>=6.9.0'} - dev: true - /@babel/helper-validator-option@7.24.8: resolution: {integrity: sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==} engines: {node: '>=6.9.0'} dev: true - /@babel/helpers@7.24.5: - resolution: {integrity: sha512-CiQmBMMpMQHwM5m01YnrM6imUG1ebgYJ+fAIW4FZe6m4qHTPaRHti+R8cggAwkdz4oXhtO4/K9JWlh+8hIfR2Q==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/template': 7.24.0 - '@babel/traverse': 7.24.5 - '@babel/types': 7.24.5 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/helpers@7.25.6: resolution: {integrity: sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==} engines: {node: '>=6.9.0'} @@ -797,16 +659,6 @@ packages: '@babel/types': 7.25.6 dev: true - /@babel/highlight@7.24.5: - resolution: {integrity: sha512-8lLmua6AVh/8SLJRRVD6V8p73Hir9w5mJrhE+IPpILG31KKlI9iz5zmBYKcWPS59qSfgP9RaSBQSHHE81WKuEw==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-validator-identifier': 7.24.5 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.0.1 - dev: true - /@babel/highlight@7.24.7: resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} engines: {node: '>=6.9.0'} @@ -817,14 +669,6 @@ packages: picocolors: 1.1.0 dev: true - /@babel/parser@7.24.5: - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} - engines: {node: '>=6.0.0'} - hasBin: true - dependencies: - '@babel/types': 7.24.5 - dev: true - /@babel/parser@7.25.6: resolution: {integrity: sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==} engines: {node: '>=6.0.0'} @@ -970,6 +814,8 @@ packages: dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx': 7.23.4(@babel/core@7.25.2) + transitivePeerDependencies: + - supports-color dev: true /@babel/plugin-transform-react-jsx@7.23.4(@babel/core@7.25.2): @@ -980,10 +826,12 @@ packages: dependencies: '@babel/core': 7.25.2 '@babel/helper-annotate-as-pure': 7.22.5 - '@babel/helper-module-imports': 7.24.3 + '@babel/helper-module-imports': 7.24.7 '@babel/helper-plugin-utils': 7.24.5 '@babel/plugin-syntax-jsx': 7.24.1(@babel/core@7.25.2) - '@babel/types': 7.24.5 + '@babel/types': 7.25.6 + transitivePeerDependencies: + - supports-color dev: true /@babel/runtime@7.24.5: @@ -993,15 +841,6 @@ packages: regenerator-runtime: 0.14.1 dev: true - /@babel/template@7.24.0: - resolution: {integrity: sha512-Bkf2q8lMB0AFpX0NFEqSbx1OkTHf0f+0j82mkw+ZpzBnkk7e9Ql0891vlfgi+kHwOk8tQjiQHpqh4LaSa0fKEA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 - dev: true - /@babel/template@7.25.0: resolution: {integrity: sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==} engines: {node: '>=6.9.0'} @@ -1011,24 +850,6 @@ packages: '@babel/types': 7.25.6 dev: true - /@babel/traverse@7.24.5: - resolution: {integrity: sha512-7aaBLeDQ4zYcUFDUD41lJc1fG8+5IU9DaNSJAgal866FGvmD5EbWQgnEC6kO1gGLsX0esNkfnJSndbTXA3r7UA==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/code-frame': 7.24.2 - '@babel/generator': 7.24.5 - '@babel/helper-environment-visitor': 7.22.20 - '@babel/helper-function-name': 7.23.0 - '@babel/helper-hoist-variables': 7.22.5 - '@babel/helper-split-export-declaration': 7.24.5 - '@babel/parser': 7.24.5 - '@babel/types': 7.24.5 - debug: 4.3.6 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color - dev: true - /@babel/traverse@7.25.6: resolution: {integrity: sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==} engines: {node: '>=6.9.0'} @@ -1038,21 +859,12 @@ packages: '@babel/parser': 7.25.6 '@babel/template': 7.25.0 '@babel/types': 7.25.6 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color dev: true - /@babel/types@7.24.5: - resolution: {integrity: sha512-6mQNsaLeXTw0nxYUYu+NSa4Hx4BlF1x1x8/PMFbiR+GBSr+2DkECc69b8hgy2frEodNcvPffeH8YfWd3LI6jhQ==} - engines: {node: '>=6.9.0'} - dependencies: - '@babel/helper-string-parser': 7.24.1 - '@babel/helper-validator-identifier': 7.24.5 - to-fast-properties: 2.0.0 - dev: true - /@babel/types@7.25.6: resolution: {integrity: sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==} engines: {node: '>=6.9.0'} @@ -1108,7 +920,7 @@ packages: chalk: 4.1.2 cli-table3: 0.6.3 commander: 10.0.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) error-stack-parser: 2.1.4 figures: 3.2.0 glob: 7.2.3 @@ -1665,7 +1477,7 @@ packages: engines: {node: ^10.12.0 || >=12.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) espree: 7.3.1 globals: 13.24.0 ignore: 4.0.6 @@ -1682,7 +1494,7 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) espree: 9.6.1 globals: 13.24.0 ignore: 5.3.1 @@ -1764,9 +1576,10 @@ packages: /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1775,9 +1588,10 @@ packages: /@humanwhocodes/config-array@0.5.0: resolution: {integrity: sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==} engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -1790,10 +1604,12 @@ packages: /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} + deprecated: Use @eslint/object-schema instead dev: true /@humanwhocodes/object-schema@2.0.3: resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead dev: true /@isaacs/cliui@8.0.2: @@ -2043,7 +1859,7 @@ packages: '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 '@types/node': 20.17.6 - '@types/yargs': 17.0.32 + '@types/yargs': 17.0.33 chalk: 4.1.2 dev: true @@ -2052,7 +1868,7 @@ packages: engines: {node: '>=6.0.0'} dependencies: '@jridgewell/set-array': 1.2.1 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 '@jridgewell/trace-mapping': 0.3.25 dev: true @@ -2073,10 +1889,6 @@ packages: '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - /@jridgewell/sourcemap-codec@1.5.0: resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} dev: true @@ -2085,14 +1897,14 @@ packages: resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.2 - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /@kurkle/color@0.3.2: @@ -2279,7 +2091,7 @@ packages: '@prefresh/vite': 2.4.5(preact@10.22.0)(vite@4.5.5) '@rollup/pluginutils': 4.2.1 babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.25.2) - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) kolorist: 1.8.0 magic-string: 0.30.5 node-html-parser: 6.1.13 @@ -2314,7 +2126,7 @@ packages: preact: ^10.4.0 vite: '>=2.0.0' dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.25.2 '@prefresh/babel-plugin': 0.5.1 '@prefresh/core': 1.5.2(preact@10.22.0) '@prefresh/utils': 1.2.0 @@ -2550,7 +2362,7 @@ packages: /@types/fs-extra@7.0.0: resolution: {integrity: sha512-ndoMMbGyuToTy4qB6Lex/inR98nPiNHacsgMPvy+zqMLgSxbt8VtWpDArpGp69h1fEDQHn1KB+9DWD++wgbwYA==} dependencies: - '@types/node': 18.19.33 + '@types/node': 20.17.6 dev: true /@types/graceful-fs@4.1.9: @@ -2598,12 +2410,6 @@ packages: resolution: {integrity: sha512-PLwiVvTBg59tGFL/8VpcGvqOu3L4OuveNvPi0EYbWchRdEVP++yRUXJPFl+CApKEq13017/4Nf7aQ5lTtHUNsA==} dev: true - /@types/node@18.19.33: - resolution: {integrity: sha512-NR9+KrpSajr2qBVp/Yt5TU/rp+b5Mayi3+OlMlcg2cVCfRmcG5PWZ7S4+MG9PZ5gWBoc9Pd0BKSRViuBCRPu0A==} - dependencies: - undici-types: 5.26.5 - dev: true - /@types/node@20.17.6: resolution: {integrity: sha512-VEI7OdvK2wP7XHnsuXbAJnEpEkF6NjSN45QJlL4VGqZSXsnicpesdTWsg9RISeSdYd3yeRj/y3k5KGjUXYnFwQ==} dependencies: @@ -2687,17 +2493,10 @@ packages: '@types/yargs-parser': 21.0.3 dev: true - /@types/yargs@17.0.32: - resolution: {integrity: sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==} - dependencies: - '@types/yargs-parser': 21.0.3 - dev: true - /@types/yargs@17.0.33: resolution: {integrity: sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==} dependencies: '@types/yargs-parser': 21.0.3 - dev: false /@types/yauzl@2.10.3: resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} @@ -2707,7 +2506,7 @@ packages: dev: true optional: true - /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.4.5): + /@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@5.62.0)(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2719,23 +2518,23 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/parser': 5.62.0(eslint@8.57.0)(typescript@5.5.4) '@typescript-eslint/scope-manager': 5.62.0 - '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) + '@typescript-eslint/type-utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare-lite: 1.4.0 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.4.5): + /@typescript-eslint/parser@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2747,10 +2546,10 @@ packages: dependencies: '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 - typescript: 5.4.5 + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true @@ -2771,7 +2570,7 @@ packages: '@typescript-eslint/visitor-keys': 6.21.0 dev: true - /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): + /@typescript-eslint/type-utils@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2781,12 +2580,12 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) - '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.4.5) - debug: 4.3.4(supports-color@8.1.1) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) + '@typescript-eslint/utils': 5.62.0(eslint@8.57.0)(typescript@5.5.4) + debug: 4.3.6(supports-color@8.1.1) eslint: 8.57.0 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true @@ -2801,7 +2600,7 @@ packages: engines: {node: ^16.0.0 || >=18.0.0} dev: true - /@typescript-eslint/typescript-estree@5.62.0(typescript@5.4.5): + /@typescript-eslint/typescript-estree@5.62.0(typescript@5.5.4): resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2812,17 +2611,17 @@ packages: dependencies: '@typescript-eslint/types': 5.62.0 '@typescript-eslint/visitor-keys': 5.62.0 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 semver: 7.6.2 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/typescript-estree@6.21.0(typescript@5.4.5): + /@typescript-eslint/typescript-estree@6.21.0(typescript@5.5.4): resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2833,18 +2632,18 @@ packages: dependencies: '@typescript-eslint/types': 6.21.0 '@typescript-eslint/visitor-keys': 6.21.0 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.3 semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.4.5) - typescript: 5.4.5 + ts-api-utils: 1.3.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.4.5): + /@typescript-eslint/utils@5.62.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -2855,7 +2654,7 @@ packages: '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 5.62.0 '@typescript-eslint/types': 5.62.0 - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) eslint: 8.57.0 eslint-scope: 5.1.1 semver: 7.6.2 @@ -2864,7 +2663,7 @@ packages: - typescript dev: true - /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.4.5): + /@typescript-eslint/utils@6.21.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} engines: {node: ^16.0.0 || >=18.0.0} peerDependencies: @@ -2875,7 +2674,7 @@ packages: '@types/semver': 7.5.8 '@typescript-eslint/scope-manager': 6.21.0 '@typescript-eslint/types': 6.21.0 - '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.5.4) eslint: 8.57.0 semver: 7.6.2 transitivePeerDependencies: @@ -2930,9 +2729,9 @@ packages: hasBin: true dependencies: '@azure-rest/ai-translation-text': 1.0.0-beta.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) deepmerge-json: 1.5.0 - glob: 10.3.15 + glob: 10.4.5 markdown-it: 14.1.0 node-html-markdown: 1.3.0 pseudo-localization: 2.4.0 @@ -3594,7 +3393,7 @@ packages: chalk: 4.1.2 cli-table3: 0.6.5 comment-json: 4.2.5 - cross-spawn: 7.0.6 + cross-spawn: 7.0.5 dataobject-parser: 1.2.25 deepmerge: 4.3.1 diff: 5.2.0 @@ -3802,7 +3601,7 @@ packages: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -3811,7 +3610,7 @@ packages: resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -4312,17 +4111,6 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist@4.23.0: - resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001620 - electron-to-chromium: 1.4.773 - node-releases: 2.0.14 - update-browserslist-db: 1.0.16(browserslist@4.23.0) - dev: true - /browserslist@4.23.3: resolution: {integrity: sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -4456,10 +4244,6 @@ packages: engines: {node: '>=10'} dev: true - /caniuse-lite@1.0.30001620: - resolution: {integrity: sha512-WJvYsOjd1/BYUY6SNGUosK9DUidBPDTnOARHp3fSmFO1ekdxaY6nKRttEVrfMmYi80ctS0kz1wiWmm14fVc3ew==} - dev: true - /caniuse-lite@1.0.30001655: resolution: {integrity: sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==} dev: true @@ -4868,7 +4652,7 @@ packages: /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} - /cosmiconfig@8.3.6(typescript@5.4.5): + /cosmiconfig@8.3.6(typescript@5.5.4): resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} peerDependencies: @@ -4881,7 +4665,7 @@ packages: js-yaml: 4.1.0 parse-json: 5.2.0 path-type: 4.0.0 - typescript: 5.4.5 + typescript: 5.5.4 dev: true /cpu-features@0.0.10: @@ -4939,23 +4723,14 @@ packages: - encoding dev: true - /cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + /cross-spawn@7.0.5: + resolution: {integrity: sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug==} engines: {node: '>= 8'} dependencies: path-key: 3.1.1 shebang-command: 2.0.0 which: 2.0.2 - /cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} - dependencies: - path-key: 3.1.1 - shebang-command: 2.0.0 - which: 2.0.2 - dev: false - /crypt@0.0.2: resolution: {integrity: sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==} dev: true @@ -5056,8 +4831,9 @@ packages: dependencies: ms: 2.1.2 supports-color: 8.1.1 + dev: true - /debug@4.3.6: + /debug@4.3.6(supports-color@8.1.1): resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} engines: {node: '>=6.0'} peerDependencies: @@ -5067,6 +4843,7 @@ packages: optional: true dependencies: ms: 2.1.2 + supports-color: 8.1.1 /decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} @@ -5270,10 +5047,10 @@ packages: resolution: {integrity: sha512-ARFxjzizOhPqs1fYC/2NMC3N4jrQ6HvVflnXBTRqNEqJuXwyKLRr9CrJwkRcV/SnZt1sNXgsF6FPm0x57Tq0rw==} engines: {node: ^14.14.0 || >=16.0.0} dependencies: - '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 5.62.0(typescript@5.5.4) ast-module-types: 5.0.0 node-source-walk: 6.0.2 - typescript: 5.4.5 + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true @@ -5451,10 +5228,6 @@ packages: jake: 10.9.1 dev: true - /electron-to-chromium@1.4.773: - resolution: {integrity: sha512-87eHF+h3PlCRwbxVEAw9KtK3v7lWfc/sUDr0W76955AdYTG4bV/k0zrl585Qnj/skRMH2qOSiE+kqMeOQ+LOpw==} - dev: true - /electron-to-chromium@1.5.13: resolution: {integrity: sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==} dev: true @@ -5714,11 +5487,6 @@ packages: '@esbuild/win32-x64': 0.20.2 dev: true - /escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - dev: true - /escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -5768,17 +5536,17 @@ packages: eslint: 8.57.0 dev: true - /eslint-plugin-deprecation@2.0.0(eslint@8.57.0)(typescript@5.4.5): + /eslint-plugin-deprecation@2.0.0(eslint@8.57.0)(typescript@5.5.4): resolution: {integrity: sha512-OAm9Ohzbj11/ZFyICyR5N6LbOIvQMp7ZU2zI7Ej0jIc8kiGUERXPNMfw2QqqHD1ZHtjMub3yPZILovYEYucgoQ==} peerDependencies: eslint: ^7.0.0 || ^8.0.0 typescript: ^4.2.4 || ^5.0.0 dependencies: - '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.0)(typescript@5.5.4) eslint: 8.57.0 tslib: 2.6.2 - tsutils: 3.21.0(typescript@5.4.5) - typescript: 5.4.5 + tsutils: 3.21.0(typescript@5.5.4) + typescript: 5.5.4 transitivePeerDependencies: - supports-color dev: true @@ -5841,6 +5609,7 @@ packages: /eslint@7.32.0: resolution: {integrity: sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==} engines: {node: ^10.12.0 || >=12.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@babel/code-frame': 7.12.11 @@ -5848,8 +5617,8 @@ packages: '@humanwhocodes/config-array': 0.5.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + cross-spawn: 7.0.5 + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 enquirer: 2.4.1 escape-string-regexp: 4.0.0 @@ -5890,6 +5659,7 @@ packages: /eslint@8.57.0: resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) @@ -5902,8 +5672,8 @@ packages: '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.4(supports-color@8.1.1) + cross-spawn: 7.0.5 + debug: 4.3.6(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -6004,7 +5774,7 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 6.0.1 human-signals: 2.1.0 is-stream: 2.0.1 @@ -6019,7 +5789,7 @@ packages: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 get-stream: 8.0.1 human-signals: 5.0.0 is-stream: 3.0.0 @@ -6110,7 +5880,7 @@ packages: engines: {node: '>= 10.17.0'} hasBin: true dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) get-stream: 5.2.0 yauzl: 2.10.0 optionalDependencies: @@ -6393,33 +6163,25 @@ packages: is-callable: 1.2.7 dev: false - /foreground-child@3.1.1: - resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} - engines: {node: '>=14'} - dependencies: - cross-spawn: 7.0.3 - signal-exit: 4.1.0 - dev: true - /foreground-child@3.2.1: resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} engines: {node: '>=14'} requiresBuild: true dependencies: - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 signal-exit: 4.1.0 - /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.4.5)(webpack@5.94.0): + /fork-ts-checker-webpack-plugin@9.0.2(typescript@5.5.4)(webpack@5.94.0): resolution: {integrity: sha512-Uochze2R8peoN1XqlSi/rGUkDQpRogtLFocP9+PGu68zk1BDAKXfdeCdyVZpgTk8V8WFVQXdEz426VKjXLO1Gg==} engines: {node: '>=12.13.0', yarn: '>=1.0.0'} peerDependencies: typescript: '>3.6.0' webpack: ^5.11.0 dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 chalk: 4.1.2 chokidar: 3.6.0 - cosmiconfig: 8.3.6(typescript@5.4.5) + cosmiconfig: 8.3.6(typescript@5.5.4) deepmerge: 4.3.1 fs-extra: 10.1.0 memfs: 3.5.3 @@ -6428,7 +6190,7 @@ packages: schema-utils: 3.3.0 semver: 7.6.2 tapable: 2.2.1 - typescript: 5.4.5 + typescript: 5.5.4 webpack: 5.94.0(webpack-cli@5.1.4) dev: true @@ -6532,6 +6294,7 @@ packages: /fstream@1.0.12: resolution: {integrity: sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==} engines: {node: '>=0.6'} + deprecated: This package is no longer supported. dependencies: graceful-fs: 4.2.11 inherits: 2.0.4 @@ -6695,7 +6458,7 @@ packages: dependencies: basic-ftp: 5.0.5 data-uri-to-buffer: 6.0.2 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) fs-extra: 11.2.0 transitivePeerDependencies: - supports-color @@ -6724,18 +6487,6 @@ packages: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} dev: true - /glob@10.3.15: - resolution: {integrity: sha512-0c6RlJt1TICLyvJYIApxb8GsXoai0KUP7AxKKAtsYXdgJR1mGEUa7DgwShbdk1nly0PYoZj01xd4hzbq3fsjpw==} - engines: {node: '>=16 || 14 >=14.18'} - hasBin: true - dependencies: - foreground-child: 3.1.1 - jackspeak: 2.3.6 - minimatch: 9.0.5 - minipass: 7.1.1 - path-scurry: 1.11.1 - dev: true - /glob@10.4.5: resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} hasBin: true @@ -6774,6 +6525,7 @@ packages: /glob@7.2.3: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -6786,6 +6538,7 @@ packages: /glob@8.0.3: resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -6797,6 +6550,7 @@ packages: /glob@8.1.0: resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} engines: {node: '>=12'} + deprecated: Glob versions prior to v9 are no longer supported dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -7044,7 +6798,7 @@ packages: dependencies: '@tootallnate/once': 1.1.2 agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -7054,7 +6808,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7071,7 +6825,7 @@ packages: engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -7081,7 +6835,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color @@ -7177,6 +6931,7 @@ packages: /inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. dependencies: once: 1.4.0 wrappy: 1.0.2 @@ -7563,8 +7318,8 @@ packages: resolution: {integrity: sha512-1WUsZ9R1lA0HtBSohTkm39WTPlNKSJ5iFk7UwqXkBLoHQT+hfqPsfsTDVuZdKGaBwn7din9bS7SsnoAr943hvw==} engines: {node: '>=10'} dependencies: - '@babel/core': 7.24.5 - '@babel/parser': 7.24.5 + '@babel/core': 7.25.2 + '@babel/parser': 7.25.6 '@istanbuljs/schema': 0.1.3 istanbul-lib-coverage: 3.2.2 semver: 7.6.2 @@ -7585,7 +7340,7 @@ packages: resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} engines: {node: '>=10'} dependencies: - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 source-map: 0.6.1 transitivePeerDependencies: @@ -7600,15 +7355,6 @@ packages: istanbul-lib-report: 3.0.1 dev: true - /jackspeak@2.3.6: - resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} - engines: {node: '>=14'} - dependencies: - '@isaacs/cliui': 8.0.2 - optionalDependencies: - '@pkgjs/parseargs': 0.11.0 - dev: true - /jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} requiresBuild: true @@ -7805,7 +7551,7 @@ packages: fsevents: 2.3.3 dev: true - /jest-html-reporter@3.10.2(jest@29.7.0)(typescript@5.4.5): + /jest-html-reporter@3.10.2(jest@29.7.0)(typescript@5.5.4): resolution: {integrity: sha512-XRBa5ylHPUQoo8aJXEEdKsTruieTdlPbRktMx9WG9evMTxzJEKGFMaw5x+sQxJuClWdNR72GGwbOaz+6HIlksA==} engines: {node: '>=4.8.3'} peerDependencies: @@ -7818,7 +7564,7 @@ packages: jest: 29.7.0(@types/node@20.17.6) mkdirp: 1.0.4 strip-ansi: 6.0.1 - typescript: 5.4.5 + typescript: 5.5.4 xmlbuilder: 15.0.0 dev: true @@ -8549,7 +8295,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) flatted: 3.3.1 rfdc: 1.3.1 streamroller: 3.1.5 @@ -8585,10 +8331,6 @@ packages: engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dev: true - /lru-cache@10.2.2: - resolution: {integrity: sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==} - engines: {node: 14 || >=16.14} - /lru-cache@10.4.3: resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} @@ -8620,7 +8362,7 @@ packages: engines: {node: '>=12'} dev: true - /madge@7.0.0(typescript@5.4.5): + /madge@7.0.0(typescript@5.5.4): resolution: {integrity: sha512-x9eHkBWoCJ2B8yGesWf8LRucarkbH5P3lazqgvmxe4xn5U2Meyfu906iG9mBB1RnY/f4D+gtELWdiz1k6+jAZA==} engines: {node: '>=14'} hasBin: true @@ -8633,7 +8375,7 @@ packages: chalk: 4.1.2 commander: 7.2.0 commondir: 1.0.1 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) dependency-tree: 10.0.9 ora: 5.4.1 pluralize: 8.0.0 @@ -8642,7 +8384,7 @@ packages: rc: 1.2.8 stream-to-array: 2.3.0 ts-graphviz: 1.8.2 - typescript: 5.4.5 + typescript: 5.5.4 walkdir: 0.4.1 transitivePeerDependencies: - supports-color @@ -8658,7 +8400,7 @@ packages: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} dependencies: - '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/sourcemap-codec': 1.5.0 dev: true /make-dir@3.1.0: @@ -8932,10 +8674,6 @@ packages: engines: {node: '>=8'} dev: false - /minipass@7.1.1: - resolution: {integrity: sha512-UZ7eQ+h8ywIRAW1hIEl2AqdwzJucU/Kp59+8kkZeSvafXhZjul247BvIJjEVFVeON6d7lM46XX1HXCduKAS8VA==} - engines: {node: '>=16 || 14 >=14.17'} - /minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} @@ -8998,7 +8736,7 @@ packages: peerDependencies: mocha: '>=2.2.5' dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) md5: 2.3.0 mkdirp: 3.0.1 mocha: 10.4.0 @@ -9014,7 +8752,7 @@ packages: peerDependencies: mocha: '>=3.1.2' dependencies: - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) lodash: 4.17.21 mocha: 10.4.0 transitivePeerDependencies: @@ -9250,10 +8988,6 @@ packages: webpack: 5.94.0(webpack-cli@5.1.4) dev: true - /node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - dev: true - /node-releases@2.0.18: resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} dev: true @@ -9262,7 +8996,7 @@ packages: resolution: {integrity: sha512-jn9vOIK/nfqoFCcpK89/VCVaLg1IHE6UVfDOzvqmANaJ/rWCTEdH8RZ1V278nv2jr36BJdyQXIAavBLXpzdlag==} engines: {node: '>=14'} dependencies: - '@babel/parser': 7.24.5 + '@babel/parser': 7.25.6 dev: true /noms@0.0.0: @@ -9569,7 +9303,7 @@ packages: dependencies: '@tootallnate/quickjs-emscripten': 0.23.0 agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) get-uri: 6.0.3 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 @@ -9640,7 +9374,7 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 @@ -9717,8 +9451,8 @@ packages: resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} engines: {node: '>=16 || 14 >=14.18'} dependencies: - lru-cache: 10.2.2 - minipass: 7.1.1 + lru-cache: 10.4.3 + minipass: 7.1.2 /path-scurry@2.0.0: resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} @@ -9751,10 +9485,6 @@ packages: resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} dev: true - /picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} - dev: true - /picocolors@1.1.0: resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} dev: true @@ -10017,7 +9747,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.5 lru-cache: 7.18.3 @@ -10466,6 +10196,7 @@ packages: /rimraf@2.7.1: resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10473,6 +10204,7 @@ packages: /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true dependencies: glob: 7.2.3 @@ -10788,7 +10520,7 @@ packages: engines: {node: '>= 14'} dependencies: agent-base: 7.1.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) socks: 2.8.3 transitivePeerDependencies: - supports-color @@ -10964,7 +10696,7 @@ packages: engines: {node: '>=8.0'} dependencies: date-format: 4.0.14 - debug: 4.3.4(supports-color@8.1.1) + debug: 4.3.6(supports-color@8.1.1) fs-extra: 8.1.0 transitivePeerDependencies: - supports-color @@ -11423,13 +11155,13 @@ packages: hasBin: true dev: true - /ts-api-utils@1.3.0(typescript@5.4.5): + /ts-api-utils@1.3.0(typescript@5.5.4): resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.4.5 + typescript: 5.5.4 dev: true /ts-graphviz@1.8.2: @@ -11437,7 +11169,7 @@ packages: engines: {node: '>=14.16'} dev: true - /ts-jest@29.1.2(@babel/core@7.24.5)(jest@29.7.0)(typescript@5.4.5): + /ts-jest@29.1.2(@babel/core@7.25.2)(jest@29.7.0)(typescript@5.5.4): resolution: {integrity: sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==} engines: {node: ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true @@ -11458,7 +11190,7 @@ packages: esbuild: optional: true dependencies: - '@babel/core': 7.24.5 + '@babel/core': 7.25.2 bs-logger: 0.2.6 fast-json-stable-stringify: 2.1.0 jest: 29.7.0(@types/node@20.17.6) @@ -11467,7 +11199,7 @@ packages: lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.2 - typescript: 5.4.5 + typescript: 5.5.4 yargs-parser: 21.1.1 dev: true @@ -11517,14 +11249,14 @@ packages: /tslib@2.6.2: resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} - /tsutils@3.21.0(typescript@5.4.5): + /tsutils@3.21.0(typescript@5.5.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 5.4.5 + typescript: 5.5.4 dev: true /tsx@4.10.4: @@ -11543,7 +11275,7 @@ packages: engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@tufjs/models': 2.0.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) make-fetch-happen: 13.0.1 transitivePeerDependencies: - supports-color @@ -11671,12 +11403,6 @@ packages: hasBin: true dev: true - /typescript@5.4.5: - resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - /typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} @@ -11714,10 +11440,6 @@ packages: /underscore@1.13.7: resolution: {integrity: sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==} - /undici-types@5.26.5: - resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} - dev: true - /undici-types@6.19.8: resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} requiresBuild: true @@ -11772,17 +11494,6 @@ packages: setimmediate: 1.0.5 dev: true - /update-browserslist-db@1.0.16(browserslist@4.23.0): - resolution: {integrity: sha512-KVbTxlBYlckhF5wgfyZXTWnMn7MMZjMu9XG8bPlliUOP9ThaF4QnhP8qrjrH7DRzHfSk0oQv1wToW+iA5GajEQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - dependencies: - browserslist: 4.23.0 - escalade: 3.2.0 - picocolors: 1.1.0 - dev: true - /update-browserslist-db@1.1.0(browserslist@4.23.3): resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} hasBin: true @@ -11880,7 +11591,7 @@ packages: extsprintf: 1.4.1 dev: true - /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.4.5)(vite@4.5.5): + /vite-plugin-checker@0.6.4(eslint@8.57.0)(typescript@5.5.4)(vite@4.5.5): resolution: {integrity: sha512-2zKHH5oxr+ye43nReRbC2fny1nyARwhxdm0uNYp/ERy4YvU9iZpNOsueoi/luXw5gnpqRSvjcEPxXbS153O2wA==} engines: {node: '>=14.16'} peerDependencies: @@ -11911,7 +11622,7 @@ packages: vue-tsc: optional: true dependencies: - '@babel/code-frame': 7.24.2 + '@babel/code-frame': 7.24.7 ansi-escapes: 4.3.2 chalk: 4.1.2 chokidar: 3.6.0 @@ -11923,7 +11634,7 @@ packages: semver: 7.6.2 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - typescript: 5.4.5 + typescript: 5.5.4 vite: 4.5.5(@types/node@20.17.6) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 @@ -11940,7 +11651,7 @@ packages: chokidar: 3.6.0 fast-glob: 3.3.2 fs-extra: 11.2.0 - picocolors: 1.0.1 + picocolors: 1.1.0 vite: 4.5.5(@types/node@20.17.6) dev: true @@ -12027,7 +11738,7 @@ packages: dependencies: chalk: 4.1.2 commander: 9.4.1 - debug: 4.3.6 + debug: 4.3.6(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true @@ -12195,7 +11906,7 @@ packages: '@webpack-cli/serve': 2.0.5(webpack-cli@5.1.4)(webpack@5.94.0) colorette: 2.0.20 commander: 10.0.1 - cross-spawn: 7.0.3 + cross-spawn: 7.0.5 envinfo: 7.13.0 fastest-levenshtein: 1.0.16 import-local: 3.1.0 @@ -12460,7 +12171,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 From 7891e31299f83170924207365959439a23196036 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Wed, 20 Nov 2024 12:55:35 -0500 Subject: [PATCH 16/18] update sdk changelog entry in ftp extenstion to match other packages Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-ftp-extension/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/zowe-explorer-ftp-extension/CHANGELOG.md b/packages/zowe-explorer-ftp-extension/CHANGELOG.md index 419348d067..536295b449 100644 --- a/packages/zowe-explorer-ftp-extension/CHANGELOG.md +++ b/packages/zowe-explorer-ftp-extension/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to the "zowe-explorer-ftp-extension" extension will be docum ### New features and enhancements -- Update Zowe SDKs to `8.7.0` to get the latest enhancements from Imperative. +- Update Zowe SDKs to `8.8.2` to get the latest enhancements from Imperative. [#3296](https://github.com/zowe/zowe-explorer-vscode/pull/3296) ### Bug fixes From b8f090c41038ea6682d26da53c41143e0b66c7c8 Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Thu, 21 Nov 2024 08:03:01 -0500 Subject: [PATCH 17/18] address feedback Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-api/src/profiles/ProfilesCache.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts index 83289c1b44..fc960e5080 100644 --- a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts +++ b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts @@ -389,7 +389,7 @@ export class ProfilesCache { return convertResult; } - public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session { + public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session | undefined { if (!session) { return; } From ccae372bef920e4497eadda2663a5c22e502579c Mon Sep 17 00:00:00 2001 From: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> Date: Thu, 21 Nov 2024 13:40:21 -0500 Subject: [PATCH 18/18] remove session check and undefined return type Signed-off-by: Billie Simmons <49491949+JillieBeanSim@users.noreply.github.com> --- packages/zowe-explorer-api/src/profiles/ProfilesCache.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts index fc960e5080..1e2099224f 100644 --- a/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts +++ b/packages/zowe-explorer-api/src/profiles/ProfilesCache.ts @@ -389,10 +389,7 @@ export class ProfilesCache { return convertResult; } - public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session | undefined { - if (!session) { - return; - } + public static getProfileSessionWithVscProxy(session: imperative.Session): imperative.Session { const VsCodeProxySettings = VscSettings.getVsCodeProxySettings(); session.ISession.proxy = VsCodeProxySettings; return session;