From aeb6db48caa626c44e7caa00fb8e08442de24895 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Wed, 1 Nov 2023 16:56:43 +0000 Subject: [PATCH 01/19] Attempt to fix system tests Signed-off-by: Andrew W. Harn --- .../__system__/compare/ds/Compare.ds.system.test.ts | 9 +-------- .../zosfiles/__system__/view/ds/View.ds.system.test.ts | 9 +-------- .../zosfiles/__system__/view/uss/View.uss.system.test.ts | 9 +-------- .../list/cli.zos-logs.list.logs.system.test.ts | 9 --------- .../__tests__/__system__/CancelJobs.system.test.ts | 9 +-------- .../__tests__/__system__/DownloadJobs.system.test.ts | 2 +- .../zosjobs/__tests__/__system__/GetJobs.system.test.ts | 1 + 7 files changed, 6 insertions(+), 42 deletions(-) diff --git a/packages/cli/__tests__/zosfiles/__system__/compare/ds/Compare.ds.system.test.ts b/packages/cli/__tests__/zosfiles/__system__/compare/ds/Compare.ds.system.test.ts index 0dacfb0f33..5b0060e0cc 100644 --- a/packages/cli/__tests__/zosfiles/__system__/compare/ds/Compare.ds.system.test.ts +++ b/packages/cli/__tests__/zosfiles/__system__/compare/ds/Compare.ds.system.test.ts @@ -32,14 +32,7 @@ describe("Compare Data Sets", () => { }); defaultSystem = testEnvironment.systemTestProperties; - REAL_SESSION = new Session({ - user: defaultSystem.zosmf.user, - password: defaultSystem.zosmf.password, - hostname: defaultSystem.zosmf.host, - port: defaultSystem.zosmf.port, - type: "basic", - rejectUnauthorized: defaultSystem.zosmf.rejectUnauthorized - }); + REAL_SESSION = TestEnvironment.createZosmfSession(testEnvironment); dsname = getUniqueDatasetName(defaultSystem.zosmf.user); }); diff --git a/packages/cli/__tests__/zosfiles/__system__/view/ds/View.ds.system.test.ts b/packages/cli/__tests__/zosfiles/__system__/view/ds/View.ds.system.test.ts index 2ebccaf7bf..94d832ccd8 100644 --- a/packages/cli/__tests__/zosfiles/__system__/view/ds/View.ds.system.test.ts +++ b/packages/cli/__tests__/zosfiles/__system__/view/ds/View.ds.system.test.ts @@ -32,14 +32,7 @@ describe("View Data Set", () => { }); defaultSystem = testEnvironment.systemTestProperties; - REAL_SESSION = new Session({ - user: defaultSystem.zosmf.user, - password: defaultSystem.zosmf.password, - hostname: defaultSystem.zosmf.host, - port: defaultSystem.zosmf.port, - type: "basic", - rejectUnauthorized: defaultSystem.zosmf.rejectUnauthorized - }); + REAL_SESSION = TestEnvironment.createZosmfSession(testEnvironment); dsname = getUniqueDatasetName(defaultSystem.zosmf.user); }); diff --git a/packages/cli/__tests__/zosfiles/__system__/view/uss/View.uss.system.test.ts b/packages/cli/__tests__/zosfiles/__system__/view/uss/View.uss.system.test.ts index 78f3685fc9..fc7f3f154b 100644 --- a/packages/cli/__tests__/zosfiles/__system__/view/uss/View.uss.system.test.ts +++ b/packages/cli/__tests__/zosfiles/__system__/view/uss/View.uss.system.test.ts @@ -32,14 +32,7 @@ describe("View uss file", () => { }); defaultSystem = testEnvironment.systemTestProperties; - REAL_SESSION = new Session({ - user: defaultSystem.zosmf.user, - password: defaultSystem.zosmf.password, - hostname: defaultSystem.zosmf.host, - port: defaultSystem.zosmf.port, - type: "basic", - rejectUnauthorized: defaultSystem.zosmf.rejectUnauthorized - }); + REAL_SESSION = TestEnvironment.createZosmfSession(testEnvironment); dsname = getUniqueDatasetName(defaultSystem.zosmf.user); // using unique DS function to generate unique USS file name diff --git a/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts b/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts index 692b2057fc..4f40c37b4e 100644 --- a/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts +++ b/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts @@ -18,9 +18,6 @@ import * as fs from "fs"; // Test Environment populated in the beforeAll(); let TEST_ENVIRONMENT: ITestEnvironment; -// Expected length constants -const FOLLOW_UP_ATTEMPTS: number = 3; - describe("zos-logs list logs", () => { // Create the unique test environment with zosmf profiles beforeAll(async () => { @@ -81,12 +78,6 @@ describe("zos-logs list logs", () => { await TestEnvironment.cleanUp(TEST_ENVIRONMENT_NO_PROF); }); it("should execute zos-logs get and get the response", async () => { - const ZOWE_OPT_BASE_PATH = "ZOWE_OPT_BASE_PATH"; - // if API Mediation layer is being used (basePath has a value) then - // set an ENVIRONMENT variable to be used by zowe. - if (DEFAULT_SYSTEM_PROPS.zosmf.basePath != null) { - TEST_ENVIRONMENT_NO_PROF.env[ZOWE_OPT_BASE_PATH] = DEFAULT_SYSTEM_PROPS.zosmf.basePath; - } const response = runCliScript(__dirname + "/__scripts__/logs/list_logs_fully_qualified.sh", TEST_ENVIRONMENT_NO_PROF, [ DEFAULT_SYSTEM_PROPS.zosmf.host, DEFAULT_SYSTEM_PROPS.zosmf.port, diff --git a/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts b/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts index 74c638b668..c9130703a6 100644 --- a/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts +++ b/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts @@ -31,14 +31,7 @@ describe("CancelJobs System tests", () => { }); systemProps = testEnvironment.systemTestProperties; - REAL_SESSION = new Session({ - user: systemProps.zosmf.user, - password: systemProps.zosmf.password, - hostname: systemProps.zosmf.host, - port: systemProps.zosmf.port, - type: "basic", - rejectUnauthorized: systemProps.zosmf.rejectUnauthorized - }); + REAL_SESSION = TestEnvironment.createZosmfSession(testEnvironment); const ACCOUNT = systemProps.tso.account; const maxStepNum = 6; // Use lots of steps to make the job stay in INPUT status longer diff --git a/packages/zosjobs/__tests__/__system__/DownloadJobs.system.test.ts b/packages/zosjobs/__tests__/__system__/DownloadJobs.system.test.ts index 885b251486..a1dc9bfe70 100644 --- a/packages/zosjobs/__tests__/__system__/DownloadJobs.system.test.ts +++ b/packages/zosjobs/__tests__/__system__/DownloadJobs.system.test.ts @@ -66,7 +66,7 @@ describe("Download Jobs - System tests", () => { ACCOUNT = defaultSystem.tso.account; const JOB_LENGTH = 6; - DOWNLOAD_JOB_NAME = REAL_SESSION.ISession.user.substr(0, JOB_LENGTH).toUpperCase() + "DJ"; + DOWNLOAD_JOB_NAME = REAL_SESSION.ISession.user?.substr(0, JOB_LENGTH).toUpperCase() + "DJ"; JOBCLASS = testEnvironment.systemTestProperties.zosjobs.jobclass; SYSAFF = testEnvironment.systemTestProperties.zosjobs.sysaff; }); diff --git a/packages/zosjobs/__tests__/__system__/GetJobs.system.test.ts b/packages/zosjobs/__tests__/__system__/GetJobs.system.test.ts index 337564dbee..8aecc7aa87 100644 --- a/packages/zosjobs/__tests__/__system__/GetJobs.system.test.ts +++ b/packages/zosjobs/__tests__/__system__/GetJobs.system.test.ts @@ -88,6 +88,7 @@ describe("Get Jobs - System Tests", () => { password: "fake", hostname: defaultSystem.zosmf.host, port: defaultSystem.zosmf.port, + basePath: defaultSystem.zosmf.basePath, type: "basic", rejectUnauthorized: false }); From e38bd0d10b1bcdd1d46bfbc3afedd21be0915a42 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Wed, 1 Nov 2023 17:49:44 +0000 Subject: [PATCH 02/19] Fix last failing set of tests Signed-off-by: Andrew W. Harn --- .../__tests__/__system__/CancelJobs.system.test.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts b/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts index c9130703a6..06822f259d 100644 --- a/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts +++ b/packages/zosjobs/__tests__/__system__/CancelJobs.system.test.ts @@ -180,14 +180,7 @@ describe("CancelJobs System tests - encoded", () => { }); systemProps = testEnvironment.systemTestProperties; - REAL_SESSION = new Session({ - user: systemProps.zosmf.user, - password: systemProps.zosmf.password, - hostname: systemProps.zosmf.host, - port: systemProps.zosmf.port, - type: "basic", - rejectUnauthorized: systemProps.zosmf.rejectUnauthorized - }); + REAL_SESSION = TestEnvironment.createZosmfSession(testEnvironment); const ACCOUNT = systemProps.tso.account; const maxStepNum = 6; // Use lots of steps to make the job stay in INPUT status longer From ead2aa524e78e1b616513a7bc48b258c099033a6 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 13:51:53 +0000 Subject: [PATCH 03/19] Restore APIML logic Signed-off-by: Andrew W. Harn --- .../__system__/list/cli.zos-logs.list.logs.system.test.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts b/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts index 4f40c37b4e..39e1e801df 100644 --- a/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts +++ b/packages/cli/__tests__/zoslogs/__system__/list/cli.zos-logs.list.logs.system.test.ts @@ -78,6 +78,12 @@ describe("zos-logs list logs", () => { await TestEnvironment.cleanUp(TEST_ENVIRONMENT_NO_PROF); }); it("should execute zos-logs get and get the response", async () => { + const ZOWE_OPT_BASE_PATH = "ZOWE_OPT_BASE_PATH"; + // if API Mediation layer is being used (basePath has a value) then + // set an ENVIRONMENT variable to be used by zowe. + if (DEFAULT_SYSTEM_PROPS.zosmf.basePath != null) { + TEST_ENVIRONMENT_NO_PROF.env[ZOWE_OPT_BASE_PATH] = DEFAULT_SYSTEM_PROPS.zosmf.basePath; + } const response = runCliScript(__dirname + "/__scripts__/logs/list_logs_fully_qualified.sh", TEST_ENVIRONMENT_NO_PROF, [ DEFAULT_SYSTEM_PROPS.zosmf.host, DEFAULT_SYSTEM_PROPS.zosmf.port, From f005f1574c2418da8f3fcd6af8c6872ec5badf27 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 16:31:30 +0000 Subject: [PATCH 04/19] Add missing z/osmf connection options Signed-off-by: Andrew W. Harn --- npm-shrinkwrap.json | 30 ------------------- packages/cli/CHANGELOG.md | 4 +++ .../cli/src/zoslogs/ZosLogs.definition.ts | 13 +++++++- 3 files changed, 16 insertions(+), 31 deletions(-) diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 26a70d5fe4..db323efbc9 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -36248,36 +36248,6 @@ "which": "^2.0.2" }, "dependencies": { - "@zowe/provisioning-for-zowe-sdk": { - "version": "https://zowe.jfrog.io/zowe/api/npm/npm-local-release/@zowe/provisioning-for-zowe-sdk/-/@zowe/provisioning-for-zowe-sdk-7.18.8.tgz", - "integrity": "sha512-w1HhlBDlC+eEJaGEAW7sb+FBnh3Uti3aV4I4oZ2Wi5U2Z27snUHauJveJxlZciabgZ/nMcF+AwLnuEmTHZ6Vaw==", - "requires": { - "js-yaml": "4.1.0" - } - }, - "@zowe/zos-console-for-zowe-sdk": { - "version": "https://zowe.jfrog.io/zowe/api/npm/npm-local-release/@zowe/zos-console-for-zowe-sdk/-/@zowe/zos-console-for-zowe-sdk-7.18.8.tgz", - "integrity": "sha512-H2Kp4u2ESIDo5RwRexB0I68P5fCGCk4Zb1Yj3q7D/7qXceih7xXDmfF4W8ZWb99FXQr0F0oq1ryNn6QVAAlB/Q==", - "requires": {} - }, - "@zowe/zos-logs-for-zowe-sdk": { - "version": "https://zowe.jfrog.io/zowe/api/npm/npm-local-release/@zowe/zos-logs-for-zowe-sdk/-/@zowe/zos-logs-for-zowe-sdk-7.18.8.tgz", - "integrity": "sha512-Y7wwMsBh+qYbN6YUA8FuMmi9CNJFrTdjK/cn0jlo8VaTDEMuDV0vMRQVrhzMou8SsKdjSMLdza7R+6kUq9Zgaw==", - "requires": {} - }, - "@zowe/zos-tso-for-zowe-sdk": { - "version": "https://zowe.jfrog.io/zowe/api/npm/npm-local-release/@zowe/zos-tso-for-zowe-sdk/-/@zowe/zos-tso-for-zowe-sdk-7.18.8.tgz", - "integrity": "sha512-tRAwEhHccBqGI4Ee9H4U1hcfU3q1c1uM7ULGNJX2iYiuR90B61WzgB3o249Wn8AYPQ7FQ7xeUICnOGK8jZ/9bQ==", - "requires": { - "@zowe/zosmf-for-zowe-sdk": "7.18.8" - } - }, - "@zowe/zosmf-for-zowe-sdk": { - "version": "7.18.8", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-local-release/@zowe/zosmf-for-zowe-sdk/-/@zowe/zosmf-for-zowe-sdk-7.18.8.tgz", - "integrity": "sha512-BjkuTFKCpXL2w0E1seygg7l2yjr0xCaOc6sjdRtkJL/pfH79MFwyBFfLdTKkh6VJDURVfXdgNa9O9GkVLewEdw==", - "requires": {} - }, "brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 89efd8c5c3..a0ce9020c9 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to the Zowe CLI package will be documented in this file. +## Recent Changes + +- BugFix: Added missing z/OSMF connection options to the z/OS Logs command group. + ## `7.18.9` - Enhancement: Incorporate all source code from the zowe/imperative Github repository into the zowe/zowe-cli repository. This change should have no user impact. diff --git a/packages/cli/src/zoslogs/ZosLogs.definition.ts b/packages/cli/src/zoslogs/ZosLogs.definition.ts index a1f1822421..b323f2b4ab 100644 --- a/packages/cli/src/zoslogs/ZosLogs.definition.ts +++ b/packages/cli/src/zoslogs/ZosLogs.definition.ts @@ -10,6 +10,7 @@ */ import { ICommandDefinition } from "@zowe/imperative"; +import { ZosmfSession } from "@zowe/zosmf-for-zowe-sdk"; import { ListDefinition } from "./list/List.definition"; export const definition: ICommandDefinition = { @@ -18,7 +19,17 @@ export const definition: ICommandDefinition = { type: "group", summary: "Interact with z/OS logs", description: "Interact with z/OS logs.", - children: [ListDefinition] + children: [ListDefinition], + passOn: [ + { + property: "options", + value: ZosmfSession.ZOSMF_CONNECTION_OPTIONS, + merge: true, + ignoreNodes: [ + {type: "group"} + ] + } + ] }; module.exports = definition; From 6462bbbac869ee86b7175481655d06ef15011f62 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 17:35:48 +0000 Subject: [PATCH 05/19] Update snapshots Signed-off-by: Andrew W. Harn --- ...os-logs.list.logs.integration.test.ts.snap | 66 ++++++++----- .../ZosLogs.definition.unit.test.ts.snap | 99 +++++++++++++++++++ 2 files changed, 141 insertions(+), 24 deletions(-) diff --git a/packages/cli/__tests__/zoslogs/__integration__/list/__snapshots__/cli.zos-logs.list.logs.integration.test.ts.snap b/packages/cli/__tests__/zoslogs/__integration__/list/__snapshots__/cli.zos-logs.list.logs.integration.test.ts.snap index 500d390838..27589bf998 100644 --- a/packages/cli/__tests__/zoslogs/__integration__/list/__snapshots__/cli.zos-logs.list.logs.integration.test.ts.snap +++ b/packages/cli/__tests__/zoslogs/__integration__/list/__snapshots__/cli.zos-logs.list.logs.integration.test.ts.snap @@ -50,35 +50,26 @@ exports[`zos-logs list logs should display the help 1`] = ` Default value: 10m - PROFILE OPTIONS - --------------- - - --zosmf-profile | --zosmf-p (string) - - The name of a (zosmf) profile to load for this command execution. - - --base-profile | --base-p (string) - - The name of a (base) profile to load for this command execution. - - BASE CONNECTION OPTIONS - ----------------------- + ZOSMF CONNECTION OPTIONS + ------------------------ --host | -H (string) - Host name of service on the mainframe. + The z/OSMF server host name. --port | -P (number) - Port number of service on the mainframe. + The z/OSMF server port. + + Default value: 443 --user | -u (string) - User name to authenticate to service on the mainframe. + Mainframe (z/OSMF) user name, which can be the same as your TSO login. --password | --pass | --pw (string) - Password to authenticate to service on the mainframe. + Mainframe (z/OSMF) password, which can be the same as your TSO password. --reject-unauthorized | --ru (boolean) @@ -86,14 +77,18 @@ exports[`zos-logs list logs should display the help 1`] = ` Default value: true - --token-type | --tt (string) + --base-path | --bp (string) - The type of token to get and use for the API. Omit this option to use the - default token type, which is provided by 'zowe auth login'. + The base path for your API mediation layer instance. Specify this option to + prepend the base path to all z/OSMF resources when making REST requests. Do not + specify this option if you are not using an API mediation layer. - --token-value | --tv (string) + --protocol (string) - The value of the token to pass to the API. + The protocol used (HTTP or HTTPS) + + Default value: https + Allowed values: http, https --cert-file (local file path) @@ -103,6 +98,29 @@ exports[`zos-logs list logs should display the help 1`] = ` The file path to a certificate key file to use for authentication + PROFILE OPTIONS + --------------- + + --zosmf-profile | --zosmf-p (string) + + The name of a (zosmf) profile to load for this command execution. + + --base-profile | --base-p (string) + + The name of a (base) profile to load for this command execution. + + BASE CONNECTION OPTIONS + ----------------------- + + --token-type | --tt (string) + + The type of token to get and use for the API. Omit this option to use the + default token type, which is provided by 'zowe auth login'. + + --token-value | --tv (string) + + The value of the token to pass to the API. + GLOBAL OPTIONS -------------- @@ -145,8 +163,8 @@ exports[`zos-logs list logs should display the help 1`] = ` \\"success\\": true, \\"exitCode\\": 0, \\"message\\": \\"The help was constructed for command: logs.\\", - \\"stdout\\": \\"\\\\n COMMAND NAME\\\\n ------------\\\\n\\\\n logs\\\\n\\\\n DESCRIPTION\\\\n -----------\\\\n\\\\n List z/OS operlog within a time range.\\\\n\\\\n Use this operation to get the z/OS operations logs. It invokes z/OSMF REST API\\\\n to retrieve logs.\\\\n\\\\n Executing 'zowe zos-logs list logs' will by default return logs from current\\\\n time and backwards to 10 minutes before.\\\\n\\\\n Note: OPERLOG needs to be configured on z/OS server.\\\\n\\\\n USAGE\\\\n -----\\\\n\\\\n zowe zos-logs list logs [options]\\\\n\\\\n OPTIONS\\\\n -------\\\\n\\\\n --start-time | --st (string)\\\\n\\\\n Specify the time in ISO-8601 time format from when z/OSMF will start to retrieve\\\\n the logs. For example, '2021-01-26T03:33:18.065Z',\\\\n '2021-01-26T11:33:18.065+08:00'. Default is the current time.\\\\n\\\\n --direction | -d (string)\\\\n\\\\n Specify the direction when retrieving the message log. Either 'forward' or\\\\n 'backward' is valid, case insensitive.\\\\n\\\\n Default value: backward\\\\n Allowed values: forward, backward\\\\n\\\\n --range | -r (string)\\\\n\\\\n Specify a time range in which the logs will be retrieved. The format is like\\\\n nnnu, nnn is 1-999, u is one of 's', 'm', 'h', for example, '999s', '20m', '3h'.\\\\n\\\\n Default value: 10m\\\\n\\\\n PROFILE OPTIONS\\\\n ---------------\\\\n\\\\n --zosmf-profile | --zosmf-p (string)\\\\n\\\\n The name of a (zosmf) profile to load for this command execution.\\\\n\\\\n --base-profile | --base-p (string)\\\\n\\\\n The name of a (base) profile to load for this command execution.\\\\n\\\\n BASE CONNECTION OPTIONS\\\\n -----------------------\\\\n\\\\n --host | -H (string)\\\\n\\\\n Host name of service on the mainframe.\\\\n\\\\n --port | -P (number)\\\\n\\\\n Port number of service on the mainframe.\\\\n\\\\n --user | -u (string)\\\\n\\\\n User name to authenticate to service on the mainframe.\\\\n\\\\n --password | --pass | --pw (string)\\\\n\\\\n Password to authenticate to service on the mainframe.\\\\n\\\\n --reject-unauthorized | --ru (boolean)\\\\n\\\\n Reject self-signed certificates.\\\\n\\\\n Default value: true\\\\n\\\\n --token-type | --tt (string)\\\\n\\\\n The type of token to get and use for the API. Omit this option to use the\\\\n default token type, which is provided by 'zowe auth login'.\\\\n\\\\n --token-value | --tv (string)\\\\n\\\\n The value of the token to pass to the API.\\\\n\\\\n --cert-file (local file path)\\\\n\\\\n The file path to a certificate file to use for authentication\\\\n\\\\n --cert-key-file (local file path)\\\\n\\\\n The file path to a certificate key file to use for authentication\\\\n\\\\n GLOBAL OPTIONS\\\\n --------------\\\\n\\\\n --show-inputs-only (boolean)\\\\n\\\\n Show command inputs and do not run the command\\\\n\\\\n --response-format-json | --rfj (boolean)\\\\n\\\\n Produce JSON formatted data from a command\\\\n\\\\n --help | -h (boolean)\\\\n\\\\n Display help text\\\\n\\\\n --help-web | --hw (boolean)\\\\n\\\\n Display HTML help in browser\\\\n\\\\n EXAMPLES\\\\n --------\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m --direction forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later. Alias version of the above command:\\\\n\\\\n $ zowe zos-logs list logs --st 2021-07-26T03:38:37.098Z -r 5m -d forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n backwards to 5 minutes before:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m\\\\n\\\\n\\", + \\"stdout\\": \\"\\\\n COMMAND NAME\\\\n ------------\\\\n\\\\n logs\\\\n\\\\n DESCRIPTION\\\\n -----------\\\\n\\\\n List z/OS operlog within a time range.\\\\n\\\\n Use this operation to get the z/OS operations logs. It invokes z/OSMF REST API\\\\n to retrieve logs.\\\\n\\\\n Executing 'zowe zos-logs list logs' will by default return logs from current\\\\n time and backwards to 10 minutes before.\\\\n\\\\n Note: OPERLOG needs to be configured on z/OS server.\\\\n\\\\n USAGE\\\\n -----\\\\n\\\\n zowe zos-logs list logs [options]\\\\n\\\\n OPTIONS\\\\n -------\\\\n\\\\n --start-time | --st (string)\\\\n\\\\n Specify the time in ISO-8601 time format from when z/OSMF will start to retrieve\\\\n the logs. For example, '2021-01-26T03:33:18.065Z',\\\\n '2021-01-26T11:33:18.065+08:00'. Default is the current time.\\\\n\\\\n --direction | -d (string)\\\\n\\\\n Specify the direction when retrieving the message log. Either 'forward' or\\\\n 'backward' is valid, case insensitive.\\\\n\\\\n Default value: backward\\\\n Allowed values: forward, backward\\\\n\\\\n --range | -r (string)\\\\n\\\\n Specify a time range in which the logs will be retrieved. The format is like\\\\n nnnu, nnn is 1-999, u is one of 's', 'm', 'h', for example, '999s', '20m', '3h'.\\\\n\\\\n Default value: 10m\\\\n\\\\n ZOSMF CONNECTION OPTIONS\\\\n ------------------------\\\\n\\\\n --host | -H (string)\\\\n\\\\n The z/OSMF server host name.\\\\n\\\\n --port | -P (number)\\\\n\\\\n The z/OSMF server port.\\\\n\\\\n Default value: 443\\\\n\\\\n --user | -u (string)\\\\n\\\\n Mainframe (z/OSMF) user name, which can be the same as your TSO login.\\\\n\\\\n --password | --pass | --pw (string)\\\\n\\\\n Mainframe (z/OSMF) password, which can be the same as your TSO password.\\\\n\\\\n --reject-unauthorized | --ru (boolean)\\\\n\\\\n Reject self-signed certificates.\\\\n\\\\n Default value: true\\\\n\\\\n --base-path | --bp (string)\\\\n\\\\n The base path for your API mediation layer instance. Specify this option to\\\\n prepend the base path to all z/OSMF resources when making REST requests. Do not\\\\n specify this option if you are not using an API mediation layer.\\\\n\\\\n --protocol (string)\\\\n\\\\n The protocol used (HTTP or HTTPS)\\\\n\\\\n Default value: https\\\\n Allowed values: http, https\\\\n\\\\n --cert-file (local file path)\\\\n\\\\n The file path to a certificate file to use for authentication\\\\n\\\\n --cert-key-file (local file path)\\\\n\\\\n The file path to a certificate key file to use for authentication\\\\n\\\\n PROFILE OPTIONS\\\\n ---------------\\\\n\\\\n --zosmf-profile | --zosmf-p (string)\\\\n\\\\n The name of a (zosmf) profile to load for this command execution.\\\\n\\\\n --base-profile | --base-p (string)\\\\n\\\\n The name of a (base) profile to load for this command execution.\\\\n\\\\n BASE CONNECTION OPTIONS\\\\n -----------------------\\\\n\\\\n --token-type | --tt (string)\\\\n\\\\n The type of token to get and use for the API. Omit this option to use the\\\\n default token type, which is provided by 'zowe auth login'.\\\\n\\\\n --token-value | --tv (string)\\\\n\\\\n The value of the token to pass to the API.\\\\n\\\\n GLOBAL OPTIONS\\\\n --------------\\\\n\\\\n --show-inputs-only (boolean)\\\\n\\\\n Show command inputs and do not run the command\\\\n\\\\n --response-format-json | --rfj (boolean)\\\\n\\\\n Produce JSON formatted data from a command\\\\n\\\\n --help | -h (boolean)\\\\n\\\\n Display help text\\\\n\\\\n --help-web | --hw (boolean)\\\\n\\\\n Display HTML help in browser\\\\n\\\\n EXAMPLES\\\\n --------\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m --direction forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later. Alias version of the above command:\\\\n\\\\n $ zowe zos-logs list logs --st 2021-07-26T03:38:37.098Z -r 5m -d forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n backwards to 5 minutes before:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m\\\\n\\\\n\\", \\"stderr\\": \\"\\", - \\"data\\": \\"\\\\n COMMAND NAME\\\\n ------------\\\\n\\\\n logs\\\\n\\\\n DESCRIPTION\\\\n -----------\\\\n\\\\n List z/OS operlog within a time range.\\\\n\\\\n Use this operation to get the z/OS operations logs. It invokes z/OSMF REST API\\\\n to retrieve logs.\\\\n\\\\n Executing 'zowe zos-logs list logs' will by default return logs from current\\\\n time and backwards to 10 minutes before.\\\\n\\\\n Note: OPERLOG needs to be configured on z/OS server.\\\\n\\\\n USAGE\\\\n -----\\\\n\\\\n zowe zos-logs list logs [options]\\\\n\\\\n OPTIONS\\\\n -------\\\\n\\\\n --start-time | --st (string)\\\\n\\\\n Specify the time in ISO-8601 time format from when z/OSMF will start to retrieve\\\\n the logs. For example, '2021-01-26T03:33:18.065Z',\\\\n '2021-01-26T11:33:18.065+08:00'. Default is the current time.\\\\n\\\\n --direction | -d (string)\\\\n\\\\n Specify the direction when retrieving the message log. Either 'forward' or\\\\n 'backward' is valid, case insensitive.\\\\n\\\\n Default value: backward\\\\n Allowed values: forward, backward\\\\n\\\\n --range | -r (string)\\\\n\\\\n Specify a time range in which the logs will be retrieved. The format is like\\\\n nnnu, nnn is 1-999, u is one of 's', 'm', 'h', for example, '999s', '20m', '3h'.\\\\n\\\\n Default value: 10m\\\\n\\\\n PROFILE OPTIONS\\\\n ---------------\\\\n\\\\n --zosmf-profile | --zosmf-p (string)\\\\n\\\\n The name of a (zosmf) profile to load for this command execution.\\\\n\\\\n --base-profile | --base-p (string)\\\\n\\\\n The name of a (base) profile to load for this command execution.\\\\n\\\\n BASE CONNECTION OPTIONS\\\\n -----------------------\\\\n\\\\n --host | -H (string)\\\\n\\\\n Host name of service on the mainframe.\\\\n\\\\n --port | -P (number)\\\\n\\\\n Port number of service on the mainframe.\\\\n\\\\n --user | -u (string)\\\\n\\\\n User name to authenticate to service on the mainframe.\\\\n\\\\n --password | --pass | --pw (string)\\\\n\\\\n Password to authenticate to service on the mainframe.\\\\n\\\\n --reject-unauthorized | --ru (boolean)\\\\n\\\\n Reject self-signed certificates.\\\\n\\\\n Default value: true\\\\n\\\\n --token-type | --tt (string)\\\\n\\\\n The type of token to get and use for the API. Omit this option to use the\\\\n default token type, which is provided by 'zowe auth login'.\\\\n\\\\n --token-value | --tv (string)\\\\n\\\\n The value of the token to pass to the API.\\\\n\\\\n --cert-file (local file path)\\\\n\\\\n The file path to a certificate file to use for authentication\\\\n\\\\n --cert-key-file (local file path)\\\\n\\\\n The file path to a certificate key file to use for authentication\\\\n\\\\n GLOBAL OPTIONS\\\\n --------------\\\\n\\\\n --show-inputs-only (boolean)\\\\n\\\\n Show command inputs and do not run the command\\\\n\\\\n --response-format-json | --rfj (boolean)\\\\n\\\\n Produce JSON formatted data from a command\\\\n\\\\n --help | -h (boolean)\\\\n\\\\n Display help text\\\\n\\\\n --help-web | --hw (boolean)\\\\n\\\\n Display HTML help in browser\\\\n\\\\n EXAMPLES\\\\n --------\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m --direction forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later. Alias version of the above command:\\\\n\\\\n $ zowe zos-logs list logs --st 2021-07-26T03:38:37.098Z -r 5m -d forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n backwards to 5 minutes before:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m\\\\n\\\\n\\" + \\"data\\": \\"\\\\n COMMAND NAME\\\\n ------------\\\\n\\\\n logs\\\\n\\\\n DESCRIPTION\\\\n -----------\\\\n\\\\n List z/OS operlog within a time range.\\\\n\\\\n Use this operation to get the z/OS operations logs. It invokes z/OSMF REST API\\\\n to retrieve logs.\\\\n\\\\n Executing 'zowe zos-logs list logs' will by default return logs from current\\\\n time and backwards to 10 minutes before.\\\\n\\\\n Note: OPERLOG needs to be configured on z/OS server.\\\\n\\\\n USAGE\\\\n -----\\\\n\\\\n zowe zos-logs list logs [options]\\\\n\\\\n OPTIONS\\\\n -------\\\\n\\\\n --start-time | --st (string)\\\\n\\\\n Specify the time in ISO-8601 time format from when z/OSMF will start to retrieve\\\\n the logs. For example, '2021-01-26T03:33:18.065Z',\\\\n '2021-01-26T11:33:18.065+08:00'. Default is the current time.\\\\n\\\\n --direction | -d (string)\\\\n\\\\n Specify the direction when retrieving the message log. Either 'forward' or\\\\n 'backward' is valid, case insensitive.\\\\n\\\\n Default value: backward\\\\n Allowed values: forward, backward\\\\n\\\\n --range | -r (string)\\\\n\\\\n Specify a time range in which the logs will be retrieved. The format is like\\\\n nnnu, nnn is 1-999, u is one of 's', 'm', 'h', for example, '999s', '20m', '3h'.\\\\n\\\\n Default value: 10m\\\\n\\\\n ZOSMF CONNECTION OPTIONS\\\\n ------------------------\\\\n\\\\n --host | -H (string)\\\\n\\\\n The z/OSMF server host name.\\\\n\\\\n --port | -P (number)\\\\n\\\\n The z/OSMF server port.\\\\n\\\\n Default value: 443\\\\n\\\\n --user | -u (string)\\\\n\\\\n Mainframe (z/OSMF) user name, which can be the same as your TSO login.\\\\n\\\\n --password | --pass | --pw (string)\\\\n\\\\n Mainframe (z/OSMF) password, which can be the same as your TSO password.\\\\n\\\\n --reject-unauthorized | --ru (boolean)\\\\n\\\\n Reject self-signed certificates.\\\\n\\\\n Default value: true\\\\n\\\\n --base-path | --bp (string)\\\\n\\\\n The base path for your API mediation layer instance. Specify this option to\\\\n prepend the base path to all z/OSMF resources when making REST requests. Do not\\\\n specify this option if you are not using an API mediation layer.\\\\n\\\\n --protocol (string)\\\\n\\\\n The protocol used (HTTP or HTTPS)\\\\n\\\\n Default value: https\\\\n Allowed values: http, https\\\\n\\\\n --cert-file (local file path)\\\\n\\\\n The file path to a certificate file to use for authentication\\\\n\\\\n --cert-key-file (local file path)\\\\n\\\\n The file path to a certificate key file to use for authentication\\\\n\\\\n PROFILE OPTIONS\\\\n ---------------\\\\n\\\\n --zosmf-profile | --zosmf-p (string)\\\\n\\\\n The name of a (zosmf) profile to load for this command execution.\\\\n\\\\n --base-profile | --base-p (string)\\\\n\\\\n The name of a (base) profile to load for this command execution.\\\\n\\\\n BASE CONNECTION OPTIONS\\\\n -----------------------\\\\n\\\\n --token-type | --tt (string)\\\\n\\\\n The type of token to get and use for the API. Omit this option to use the\\\\n default token type, which is provided by 'zowe auth login'.\\\\n\\\\n --token-value | --tv (string)\\\\n\\\\n The value of the token to pass to the API.\\\\n\\\\n GLOBAL OPTIONS\\\\n --------------\\\\n\\\\n --show-inputs-only (boolean)\\\\n\\\\n Show command inputs and do not run the command\\\\n\\\\n --response-format-json | --rfj (boolean)\\\\n\\\\n Produce JSON formatted data from a command\\\\n\\\\n --help | -h (boolean)\\\\n\\\\n Display help text\\\\n\\\\n --help-web | --hw (boolean)\\\\n\\\\n Display HTML help in browser\\\\n\\\\n EXAMPLES\\\\n --------\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m --direction forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n forwards to 5 minutes later. Alias version of the above command:\\\\n\\\\n $ zowe zos-logs list logs --st 2021-07-26T03:38:37.098Z -r 5m -d forward\\\\n\\\\n - List logs starting from '2021-07-26T03:38:37.098Z' and\\\\n backwards to 5 minutes before:\\\\n\\\\n $ zowe zos-logs list logs --start-time 2021-07-26T03:38:37.098Z --range 5m\\\\n\\\\n\\" }" `; diff --git a/packages/cli/__tests__/zoslogs/__unit__/__snapshots__/ZosLogs.definition.unit.test.ts.snap b/packages/cli/__tests__/zoslogs/__unit__/__snapshots__/ZosLogs.definition.unit.test.ts.snap index 0fa857b59c..bb2581a9e4 100644 --- a/packages/cli/__tests__/zoslogs/__unit__/__snapshots__/ZosLogs.definition.unit.test.ts.snap +++ b/packages/cli/__tests__/zoslogs/__unit__/__snapshots__/ZosLogs.definition.unit.test.ts.snap @@ -7,6 +7,105 @@ Object { ], "description": "Interact with z/OS logs.", "name": "zos-logs", + "passOn": Array [ + Object { + "ignoreNodes": Array [ + Object { + "type": "group", + }, + ], + "merge": true, + "property": "options", + "value": Array [ + Object { + "aliases": Array [ + "H", + ], + "description": "The z/OSMF server host name.", + "group": "Zosmf Connection Options", + "name": "host", + "required": false, + "type": "string", + }, + Object { + "aliases": Array [ + "P", + ], + "defaultValue": 443, + "description": "The z/OSMF server port.", + "group": "Zosmf Connection Options", + "name": "port", + "type": "number", + }, + Object { + "aliases": Array [ + "u", + ], + "description": "Mainframe (z/OSMF) user name, which can be the same as your TSO login.", + "group": "Zosmf Connection Options", + "name": "user", + "required": false, + "type": "string", + }, + Object { + "aliases": Array [ + "pass", + "pw", + ], + "description": "Mainframe (z/OSMF) password, which can be the same as your TSO password.", + "group": "Zosmf Connection Options", + "name": "password", + "required": false, + "type": "string", + }, + Object { + "aliases": Array [ + "ru", + ], + "defaultValue": true, + "description": "Reject self-signed certificates.", + "group": "Zosmf Connection Options", + "name": "reject-unauthorized", + "type": "boolean", + }, + Object { + "aliases": Array [ + "bp", + ], + "description": "The base path for your API mediation layer instance. Specify this option to prepend the base path to all z/OSMF resources when making REST requests. Do not specify this option if you are not using an API mediation layer.", + "group": "Zosmf Connection Options", + "name": "base-path", + "type": "string", + }, + Object { + "allowableValues": Object { + "caseSensitive": false, + "values": Array [ + "http", + "https", + ], + }, + "defaultValue": "https", + "description": "The protocol used (HTTP or HTTPS)", + "group": "Zosmf Connection Options", + "name": "protocol", + "type": "string", + }, + Object { + "description": "The file path to a certificate file to use for authentication", + "group": "Zosmf Connection Options", + "name": "cert-file", + "type": "existingLocalFile", + }, + Object { + "description": "The file path to a certificate key file to use for authentication", + "group": "Zosmf Connection Options", + "name": "cert-key-file", + "type": "existingLocalFile", + }, + ], + }, + ], "summary": "Interact with z/OS logs", "type": "group", } From 6dd0a856d06d9f6b1618492d8089d3ad3b3f08f2 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 20:19:54 +0000 Subject: [PATCH 06/19] Re-integrate all of the integration tests Signed-off-by: Andrew W. Harn --- .github/workflows/zowe-cli.yml | 2 +- npm-shrinkwrap.json | 1983 ----------------- package.json | 9 +- ...i.auth.login.fruit.integration.subtest.ts} | 0 ....auth.logout.fruit.integration.subtest.ts} | 0 ...ig.auto-init.fruit.integration.subtest.ts} | 0 ...g.convert-profiles.integration.subtest.ts} | 0 ...st-cli.config.init.integration.subtest.ts} | 0 ...i.config.profiles.integration.test.ts.snap | 7 - ...li.config.profiles.integration.subtest.ts} | 0 ...-cli.config.report-env.integration.test.ts | 2 +- ...-cli.config.secure.integration.subtest.ts} | 2 +- ...est-cli.config.set.integration.subtest.ts} | 0 ...te.secured-profile.integration.subtest.ts} | 0 ....config-auto-store.integration.subtest.ts} | 0 ...st.config-override.integration.subtest.ts} | 0 ...mperative.secure.integration.test.ts.snap} | 14 +- .../imperative.secure.integration.test.ts | 30 + ...ManagementFacility.integration.subtest.ts} | 0 ...anager.credentials.integration.subtest.ts} | 0 20 files changed, 44 insertions(+), 2005 deletions(-) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/{imperative.test.cli.auth.login.fruit.integration.test.ts => imperative.test.cli.auth.login.fruit.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/{imperative.test.cli.auth.logout.fruit.integration.test.ts => imperative.test.cli.auth.logout.fruit.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/{imperative.test.cli.config.auto-init.fruit.integration.test.ts => imperative.test.cli.config.auto-init.fruit.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/{cli.imperative-test-cli.config.convert-profiles.integration.test.ts => cli.imperative-test-cli.config.convert-profiles.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/{cli.imperative-test-cli.config.init.integration.test.ts => cli.imperative-test-cli.config.init.integration.subtest.ts} (100%) delete mode 100644 packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/__snapshots__/cli.imperative-test-cli.config.profiles.integration.test.ts.snap rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/{cli.imperative-test-cli.config.profiles.integration.test.ts => cli.imperative-test-cli.config.profiles.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/{cli.imperative-test-cli.config.secure.integration.test.ts => cli.imperative-test-cli.config.secure.integration.subtest.ts} (99%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/{cli.imperative-test-cli.config.set.integration.test.ts => cli.imperative-test-cli.config.set.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/{cli.imperative-test-cli.profiles.create.secured-profile.integration.test.ts => cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/{cli.imperative-test-cli.test.config-auto-store.integration.test.ts => cli.imperative-test-cli.test.config-auto-store.integration.subtest.ts} (100%) rename packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/{cli.imperative-test-cli.test.config-override.integration.test.ts => cli.imperative-test-cli.test.config-override.integration.subtest.ts} (100%) rename packages/imperative/__tests__/{src/packages/profiles/__integration__/__snapshots__/CliProfileManager.credentials.integration.test.ts.snap => __snapshots__/imperative.secure.integration.test.ts.snap} (64%) create mode 100644 packages/imperative/__tests__/imperative.secure.integration.test.ts rename packages/imperative/__tests__/src/packages/imperative/__integration__/{PluginManagementFacility.integration.spec.ts => PluginManagementFacility.integration.subtest.ts} (100%) rename packages/imperative/__tests__/src/packages/profiles/__integration__/{CliProfileManager.credentials.integration.test.ts => CliProfileManager.credentials.integration.subtest.ts} (100%) diff --git a/.github/workflows/zowe-cli.yml b/.github/workflows/zowe-cli.yml index 2e22d30a82..84cff04f0e 100644 --- a/.github/workflows/zowe-cli.yml +++ b/.github/workflows/zowe-cli.yml @@ -133,7 +133,7 @@ jobs: - name: Integration Tests (Daemon) if: ${{ always() && steps.build.outcome == 'success' && (github.event.inputs.test-type == 'binary' || github.event_name == 'push') }} - run: npm run test:integration:inband + run: npm run test:integration -- --runInBand - name: Archive Results if: ${{ always() && steps.build.outcome == 'success' }} diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index db323efbc9..5e653df9fd 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -33,12 +33,10 @@ "jest-stare": "^2.2.0", "js-yaml": "^4.1.0", "jsonfile": "^4.0.0", - "junit-report-merger": "^6.0.2", "lerna": "^5.4.3", "madge": "^4.0.1", "mustache": "^4.2.0", "npm-lockfile": "^3.0.4", - "npm-run-all": "^4.1.5", "rimraf": "^2.6.3", "shebang-regex": "^2.0.0", "symlink-dir": "^5.1.1", @@ -7497,54 +7495,6 @@ "@octokit/openapi-types": "^14.0.0" } }, - "node_modules/@oozcitak/dom": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", - "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", - "dev": true, - "dependencies": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/url": "1.0.4", - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@oozcitak/infra": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", - "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", - "dev": true, - "dependencies": { - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/@oozcitak/url": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", - "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", - "dev": true, - "dependencies": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/@oozcitak/util": { - "version": "8.3.8", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", - "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", - "dev": true, - "engines": { - "node": ">=8.0" - } - }, "node_modules/@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", @@ -8938,19 +8888,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-differ": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", @@ -8989,27 +8926,6 @@ "node": ">=8" } }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/arrgv": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", @@ -9454,18 +9370,6 @@ "node": ">=12" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/axios": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", @@ -10294,20 +10198,6 @@ "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -12184,20 +12074,6 @@ "node": ">=0.8" } }, - "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", @@ -12207,23 +12083,6 @@ "node": ">=8" } }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/del": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", @@ -12868,90 +12727,6 @@ "is-arrayish": "^0.2.1" } }, - "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -13706,15 +13481,6 @@ } } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, "node_modules/form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -13810,33 +13576,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -13876,21 +13615,6 @@ "function-arguments": "^1.0.0" } }, - "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -14027,22 +13751,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/git-raw-commits": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", @@ -14214,21 +13922,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -14289,18 +13982,6 @@ "delegate": "^3.1.2" } }, - "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -14374,15 +14055,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -14399,75 +14071,12 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, - "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.2" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/highlight.js": { "version": "11.5.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", @@ -14838,20 +14447,6 @@ "node": ">=12.0.0" } }, - "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -14866,38 +14461,12 @@ "node": ">=8" } }, - "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -14910,34 +14479,6 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -14968,21 +14509,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -15054,18 +14580,6 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -15074,21 +14588,6 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -15140,22 +14639,6 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "dev": true }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -15171,18 +14654,6 @@ "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", "dev": true }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-ssh": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", @@ -15204,36 +14675,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", @@ -15246,21 +14687,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "dependencies": { - "which-typed-array": "^1.1.11" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -15285,18 +14711,6 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -18223,49 +17637,6 @@ "jquery": "^3.5.0" } }, - "node_modules/junit-report-merger": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/junit-report-merger/-/junit-report-merger-6.0.2.tgz", - "integrity": "sha512-Jk9PXeaJhbgo3aUNza2r24JgxYzLUtCk2kwrub8fbmDuWUdXhT/nfbM2MlU3JQiFbjVud1bzBWdzr9/GGBWfmA==", - "dev": true, - "dependencies": { - "commander": "~10.0.0", - "fast-glob": "~3.2.11", - "xmlbuilder2": "3.1.1" - }, - "bin": { - "jrm": "cli.js", - "junit-report-merger": "cli.js" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/junit-report-merger/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/junit-report-merger/node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - }, - "engines": { - "node": ">=8.6.0" - } - }, "node_modules/just-diff": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", @@ -19080,15 +18451,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true, - "engines": { - "node": ">= 0.10.0" - } - }, "node_modules/meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -21040,169 +20402,6 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, - "node_modules/npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "bin": { - "npm-run-all": "bin/npm-run-all/index.js", - "run-p": "bin/run-p/index.js", - "run-s": "bin/run-s/index.js" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/npm-run-all/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/npm-run-all/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/npm-run-all/node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/npm-run-all/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/npm-run-all/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-run-all/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/npm-run-all/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npm-run-all/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, "node_modules/npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -21485,33 +20684,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", @@ -22128,18 +21300,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true, - "bin": { - "pidtree": "bin/pidtree.js" - }, - "engines": { - "node": ">=0.10" - } - }, "node_modules/pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", @@ -23191,23 +22351,6 @@ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -23485,50 +22628,12 @@ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==", "dev": true }, - "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-array-concat/node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -23769,35 +22874,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "dependencies": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -23875,20 +22951,6 @@ "vscode-textmate": "^6.0.0" } }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -24279,68 +23341,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.padend": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", - "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -25346,71 +24346,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -25499,21 +24434,6 @@ "node": ">=0.8.0" } }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/underscore": { "version": "1.13.6", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", @@ -25730,46 +24650,11 @@ "node": ">= 8" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -26050,43 +24935,6 @@ "node": ">=8.0" } }, - "node_modules/xmlbuilder2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", - "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", - "dev": true, - "dependencies": { - "@oozcitak/dom": "1.15.10", - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8", - "js-yaml": "3.14.1" - }, - "engines": { - "node": ">=12.0" - } - }, - "node_modules/xmlbuilder2/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/xmlbuilder2/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -35362,42 +34210,6 @@ "@octokit/openapi-types": "^14.0.0" } }, - "@oozcitak/dom": { - "version": "1.15.10", - "resolved": "https://registry.npmjs.org/@oozcitak/dom/-/dom-1.15.10.tgz", - "integrity": "sha512-0JT29/LaxVgRcGKvHmSrUTEvZ8BXvZhGl2LASRUgHqDTC1M5g1pLmVv56IYNyt3bG2CUjDkc67wnyZC14pbQrQ==", - "dev": true, - "requires": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/url": "1.0.4", - "@oozcitak/util": "8.3.8" - } - }, - "@oozcitak/infra": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@oozcitak/infra/-/infra-1.0.8.tgz", - "integrity": "sha512-JRAUc9VR6IGHOL7OGF+yrvs0LO8SlqGnPAMqyzOuFZPSZSXI7Xf2O9+awQPSMXgIWGtgUf/dA6Hs6X6ySEaWTg==", - "dev": true, - "requires": { - "@oozcitak/util": "8.3.8" - } - }, - "@oozcitak/url": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@oozcitak/url/-/url-1.0.4.tgz", - "integrity": "sha512-kDcD8y+y3FCSOvnBI6HJgl00viO/nGbQoCINmQ0h98OhnGITrWR3bOGfwYCthgcrV8AnTJz8MzslTQbC3SOAmw==", - "dev": true, - "requires": { - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8" - } - }, - "@oozcitak/util": { - "version": "8.3.8", - "resolved": "https://registry.npmjs.org/@oozcitak/util/-/util-8.3.8.tgz", - "integrity": "sha512-T8TbSnGsxo6TDBJx/Sgv/BlVJL3tshxZP7Aq5R1mSnM5OcHY2dQaxLMu2+E8u3gN0MLOzdjurqN4ZRVuzQycOQ==", - "dev": true - }, "@parcel/watcher": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.0.4.tgz", @@ -38790,16 +37602,6 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, - "array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" - } - }, "array-differ": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", @@ -38829,21 +37631,6 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" - } - }, "arrgv": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/arrgv/-/arrgv-1.0.2.tgz", @@ -39151,12 +37938,6 @@ } } }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, "axios": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", @@ -39794,17 +38575,6 @@ } } }, - "call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, - "requires": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" - } - }, "caller-callsite": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", @@ -41228,34 +39998,12 @@ } } }, - "define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, "define-lazy-prop": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", "dev": true }, - "define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, "del": { "version": "6.1.1", "resolved": "https://registry.npmjs.org/del/-/del-6.1.1.tgz", @@ -41742,75 +40490,6 @@ "is-arrayish": "^0.2.1" } }, - "es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "dev": true, - "requires": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" - } - }, - "es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -42381,15 +41060,6 @@ "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", "dev": true }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, "form-data": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", @@ -42462,24 +41132,6 @@ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", "dev": true }, - "function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -42510,18 +41162,6 @@ "function-arguments": "^1.0.0" } }, - "get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" - } - }, "get-own-enumerable-property-symbols": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", @@ -42621,16 +41261,6 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==" }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, "git-raw-commits": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz", @@ -42766,15 +41396,6 @@ "type-fest": "^0.20.2" } }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dev": true, - "requires": { - "define-properties": "^1.1.3" - } - }, "globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -42822,15 +41443,6 @@ "delegate": "^3.1.2" } }, - "gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.3" - } - }, "graceful-fs": { "version": "4.2.9", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.9.tgz", @@ -42887,12 +41499,6 @@ "function-bind": "^1.1.1" } }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, "has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -42903,51 +41509,12 @@ "resolved": "https://registry.npmjs.org/has-own-prop/-/has-own-prop-2.0.0.tgz", "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==" }, - "has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2" - } - }, - "has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "dev": true }, - "hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, - "requires": { - "function-bind": "^1.1.2" - } - }, "highlight.js": { "version": "11.5.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.5.1.tgz", @@ -43233,17 +41800,6 @@ "wrap-ansi": "^7.0.0" } }, - "internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", - "dev": true, - "requires": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" - } - }, "ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", @@ -43255,32 +41811,12 @@ "integrity": "sha512-1ANGLZ+Nkv1ptFb2pa8oG8Lem4krflKuX/gINiHJHjJUKaJHk/SXk5x6K3J+39/p0h1RQ2saROclJJ+QLvETCQ==", "dev": true }, - "is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" - } - }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -43290,22 +41826,6 @@ "binary-extensions": "^2.0.0" } }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -43332,15 +41852,6 @@ "has": "^1.0.3" } }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-docker": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", @@ -43388,26 +41899,11 @@ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU=" }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, "is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -43444,16 +41940,6 @@ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==", "dev": true }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, "is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -43466,15 +41952,6 @@ "integrity": "sha1-CRtGoNZ8HtD+hfH4z93gBrslHUY=", "dev": true }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, "is-ssh": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.4.0.tgz", @@ -43490,24 +41967,6 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, "is-text-path": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", @@ -43517,15 +41976,6 @@ "text-extensions": "^1.0.0" } }, - "is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", - "dev": true, - "requires": { - "which-typed-array": "^1.1.11" - } - }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -43544,15 +41994,6 @@ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", "dev": true }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -45847,38 +44288,6 @@ "jquery": "^3.5.0" } }, - "junit-report-merger": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/junit-report-merger/-/junit-report-merger-6.0.2.tgz", - "integrity": "sha512-Jk9PXeaJhbgo3aUNza2r24JgxYzLUtCk2kwrub8fbmDuWUdXhT/nfbM2MlU3JQiFbjVud1bzBWdzr9/GGBWfmA==", - "dev": true, - "requires": { - "commander": "~10.0.0", - "fast-glob": "~3.2.11", - "xmlbuilder2": "3.1.1" - }, - "dependencies": { - "commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - } - } - }, "just-diff": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/just-diff/-/just-diff-5.1.1.tgz", @@ -46519,12 +44928,6 @@ } } }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, "meow": { "version": "8.1.2", "resolved": "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz", @@ -48052,130 +46455,6 @@ } } }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "npm-run-path": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", @@ -48394,24 +46673,6 @@ "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, "on-headers": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", @@ -48864,12 +47125,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, "pify": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pify/-/pify-5.0.0.tgz", @@ -49649,17 +47904,6 @@ "integrity": "sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==", "dev": true }, - "regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" - } - }, "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", @@ -49859,43 +48103,12 @@ } } }, - "safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "isarray": "^2.0.5" - }, - "dependencies": { - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - } - } - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -50092,29 +48305,6 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, - "set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, - "requires": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" - } - }, - "set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", - "dev": true, - "requires": { - "define-data-property": "^1.0.1", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" - } - }, "shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -50178,17 +48368,6 @@ "vscode-textmate": "^6.0.0" } }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, "signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", @@ -50501,50 +48680,6 @@ "strip-ansi": "^6.0.1" } }, - "string.prototype.padend": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", - "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, - "string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" - } - }, "stringify-object": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", @@ -51277,53 +49412,6 @@ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", "dev": true }, - "typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" - } - }, - "typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" - } - }, "typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", @@ -51389,18 +49477,6 @@ "dev": true, "optional": true }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, "underscore": { "version": "1.13.6", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", @@ -51606,37 +49682,11 @@ "isexe": "^2.0.0" } }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, - "which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" - } - }, "wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -51860,39 +49910,6 @@ "integrity": "sha512-KLu/G0DoWhkncQ9eHSI6s0/w+T4TM7rQaLhtCaL6tORv8jFlJPlnGumsgTcGfYeS1qZ/IHqrvDG7zJZ4d7e+nw==", "dev": true }, - "xmlbuilder2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/xmlbuilder2/-/xmlbuilder2-3.1.1.tgz", - "integrity": "sha512-WCSfbfZnQDdLQLiMdGUQpMxxckeQ4oZNMNhLVkcekTu7xhD4tuUDyAPoY8CwXvBYE6LwBHd6QW2WZXlOWr1vCw==", - "dev": true, - "requires": { - "@oozcitak/dom": "1.15.10", - "@oozcitak/infra": "1.0.8", - "@oozcitak/util": "8.3.8", - "js-yaml": "3.14.1" - }, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - } - } - }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 10995df754..56cfb974a6 100644 --- a/package.json +++ b/package.json @@ -25,12 +25,7 @@ "test:cleanResults": "rimraf __tests__/__results__", "test:cleanUpProfiles": "sh __tests__/__scripts__/clean_profiles.sh", "pretest:integration": "node scripts/sampleCliTool.js install", - "test:integration": "npm-run-all test:integration:main test:integration:imperative test:integration:combine --continue-on-error", - "test:integration:combine": "jrm '__tests__/__results__/integration/junit.xml' '__tests__/__results__/integration/junit-*.xml'", - "test:integration:common": "env-cmd -f __tests__/__resources__/env/integration.env --no-override jest \".*__tests__.*\\**\\.integration\\.(spec|test)\\.ts$\" --coverage false", - "test:integration:imperative": "env-cmd -f __tests__/__resources__/env/integration-imperative.env --no-override jest \".*__tests__.*\\**\\.integration\\.(spec|test)\\.ts$\" --coverage false --runInBand --selectProjects 'Imperative'", - "test:integration:inband": "npm run pretest:integration && npm run test:integration:common -- --runInBand && npm run posttest:integration", - "test:integration:main": "env-cmd -f __tests__/__resources__/env/integration-main.env --no-override jest \".*__tests__.*\\**\\.integration\\.(spec|test)\\.ts$\" --coverage false --ignoreProjects 'Imperative'", + "test:integration": "env-cmd -f __tests__/__resources__/env/integration.env --no-override jest \".*__tests__.*\\**\\.integration\\.(spec|test)\\.ts$\" --coverage false", "posttest:integration": "node scripts/sampleCliTool.js uninstall", "test:system": "env-cmd -f __tests__/__resources__/env/system.env --no-override jest \".*__tests__.*\\**\\.system\\.(spec|test)\\.ts$\" --coverage false", "test:unit": "env-cmd -f __tests__/__resources__/env/unit.env --no-override jest \".*__tests__.*\\**\\.unit\\.(spec|test)\\.ts$\" --coverage", @@ -68,12 +63,10 @@ "jest-sonar-reporter": "^2.0.0", "js-yaml": "^4.1.0", "jsonfile": "^4.0.0", - "junit-report-merger": "^6.0.2", "lerna": "^5.4.3", "madge": "^4.0.1", "mustache": "^4.2.0", "npm-lockfile": "^3.0.4", - "npm-run-all": "^4.1.5", "rimraf": "^2.6.3", "shebang-regex": "^2.0.0", "symlink-dir": "^5.1.1", diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.login.fruit.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.login.fruit.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.login.fruit.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.login.fruit.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.logout.fruit.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.logout.fruit.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.logout.fruit.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/auth/imperative.test.cli.auth.logout.fruit.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/__snapshots__/cli.imperative-test-cli.config.profiles.integration.test.ts.snap b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/__snapshots__/cli.imperative-test-cli.config.profiles.integration.test.ts.snap deleted file mode 100644 index 1405a83d10..0000000000 --- a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/__snapshots__/cli.imperative-test-cli.config.profiles.integration.test.ts.snap +++ /dev/null @@ -1,7 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`imperative-test-cli config profiles should list profiles 1`] = ` -"secured -base -" -`; diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/report-env/cli.imperative-test-cli.config.report-env.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/report-env/cli.imperative-test-cli.config.report-env.integration.test.ts index fbcf919bf8..6088da71eb 100644 --- a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/report-env/cli.imperative-test-cli.config.report-env.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/report-env/cli.imperative-test-cli.config.report-env.integration.test.ts @@ -315,7 +315,7 @@ describe("imperative-test-cli config report-env", () => { path.join(TEST_ENVIRONMENT.workingDir, "test.schema.good.json") ); - fs.writeFileSync(envFileHome, '{"ZOWE_OPT_TEST": "TEST_VARIABLE" "ZOWE_OPT_TEST2": "TEST_VARIABLE"}'); + fs.writeFileSync(envFileCli, '{"ZOWE_OPT_TEST": "TEST_VARIABLE" "ZOWE_OPT_TEST2": "TEST_VARIABLE"}'); const response = runCliScript(path.join(__dirname, "/__scripts__/report-env.sh"), TEST_ENVIRONMENT.workingDir diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest.ts similarity index 99% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest.ts index c2c58f83f6..120ca60d8c 100644 --- a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.test.ts +++ b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest.ts @@ -34,7 +34,7 @@ describe("imperative-test-cli config secure", () => { expectedJson.profiles.base.properties.secret = "(secure value)"; expectedJson.profiles.base.secure = ["secret"]; - const expectedUserJson = expectedUserConfigObject; + const expectedUserJson = lodash.cloneDeep(expectedUserConfigObject); delete expectedUserJson.$schema; // Create the test environment diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.subtest.ts diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.test.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.test.ts rename to packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/packages/profiles/__integration__/__snapshots__/CliProfileManager.credentials.integration.test.ts.snap b/packages/imperative/__tests__/__snapshots__/imperative.secure.integration.test.ts.snap similarity index 64% rename from packages/imperative/__tests__/src/packages/profiles/__integration__/__snapshots__/CliProfileManager.credentials.integration.test.ts.snap rename to packages/imperative/__tests__/__snapshots__/imperative.secure.integration.test.ts.snap index 9ed509aede..cc24441879 100644 --- a/packages/imperative/__tests__/src/packages/profiles/__integration__/__snapshots__/CliProfileManager.credentials.integration.test.ts.snap +++ b/packages/imperative/__tests__/__snapshots__/imperative.secure.integration.test.ts.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 1`] = ` +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 1`] = ` "Command Preparation Failed: Unable to load the secure field \\"username\\" associated with the profile \\"profile-name-changed\\" of type \\"username-password\\". Error Details: @@ -19,23 +19,29 @@ Resolutions: " `; -exports[`Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 2`] = ` +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 2`] = ` "Your default profile named profile-name of type username-password was successfully deleted. Because you deleted it, the default profile for type username-password has been cleared. To set a new default profile, run \\"zowe profiles set-default username-password \\". " `; -exports[`Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 1`] = ` +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 1`] = ` " Warning: The command 'profiles update' is deprecated. Recommended replacement: The 'config set' command " `; -exports[`Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 2`] = ` +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 2`] = ` "Your default profile named profile-name of type username-password was successfully deleted. Because you deleted it, the default profile for type username-password has been cleared. To set a new default profile, run \\"zowe profiles set-default username-password \\". " `; + +exports[`Imperative Secure Tests imperative-test-cli config profiles should list profiles 1`] = ` +"secured +base +" +`; diff --git a/packages/imperative/__tests__/imperative.secure.integration.test.ts b/packages/imperative/__tests__/imperative.secure.integration.test.ts new file mode 100644 index 0000000000..7a6e8ed92b --- /dev/null +++ b/packages/imperative/__tests__/imperative.secure.integration.test.ts @@ -0,0 +1,30 @@ +/* +* 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. +* +*/ + +// These tests require access to the same values on the keyring, therefore they cannot run in parallel +// The test order is important - some tests depend on other tests not running first - do not change it +/* eslint-disable max-len */ + +describe("Imperative Secure Tests", () => { + require("./src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest"); + require("./src/packages/imperative/__integration__/PluginManagementFacility.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.subtest"); + require("./__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.subtest"); +}); + + diff --git a/packages/imperative/__tests__/src/packages/imperative/__integration__/PluginManagementFacility.integration.spec.ts b/packages/imperative/__tests__/src/packages/imperative/__integration__/PluginManagementFacility.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/packages/imperative/__integration__/PluginManagementFacility.integration.spec.ts rename to packages/imperative/__tests__/src/packages/imperative/__integration__/PluginManagementFacility.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.test.ts b/packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.test.ts rename to packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest.ts From 03bb3ff41e61e9a836c0b863a8492d31f57b2000 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 20:20:53 +0000 Subject: [PATCH 07/19] Remove unnecessary env files Signed-off-by: Andrew W. Harn --- .../__resources__/env/integration-imperative.env | 11 ----------- __tests__/__resources__/env/integration-main.env | 11 ----------- 2 files changed, 22 deletions(-) delete mode 100644 __tests__/__resources__/env/integration-imperative.env delete mode 100644 __tests__/__resources__/env/integration-main.env diff --git a/__tests__/__resources__/env/integration-imperative.env b/__tests__/__resources__/env/integration-imperative.env deleted file mode 100644 index 1565570e80..0000000000 --- a/__tests__/__resources__/env/integration-imperative.env +++ /dev/null @@ -1,11 +0,0 @@ -# environmental variable settings for integration tests - -FORCE_COLOR=1 -JEST_JUNIT_OUTPUT_DIR=__tests__/__results__/integration -JEST_JUNIT_OUTPUT_NAME=junit-imperative.xml -JEST_SUITE_NAME="Integration Tests" -JEST_JUNIT_ANCESTOR_SEPARATOR=" > " -JEST_JUNIT_CLASSNAME="Integration.{classname}" -JEST_JUNIT_TITLE="{title}" -JEST_STARE_RESULT_DIR=__tests__/__results__/integration/jest-stare -JEST_STARE_RESULT_HTML=index.html diff --git a/__tests__/__resources__/env/integration-main.env b/__tests__/__resources__/env/integration-main.env deleted file mode 100644 index fafbf8931e..0000000000 --- a/__tests__/__resources__/env/integration-main.env +++ /dev/null @@ -1,11 +0,0 @@ -# environmental variable settings for integration tests - -FORCE_COLOR=1 -JEST_JUNIT_OUTPUT_DIR=__tests__/__results__/integration -JEST_JUNIT_OUTPUT_NAME=junit-main.xml -JEST_SUITE_NAME="Integration Tests" -JEST_JUNIT_ANCESTOR_SEPARATOR=" > " -JEST_JUNIT_CLASSNAME="Integration.{classname}" -JEST_JUNIT_TITLE="{title}" -JEST_STARE_RESULT_DIR=__tests__/__results__/integration/jest-stare -JEST_STARE_RESULT_HTML=index.html From 1bc3960f68e20431e7b122d80f8534bdaf6c6c5b Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 20:38:01 +0000 Subject: [PATCH 08/19] Revert change in jest-stare storage location Signed-off-by: Andrew W. Harn --- jest.config.js | 1 - 1 file changed, 1 deletion(-) diff --git a/jest.config.js b/jest.config.js index 08c11214b4..641505d71d 100644 --- a/jest.config.js +++ b/jest.config.js @@ -129,7 +129,6 @@ module.exports = { "reportTestSuiteErrors": true }], ["jest-stare", { - "resultDir": "__tests__/__results__/jest-stare", "coverageLink": "../unit/coverage/lcov-report/index.html" }], ["github-actions", { "silent": false } ] From 8547c3a51f5b9dfb37ca0549b953e6f387298ba5 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 2 Nov 2023 21:38:06 +0000 Subject: [PATCH 09/19] Group additional tests that depend on same resource Signed-off-by: Andrew W. Harn --- .gitignore | 2 ++ ...fig.auto-init.fruit.integration.subtest.ts | 6 +++++ .../WithProfiles.integration.test.ts | 22 +++++++++++++++++++ ...tedProfileCommands.integration.subtest.ts} | 0 ...ExampleDefinitions.integration.subtest.ts} | 0 ... => ExampleLogging.integration.subtest.ts} | 0 ...=> ExampleProfiles.integration.subtest.ts} | 0 ...ts => HelpCommands.integration.subtest.ts} | 0 8 files changed, 30 insertions(+) create mode 100644 packages/imperative/__tests__/src/example_clis/with_profiles/WithProfiles.integration.test.ts rename packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/{AutoGeneratedProfileCommands.integration.test.ts => AutoGeneratedProfileCommands.integration.subtest.ts} (100%) rename packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/{ExampleDefinitions.integration.test.ts => ExampleDefinitions.integration.subtest.ts} (100%) rename packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/{ExampleLogging.integration.test.ts => ExampleLogging.integration.subtest.ts} (100%) rename packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/{ExampleProfiles.integration.test.ts => ExampleProfiles.integration.subtest.ts} (100%) rename packages/imperative/__tests__/src/packages/cmd/__integration__/{HelpCommands.integration.test.ts => HelpCommands.integration.subtest.ts} (100%) diff --git a/.gitignore b/.gitignore index 6f7aa6a5c0..ce098d3bf2 100644 --- a/.gitignore +++ b/.gitignore @@ -118,3 +118,5 @@ target/ # Browserified bundles and compiled JS for web help packages/imperative/web-help/dist/css/bundle* packages/imperative/web-help/dist/js/ + +jest-stare/ \ No newline at end of file diff --git a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts index a11fd2900a..4e9ad9c6fe 100644 --- a/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts +++ b/packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest.ts @@ -58,6 +58,12 @@ describe("cmd-cli config auto-init", () => { testName: "imperative_config_auto-init" }); fs.mkdirSync(TEST_ENVIRONMENT.workingDir + "/testDir"); + + try { + await keytar.deletePassword("imperative-test-cli", "secure_config_props"); + } catch (err) { + // Do nothing + } }); afterEach(async () => { diff --git a/packages/imperative/__tests__/src/example_clis/with_profiles/WithProfiles.integration.test.ts b/packages/imperative/__tests__/src/example_clis/with_profiles/WithProfiles.integration.test.ts new file mode 100644 index 0000000000..6dd621c050 --- /dev/null +++ b/packages/imperative/__tests__/src/example_clis/with_profiles/WithProfiles.integration.test.ts @@ -0,0 +1,22 @@ +/* +* 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. +* +*/ + +// These tests require access to the same values on the keyring, therefore they cannot run in parallel +// The test order is important - some tests depend on other tests not running first - do not change it +/* eslint-disable max-len */ + +describe("Imperative With Profiles Tests", () => { + require("./__integration__/AutoGeneratedProfileCommands.integration.subtest"); + require("./__integration__/ExampleDefinitions.integration.subtest"); + require("./__integration__/ExampleLogging.integration.subtest"); + require("./__integration__/ExampleProfiles.integration.subtest"); + require("../../packages/cmd/__integration__/HelpCommands.integration.subtest"); +}); diff --git a/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/AutoGeneratedProfileCommands.integration.test.ts b/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/AutoGeneratedProfileCommands.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/AutoGeneratedProfileCommands.integration.test.ts rename to packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/AutoGeneratedProfileCommands.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleDefinitions.integration.test.ts b/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleDefinitions.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleDefinitions.integration.test.ts rename to packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleDefinitions.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleLogging.integration.test.ts b/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleLogging.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleLogging.integration.test.ts rename to packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleLogging.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleProfiles.integration.test.ts b/packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleProfiles.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleProfiles.integration.test.ts rename to packages/imperative/__tests__/src/example_clis/with_profiles/__integration__/ExampleProfiles.integration.subtest.ts diff --git a/packages/imperative/__tests__/src/packages/cmd/__integration__/HelpCommands.integration.test.ts b/packages/imperative/__tests__/src/packages/cmd/__integration__/HelpCommands.integration.subtest.ts similarity index 100% rename from packages/imperative/__tests__/src/packages/cmd/__integration__/HelpCommands.integration.test.ts rename to packages/imperative/__tests__/src/packages/cmd/__integration__/HelpCommands.integration.subtest.ts From 3ad20df90079b7947395d58437b344d0901a3192 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Tue, 7 Nov 2023 17:31:05 +0000 Subject: [PATCH 10/19] Resolve final race conditions Signed-off-by: Andrew W. Harn --- ...imperative.secure.integration.test.ts.snap | 47 +++++++++++++++++++ ...t.ts => imperative.integration.subtest.ts} | 0 .../imperative.secure.integration.test.ts | 31 ++++++++++++ .../imperative.secure.integration.test.ts | 30 ------------ .../ConfigLoading.integration.test.ts | 17 ++++++- .../plugins/suites/InstallingPlugins.ts | 6 +-- 6 files changed, 96 insertions(+), 35 deletions(-) create mode 100644 __tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap rename __tests__/__integration__/{imperative.integration.test.ts => imperative.integration.subtest.ts} (100%) create mode 100644 __tests__/__integration__/imperative.secure.integration.test.ts delete mode 100644 packages/imperative/__tests__/imperative.secure.integration.test.ts diff --git a/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap b/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap new file mode 100644 index 0000000000..cc24441879 --- /dev/null +++ b/__tests__/__integration__/__snapshots__/imperative.secure.integration.test.ts.snap @@ -0,0 +1,47 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 1`] = ` +"Command Preparation Failed: +Unable to load the secure field \\"username\\" associated with the profile \\"profile-name-changed\\" of type \\"username-password\\". +Error Details: +Unable to load credentials. +Could not find an entry in the credential vault for the following: + Service = example_with_profiles + Account = username-password_profile-name-changed_username + +Possible Causes: + This could have been caused by any manual removal of credentials from your vault. + +Resolutions: + Recreate the credentials in the vault for the particular service in the vault. + To recreate credentials, issue a 'profiles create' sub-command with the --ow flag. + +" +`; + +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Failure Scenarios should fail if the Credential Manager is unable to retrieve a password 2`] = ` +"Your default profile named profile-name of type username-password was successfully deleted. +Because you deleted it, the default profile for type username-password has been cleared. +To set a new default profile, run \\"zowe profiles set-default username-password \\". +" +`; + +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 1`] = ` +" +Warning: The command 'profiles update' is deprecated. +Recommended replacement: The 'config set' command +" +`; + +exports[`Imperative Secure Tests Cli Profile Manager Default Credential Management Generic Success Scenarios should update a password 2`] = ` +"Your default profile named profile-name of type username-password was successfully deleted. +Because you deleted it, the default profile for type username-password has been cleared. +To set a new default profile, run \\"zowe profiles set-default username-password \\". +" +`; + +exports[`Imperative Secure Tests imperative-test-cli config profiles should list profiles 1`] = ` +"secured +base +" +`; diff --git a/__tests__/__integration__/imperative.integration.test.ts b/__tests__/__integration__/imperative.integration.subtest.ts similarity index 100% rename from __tests__/__integration__/imperative.integration.test.ts rename to __tests__/__integration__/imperative.integration.subtest.ts diff --git a/__tests__/__integration__/imperative.secure.integration.test.ts b/__tests__/__integration__/imperative.secure.integration.test.ts new file mode 100644 index 0000000000..1dfb3f02a1 --- /dev/null +++ b/__tests__/__integration__/imperative.secure.integration.test.ts @@ -0,0 +1,31 @@ +/* +* 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. +* +*/ + +// These tests require access to the same values on the keyring, therefore they cannot run in parallel +// The test order is important - some tests depend on other tests not running first - do not change it +/* eslint-disable max-len */ + +describe("Imperative Secure Tests", () => { + require("./imperative.integration.subtest"); + require("./../../packages/imperative/__tests__/src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest"); + require("./../../packages/imperative/__tests__/src/packages/imperative/__integration__/PluginManagementFacility.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.subtest"); + require("./../../packages/imperative/__tests__/__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.subtest"); +}); + + diff --git a/packages/imperative/__tests__/imperative.secure.integration.test.ts b/packages/imperative/__tests__/imperative.secure.integration.test.ts deleted file mode 100644 index 7a6e8ed92b..0000000000 --- a/packages/imperative/__tests__/imperative.secure.integration.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* -* 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. -* -*/ - -// These tests require access to the same values on the keyring, therefore they cannot run in parallel -// The test order is important - some tests depend on other tests not running first - do not change it -/* eslint-disable max-len */ - -describe("Imperative Secure Tests", () => { - require("./src/packages/profiles/__integration__/CliProfileManager.credentials.integration.subtest"); - require("./src/packages/imperative/__integration__/PluginManagementFacility.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/init/cli.imperative-test-cli.config.init.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/auto-init/imperative.test.cli.config.auto-init.fruit.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/convert-profiles/cli.imperative-test-cli.config.convert-profiles.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/profiles/cli.imperative-test-cli.config.profiles.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/secure/cli.imperative-test-cli.config.secure.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/config/set/cli.imperative-test-cli.config.set.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/profiles/cli.imperative-test-cli.profiles.create.secured-profile.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-auto-store.integration.subtest"); - require("./__integration__/imperative/__tests__/__integration__/cli/test/cli.imperative-test-cli.test.config-override.integration.subtest"); -}); - - diff --git a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts index 35223cdbfa..a76cb312da 100644 --- a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts +++ b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts @@ -10,12 +10,25 @@ */ import * as T from "../../../TestUtil"; -import { IImperativeConfig, Imperative } from "../../../../../src/imperative"; -import { ImperativeConfig } from "../../../../../src/utilities"; +import { IImperativeConfig } from "../../../../../src/imperative"; describe("Imperative should validate config provided by the consumer", function () { const packageJsonPath = __dirname + "/package.json"; const mainModule = process.mainModule; + const loadChangingDependencies = () => { + return { + Imperative: require("../../../../../src/imperative/src/Imperative").Imperative, + ImperativeConfig: require("../../../../../src/utilities/src/ImperativeConfig").ImperativeConfig + }; + }; + + let {Imperative, ImperativeConfig} = loadChangingDependencies(); + + // Initialize imperative before each test + beforeEach(() => { + jest.resetModules(); + ({Imperative, ImperativeConfig} = loadChangingDependencies()); + }); beforeAll(() => { // Temporarily change the main module filename so that the test can work. diff --git a/packages/imperative/__tests__/src/packages/imperative/plugins/suites/InstallingPlugins.ts b/packages/imperative/__tests__/src/packages/imperative/plugins/suites/InstallingPlugins.ts index bc7a82e2e7..119fe3ba32 100644 --- a/packages/imperative/__tests__/src/packages/imperative/plugins/suites/InstallingPlugins.ts +++ b/packages/imperative/__tests__/src/packages/imperative/plugins/suites/InstallingPlugins.ts @@ -226,10 +226,10 @@ describe("Installing Plugins", () => { // }); it("should install a plugin from a file location - no space in path", function () { - const originalEnvHome = process.env.ZOWE_CLI_HOME; + const originalEnvHome = process.env.PLUGINS_TEST_HOME; // Not sure if this needs done for all integration tests to simulate that // --global-config will point to the __results__ directory created for the test - process.env.ZOWE_CLI_HOME = config.defaultHome; + process.env.PLUGINS_TEST_HOME = config.defaultHome; let result = executeCommandString(this, "--help"); const appPrefix = resolve(config.defaultHome, config.name); @@ -265,7 +265,7 @@ describe("Installing Plugins", () => { expect(result.stderr).toEqual(""); expect(result.stdout).toContain(plugins.normal.usage); - process.env.ZOWE_CLI_HOME = originalEnvHome; + process.env.PLUGINS_TEST_HOME = originalEnvHome; }); it("should fail when a credMgr override plugin has no pluginLifeCycle property", function () { From 882badd470f12586b2311c7c87fe4c502c8aae69 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Tue, 7 Nov 2023 18:39:27 +0000 Subject: [PATCH 11/19] Always run the daemon because of snapshots Signed-off-by: Andrew W. Harn --- .github/workflows/zowe-cli.yml | 4 ++-- packages/imperative/__tests__/src/TestUtil.ts | 3 +-- .../__integration__/ConfigLoading.integration.test.ts | 1 + 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/zowe-cli.yml b/.github/workflows/zowe-cli.yml index 84cff04f0e..d933e32e62 100644 --- a/.github/workflows/zowe-cli.yml +++ b/.github/workflows/zowe-cli.yml @@ -122,9 +122,9 @@ jobs: if: ${{ always() && steps.build.outcome == 'success' && matrix.os == 'ubuntu-latest' }} uses: t1m0thyj/unlock-keyring@v1 - - name: Start Daemon on Windows only + - name: Start Daemon id: start-daemon - if: ${{ always() && steps.build.outcome == 'success' && matrix.os == 'windows-latest' && (github.event.inputs.test-type == 'binary' || github.event_name == 'push') }} + if: ${{ always() && steps.build.outcome == 'success' && (github.event.inputs.test-type == 'binary' || github.event_name == 'push') }} run: ./__tests__/__resources__/daemon_instances/zowe - name: Integration Tests (Native) diff --git a/packages/imperative/__tests__/src/TestUtil.ts b/packages/imperative/__tests__/src/TestUtil.ts index d2070b831b..05b9acf06a 100644 --- a/packages/imperative/__tests__/src/TestUtil.ts +++ b/packages/imperative/__tests__/src/TestUtil.ts @@ -471,7 +471,6 @@ export async function setupConfigToLoad(properties?: IConfig, opts: IConfigOpts } const fakeConfig = await Config.load("fakeapp", opts); - jest.spyOn(ImperativeConfig.instance, "config", "get").mockReturnValue(fakeConfig); - + tempMocks.push(jest.spyOn(ImperativeConfig.instance, "config", "get").mockReturnValue(fakeConfig)); tempMocks.forEach(mock => mock.mockRestore()); // Reset all mocks } diff --git a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts index a76cb312da..f114375412 100644 --- a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts +++ b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts @@ -57,6 +57,7 @@ describe("Imperative should validate config provided by the consumer", function rootCommandDescription: "My Product CLI" }; T.writeFileSync(packageJsonPath, JSON.stringify({imperative: config, name: "sample"})); + expect(T.existsSync(packageJsonPath)).toEqual(true); // If the file isn't created, something has gone wrong return Imperative.init().then(() => { // "Display name should have matched our config" expect(ImperativeConfig.instance.loadedConfig.productDisplayName) From c36511c47ac0ce8012259ec66feb9db9161d7ce0 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Tue, 7 Nov 2023 21:02:35 +0000 Subject: [PATCH 12/19] Try to restore all mocks between tests Signed-off-by: Andrew W. Harn --- __tests__/beforeTests.js | 4 ++++ packages/imperative/__tests__/src/TestUtil.ts | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/__tests__/beforeTests.js b/__tests__/beforeTests.js index b70d7320db..41a1d5126b 100644 --- a/__tests__/beforeTests.js +++ b/__tests__/beforeTests.js @@ -18,3 +18,7 @@ beforeAll(() => { // If the worker runs out of memory, this needs to be reset require('events').EventEmitter.defaultMaxListeners = Infinity; }); + +afterAll(() => { + jest.restoreAllMocks(); +}) diff --git a/packages/imperative/__tests__/src/TestUtil.ts b/packages/imperative/__tests__/src/TestUtil.ts index 05b9acf06a..6d70b9ecc1 100644 --- a/packages/imperative/__tests__/src/TestUtil.ts +++ b/packages/imperative/__tests__/src/TestUtil.ts @@ -471,6 +471,6 @@ export async function setupConfigToLoad(properties?: IConfig, opts: IConfigOpts } const fakeConfig = await Config.load("fakeapp", opts); - tempMocks.push(jest.spyOn(ImperativeConfig.instance, "config", "get").mockReturnValue(fakeConfig)); + jest.spyOn(ImperativeConfig.instance, "config", "get").mockReturnValue(fakeConfig); tempMocks.forEach(mock => mock.mockRestore()); // Reset all mocks } From 5eeb6d780723b2e576255dfcaae6b157ce350e65 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Tue, 7 Nov 2023 21:41:02 +0000 Subject: [PATCH 13/19] Try to get more information from the error Signed-off-by: Andrew W. Harn --- packages/imperative/src/utilities/src/ImperativeConfig.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/imperative/src/utilities/src/ImperativeConfig.ts b/packages/imperative/src/utilities/src/ImperativeConfig.ts index 2b0d4cdbc4..a85522da85 100644 --- a/packages/imperative/src/utilities/src/ImperativeConfig.ts +++ b/packages/imperative/src/utilities/src/ImperativeConfig.ts @@ -283,11 +283,11 @@ export class ImperativeConfig { try { return require(file); } catch (e) { - e.message = "Could not locate the specified module through requiring directly, nor through " + + const message = "Could not locate the specified module through requiring directly, nor through " + "searching the directories above " + ImperativeConfig.instance.callerLocation + ". 'require()' error message: " + e.message + " \n 'find-up' (directory search) error message:" + findupErr.message; - throw new ImperativeError({msg: e.message}); + throw new ImperativeError({msg: message, causeErrors: [e, findupErr]}); } } From e8d9feb940b3bd0f141864e71fda3af8f9c5747e Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Wed, 8 Nov 2023 13:23:31 +0000 Subject: [PATCH 14/19] Try awaiting (Tim's idea) Signed-off-by: Andrew W. Harn --- .../__integration__/ConfigLoading.integration.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts index f114375412..49581143ea 100644 --- a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts +++ b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts @@ -12,7 +12,7 @@ import * as T from "../../../TestUtil"; import { IImperativeConfig } from "../../../../../src/imperative"; -describe("Imperative should validate config provided by the consumer", function () { +describe("Imperative should validate config provided by the consumer", () => { const packageJsonPath = __dirname + "/package.json"; const mainModule = process.mainModule; const loadChangingDependencies = () => { @@ -42,7 +42,7 @@ describe("Imperative should validate config provided by the consumer", function T.unlinkSync(packageJsonPath); }); - it("We should be able to load our configuration from our package.json", function () { + it("We should be able to load our configuration from our package.json", async () => { const config: IImperativeConfig = { definitions: [ { @@ -58,7 +58,7 @@ describe("Imperative should validate config provided by the consumer", function }; T.writeFileSync(packageJsonPath, JSON.stringify({imperative: config, name: "sample"})); expect(T.existsSync(packageJsonPath)).toEqual(true); // If the file isn't created, something has gone wrong - return Imperative.init().then(() => { + return await Imperative.init().then(() => { // "Display name should have matched our config" expect(ImperativeConfig.instance.loadedConfig.productDisplayName) .toEqual(config.productDisplayName); From 6563b4a130ef3fa3eeeaaaeaa9834c89b3458358 Mon Sep 17 00:00:00 2001 From: Timothy Johnson Date: Wed, 8 Nov 2023 13:39:37 -0500 Subject: [PATCH 15/19] Use unique test dir to work around Jest cache Signed-off-by: Timothy Johnson --- .../ConfigLoading.integration.test.ts | 29 +++++-------------- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts index 49581143ea..d6694e4b1f 100644 --- a/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts +++ b/packages/imperative/__tests__/src/packages/imperative/__integration__/ConfigLoading.integration.test.ts @@ -10,30 +10,18 @@ */ import * as T from "../../../TestUtil"; -import { IImperativeConfig } from "../../../../../src/imperative"; +import { IImperativeConfig, Imperative } from "../../../../../src/imperative"; +import { ImperativeConfig } from "../../../../../src/utilities"; -describe("Imperative should validate config provided by the consumer", () => { - const packageJsonPath = __dirname + "/package.json"; +describe("Imperative should validate config provided by the consumer", function () { + const testDir = T.createUniqueTestDataDir("config-loading"); + const packageJsonPath = testDir + "/package.json"; const mainModule = process.mainModule; - const loadChangingDependencies = () => { - return { - Imperative: require("../../../../../src/imperative/src/Imperative").Imperative, - ImperativeConfig: require("../../../../../src/utilities/src/ImperativeConfig").ImperativeConfig - }; - }; - - let {Imperative, ImperativeConfig} = loadChangingDependencies(); - - // Initialize imperative before each test - beforeEach(() => { - jest.resetModules(); - ({Imperative, ImperativeConfig} = loadChangingDependencies()); - }); beforeAll(() => { // Temporarily change the main module filename so that the test can work. (process.mainModule as any) = { - filename: __filename + filename: packageJsonPath }; }); @@ -42,7 +30,7 @@ describe("Imperative should validate config provided by the consumer", () => { T.unlinkSync(packageJsonPath); }); - it("We should be able to load our configuration from our package.json", async () => { + it("We should be able to load our configuration from our package.json", function () { const config: IImperativeConfig = { definitions: [ { @@ -57,8 +45,7 @@ describe("Imperative should validate config provided by the consumer", () => { rootCommandDescription: "My Product CLI" }; T.writeFileSync(packageJsonPath, JSON.stringify({imperative: config, name: "sample"})); - expect(T.existsSync(packageJsonPath)).toEqual(true); // If the file isn't created, something has gone wrong - return await Imperative.init().then(() => { + return Imperative.init().then(() => { // "Display name should have matched our config" expect(ImperativeConfig.instance.loadedConfig.productDisplayName) .toEqual(config.productDisplayName); From e1c1d2cebbe3c90b8a2bb1fe67b85826df8de8b0 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Wed, 8 Nov 2023 20:11:56 +0000 Subject: [PATCH 16/19] Revert unnecessary changes Signed-off-by: Andrew W. Harn --- __tests__/beforeTests.js | 6 +----- packages/imperative/__tests__/src/TestUtil.ts | 1 + packages/imperative/src/utilities/src/ImperativeConfig.ts | 4 ++-- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/__tests__/beforeTests.js b/__tests__/beforeTests.js index 41a1d5126b..bff48bb1eb 100644 --- a/__tests__/beforeTests.js +++ b/__tests__/beforeTests.js @@ -17,8 +17,4 @@ process.env.CLI_TEST_UTILS_USE_PROJECT_ROOT_DIR = true; beforeAll(() => { // If the worker runs out of memory, this needs to be reset require('events').EventEmitter.defaultMaxListeners = Infinity; -}); - -afterAll(() => { - jest.restoreAllMocks(); -}) +}); \ No newline at end of file diff --git a/packages/imperative/__tests__/src/TestUtil.ts b/packages/imperative/__tests__/src/TestUtil.ts index 6d70b9ecc1..d2070b831b 100644 --- a/packages/imperative/__tests__/src/TestUtil.ts +++ b/packages/imperative/__tests__/src/TestUtil.ts @@ -472,5 +472,6 @@ export async function setupConfigToLoad(properties?: IConfig, opts: IConfigOpts const fakeConfig = await Config.load("fakeapp", opts); jest.spyOn(ImperativeConfig.instance, "config", "get").mockReturnValue(fakeConfig); + tempMocks.forEach(mock => mock.mockRestore()); // Reset all mocks } diff --git a/packages/imperative/src/utilities/src/ImperativeConfig.ts b/packages/imperative/src/utilities/src/ImperativeConfig.ts index a85522da85..2b0d4cdbc4 100644 --- a/packages/imperative/src/utilities/src/ImperativeConfig.ts +++ b/packages/imperative/src/utilities/src/ImperativeConfig.ts @@ -283,11 +283,11 @@ export class ImperativeConfig { try { return require(file); } catch (e) { - const message = "Could not locate the specified module through requiring directly, nor through " + + e.message = "Could not locate the specified module through requiring directly, nor through " + "searching the directories above " + ImperativeConfig.instance.callerLocation + ". 'require()' error message: " + e.message + " \n 'find-up' (directory search) error message:" + findupErr.message; - throw new ImperativeError({msg: message, causeErrors: [e, findupErr]}); + throw new ImperativeError({msg: e.message}); } } From 3b2f714937068f3999d097e1bdcb6acef7ddbb00 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Wed, 8 Nov 2023 20:12:38 +0000 Subject: [PATCH 17/19] Trailing newline Signed-off-by: Andrew W. Harn --- __tests__/beforeTests.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/__tests__/beforeTests.js b/__tests__/beforeTests.js index bff48bb1eb..b70d7320db 100644 --- a/__tests__/beforeTests.js +++ b/__tests__/beforeTests.js @@ -17,4 +17,4 @@ process.env.CLI_TEST_UTILS_USE_PROJECT_ROOT_DIR = true; beforeAll(() => { // If the worker runs out of memory, this needs to be reset require('events').EventEmitter.defaultMaxListeners = Infinity; -}); \ No newline at end of file +}); From f5cd51f0de59e4043d80405cc88550c8b79086e2 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 9 Nov 2023 13:32:43 +0000 Subject: [PATCH 18/19] Update Jest coverage configuration Signed-off-by: Andrew W. Harn --- jest.config.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/jest.config.js b/jest.config.js index 641505d71d..496fcd42b6 100644 --- a/jest.config.js +++ b/jest.config.js @@ -144,8 +144,7 @@ module.exports = { "collectCoverageFrom": [ "packages/**/*.ts", "!**/packages/imperative/web-help/**/*.ts", - "!**/packages/**/__tests__/**/*.ts", - "__tests__/__packages__/*.ts", + "!**/__tests__/**/*.ts", "!**/node_modules/**", "!**/lib/**" ], From add817df7ca93b0179fb889b9e7900e80c03f833 Mon Sep 17 00:00:00 2001 From: "Andrew W. Harn" Date: Thu, 9 Nov 2023 16:45:30 +0000 Subject: [PATCH 19/19] Add subtests to test inclusions Signed-off-by: Andrew W. Harn --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index 8c59371e92..8a4eb34cfa 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -6,7 +6,7 @@ sonar.links.scm=https://github.com/zowe/zowe-cli sonar.sources=packages/ sonar.tests=__tests__/,packages/ -sonar.test.inclusions=**/*.test.ts +sonar.test.inclusions=**/*.test.ts,**/*.subtest.ts sonar.coverage.exclusions=**/*.js sonar.testExecutionReportPaths=__tests__/__results__/jest-sonar/test-report.xml sonar.javascript.lcov.reportPaths=__tests__/__results__/unit/coverage/lcov.info