diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 220b26098e..0000000000 --- a/.eslintrc.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "root": true, - "extends": [ - "airbnb", - "prettier" - ], - "parser": "@babel/eslint-parser", - "parserOptions": { - "ecmaVersion": 6, - "ecmaFeatures": { - "experimentalObjectRestSpread": true, - "impliedStrict": true, - "classes": true, - "jsx": true - } - }, - "env": { - "browser": true, - "node": true, - "jquery": true, - "jest": true - }, - "rules": { - "class-methods-use-this": 0, - "header/header": [2, "../../license_header.txt"], - "import/no-extraneous-dependencies": ["error", {"devDependencies": true}], - "import/no-named-as-default": 1, - "no-template-curly-in-string": "off", - "no-unused-vars": [ - 1, - { - "argsIgnorePattern": "res|next|^err" - } - ], - "arrow-body-style": [ - 1, - "as-needed" - ], - "no-param-reassign": [ - 2, - { - "props": false - } - ], - "no-console": 2, - "import": 0, - "func-names": 0, - "space-before-function-paren": 0, - "comma-dangle": 0, - "max-len": 0, - "import/extensions": 0, - "no-underscore-dangle": 0, - "consistent-return": 0, - "react/display-name": 1, - "linebreak-style": "off", - "react/react-in-jsx-scope": 0, - "react/forbid-prop-types": 0, - "react/no-unescaped-entities": 0, - "react/prefer-stateless-function": 0, - "react/jsx-filename-extension": [ - 1, - { - "extensions": [ - ".js", - ".jsx" - ] - } - ], - "react/no-unused-prop-types": 2, - "radix": 0, - "no-shadow": [ - 2, - { - "hoist": "all", - "allow": [ - "resolve", - "reject", - "done", - "next", - "err", - "error" - ] - } - ], - "quotes": [ - 2, - "single", - { - "avoidEscape": true, - "allowTemplateLiterals": true - } - ], - "prettier/prettier": [ - "error", - { - "endOfLine": "auto", - "trailingComma": "es5", - "singleQuote": true, - "printWidth": 120 - } - ], - "jsx-a11y/href-no-hash": "off", - "jsx-a11y/anchor-is-valid": [ - "warn", - { - "aspects": [ - "invalidHref" - ] - } - ], - "react/prop-types": 0, - "react/destructuring-assignment": 0, - "react/jsx-props-no-spreading": 0, - "react/sort-comp": 0, - "jsx-a11y/label-has-associated-control": 0 - }, - "plugins": [ - "flowtype", - "header", - "import", - "jsx-a11y", - "prettier", - "react" - ] -} diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 747e88fadd..3a8d90da22 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -18,8 +18,8 @@ runs: - name: Set up Node uses: actions/setup-node@v4 with: - node-version: '18' - - run: npm install -g npm@9.3.1 + node-version: '20' + - run: npm install -g npm@10.7.0 shell: bash - name: Grant execute permission for gradlew run: chmod +x gradlew @@ -73,4 +73,4 @@ runs: path: | ~/.npm zss-sample-service/node_modules - key: ${{ runner.OS }}-zss-sample-service-node-${{ hashFiles('zss-sample-service/*.json') }} \ No newline at end of file + key: ${{ runner.OS }}-zss-sample-service-node-${{ hashFiles('zss-sample-service/*.json') }} diff --git a/.github/workflows/automated-release.yml b/.github/workflows/automated-release.yml index 0810613cc8..bc6181d8d2 100644 --- a/.github/workflows/automated-release.yml +++ b/.github/workflows/automated-release.yml @@ -23,7 +23,7 @@ jobs: timeout-minutes: 40 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.ZOWE_ROBOT_TOKEN }} @@ -43,11 +43,12 @@ jobs: run: git config user.name "Zowe Robot" - name: Release to NPM automatic + shell: bash run: | cd onboarding-enabler-nodejs echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc echo "registry=$DIST_REGISTRY" >> ~/.npmrc - npm version ${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} + npm version ${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} --allow-same-version npm publish --access public git add package.json git add package-lock.json @@ -62,7 +63,14 @@ jobs: DIST_REGISTRY: https://registry.npmjs.org/ - name: Release with Gradle automatic - run: ./gradlew release -x test -x checkstyleTest -Prelease.useAutomaticVersion=true -Prelease.scope=${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} -Pzowe.deploy.username=$ARTIFACTORY_USERNAME -Pzowe.deploy.password=$ARTIFACTORY_PASSWORD -Partifactory_user=$ARTIFACTORY_USERNAME -Partifactory_password=$ARTIFACTORY_USERNAME + shell: bash + run: | + ./gradlew release -x test -x checkstyleTest -Prelease.useAutomaticVersion=true -Prelease.scope=${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} -Pzowe.deploy.username=$ARTIFACTORY_USERNAME -Pzowe.deploy.password=$ARTIFACTORY_PASSWORD -Partifactory_user=$ARTIFACTORY_USERNAME -Partifactory_password=$ARTIFACTORY_PASSWORD + released_version=$(cat gradle.properties | grep "version=" | sed "s/version=//g") + sed -i "/REACT_APP_ZOWE_BUILD_INFO=/c\REACT_APP_ZOWE_BUILD_INFO=${released_version}" api-catalog-ui/frontend/.env + git add api-catalog-ui/frontend/.env + git commit -m "[skip ci] Update version" + git push env: ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} @@ -82,5 +90,6 @@ jobs: caching-service/build/reports/** api-catalog-services/build/reports/** zaas-service/build/reports/** + /home/runner/.npm/logs/** - uses: ./.github/actions/teardown diff --git a/.github/workflows/binary-snapshot-release.yml b/.github/workflows/binary-snapshot-release.yml index c6e1e180df..47177bf3fc 100644 --- a/.github/workflows/binary-snapshot-release.yml +++ b/.github/workflows/binary-snapshot-release.yml @@ -12,7 +12,7 @@ jobs: timeout-minutes: 40 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/binary-specific-release.yml b/.github/workflows/binary-specific-release.yml index a69af23030..608d11bada 100644 --- a/.github/workflows/binary-specific-release.yml +++ b/.github/workflows/binary-specific-release.yml @@ -17,7 +17,7 @@ jobs: timeout-minutes: 40 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} token: ${{ secrets.ZOWE_ROBOT_TOKEN }} @@ -40,11 +40,12 @@ jobs: run: git config user.name "Zowe Robot" - name: Release to NPM automatic + shell: bash run: | cd onboarding-enabler-nodejs echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > ~/.npmrc echo "registry=$DIST_REGISTRY" >> ~/.npmrc - npm version ${{ github.event.inputs.release_version }} + npm version ${{ github.event.inputs.release_version }} --allow-same-version npm publish --access public git add package.json git add package-lock.json @@ -58,7 +59,14 @@ jobs: DIST_REGISTRY: https://registry.npmjs.org/ - name: Release with Gradle automatic - run: ./gradlew release -x test -x checkstyleTest -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${{ github.event.inputs.release_version }} -Prelease.newVersion=${{ github.event.inputs.new_version }} -Pzowe.deploy.username=$ARTIFACTORY_USERNAME -Pzowe.deploy.password=$ARTIFACTORY_PASSWORD -Partifactory_user=$ARTIFACTORY_USERNAME -Partifactory_password=$ARTIFACTORY_USERNAME + shell: bash + run: | + ./gradlew release -x test -x checkstyleTest -Prelease.useAutomaticVersion=true -Prelease.releaseVersion=${{ github.event.inputs.release_version }} -Prelease.newVersion=${{ github.event.inputs.new_version }} -Pzowe.deploy.username=$ARTIFACTORY_USERNAME -Pzowe.deploy.password=$ARTIFACTORY_PASSWORD -Partifactory_user=$ARTIFACTORY_USERNAME -Partifactory_password=$ARTIFACTORY_PASSWORD + released_version=$(cat gradle.properties | grep "version=" | sed "s/version=//g") + sed -i "/REACT_APP_ZOWE_BUILD_INFO=/c\REACT_APP_ZOWE_BUILD_INFO=${released_version}" api-catalog-ui/frontend/.env + git add api-catalog-ui/frontend/.env + git commit -m "[skip ci] Update version" + git push env: ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} @@ -76,5 +84,6 @@ jobs: caching-service/build/reports/** api-catalog-services/build/reports/** zaas-service/build/reports/** + /home/runner/.npm/logs/** - uses: ./.github/actions/teardown diff --git a/.github/workflows/branch-snapshot-release.yml b/.github/workflows/branch-snapshot-release.yml index 94b16c9420..86d948a088 100644 --- a/.github/workflows/branch-snapshot-release.yml +++ b/.github/workflows/branch-snapshot-release.yml @@ -19,7 +19,7 @@ jobs: timeout-minutes: 30 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/build-conformant-images.yml b/.github/workflows/build-conformant-images.yml index cc4f624360..220190f969 100644 --- a/.github/workflows/build-conformant-images.yml +++ b/.github/workflows/build-conformant-images.yml @@ -50,7 +50,7 @@ jobs: runs-on: ubuntu-latest if: ${{ inputs.service == 'all' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -91,7 +91,7 @@ jobs: runs-on: ubuntu-latest if: ${{ inputs.service == 'all' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -142,7 +142,7 @@ jobs: runs-on: ubuntu-latest if: ${{ inputs.service == 'all' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -178,7 +178,7 @@ jobs: runs-on: ubuntu-latest if: ${{ inputs.service != 'all' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -235,7 +235,7 @@ jobs: runs-on: ubuntu-latest if: ${{ inputs.service != 'all' }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 70ea019512..af1d647554 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -21,12 +21,12 @@ jobs: steps: - name: Set up Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: '18' - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.ref_name }} diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 7e637d1c8b..e3a0d30629 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,6 +1,7 @@ name: "Flag the error message changes and label the PR" on: + workflow_dispatch: schedule: # * is a special character in YAML so you have to quote this string - cron: '0 0 * * 5' @@ -16,12 +17,12 @@ jobs: steps: - name: Set up Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: '18' - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -29,7 +30,7 @@ jobs: run: | git clone https://zowe-robot:${{ secrets.ZOWE_ROBOT_TOKEN }}@github.com/zowe/docs-site.git cd docs-site - git checkout v3-doc-branch + git checkout master cd ../docs/docgen/ java -jar Docgen-1.0.jar ./config.yml cp ../../docs-site/docs/troubleshoot/troubleshoot-apiml-error-codes.md original-codes.md @@ -42,7 +43,7 @@ jobs: - name: Store results - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: ErrorMessage-${{ env.JOB_ID }} path: | diff --git a/.github/workflows/image-publish-branch.yml b/.github/workflows/image-publish-branch.yml index f861b3d4d0..67e0d57524 100644 --- a/.github/workflows/image-publish-branch.yml +++ b/.github/workflows/image-publish-branch.yml @@ -22,7 +22,7 @@ jobs: build-services: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/image-snapshot-release.yml b/.github/workflows/image-snapshot-release.yml index 9d19ecc747..e400778ac9 100644 --- a/.github/workflows/image-snapshot-release.yml +++ b/.github/workflows/image-snapshot-release.yml @@ -8,7 +8,7 @@ jobs: build-services: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} diff --git a/.github/workflows/image-specific-release.yml b/.github/workflows/image-specific-release.yml index feb81c2e88..9e1e3aaa8d 100644 --- a/.github/workflows/image-specific-release.yml +++ b/.github/workflows/image-specific-release.yml @@ -11,14 +11,14 @@ jobs: build-services: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} - uses: ./.github/actions/setup - name: Build services - run: ./gradlew clean build -x test + run: ./gradlew clean build -x test -x npmTest - uses: ./.github/actions/teardown diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index bc4c3d1595..5e54f3431f 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -25,10 +25,10 @@ jobs: - uses: ./.github/actions/setup - name: Build with Gradle run: > - ./gradlew clean jib -Partifactory_user=${{ secrets.ARTIFACTORY_USERNAME }} -Partifactory_password=${{ secrets.ARTIFACTORY_PASSWORD }} -Pzowe.docker.password=${{ secrets.PERSONAL_JB_TOKEN }} -Pzowe.docker.username=balhar-jakub -Pzowe.docker.container=ghcr.io/balhar-jakub/ -Pzowe.docker.tag=${{ env.JOB_ID }} + ./gradlew clean jib -Djib.serialize=true -Partifactory_user=${{ secrets.ARTIFACTORY_USERNAME }} -Partifactory_password=${{ secrets.ARTIFACTORY_PASSWORD }} -Pzowe.docker.password=${{ secrets.PERSONAL_JB_TOKEN }} -Pzowe.docker.username=balhar-jakub -Pzowe.docker.container=ghcr.io/balhar-jakub/ -Pzowe.docker.tag=${{ env.JOB_ID }} - name: Standalone Catalog run: > - ./gradlew :api-catalog-services:jib -Pzowe.jib.image.suffix=standalone -Pzowe.jib.image.javaAgentPort=6304 -Pzowe.jib.image.debugPort=5125 -Partifactory_user=${{ secrets.ARTIFACTORY_USERNAME }} -Partifactory_password=${{ secrets.ARTIFACTORY_PASSWORD }} -Pzowe.docker.password=${{ secrets.PERSONAL_JB_TOKEN }} -Pzowe.docker.username=balhar-jakub -Pzowe.docker.container=ghcr.io/balhar-jakub/ -Pzowe.docker.tag=${{ env.JOB_ID }} + ./gradlew :api-catalog-services:jib -Djib.serialize=true -Pzowe.jib.image.suffix=standalone -Pzowe.jib.image.javaAgentPort=6304 -Pzowe.jib.image.debugPort=5125 -Partifactory_user=${{ secrets.ARTIFACTORY_USERNAME }} -Partifactory_password=${{ secrets.ARTIFACTORY_PASSWORD }} -Pzowe.docker.password=${{ secrets.PERSONAL_JB_TOKEN }} -Pzowe.docker.username=balhar-jakub -Pzowe.docker.container=ghcr.io/balhar-jakub/ -Pzowe.docker.tag=${{ env.JOB_ID }} - uses: ./.github/actions/teardown @@ -1381,7 +1381,7 @@ jobs: install-command: npm ci --legacy-peer-deps working-directory: api-catalog-ui/frontend - name: Cache NPM and Cypress 📦 - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | ~/.cache/Cypress diff --git a/.github/workflows/release_and_update_manifest_json.yml b/.github/workflows/release_and_update_manifest_json.yml index f9e0a3e5c3..fb6e552062 100644 --- a/.github/workflows/release_and_update_manifest_json.yml +++ b/.github/workflows/release_and_update_manifest_json.yml @@ -15,12 +15,12 @@ jobs: steps: - name: Set up Node - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: '18' - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Upgrade API ML components in zowe-install-packaging run: | diff --git a/.github/workflows/security-analysis.yml b/.github/workflows/security-analysis.yml index 6942ff4747..c1b834bf5d 100644 --- a/.github/workflows/security-analysis.yml +++ b/.github/workflows/security-analysis.yml @@ -12,7 +12,7 @@ jobs: permissions: write-all steps: - - uses: actions/github-script@v6 + - uses: actions/github-script@v7 with: script: | const owner = "zowe"; diff --git a/.github/workflows/service-registration.yml b/.github/workflows/service-registration.yml index a7153c25cf..871b20faa4 100644 --- a/.github/workflows/service-registration.yml +++ b/.github/workflows/service-registration.yml @@ -20,7 +20,7 @@ jobs: timeout-minutes: 35 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: ref: ${{ github.head_ref }} @@ -33,7 +33,7 @@ jobs: run: > ./gradlew runStartUpCheck --info --scan - name: Store results - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 if: always() with: name: CITests-${{ env.JOB_ID }} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index 5def766fed..da2ae7bbbf 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -11,7 +11,7 @@ jobs: stale: runs-on: ubuntu-latest steps: - - uses: actions/stale@v8 + - uses: actions/stale@v9 with: # General rules applied to both, issues and pull requests (PRs) start-date: "2022-07-30T00:00:00Z" @@ -26,7 +26,7 @@ jobs: This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. close-issue-message: > - This issue has been automatically closed due to lack of activity. If you disagree, please comment on reason + This issue has been automatically closed due to lack of activity. If you disagree, please comment on reason why and reopen the issue # Rules applied to PRs @@ -35,5 +35,5 @@ jobs: This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. close-pr-message: > - This pull request has been automatically closed due to lack of activity. If you disagree, please comment on + This pull request has been automatically closed due to lack of activity. If you disagree, please comment on reason why and reopen pull request diff --git a/.github/workflows/zowe-cli-plugin.yml b/.github/workflows/zowe-cli-plugin.yml index f8243967c6..648f70e7d8 100644 --- a/.github/workflows/zowe-cli-plugin.yml +++ b/.github/workflows/zowe-cli-plugin.yml @@ -1,28 +1,24 @@ name: zowe-cli-plugin-deployment on: - push: - branches: [ v2.x.x, v3.x.x ] - pull_request: - branches: [ v2.x.x, v3.x.x ] workflow_dispatch: jobs: release: - if: github.event_name == 'push' && github.ref_protected runs-on: ubuntu-latest timeout-minutes: 40 + permissions: write-all steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 persist-credentials: false ref: ${{ github.ref }} - name: Use Node.js LTS - uses: actions/setup-node@v2 + uses: actions/setup-node@v4 with: node-version: 'lts/*' @@ -47,7 +43,7 @@ jobs: npm run build npm version ${{ github.event.inputs.scope || env.DEFAULT_SCOPE }} - - uses: zowe-actions/octorelease@master + - uses: zowe-actions/octorelease@v1 with: working-dir: zowe-cli-id-federation-plugin env: diff --git a/README.md b/README.md index 3fc1b15942..fbc11dcaee 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,6 @@ # API Mediation Layer -[Build Status](https://github.com/zowe/api-layer/actions) - -[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=coverage)](https://sonarcloud.io/dashboard?id=zowe_api-layer) -[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=alert_status)](https://sonarcloud.io/dashboard?id=zowe_api-layer) +[Workflows status overview](WORKFLOWS_STATUS_OVERVIEW.MD) The API Mediation Layer (API ML) provides a single point of access for mainframe service REST APIs. The API ML offers enterprise, cloud-like features such as high-availability, scalability, dynamic API discovery, consistent security, a single sign-on experience, and documentation. The API ML consists of three components: the Gateway, the Discovery Service, and the API Catalog. The API ML facilitates secure communication across loosely coupled microservices through the API Gateway. The Discovery Service enables you to determine the location and status of service instances running inside the API ML ecosystem. The API Catalog provides a user-friendly, easy-to-use interface to view all discovered services, their associated APIs, and Swagger documentation. @@ -65,8 +62,6 @@ The following tools are required to build and develop the API Mediation Layer: npm run api-layer ``` -Alternatively, to use Docker to run the API ML, consult the [Docker README](docker/README.md). - ## Security By default, the API Mediation Layer for local development uses mock zOSMF as the authentication provider. For development purposes, log in using the default setting `USER` for the username, and `validPassword` as the password diff --git a/WORKFLOWS_STATUS_OVERVIEW.MD b/WORKFLOWS_STATUS_OVERVIEW.MD new file mode 100644 index 0000000000..f5ae2cdfa9 --- /dev/null +++ b/WORKFLOWS_STATUS_OVERVIEW.MD @@ -0,0 +1,40 @@ +# Workflows status Overview + +## v3.x.x + +### Sonar + +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=coverage&branch=v3.x.x)](https://sonarcloud.io/summary/new_code?id=zowe_api-layer) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=alert_status&branch=v3.x.x)](https://sonarcloud.io/summary/new_code?id=zowe_api-layer) + +### Scheduled + +[![Automated binary release](https://github.com/zowe/api-layer/actions/workflows/automated-release.yml/badge.svg?branch=v3.x.x&event=schedule)](https://github.com/zowe/api-layer/actions/workflows/automated-release.yml) +[![Renovate](https://github.com/zowe/api-layer/actions/workflows/renovate-bot.yml/badge.svg?branch=v3.x.x&event=schedule)](https://github.com/zowe/api-layer/actions/workflows/renovate-bot.yml) +[![Flag the error message changes and label the PR](https://github.com/zowe/api-layer/actions/workflows/docs.yml/badge.svg?branch=v3.x.x&event=schedule)](https://github.com/zowe/api-layer/actions/workflows/docs.yml) + +### On PR merge + +[![Integration tests using JIB containers](https://github.com/zowe/api-layer/actions/workflows/integration-tests.yml/badge.svg?branch=v3.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/integration-tests.yml) +[![Verify that all services can register](https://github.com/zowe/api-layer/actions/workflows/service-registration.yml/badge.svg?branch=v3.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/service-registration.yml) +[![Binary snapshot release](https://github.com/zowe/api-layer/actions/workflows/binary-snapshot-release.yml/badge.svg?branch=v3.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/binary-snapshot-release.yml) +[![Image snapshot release](https://github.com/zowe/api-layer/actions/workflows/image-snapshot-release.yml/badge.svg?branch=v3.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/image-snapshot-release.yml) + +## v2.x.x + +### Sonar + +[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=coverage&branch=v2.x.x)](https://sonarcloud.io/summary/new_code?id=zowe_api-layer) +[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=zowe_api-layer&metric=alert_status&branch=v2.x.x)](https://sonarcloud.io/summary/new_code?id=zowe_api-layer) + +### Scheduled + +[![Automated binary release](https://github.com/zowe/api-layer/actions/workflows/automated-release.yml/badge.svg?branch=v2.x.x&event=schedule)](https://github.com/zowe/api-layer/actions/workflows/automated-release.yml) + +### On PR merge + +[![Integration tests using JIB containers](https://github.com/zowe/api-layer/actions/workflows/integration-tests.yml/badge.svg?branch=v2.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/integration-tests.yml) +[![Verify that all services can register](https://github.com/zowe/api-layer/actions/workflows/service-registration.yml/badge.svg?branch=v2.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/service-registration.yml) +[![Binary snapshot release](https://github.com/zowe/api-layer/actions/workflows/binary-snapshot-release.yml/badge.svg?branch=v2.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/binary-snapshot-release.yml) +[![Image snapshot release](https://github.com/zowe/api-layer/actions/workflows/image-snapshot-release.yml/badge.svg?branch=v2.x.x&event=push)](https://github.com/zowe/api-layer/actions/workflows/image-snapshot-release.yml) + diff --git a/api-catalog-package/src/main/resources/bin/start.sh b/api-catalog-package/src/main/resources/bin/start.sh index 1de0bbc7bf..793f58a4c1 100755 --- a/api-catalog-package/src/main/resources/bin/start.sh +++ b/api-catalog-package/src/main/resources/bin/start.sh @@ -136,10 +136,15 @@ ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" ATTLS_ENABLED="false" -# ZWE_configs_spring_profiles_active for back compatibility, should be removed in v3 - enabling via Spring profile -if [ "${ZWE_zowe_network_server_tls_attls}" = "true" -o "$(echo ${ZWE_configs_spring_profiles_active:-} | awk '/^(.*,)?attls(,.*)?$/')" ]; then +ATTLS_CLIENT_ENABLED="false" + +if [ "${ZWE_zowe_network_server_tls_attls}" = "true" ]; then ATTLS_ENABLED="true" fi +if [ "${ZWE_zowe_network_client_tls_attls}" = "true" ]; then + ATTLS_CLIENT_ENABLED="true" +fi + if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_server_ssl_enabled="false" if [ -n "${ZWE_configs_spring_profiles_active}" ]; then @@ -154,12 +159,58 @@ else externalProtocol="http" fi -# Verify discovery service URL in case AT-TLS is enabled, assumes outgoing rules are in place +internalProtocol="https" ZWE_DISCOVERY_SERVICES_LIST=${ZWE_DISCOVERY_SERVICES_LIST:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_discovery_port:-7553}/eureka/"} -if [ "$ATTLS_ENABLED" = "true" ]; then +if [ "$ATTLS_CLIENT_ENABLED" = "true" ]; then ZWE_DISCOVERY_SERVICES_LIST=$(echo "${ZWE_DISCOVERY_SERVICES_LIST=}" | sed -e 's|https://|http://|g') + internalProtocol="http" fi +get_enabled_protocol_limit() { + target=$1 + type=$2 + key_component="ZWE_configs_zowe_network_${target}_tls_${type}Tls" + value_component=$(eval echo \$$key_component) + key_gateway="ZWE_components_gateway_zowe_network_${target}_tls_${type}Tls" + value_gateway=$(eval echo \$$key_gateway) + key_zowe="ZWE_zowe_network_${target}_tls_${type}Tls" + value_zowe=$(eval echo \$$key_zowe) + enabled_protocol_limit=${value_component:-${value_gateway:-${value_zowe:-}}} +} + +extract_between() { + echo "$1" | sed -e "s/.*$2,//" -e "s/$3.*//" +} + +get_enabled_protocol() { + target=$1 + get_enabled_protocol_limit "${target}" "min" + enabled_protocols_min=${enabled_protocol_limit} + get_enabled_protocol_limit "${target}" "max" + enabled_protocols_max=${enabled_protocol_limit} + + if [ "${enabled_protocols_min:-}" = "${enabled_protocols_max:-}" ]; then + result="${enabled_protocols_max:-}" + elif [ -z "${enabled_protocols_min:-}" ]; then + result="${enabled_protocols_max:-}" + else + enabled_protocols_max=${enabled_protocols_max:-"TLSv1.3"} + enabled_protocols=,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TLSv1.4, + # Extract protocols between min and max (inclusive) + result=$(extract_between "$enabled_protocols" "$enabled_protocols_min" "$enabled_protocols_max") + result="$enabled_protocols_min,$result$enabled_protocols_max" + fi +} + +get_enabled_protocol_limit "server" "max" +server_protocol=${enabled_protocol_limit:-"TLS"} +get_enabled_protocol "server" +server_enabled_protocols=${result:-"TLSv1.3"} +server_ciphers=${ZWE_configs_zowe_network_server_tls_ciphers:-${ZWE_components_gateway_zowe_network_server_tls_ciphers:-${ZWE_zowe_network_server_tls_ciphers:-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384}}} +get_enabled_protocol "client" +client_enabled_protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-${result:-${server_enabled_protocols}}} +client_ciphers=${ZWE_configs_zowe_network_client_tls_ciphers:-${ZWE_components_gateway_zowe_network_client_tls_ciphers:-${ZWE_zowe_network_client_tls_ciphers:-${server_ciphers}}}} + keystore_type="${ZWE_configs_certificate_keystore_type:-${ZWE_zowe_certificate_keystore_type:-PKCS12}}" keystore_pass="${ZWE_configs_certificate_keystore_password:-${ZWE_zowe_certificate_keystore_password}}" key_alias="${ZWE_configs_certificate_keystore_alias:-${ZWE_zowe_certificate_keystore_alias}}" @@ -220,7 +271,7 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CATALOG_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.security.ssl.nonStrictVerifySslCertificatesOfServices=${nonStrictVerifySslCertificatesOfServices:-false} \ -Dapiml.security.authorization.provider=${ZWE_components_gateway_apiml_security_authorization_provider:-} \ -Dapiml.security.authorization.endpoint.enabled=${ZWE_components_gateway_apiml_security_authorization_endpoint_enabled:-false} \ - -Dapiml.security.authorization.endpoint.url=${ZWE_components_gateway_apiml_security_authorization_endpoint_url:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port}/zss/api/v1/saf-auth"} \ + -Dapiml.security.authorization.endpoint.url=${ZWE_components_gateway_apiml_security_authorization_endpoint_url:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port}/zss/api/v1/saf-auth"} \ -Dapiml.security.authorization.resourceClass=${ZWE_components_gateway_apiml_security_authorization_resourceClass:-ZOWE} \ -Dapiml.security.auth.cookieProperties.cookieName=${cookieName:-apimlAuthenticationToken} \ -Dapiml.catalog.hide.serviceInfo=${ZWE_configs_apiml_catalog_hide_serviceInfo:-false} \ @@ -231,11 +282,14 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CATALOG_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.catalog.customStyle.headerColor=${ZWE_configs_apiml_catalog_customStyle_headerColor:-} \ -Dapiml.catalog.customStyle.textColor=${ZWE_configs_apiml_catalog_customStyle_textColor:-} \ -Dapiml.catalog.customStyle.docLink=${ZWE_configs_apiml_catalog_customStyle_docLink:-} \ - -Dapiml.httpclient.ssl.enabled-protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-"TLSv1.2"} \ + -Dapiml.httpclient.ssl.enabled-protocols=${client_enabled_protocols} \ + -Djdk.tls.client.cipherSuites=${client_ciphers} \ + -Dserver.ssl.ciphers=${server_ciphers} \ + -Dserver.ssl.protocol=${server_protocol} \ + -Dserver.ssl.enabled-protocols=${server_enabled_protocols} \ -Dspring.profiles.include=$LOG_LEVEL \ - -Dserver.address=0.0.0.0 \ + -Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \ -Dserver.ssl.enabled=${ZWE_configs_server_ssl_enabled:-true} \ - -Dserver.ssl.protocol=${ZWE_configs_server_ssl_protocol:-"TLSv1.2"} \ -Dserver.ssl.keyStore="${keystore_location}" \ -Dserver.ssl.keyStoreType="${keystore_type}" \ -Dserver.ssl.keyStorePassword="${keystore_pass}" \ diff --git a/api-catalog-services/build.gradle b/api-catalog-services/build.gradle index 0252168099..2e83d755ec 100644 --- a/api-catalog-services/build.gradle +++ b/api-catalog-services/build.gradle @@ -73,8 +73,12 @@ dependencies { implementation libs.apache.velocity + implementation libs.caffeine + implementation(libs.openapidiff) { exclude group: "io.swagger.core.v3", module: "swagger-core" + // Remove deprecated HTTP client (unused transitive dependency of openDiff) + exclude group: "commons-httpclient", module: "commons-httpclient" } implementation(libs.swagger.inflector) { exclude group: "io.swagger.core.v3", module: "swagger-core" @@ -82,6 +86,7 @@ dependencies { testImplementation libs.spring.boot.starter.test testImplementation libs.spring.mock.mvc + testImplementation(testFixtures(project(":apiml-common"))) compileOnly libs.lombok annotationProcessor libs.lombok diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/controllers/api/ApiCatalogController.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/controllers/api/ApiCatalogController.java index 5a99551b1a..0779c3ea60 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/controllers/api/ApiCatalogController.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/controllers/api/ApiCatalogController.java @@ -34,7 +34,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; import java.util.stream.StreamSupport; /** @@ -179,6 +178,6 @@ private List toList(final Iterable iterable) { return Collections.emptyList(); } return StreamSupport.stream(iterable.spliterator(), false) - .collect(Collectors.toList()); + .toList(); } } diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceInitializeService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceInitializeService.java index 8e3786c9e6..59b0d994cf 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceInitializeService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceInitializeService.java @@ -10,15 +10,6 @@ package org.zowe.apiml.apicatalog.instance; -import org.zowe.apiml.apicatalog.model.APIContainer; -import org.zowe.apiml.apicatalog.services.cached.CachedProductFamilyService; -import org.zowe.apiml.apicatalog.services.cached.CachedServicesService; -import org.zowe.apiml.message.log.ApimlLogger; -import org.zowe.apiml.product.constants.CoreService; -import org.zowe.apiml.product.gateway.GatewayNotAvailableException; -import org.zowe.apiml.product.instance.InstanceInitializationException; -import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; -import org.zowe.apiml.product.registry.CannotRegisterServiceException; import com.netflix.appinfo.InstanceInfo; import com.netflix.discovery.shared.Application; import com.netflix.discovery.shared.Applications; @@ -29,6 +20,15 @@ import org.springframework.retry.annotation.Recover; import org.springframework.retry.annotation.Retryable; import org.springframework.stereotype.Service; +import org.zowe.apiml.apicatalog.model.APIContainer; +import org.zowe.apiml.apicatalog.services.cached.CachedProductFamilyService; +import org.zowe.apiml.apicatalog.services.cached.CachedServicesService; +import org.zowe.apiml.message.log.ApimlLogger; +import org.zowe.apiml.product.constants.CoreService; +import org.zowe.apiml.product.gateway.GatewayNotAvailableException; +import org.zowe.apiml.product.instance.InstanceInitializationException; +import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; +import org.zowe.apiml.product.registry.CannotRegisterServiceException; import java.util.Collection; import java.util.List; @@ -60,8 +60,8 @@ public class InstanceInitializeService { * @throws CannotRegisterServiceException if the fetch fails or the catalog is not registered with the discovery */ @Retryable( - value = {RetryException.class}, - exclude = CannotRegisterServiceException.class, + retryFor = {RetryException.class}, + noRetryFor = CannotRegisterServiceException.class, maxAttempts = 5, backoff = @Backoff(delayExpression = "#{${apiml.service-registry.serviceFetchDelayInMillis}}")) public void retrieveAndRegisterAllInstancesWithCatalog() throws CannotRegisterServiceException { @@ -102,7 +102,7 @@ private void updateCacheWithAllInstances() { List listApplication = discoveryApplications.getRegisteredApplications() .stream() .filter(application -> !application.getInstances().isEmpty()) - .collect(Collectors.toList()); + .toList(); // Return an empty string if no services are found after filtering if (listApplication.isEmpty()) { diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalService.java index b10d09fe50..f99c9964c6 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalService.java @@ -16,14 +16,17 @@ import com.netflix.appinfo.InstanceInfo; import com.netflix.discovery.converters.jackson.EurekaJsonJacksonCodec; import com.netflix.discovery.shared.Applications; +import jakarta.validation.constraints.NotBlank; import lombok.extern.slf4j.Slf4j; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; -import org.apache.hc.core5.http.*; +import org.apache.hc.core5.http.Header; +import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.message.BasicHeader; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.stereotype.Service; import org.zowe.apiml.apicatalog.discovery.DiscoveryConfigProperties; @@ -32,7 +35,6 @@ import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; import org.zowe.apiml.product.registry.ApplicationWrapper; -import jakarta.validation.constraints.NotBlank; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.ArrayList; @@ -139,30 +141,34 @@ private Applications extractApplications(String responseBody) { * @param eurekaServiceInstanceRequest information used to query the discovery service * @return ResponseEntity query response */ - private String queryDiscoveryForInstances(EurekaServiceInstanceRequest eurekaServiceInstanceRequest) throws IOException, ParseException { + private String queryDiscoveryForInstances(EurekaServiceInstanceRequest eurekaServiceInstanceRequest) throws IOException { HttpGet httpGet = new HttpGet(eurekaServiceInstanceRequest.getEurekaRequestUrl()); for (Header header : createRequestHeader(eurekaServiceInstanceRequest)) { httpGet.setHeader(header); } - CloseableHttpResponse response = httpClient.execute(httpGet); - final int statusCode = response.getCode(); - final HttpEntity responseEntity = response.getEntity(); - String responseBody = ""; - if (responseEntity != null) { - responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); - } - if (statusCode >= HttpStatus.SC_OK && statusCode < HttpStatus.SC_MULTIPLE_CHOICES) { - return responseBody; - } - apimlLog.log("org.zowe.apiml.apicatalog.serviceRetrievalRequestFailed", - eurekaServiceInstanceRequest.getServiceId(), - eurekaServiceInstanceRequest.getEurekaRequestUrl(), - statusCode, - response.getReasonPhrase() != null ? response.getReasonPhrase() : responseBody + return httpClient.execute(httpGet, response -> { + final int statusCode = response.getCode(); + final HttpEntity responseEntity = response.getEntity(); + + String responseBody = ""; + if (responseEntity != null) { + responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); + } + + if (HttpStatus.valueOf(statusCode).is2xxSuccessful()) { + return responseBody; + } + + apimlLog.log("org.zowe.apiml.apicatalog.serviceRetrievalRequestFailed", + eurekaServiceInstanceRequest.getServiceId(), + eurekaServiceInstanceRequest.getEurekaRequestUrl(), + statusCode, + response.getReasonPhrase() != null ? response.getReasonPhrase() : responseBody ); - return null; + return null; + }); } /** @@ -177,7 +183,7 @@ private InstanceInfo extractSingleInstanceFromApplication(String serviceId, Stri try { application = mapper.readValue(responseBody, ApplicationWrapper.class); } catch (IOException e) { - log.debug("Could not extract service: " + serviceId + " info from discovery --" + e.getMessage(), e); + log.debug("Could not extract service: {} info from discovery --{}", serviceId, e.getMessage(), e); } diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/cached/CachedProductFamilyService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/cached/CachedProductFamilyService.java index c7fdf7d7f0..ef6b1006b5 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/cached/CachedProductFamilyService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/cached/CachedProductFamilyService.java @@ -34,7 +34,6 @@ import java.util.*; import java.util.concurrent.atomic.AtomicBoolean; -import static java.util.stream.Collectors.toList; import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; /** @@ -113,7 +112,7 @@ public List getRecentlyUpdatedContainers() { " was updated recently"); } return isRecent; - }).collect(toList()); + }).toList(); } /** diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/status/APIDocRetrievalService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/status/APIDocRetrievalService.java index b5c4729ab5..b26f46dcde 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/status/APIDocRetrievalService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/services/status/APIDocRetrievalService.java @@ -14,12 +14,10 @@ import lombok.NonNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.tuple.Pair; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.core5.http.*; +import org.apache.hc.core5.http.HttpStatus; import org.apache.hc.core5.http.io.entity.EntityUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.http.MediaType; @@ -35,8 +33,8 @@ import org.zowe.apiml.eurekaservice.client.util.EurekaMetadataParser; import org.zowe.apiml.message.log.ApimlLogger; import org.zowe.apiml.product.gateway.GatewayClient; -import org.zowe.apiml.product.instance.ServiceAddress; import org.zowe.apiml.product.instance.InstanceInitializationException; +import org.zowe.apiml.product.instance.ServiceAddress; import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; import org.zowe.apiml.product.routing.RoutedService; import org.zowe.apiml.product.routing.RoutedServices; @@ -46,7 +44,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Optional; /** * Retrieves the API documentation for a registered service @@ -60,7 +57,6 @@ @Slf4j public class APIDocRetrievalService { - @Autowired @Qualifier("secureHttpClientWithoutKeystore") private final CloseableHttpClient secureHttpClientWithoutKeystore; @@ -311,17 +307,21 @@ private String getApiDocContentByUrl(@NonNull String serviceId, String apiDocUrl HttpGet httpGet = new HttpGet(apiDocUrl); httpGet.setHeader(org.apache.http.HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON_VALUE); - var responseCodeBodyPair = secureHttpClientWithoutKeystore.execute(httpGet, response -> { - var responseBody = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); - return Pair.of(response.getCode(), responseBody); + return secureHttpClientWithoutKeystore.execute(httpGet, response -> { + String responseBody = ""; + var responseEntity = response.getEntity(); + if (responseEntity != null) { + responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); + } + + if (HttpStatus.SC_OK == response.getCode()) { + return responseBody; + } else { + throw new ApiDocNotFoundException("No API Documentation was retrieved due to " + serviceId + + " server error: '" + responseBody + "'."); + } } ); - - if (responseCodeBodyPair.getLeft() != HttpStatus.SC_OK) { - throw new ApiDocNotFoundException("No API Documentation was retrieved due to " + serviceId + - " server error: '" + responseCodeBodyPair.getRight() + "'."); - } - return responseCodeBodyPair.getRight(); } /** @@ -364,19 +364,16 @@ private ApiInfo findApi(List apiInfos, String apiVersion) { String apiId = api.length > 0 ? api[0] : ""; String version = api.length > 1 ? api[1].replace("v", "") : ""; - Optional result = apiInfos.stream() + return apiInfos.stream() .filter( - f -> apiId.equals(f.getApiId()) && (version == null || version.equals(f.getVersion())) + f -> apiId.equals(f.getApiId()) && (version.equals(f.getVersion())) ) - .findFirst(); - - if (!result.isPresent()) { - String errMessage = String.format("Error finding api doc: there is no api doc for '%s %s'.", apiId, version); - log.error(errMessage); - throw new ApiDocNotFoundException(errMessage); - } else { - return result.get(); - } + .findFirst() + .orElseThrow(() -> { + String errMessage = String.format("Error finding api doc: there is no api doc for '%s %s'.", apiId, version); + log.error(errMessage); + return new ApiDocNotFoundException(errMessage); + }); } private InstanceInfo getInstanceInfo(String serviceId) { @@ -402,7 +399,7 @@ private InstanceInfo getInstanceInfo(String serviceId) { * @deprecated Added to support services which were on-boarded before 'apiml.apiInfo.swaggerUrl' parameter was * introduced. It will be removed when all services will be using the new configuration style. */ - @Deprecated + @Deprecated(forRemoval = false) private String createApiDocUrlFromRouting(InstanceInfo instanceInfo, RoutedServices routes) { String scheme; int port; diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/ExampleService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/ExampleService.java index 0a68cd8ea8..c8d2cbdb82 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/ExampleService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/ExampleService.java @@ -32,6 +32,8 @@ import org.springframework.util.AntPathMatcher; import jakarta.servlet.http.HttpServletResponse; +import org.zowe.apiml.apicatalog.swagger.ApiDocTransformationException; + import java.io.IOException; import java.io.PrintWriter; import java.util.*; @@ -144,22 +146,25 @@ private void generateExample(String serviceId, OpenAPI swagger, String method, O * @param apiDoc path of file with API doc to parse */ public void generateExamples(String serviceId, String apiDoc) { + try { SwaggerParseResult parseResult = new OpenAPIParser().readContents(apiDoc, null, null); - - OpenAPI swagger = parseResult.getOpenAPI(); - Paths paths = swagger.getPaths(); - - for (Map.Entry pathItemEntry : paths.entrySet()) { - for (Map.Entry operationEntry : pathItemEntry.getValue().readOperationsMap().entrySet()) { - generateExample(serviceId, swagger, operationEntry.getKey().name(), operationEntry.getValue(), pathItemEntry.getKey()); + OpenAPI swagger = parseResult != null ? parseResult.getOpenAPI() : null; + Paths paths = swagger != null ? swagger.getPaths() : null; + if (paths != null) { + for (Map.Entry pathItemEntry : paths.entrySet()) { + for (Map.Entry operationEntry : pathItemEntry.getValue().readOperationsMap().entrySet()) { + generateExample(serviceId, swagger, operationEntry.getKey().name(), operationEntry.getValue(), pathItemEntry.getKey()); + } } + } else { + throw new ApiDocTransformationException("Exception parsing null apiDoc " + apiDoc + + " paths is null: '" + paths + "'."); } } catch (Exception e) { - log.debug("Cannot analyze API doc file {}", apiDoc, e); + log.warn("Cannot generate example from API doc file {}", apiDoc, e); } } - /** * To find a prepared example for specific endpoint defined by request method and URL path. If no example is found * it returns the default one (empty JSON object). diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/StandaloneLoaderService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/StandaloneLoaderService.java index 4615f5ea47..81d841565e 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/StandaloneLoaderService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/standalone/StandaloneLoaderService.java @@ -30,6 +30,7 @@ import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.util.List; @@ -77,7 +78,7 @@ private void loadOpenAPICache() { File[] openAPIFiles = getFiles(servicesDirectory + "/apiDocs"); log.debug("Found {} API Doc files", openAPIFiles.length); if (openAPIFiles.length == 0) { - log.error("No apiDocs files found."); + log.error("No apiDocs files found or I/O error occured."); return; } @@ -114,7 +115,7 @@ private ApiDocInfo createApiDocInfo(String serviceId, String apiDoc) { } private void loadApiDocCache(File file) { - try { + try (InputStream inputStream = Files.newInputStream(file.toPath())) { String[] name = FilenameUtils.removeExtension(file.getName()).split("_"); if (name.length < 2 || name.length > 3 || (name.length == 3 && !"default".equals(name[2]))) { log.warn("ApiDoc file has incorrect name format '{}'. The correct format is '{serviceId}_{version}(_default)'.", file.getName()); @@ -123,8 +124,7 @@ private void loadApiDocCache(File file) { String serviceId = name[0]; String apiVersion = name[1]; - String apiDoc = IOUtils.toString(Files.newInputStream(file.toPath()), StandardCharsets.UTF_8); - + String apiDoc = IOUtils.toString(inputStream, StandardCharsets.UTF_8); ApiDocInfo apiDocInfo = createApiDocInfo(serviceId, apiDoc); apiDoc = beanApiDocFactory.apply(apiDoc).transformApiDoc(serviceId, apiDocInfo); @@ -154,8 +154,9 @@ private File[] getFiles(String directory) { log.error("Directory '{}' does not exists.", directory); return new File[0]; } - - return dir.listFiles(f -> f.isFile() && f.getName().endsWith(".json")); + var files = dir.listFiles(f -> f.isFile() && f.getName().endsWith(".json")); + if (files == null) { + return new File[0]; + } else return files; } - } diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIService.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIService.java index d0d53cfbf6..7e7af29f23 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIService.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIService.java @@ -14,14 +14,15 @@ import lombok.extern.slf4j.Slf4j; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.HttpEntity; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.zowe.apiml.apicatalog.discovery.DiscoveryConfigProperties; import java.io.BufferedReader; +import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Base64; @@ -57,18 +58,20 @@ public StaticAPIResponse refresh() { try { HttpPost post = getHttpRequest(discoveryServiceUrl); - CloseableHttpResponse response = httpClient.execute(post); - final HttpEntity responseEntity = response.getEntity(); - String responseBody = ""; - if (responseEntity != null) { - responseBody = new BufferedReader(new InputStreamReader(responseEntity.getContent())).lines().collect(Collectors.joining("\n")); - } - // Return response if successful response or if none have been successful and this is the last URL to try - if (isSuccessful(response) || i == discoveryServiceUrls.size() - 1) { + var staticApiResponse = httpClient.execute(post, response -> { + final HttpEntity responseEntity = response.getEntity(); + String responseBody = ""; + if (responseEntity != null) { + responseBody = new BufferedReader(new InputStreamReader(responseEntity.getContent())).lines().collect(Collectors.joining("\n")); + } return new StaticAPIResponse(response.getCode(), responseBody); - } + }); - } catch (Exception e) { + // Return response if successful or if none have been successful and this is the last URL to try + if (isSuccessful(staticApiResponse) || i == discoveryServiceUrls.size() - 1) { + return staticApiResponse; + } + } catch (IOException e) { log.debug("Error refreshing static APIs from {}, error message: {}", discoveryServiceUrl, e.getMessage()); } } @@ -76,8 +79,8 @@ public StaticAPIResponse refresh() { return new StaticAPIResponse(500, "Error making static API refresh request to the Discovery Service"); } - private boolean isSuccessful(CloseableHttpResponse response) { - return response.getCode() >= 200 && response.getCode() <= 299; + private boolean isSuccessful(StaticAPIResponse response) { + return HttpStatus.valueOf(response.getStatusCode()).is2xxSuccessful(); } private HttpPost getHttpRequest(String discoveryServiceUrl) { diff --git a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/swagger/SubstituteSwaggerGenerator.java b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/swagger/SubstituteSwaggerGenerator.java index 9933311949..2fad2e898b 100644 --- a/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/swagger/SubstituteSwaggerGenerator.java +++ b/api-catalog-services/src/main/java/org/zowe/apiml/apicatalog/swagger/SubstituteSwaggerGenerator.java @@ -29,8 +29,8 @@ public class SubstituteSwaggerGenerator { private final VelocityEngine ve = new VelocityEngine(); public SubstituteSwaggerGenerator() { - ve.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath"); - ve.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName()); + ve.setProperty(RuntimeConstants.RESOURCE_LOADERS, "classpath"); + ve.setProperty("resource.loader.classpath.class", ClasspathResourceLoader.class.getName()); ve.init(); } diff --git a/api-catalog-services/src/main/resources/application.yml b/api-catalog-services/src/main/resources/application.yml index 2b64beadff..870fcfbda6 100644 --- a/api-catalog-services/src/main/resources/application.yml +++ b/api-catalog-services/src/main/resources/application.yml @@ -7,6 +7,9 @@ spring: client: hostname: ${apiml.service.hostname} ipAddress: ${apiml.service.ipAddress} + gateway: + mvc.enabled: false + enabled: false mvc: throw-exception-if-no-handler-found: true output: @@ -15,6 +18,7 @@ spring: main: allow-circular-references: true banner-mode: ${apiml.banner:"off"} + web-application-type: servlet profiles.group: dev: debug, diag @@ -33,12 +37,14 @@ logging: com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient: OFF com.netflix.discovery.DiscoveryClient: OFF org.springframework.boot.web.embedded.tomcat.TomcatWebServer: INFO + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: ERROR org.ehcache: WARN org.springframework.security.config.annotation.web.builders.WebSecurity: ERROR org.springframework.security.web: INFO # New Config org.apache: WARN #org.apache.catalina, org.apache.coyote, org.apache.tomcat + org.apache.tomcat.util.net.SSLUtilBase: ERROR org.eclipse.jetty: WARN org.apache.http.conn.ssl.DefaultHostnameVerifier: DEBUG #logs only SSLException javax.net.ssl: ERROR @@ -204,12 +210,14 @@ logging: ROOT: INFO org.zowe.apiml: DEBUG org.springframework: INFO + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: DEBUG org.apache: INFO org.apache.http: DEBUG + org.apache.tomcat.util.net: DEBUG com.netflix: INFO org.ehcache: INFO com.netflix.discovery.shared.transport.decorator: DEBUG - javax.net.ssl: INFO + javax.net.ssl: ERROR --- spring.config.activate.on-profile: diag diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRefreshServiceTest.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRefreshServiceTest.java index ba07e4f216..10b8cbc25d 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRefreshServiceTest.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRefreshServiceTest.java @@ -11,6 +11,12 @@ package org.zowe.apiml.apicatalog.instance; +import com.netflix.appinfo.InstanceInfo; +import com.netflix.discovery.shared.Application; +import com.netflix.discovery.shared.Applications; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; import org.zowe.apiml.apicatalog.model.APIContainer; import org.zowe.apiml.apicatalog.services.cached.CachedProductFamilyService; import org.zowe.apiml.apicatalog.services.cached.CachedServicesService; @@ -18,26 +24,13 @@ import org.zowe.apiml.apicatalog.util.ContainerServiceState; import org.zowe.apiml.product.constants.CoreService; import org.zowe.apiml.product.gateway.GatewayClient; -import com.netflix.appinfo.InstanceInfo; -import com.netflix.discovery.shared.Application; -import com.netflix.discovery.shared.Applications; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; -import java.util.stream.Collectors; +import static org.mockito.Mockito.*; import static org.zowe.apiml.constants.EurekaMetadataDefinition.CATALOG_ID; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; class InstanceRefreshServiceTest { @@ -79,7 +72,7 @@ void prepareState() { discoveredState.setServices(new ArrayList<>()); discoveredState.setContainers(new ArrayList<>()); discoveredState.setInstances(new ArrayList<>()); - discoveredState.setApplications(new ArrayList<>()); + discoveredState.setApplications(new ArrayList<>()); } @Nested @@ -97,7 +90,7 @@ void prepareApplication() { discoveredState.getInstances().add(newInstanceOfService); Application service5 = new Application("service5", Collections.singletonList(newInstanceOfService)); discoveredState.getApplications().add(service5); - + teachMocks(); } @@ -110,7 +103,7 @@ void addServiceToCache() { verify(cachedProductFamilyService, times(1)) .saveContainerFromInstance("api-five", newInstanceOfService); - } + } } @Nested @@ -123,21 +116,21 @@ void prepareService() { service3 = cachedState.getApplications() .stream() .filter(application -> application.getName().equalsIgnoreCase("service3")) - .collect(Collectors.toList()).get(0); - + .toList().get(0); + changedInstanceOfService = service3.getInstances().get(0); changedInstanceOfService.getMetadata().put(CATALOG_ID, "api-three"); service3.getInstances().add(0, changedInstanceOfService); - discoveredState.getApplications().add(service3); - + discoveredState.getApplications().add(service3); + teachMocks(); - + } @Test void serviceIsRemovedFromCache() { changedInstanceOfService.setActionType(InstanceInfo.ActionType.DELETED); - + underTest.refreshCacheFromDiscovery(); verify(cachedProductFamilyService, times(1)) @@ -149,7 +142,7 @@ void serviceIsRemovedFromCache() { @Test void serviceIsModifiedInCache() { changedInstanceOfService.setActionType(InstanceInfo.ActionType.MODIFIED); - + APIContainer apiContainer3 = cachedState.getContainers() .stream() .filter(apiContainer -> apiContainer.getId().equals("api-three")) diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalServiceTest.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalServiceTest.java index d97c61062b..fc70b48ade 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalServiceTest.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/instance/InstanceRetrievalServiceTest.java @@ -17,7 +17,9 @@ import org.apache.commons.io.IOUtils; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; +import org.apache.hc.core5.http.ClassicHttpRequest; import org.apache.hc.core5.http.HttpStatus; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.apache.hc.core5.http.io.entity.BasicHttpEntity; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -33,6 +35,7 @@ import org.zowe.apiml.product.constants.CoreService; import org.zowe.apiml.product.instance.InstanceInitializationException; import org.zowe.apiml.product.registry.ApplicationWrapper; +import org.zowe.apiml.util.HttpClientMockHelper; import java.io.IOException; import java.nio.charset.StandardCharsets; @@ -58,15 +61,16 @@ class InstanceRetrievalServiceTest { private DiscoveryConfigProperties discoveryConfigProperties; @Mock - CloseableHttpClient httpClient; + private CloseableHttpClient httpClient; + @Mock private CloseableHttpResponse response; @BeforeEach - void setup() throws IOException { - response = mock(CloseableHttpResponse.class); - when(response.getCode()).thenReturn(HttpStatus.SC_OK); - when(httpClient.execute(any())).thenReturn(response); + void setup() { + HttpClientMockHelper.mockExecuteWithResponse(httpClient, response); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK); + instanceRetrievalService = new InstanceRetrievalService(discoveryConfigProperties, httpClient); } @@ -75,7 +79,7 @@ void whenDiscoveryServiceIsNotAvailable_thenTryOthersFromTheList() throws IOExce when(response.getCode()).thenReturn(HttpStatus.SC_FORBIDDEN).thenReturn(HttpStatus.SC_OK); instanceRetrievalService.getAllInstancesFromDiscovery(false); - verify(httpClient, times(2)).execute(any()); + verify(httpClient, times(2)).execute(any(ClassicHttpRequest.class), any(HttpClientResponseHandler.class)); } @Test @@ -94,12 +98,14 @@ void providedNoInstanceInfoIsReturned_thenInstanceInitializationExceptionIsThrow @Test void testGetInstanceInfo_whenResponseHasEmptyBody() { + HttpClientMockHelper.mockResponse(response, ""); InstanceInfo instanceInfo = instanceRetrievalService.getInstanceInfo(CoreService.API_CATALOG.getServiceId()); assertNull(instanceInfo); } @Test void testGetInstanceInfo_whenResponseCodeIsSuccessWithUnParsedJsonText() { + HttpClientMockHelper.mockResponse(response, "UNPARSABLE_JSON"); InstanceInfo instanceInfo = instanceRetrievalService.getInstanceInfo(CoreService.API_CATALOG.getServiceId()); assertNull(instanceInfo); } @@ -137,7 +143,7 @@ void testGetAllInstancesFromDiscovery_whenResponseCodeIsNotSuccess() { } @Test - void testGetAllInstancesFromDiscovery_whenResponseCodeIsSuccessWithUnParsedJsonText() throws IOException { + void testGetAllInstancesFromDiscovery_whenResponseCodeIsSuccessWithUnParsedJsonText() { Applications actualApplications = instanceRetrievalService.getAllInstancesFromDiscovery(false); assertNull(actualApplications); } diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/services/status/LocalApiDocServiceTest.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/services/status/LocalApiDocServiceTest.java index 79ab45d2a9..35ee59fe3b 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/services/status/LocalApiDocServiceTest.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/services/status/LocalApiDocServiceTest.java @@ -11,10 +11,9 @@ package org.zowe.apiml.apicatalog.services.status; import com.netflix.appinfo.InstanceInfo; -import org.apache.commons.lang3.tuple.Pair; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.HttpStatus; -import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -31,6 +30,7 @@ import org.zowe.apiml.message.log.ApimlLogger; import org.zowe.apiml.product.gateway.GatewayClient; import org.zowe.apiml.product.instance.ServiceAddress; +import org.zowe.apiml.util.HttpClientMockHelper; import java.io.IOException; import java.util.Collections; @@ -39,7 +39,6 @@ import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; @@ -59,9 +58,6 @@ class LocalApiDocServiceTest { private static final String API_ID = "test.app"; private static final String SWAGGER_URL = "https://service:8080/service/api-doc"; - @Mock - private CloseableHttpClient httpClient; - @Mock private InstanceRetrievalService instanceRetrievalService; @@ -70,13 +66,20 @@ class LocalApiDocServiceTest { @Mock private ApimlLogger apimlLogger; + @Mock + private CloseableHttpClient httpClient; + + @Mock + private CloseableHttpResponse response; + @BeforeEach void setup() { - GatewayClient gatewayClient = new GatewayClient(getProperties()); + HttpClientMockHelper.mockExecuteWithResponse(httpClient, response); + apiDocRetrievalService = new APIDocRetrievalService( httpClient, instanceRetrievalService, - gatewayClient); + new GatewayClient(getProperties())); ReflectionTestUtils.setField(apiDocRetrievalService, "apimlLogger", apimlLogger); } @@ -84,13 +87,13 @@ void setup() { @Nested class WhenGetApiDoc { @Test - void givenValidApiInfo_thenReturnApiDoc() throws IOException { + void givenValidApiInfo_thenReturnApiDoc() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getStandardMetadata(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V); @@ -115,26 +118,26 @@ void givenNoApiDocFoundForService() { } @Test - void givenServerErrorWhenRequestingSwaggerUrl() throws IOException { + void givenServerErrorWhenRequestingSwaggerUrl() { String responseBody = "Server not found"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getStandardMetadata(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_INTERNAL_SERVER_ERROR, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_INTERNAL_SERVER_ERROR, responseBody); Exception exception = assertThrows(ApiDocNotFoundException.class, () -> apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V)); assertEquals("No API Documentation was retrieved due to " + SERVICE_ID + " server error: '" + responseBody + "'.", exception.getMessage()); } @Test - void givenNoInstanceMetadata() throws IOException { + void givenNoInstanceMetadata() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(new HashMap<>(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); Exception exception = assertThrows(ApiDocNotFoundException.class, () -> apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V)); assertEquals("No API Documentation defined for service " + SERVICE_ID + ".", exception.getMessage()); @@ -143,42 +146,45 @@ void givenNoInstanceMetadata() throws IOException { } @Test - void givenNoSwaggerUrl_thenReturnSubstituteApiDoc() throws IOException { - String generatedResponseBody = "{\n" + - " \"swagger\": \"2.0\",\n" + - " \"info\": {\n" + - " \"title\": \"Test service\"\n" + - " , \"description\": \"Test service description\"\n" + - " , \"version\": \"1.0.0\"\n" + - " },\n" + - " \"host\": \"gateway:10000\",\n" + - " \"basePath\": \"/service/api/v1\",\n" + - " \"schemes\": [\"http\"],\n" + - " \"tags\": [\n" + - " {\n" + - " \"name\": \"apimlHidden\"\n" + - " }\n" + - " ],\n" + - " \"paths\": {\n" + - " \"/apimlHidden\": {\n" + - " \"get\": {\n" + - " \"tags\": [\"apimlHidden\"],\n" + - " \"responses\": {\n" + - " \"200\": {\n" + - " \"description\": \"OK\"\n" + - " }\n" + - " }\n" + - " }\n" + - " }\n" + - " }\n" + - "}\n"; + void givenNoSwaggerUrl_thenReturnSubstituteApiDoc() { + //language=JSON + String generatedResponseBody = """ + { + "swagger": "2.0", + "info": { + "title": "Test service" + , "description": "Test service description" + , "version": "1.0.0" + }, + "host": "gateway:10000", + "basePath": "/service/api/v1", + "schemes": ["http"], + "tags": [ + { + "name": "apimlHidden" + } + ], + "paths": { + "/apimlHidden": { + "get": { + "tags": ["apimlHidden"], + "responses": { + "200": { + "description": "OK" + } + } + } + } + } + } + """; String responseBody = "api-doc body"; generatedResponseBody = generatedResponseBody.replaceAll("\\s+", ""); when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getMetadataWithoutSwaggerUrl(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V); @@ -195,13 +201,13 @@ void givenNoSwaggerUrl_thenReturnSubstituteApiDoc() throws IOException { } @Test - void givenApiDocUrlInRouting_thenCreateApiDocUrlFromRoutingAndReturnApiDoc() throws IOException { + void givenApiDocUrlInRouting_thenCreateApiDocUrlFromRoutingAndReturnApiDoc() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getMetadataWithoutApiInfo(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V); @@ -212,13 +218,13 @@ void givenApiDocUrlInRouting_thenCreateApiDocUrlFromRoutingAndReturnApiDoc() thr } @Test - void shouldCreateApiDocUrlFromRoutingAndUseHttp() throws IOException { + void shouldCreateApiDocUrlFromRoutingAndUseHttp() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getMetadataWithoutApiInfo(), false)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveApiDoc(SERVICE_ID, SERVICE_VERSION_V); @@ -229,12 +235,12 @@ void shouldCreateApiDocUrlFromRoutingAndUseHttp() throws IOException { } @Test - void givenServerCommunicationErrorWhenRequestingSwaggerUrl_thenLogCustomError() throws IOException { + void givenServerCommunicationErrorWhenRequestingSwaggerUrl_thenLogCustomError() { when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getStandardMetadata(), true)); var exception = new IOException("Unable to reach the host"); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenThrow(exception); + HttpClientMockHelper.whenExecuteThenThrow(httpClient, exception); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveDefaultApiDoc(SERVICE_ID); @@ -252,14 +258,14 @@ void givenServerCommunicationErrorWhenRequestingSwaggerUrl_thenLogCustomError() @Nested class WhenGetDefaultApiDoc { @Test - void givenDefaultApiDoc_thenReturnIt() throws IOException { + void givenDefaultApiDoc_thenReturnIt() { String responseBody = "api-doc body"; Map metadata = getMetadataWithMultipleApiInfo(); when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(metadata, true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveDefaultApiDoc(SERVICE_ID); @@ -276,7 +282,7 @@ void givenDefaultApiDoc_thenReturnIt() throws IOException { } @Test - void givenNoDefaultApiDoc_thenReturnHighestVersion() throws IOException { + void givenNoDefaultApiDoc_thenReturnHighestVersion() { String responseBody = "api-doc body"; Map metadata = getMetadataWithMultipleApiInfo(); metadata.remove(API_INFO + ".1." + API_INFO_IS_DEFAULT); // unset default API, so higher version becomes default @@ -284,7 +290,7 @@ void givenNoDefaultApiDoc_thenReturnHighestVersion() throws IOException { when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(metadata, true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveDefaultApiDoc(SERVICE_ID); @@ -301,13 +307,13 @@ void givenNoDefaultApiDoc_thenReturnHighestVersion() throws IOException { } @Test - void givenNoDefaultApiDocAndDifferentVersionFormat_thenReturnHighestVersion() throws IOException { + void givenNoDefaultApiDocAndDifferentVersionFormat_thenReturnHighestVersion() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getMetadataWithMultipleApiInfoWithDifferentVersionFormat(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveDefaultApiDoc(SERVICE_ID); @@ -324,13 +330,13 @@ void givenNoDefaultApiDocAndDifferentVersionFormat_thenReturnHighestVersion() th } @Test - void givenNoApiDocs_thenReturnNull() throws IOException { + void givenNoApiDocs_thenReturnNull() { String responseBody = "api-doc body"; when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)) .thenReturn(getStandardInstance(getMetadataWithoutApiInfo(), true)); - when(httpClient.execute(any(), any(HttpClientResponseHandler.class))).thenReturn(Pair.of(HttpStatus.SC_OK, responseBody)); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_OK, responseBody); ApiDocInfo actualResponse = apiDocRetrievalService.retrieveDefaultApiDoc(SERVICE_ID); @@ -356,9 +362,9 @@ void givenApiVersions_thenReturnThem() { void givenNoApiVersions_thenThrowException() { when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)).thenReturn(null); - Exception exception = assertThrows(ApiVersionNotFoundException.class, () -> { - apiDocRetrievalService.retrieveApiVersions(SERVICE_ID); - }); + Exception exception = assertThrows(ApiVersionNotFoundException.class, () -> + apiDocRetrievalService.retrieveApiVersions(SERVICE_ID) + ); assertEquals("Could not load instance information for service " + SERVICE_ID + ".", exception.getMessage()); } } @@ -390,9 +396,9 @@ void givenNoDefaultApiVersion_thenReturnHighestVersion() { void givenNoApiInfo_thenThrowException() { when(instanceRetrievalService.getInstanceInfo(SERVICE_ID)).thenReturn(null); - Exception exception = assertThrows(ApiVersionNotFoundException.class, () -> { - apiDocRetrievalService.retrieveDefaultApiVersion(SERVICE_ID); - }); + Exception exception = assertThrows(ApiVersionNotFoundException.class, () -> + apiDocRetrievalService.retrieveDefaultApiVersion(SERVICE_ID) + ); assertEquals("Could not load instance information for service " + SERVICE_ID + ".", exception.getMessage()); } } diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/standalone/ExampleServiceTest.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/standalone/ExampleServiceTest.java index c202a68402..ed911c0e2f 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/standalone/ExampleServiceTest.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/standalone/ExampleServiceTest.java @@ -10,9 +10,13 @@ package org.zowe.apiml.apicatalog.standalone; +import io.swagger.parser.OpenAPIParser; +import io.swagger.v3.oas.models.OpenAPI; import io.swagger.v3.oas.models.Operation; import io.swagger.v3.oas.models.responses.ApiResponse; import io.swagger.v3.oas.models.responses.ApiResponses; +import io.swagger.v3.parser.core.models.SwaggerParseResult; + import org.apache.commons.io.IOUtils; import org.json.JSONArray; import org.json.JSONException; @@ -20,6 +24,7 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; +import org.mockito.Mockito; import org.springframework.core.io.ClassPathResource; import org.springframework.http.MediaType; import org.springframework.mock.web.MockHttpServletResponse; @@ -27,13 +32,13 @@ import java.io.IOException; import java.nio.charset.Charset; + import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.*; class ExampleServiceTest { @@ -66,6 +71,28 @@ void existingGetExample() throws JSONException { assertEquals("doggie", json.getJSONObject(0).get("name")); } + @Test + void generateExampleDoesNotThrowException() throws IOException { + + String apiDoc = IOUtils.toString( + new ClassPathResource("standalone/services/apiDocs/service2_zowe v2.0.0.json").getURL(), + Charset.forName("UTF-8") + ); + assertDoesNotThrow( () -> exampleService.generateExamples("testService", apiDoc)); + } + + @Test + void generateExampleThrowsExceptionWhenPathIsNull() { + + OpenAPIParser openAPIParser = Mockito.mock(OpenAPIParser.class); + SwaggerParseResult swaggerParseResult = Mockito.mock(SwaggerParseResult.class); + OpenAPI openAPI = Mockito.mock(OpenAPI.class); + + Mockito.when(openAPIParser.readContents(any(),any(),any())).thenReturn(swaggerParseResult); + Mockito.when(swaggerParseResult.getOpenAPI()).thenReturn(openAPI); + Mockito.when(openAPI.getPaths()).thenReturn(null); + assertDoesNotThrow( () -> exampleService.generateExamples("testService", null)); + } @Test void nonExistingGetExample() { ExampleService.Example example = exampleService.getExample("GET", "/unkwnown"); @@ -159,4 +186,4 @@ void whenIsEmpty() { } -} \ No newline at end of file +} diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIServiceTest.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIServiceTest.java index fb459f3a67..aad56b809d 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIServiceTest.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/staticapi/StaticAPIServiceTest.java @@ -13,7 +13,9 @@ import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; +import org.apache.hc.core5.http.ClassicHttpRequest; import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -23,6 +25,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.http.HttpStatus; import org.zowe.apiml.apicatalog.discovery.DiscoveryConfigProperties; +import org.zowe.apiml.util.HttpClientMockHelper; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -162,15 +165,12 @@ void givenNoDiscoveryLocations_whenAttemptRefresh_thenReturn500() { private void mockRestTemplateExchange(String discoveryUrl) throws IOException { HttpPost post = new HttpPost(discoveryUrl.replace("/eureka", "") + REFRESH_ENDPOINT); - when(httpClient.execute(any())).thenAnswer((invocation) -> { + when(httpClient.execute(any(ClassicHttpRequest.class), any(HttpClientResponseHandler.class))).thenAnswer((invocation) -> { HttpPost httpRequest = (HttpPost) invocation.getArguments()[0]; URI uri = httpRequest.getUri(); int i = uri.compareTo(post.getUri()); - if (i == 0) { - return okResponse; - } else { - return notFoundResponse; - } + + return HttpClientMockHelper.invokeResponseHandler(invocation, i == 0 ? okResponse : notFoundResponse); }); } } diff --git a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/util/ContainerServiceMockUtil.java b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/util/ContainerServiceMockUtil.java index 9fbf6ed628..7757c67dcf 100644 --- a/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/util/ContainerServiceMockUtil.java +++ b/api-catalog-services/src/test/java/org/zowe/apiml/apicatalog/util/ContainerServiceMockUtil.java @@ -10,14 +10,13 @@ package org.zowe.apiml.apicatalog.util; +import com.netflix.appinfo.InstanceInfo; +import com.netflix.discovery.shared.Application; import org.zowe.apiml.apicatalog.model.APIContainer; import org.zowe.apiml.apicatalog.model.APIService; import org.zowe.apiml.apicatalog.services.cached.CachedServicesService; -import com.netflix.appinfo.InstanceInfo; -import com.netflix.discovery.shared.Application; import java.util.*; -import java.util.stream.Collectors; import java.util.stream.Stream; import static org.mockito.Mockito.when; @@ -81,10 +80,8 @@ private int generateInstancesAndServices(ContainerServiceState containerServiceS int limit) { List generatedInstances = Stream.iterate(index, i -> i + 1) .limit(limit) - .map(mIndex -> { - return getInstance(mIndex, serviceId); - }).collect(Collectors.toList()); - + .map(mIndex -> getInstance(mIndex, serviceId)) + .toList(); addApiService(serviceId, containerServiceState.getServices(), services); addInstancesToApplications( diff --git a/api-catalog-ui/build.gradle b/api-catalog-ui/build.gradle index e1f264aa68..71bc03b733 100644 --- a/api-catalog-ui/build.gradle +++ b/api-catalog-ui/build.gradle @@ -1,8 +1,5 @@ -import java.util.stream.Collectors - plugins { alias(libs.plugins.gradle.node) - alias(libs.plugins.task.tree) } node { @@ -94,7 +91,7 @@ task npmBuild(type: NpmTask) { inputs.files(fileTree('frontend').matching { include '**/.env*' }).withPathSensitivity(PathSensitivity.RELATIVE) - inputs.file('frontend/.eslintrc.js').withPathSensitivity(PathSensitivity.RELATIVE) + inputs.file('frontend/eslint.config.mjs').withPathSensitivity(PathSensitivity.RELATIVE) inputs.file('frontend/package.json').withPathSensitivity(PathSensitivity.RELATIVE) outputs.dir('frontend/build') diff --git a/api-catalog-ui/frontend/.env b/api-catalog-ui/frontend/.env index 6c8675fe00..b09932a4bc 100644 --- a/api-catalog-ui/frontend/.env +++ b/api-catalog-ui/frontend/.env @@ -7,4 +7,4 @@ REACT_APP_STATUS_UPDATE_MAX_RETRIES=10 REACT_APP_STATUS_UPDATE_DEBOUNCE=300 REACT_APP_CA_ENV=false REACT_APP_STATUS_UPDATE_SCALING_DURATION=1000 -REACT_APP_ZOWE_BUILD_INFO=3.0.22-SNAPSHOT +REACT_APP_ZOWE_BUILD_INFO=3.0.39-SNAPSHOT diff --git a/api-catalog-ui/frontend/.eslintrc.js b/api-catalog-ui/frontend/.eslintrc.js deleted file mode 100644 index 2439cc75fa..0000000000 --- a/api-catalog-ui/frontend/.eslintrc.js +++ /dev/null @@ -1,2 +0,0 @@ -// this file is used to load eslint plugins from the proper directory rather than root directory -module.exports = require("../../.eslintrc.json"); diff --git a/api-catalog-ui/frontend/eslint.config.mjs b/api-catalog-ui/frontend/eslint.config.mjs new file mode 100644 index 0000000000..8f1a7fb2f7 --- /dev/null +++ b/api-catalog-ui/frontend/eslint.config.mjs @@ -0,0 +1,128 @@ +import flowtype from "eslint-plugin-flowtype"; +import header from "eslint-plugin-header"; +import jsxA11Y from "eslint-plugin-jsx-a11y"; +import prettier from "eslint-plugin-prettier"; +import react from "eslint-plugin-react"; +import { fixupPluginRules } from "@eslint/compat"; +import globals from "globals"; +import babelParser from "@babel/eslint-parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +// Workaround, as Header/header rules no longer supported https://github.com/Stuk/eslint-plugin-header/issues/57 +header.rules.header.meta.schema = false; +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [...compat.extends("airbnb", "prettier"), { + plugins: { + flowtype: fixupPluginRules(flowtype), + header, + "jsx-a11y": jsxA11Y, + prettier, + react, + }, + + languageOptions: { + globals: { + ...globals.browser, + ...globals.node, + ...globals.jquery, + ...globals.jest, + }, + + parser: babelParser, + ecmaVersion: 6, + sourceType: "module", + + parserOptions: { + ecmaFeatures: { + experimentalObjectRestSpread: true, + impliedStrict: true, + classes: true, + jsx: true, + }, + }, + }, + + rules: { + "class-methods-use-this": 0, + "header/header": [2, "../../license_header.txt"], + + "import/no-extraneous-dependencies": ["error", { + devDependencies: true, + }], + + "import/no-named-as-default": 1, + "no-template-curly-in-string": "off", + + "no-unused-vars": [1, { + argsIgnorePattern: "res|next|^err", + }], + + "arrow-body-style": [1, "as-needed"], + + "no-param-reassign": [2, { + props: false, + }], + + "no-console": 2, + import: 0, // You can remove this if it's not needed + "func-names": 0, + "space-before-function-paren": 0, + "comma-dangle": 0, + "max-len": 0, + "import/extensions": 0, + "no-underscore-dangle": 0, + "consistent-return": 0, + "react/display-name": 1, + "linebreak-style": "off", + "react/react-in-jsx-scope": 0, + "react/forbid-prop-types": 0, + "react/no-unescaped-entities": 0, + "react/prefer-stateless-function": 0, + + "react/jsx-filename-extension": [1, { + extensions: [".js", ".jsx"], + }], + + "react/no-unused-prop-types": 2, + radix: 0, + + "no-shadow": [2, { + hoist: "all", + allow: ["resolve", "reject", "done", "next", "err", "error"], + }], + + quotes: [2, "single", { + avoidEscape: true, + allowTemplateLiterals: true, + }], + + "prettier/prettier": ["error", { + endOfLine: "auto", + trailingComma: "es5", + singleQuote: true, + printWidth: 120, + }], + + "jsx-a11y/href-no-hash": "off", + + "jsx-a11y/anchor-is-valid": ["warn", { + aspects: ["invalidHref"], + }], + + "react/prop-types": 0, + "react/destructuring-assignment": 0, + "react/jsx-props-no-spreading": 0, + "react/sort-comp": 0, + "jsx-a11y/label-has-associated-control": 0, + }, +}]; diff --git a/api-catalog-ui/frontend/package-lock.json b/api-catalog-ui/frontend/package-lock.json index 65fdbd0ae2..5d9dbfe1e0 100644 --- a/api-catalog-ui/frontend/package-lock.json +++ b/api-catalog-ui/frontend/package-lock.json @@ -9,9 +9,10 @@ "version": "0.3.0", "dependencies": { "@emotion/core": "11.0.0", - "@emotion/is-prop-valid": "1.3.0", + "@emotion/is-prop-valid": "1.3.1", "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", + "@eslint/migrate-config": "^1.3.1", "@jest/globals": "29.7.0", "@material-ui/core": "4.12.4", "@material-ui/icons": "4.11.3", @@ -19,8 +20,8 @@ "@mui/material": "5.16.7", "@react-loadable/revised": "1.5.0", "@types/enzyme": "3.10.18", - "@types/jest": "29.5.12", - "@types/react": "18.3.5", + "@types/jest": "29.5.13", + "@types/react": "18.3.11", "agentkeepalive": "4.5.0", "buffer": "6.0.3", "emotion-theming": "11.0.0", @@ -32,7 +33,7 @@ "htmr": "1.0.2", "install": "0.13.0", "lodash": "4.17.21", - "loglevel": "1.9.1", + "loglevel": "1.9.2", "openapi-snippet": "0.14.0", "react": "18.3.1", "react-app-polyfill": "3.0.0", @@ -40,7 +41,7 @@ "react-hook-form": "7.53.0", "react-redux": "9.1.2", "react-router-dom": "5.3.4", - "react-toastify": "10.0.5", + "react-toastify": "10.0.6", "redux": "5.0.1", "redux-catch": "1.3.1", "redux-logger": "3.0.6", @@ -49,48 +50,49 @@ "redux-persist-transform-filter": "0.0.22", "redux-thunk": "3.1.0", "rxjs": "7.8.1", - "sass": "1.78.0", + "sass": "1.79.5", "stream": "0.0.3", "swagger-ui-react": "5.17.14", - "undici": "6.19.8", "url": "0.11.4", "util": "0.12.5", - "uuid": "9.0.1" + "uuid": "10.0.0" }, "devDependencies": { - "@babel/core": "7.25.2", - "@babel/eslint-parser": "7.25.1", + "@babel/core": "7.25.8", + "@babel/eslint-parser": "7.25.8", "@babel/plugin-proposal-private-property-in-object": "7.21.11", - "@babel/preset-env": "7.25.4", - "@babel/preset-react": "7.24.7", + "@babel/preset-env": "7.25.8", + "@babel/preset-react": "7.25.7", "@cfaester/enzyme-adapter-react-18": "0.8.0", - "@testing-library/dom": "8.20.1", + "@eslint/compat": "1.2.0", + "@eslint/js": "9.12.0", + "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/react": "16.0.1", - "@testing-library/user-event": "13.5.0", - "ajv": "7.2.4", - "ansi-regex": "5.0.1", - "body-parser": "1.20.2", - "caniuse-lite": "1.0.30001655", - "cheerio": "1.0.0", - "concurrently": "5.3.0", + "@testing-library/user-event": "14.5.2", + "ajv": "8.17.1", + "ansi-regex": "6.1.0", + "body-parser": "1.20.3", + "caniuse-lite": "1.0.30001669", + "concurrently": "9.0.1", "cors": "2.8.5", "cross-env": "7.0.3", - "cypress": "13.14.1", + "cypress": "13.15.0", "cypress-file-upload": "5.0.8", "enzyme": "3.11.0", - "eslint": "7.32.0", + "eslint": "9.12.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-prettier": "8.10.0", - "eslint-plugin-cypress": "2.15.2", - "eslint-plugin-flowtype": "5.10.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-cypress": "4.0.0", + "eslint-plugin-flowtype": "8.0.3", "eslint-plugin-header": "3.1.1", - "eslint-plugin-import": "2.30.0", - "eslint-plugin-jsx-a11y": "6.9.0", - "eslint-plugin-prettier": "3.4.1", - "eslint-plugin-react": "7.35.2", - "express": "4.19.2", - "html-loader": "4.2.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-jsx-a11y": "6.10.0", + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-react": "7.37.1", + "express": "4.21.1", + "globals": "15.11.0", + "html-loader": "5.1.0", "jest": "29.7.0", "jest-environment-enzyme": "7.1.2", "jest-enzyme": "7.1.2", @@ -100,24 +102,25 @@ "jest-watch-typeahead": "2.2.2", "json-schema": "0.4.0", "mini-css-extract-plugin": "2.9.1", - "nodemon": "2.0.22", + "nodemon": "3.1.7", "nth-check": "2.1.1", - "prettier": "2.8.8", + "prettier": "3.3.3", "prop-types": "15.8.1", "querystring-es3": "0.2.1", "react-app-rewired": "2.2.1", "react-error-overlay": "6.0.11", "react-scripts": "5.0.1", "redux-mock-store": "1.5.4", - "rimraf": "3.0.2", + "rimraf": "6.0.1", "source-map-explorer": "2.5.3", - "start-server-and-test": "2.0.5", + "start-server-and-test": "2.0.8", "tmpl": "1.0.5", - "yaml": "1.10.2" + "undici": "6.19.8", + "yaml": "2.6.0" }, "engines": { - "node": "=18.20.4", - "npm": "=9.9.3" + "node": "=20.18.0", + "npm": "=10.9.0" } }, "node_modules/@adobe/css-tools": { @@ -165,11 +168,25 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", + "dependencies": { + "@babel/highlight": "^7.25.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/code-frame/node_modules/@babel/highlight": { + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", "picocolors": "^1.0.0" }, "engines": { @@ -177,28 +194,30 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/compat-data/-/compat-data-7.25.4.tgz", - "integrity": "sha512-+LGRog6RAsCJrrrg/IO6LGmpphNe5DiK30dGjCoxxeGv49B10/3XYGxPsAwrDlMFcFEvdAUavDT8r9k/hSyQqQ==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/compat-data/-/compat-data-7.25.8.tgz", + "integrity": "sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==", + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/core/-/core-7.25.2.tgz", - "integrity": "sha512-BBt3opiCOxUr9euZ5/ro/Xv8/V7yJ5bjYMqG/C1YAo8MIKAnumZalCN+msbci3Pigy4lIQfPUpfMM27HMGaYEA==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/core/-/core-7.25.8.tgz", + "integrity": "sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==", + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.0", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-module-transforms": "^7.25.2", - "@babel/helpers": "^7.25.0", - "@babel/parser": "^7.25.0", - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.2", - "@babel/types": "^7.25.2", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helpers": "^7.25.7", + "@babel/parser": "^7.25.8", + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.8", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -214,10 +233,11 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.25.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/eslint-parser/-/eslint-parser-7.25.1.tgz", - "integrity": "sha512-Y956ghgTT4j7rKesabkh5WeqgSFZVFwaPR0IWFm7KFHFmmJ4afbG49SmfW4S+GyRPx0Dy5jxEWA5t0rpxfElWg==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/eslint-parser/-/eslint-parser-7.25.8.tgz", + "integrity": "sha512-Po3VLMN7fJtv0nsOjBDSbO1J71UhzShE9MuOSkWEV9IZQXzhZklYtzKZ8ZD/Ij3a0JBv1AG3Ny2L3jvAHQVOGg==", "dev": true, + "license": "MIT", "dependencies": { "@nicolo-ribaudo/eslint-scope-5-internals": "5.1.1-v1", "eslint-visitor-keys": "^2.1.0", @@ -232,52 +252,52 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", - "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.7.tgz", + "integrity": "sha512-4xwU8StnqnlIhhioZf1tqnVWeQ9pvH/ujS8hRfw/WOza+/a+1qv69BWNy+oY231maTCWgKWhfBU7kDpsds6zAA==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", - "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.7.tgz", + "integrity": "sha512-12xfNeKNH7jubQNm7PAkzlLwEmCs1tfuX3UjIw6vP6QXi+leKh6+LyC/+Ed4EIQermwd58wsyh070yjDHFlNGg==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.2.tgz", - "integrity": "sha512-U2U5LsSaZ7TAt3cfaymQ8WHh0pxvdHoEk6HVpaexxixjyEquMh0L0YNJNM6CTGKMXV1iksi0iZkGw4AcFkPaaw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.7.tgz", + "integrity": "sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==", "dependencies": { - "@babel/compat-data": "^7.25.2", - "@babel/helper-validator-option": "^7.24.8", - "browserslist": "^4.23.1", + "@babel/compat-data": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -286,17 +306,17 @@ } }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz", - "integrity": "sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.7.tgz", + "integrity": "sha512-bD4WQhbkx80mAyj/WCm4ZHcF4rDxkoLFO6ph8/5/mQ3z4vAzltQXAmbc7GvVJx5H+lk5Mi5EmbTeox5nMGCsbw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/traverse": "^7.25.7", "semver": "^6.3.1" }, "engines": { @@ -307,13 +327,13 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.2.tgz", - "integrity": "sha512-+wqVGP+DFmqwFD3EH6TMTfUNeqDehV3E/dl+Sd54eaXqm17tEUNbEIn4sVivVowbvUpOtIGxdo3GoXyDH9N/9g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.7.tgz", + "integrity": "sha512-byHhumTj/X47wJ6C6eLpK7wW/WBEcnUeb7D0FNc/jFQnQVw7DOso3Zz5u9x/zLrFVkHa89ZGDbkAa1D54NdrCQ==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "regexpu-core": "^5.3.1", + "@babel/helper-annotate-as-pure": "^7.25.7", + "regexpu-core": "^6.1.1", "semver": "^6.3.1" }, "engines": { @@ -340,39 +360,39 @@ } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz", - "integrity": "sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.7.tgz", + "integrity": "sha512-O31Ssjd5K6lPbTX9AAYpSKrZmLeagt9uwschJd+Ixo6QiRyfpvgtVQp8qrDR9UNFjZ8+DO34ZkdrN+BnPXemeA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.8", - "@babel/types": "^7.24.8" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", - "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-module-imports/-/helper-module-imports-7.25.7.tgz", + "integrity": "sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz", - "integrity": "sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-module-transforms/-/helper-module-transforms-7.25.7.tgz", + "integrity": "sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==", "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-simple-access": "^7.24.7", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.2" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -382,34 +402,34 @@ } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", - "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.7.tgz", + "integrity": "sha512-VAwcwuYhv/AT+Vfr28c9y6SHzTan1ryqrydSTFGjU0uDJHw3uZ+PduI8plCLkRsDnqK2DMEDmwrOQRsK/Ykjng==", "dev": true, "dependencies": { - "@babel/types": "^7.24.7" + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz", - "integrity": "sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.7.tgz", + "integrity": "sha512-eaPZai0PiqCi09pPs3pAFfl/zYgGaE6IdXtYvmf0qlcDTd3WCtO7JWCcRd64e0EQrcYgiHibEZnOGsSY4QSgaw==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.0.tgz", - "integrity": "sha512-NhavI2eWEIz/H9dbrG0TuOicDhNexze43i5z7lEqwYm0WEZVTwnPpA0EafUTP7+6/W79HWIP2cTe3Z5NiSTVpw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.7.tgz", + "integrity": "sha512-kRGE89hLnPfcz6fTrlNU+uhgcwv0mBE4Gv3P9Ke9kLVJYpi4AMVVEElXvB5CabrPZW4nCM8P8UyyjrzCM0O2sw==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-wrap-function": "^7.25.0", - "@babel/traverse": "^7.25.0" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-wrap-function": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -419,14 +439,14 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz", - "integrity": "sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.7.tgz", + "integrity": "sha512-iy8JhqlUW9PtZkd4pHM96v6BdJ66Ba9yWSE4z0W4TvSZwLBPkyDsiIU3ENe4SmrzRBs76F7rQXTy1lYC49n6Lw==", "dev": true, "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.24.8", - "@babel/helper-optimise-call-expression": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-member-expression-to-functions": "^7.25.7", + "@babel/helper-optimise-call-expression": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -436,100 +456,87 @@ } }, "node_modules/@babel/helper-simple-access": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", - "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-simple-access/-/helper-simple-access-7.25.7.tgz", + "integrity": "sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==", "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", - "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.7.tgz", + "integrity": "sha512-pPbNbchZBkPMD50K0p3JGcFMNLVUCuU/ABybm/PGNj4JiHrpmNyqqCphBk4i19xXtNV0JhldQJJtbSW5aUvbyA==", "dev": true, "dependencies": { - "@babel/traverse": "^7.24.7", - "@babel/types": "^7.24.7" + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz", - "integrity": "sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-option/-/helper-validator-option-7.25.7.tgz", + "integrity": "sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.0.tgz", - "integrity": "sha512-s6Q1ebqutSiZnEjaofc/UKDyC4SbzV5n5SrA2Gq8UawLycr3i04f1dX4OzoQVnexm6aOCh37SQNYlJ/8Ku+PMQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.7.tgz", + "integrity": "sha512-MA0roW3JF2bD1ptAaJnvcabsVlNQShUaThyJbCDD4bCp8NEgiFvpoqRI2YS22hHlc2thjO/fTg2ShLMC3jygAg==", "dev": true, "dependencies": { - "@babel/template": "^7.25.0", - "@babel/traverse": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/template": "^7.25.7", + "@babel/traverse": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helpers/-/helpers-7.25.6.tgz", - "integrity": "sha512-Xg0tn4HcfTijTwfDwYlvVCl43V6h4KyVVX2aEm4qdO/PC6L2YvzLHFdmxhoeSA3eslcE6+ZVXHgWwopXYLNq4Q==", - "dependencies": { - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helpers/-/helpers-7.25.7.tgz", + "integrity": "sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0", - "picocolors": "^1.0.0" + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/parser/-/parser-7.25.8.tgz", + "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", + "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.8" }, "bin": { "parser": "bin/babel-parser.js" @@ -539,13 +546,13 @@ } }, "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { - "version": "7.25.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.3.tgz", - "integrity": "sha512-wUrcsxZg6rqBXG05HG1FPYgsP6EvwF4WpBbxIpWIIYnH8wG0gzx3yZY3dtEHas4sTAOGkbTsc9EGPxwff8lRoA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.7.tgz", + "integrity": "sha512-UV9Lg53zyebzD1DwQoT9mzkEKa922LNUp5YkTJ6Uta0RbyXaQNUgcvSt7qIu1PpPzVb6rd10OVNTzkyBGeVmxQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.3" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -555,12 +562,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.0.tgz", - "integrity": "sha512-Bm4bH2qsX880b/3ziJ8KD711LT7z4u8CFudmjqle65AZj/HNUFhEf90dqYv6O86buWvSBmeQDjv0Tn2aF/bIBA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.7.tgz", + "integrity": "sha512-GDDWeVLNxRIkQTnJn2pDOM1pkCgYdSqPeT1a9vh9yIqu2uzzgw1zcqEb+IJOhy+dTBMlNdThrDIksr2o09qrrQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -570,12 +577,12 @@ } }, "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.0.tgz", - "integrity": "sha512-lXwdNZtTmeVOOFtwM/WDe7yg1PL8sYhRk/XH0FzbR2HDQ0xC+EnQ/JHeoMYSavtU115tnUk0q9CDyq8si+LMAA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.7.tgz", + "integrity": "sha512-wxyWg2RYaSUYgmd9MR0FyRGyeOMQE/Uzr1wzd/g5cf5bwi9A4v6HFdDm7y1MgDtod/fLOSTZY6jDgV0xU9d5bA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -585,14 +592,14 @@ } }, "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", - "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.7.tgz", + "integrity": "sha512-Xwg6tZpLxc4iQjorYsyGMyfJE7nP5MV8t/Ka58BgiA7Jw0fRqQNcANlLfdJ/yvBt9z9LD2We+BEkT7vLqZRWng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7", + "@babel/plugin-transform-optional-chaining": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -602,13 +609,13 @@ } }, "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.0.tgz", - "integrity": "sha512-tggFrk1AIShG/RUQbEwt2Tr/E+ObkfwrPjR6BjbRvsx24+PSjK8zrq0GWPNCjo8qpRx4DuJzlcvWJqlm+0h3kw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.7.tgz", + "integrity": "sha512-UVATLMidXrnH+GMUIuxq55nejlj02HP7F5ETyBONzP6G87fPBogG4CH6kxrSrdIuAjdwNO9VzyaYsrZPscWUrw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.0" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -801,30 +808,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, "node_modules/@babel/plugin-syntax-flow": { "version": "7.24.7", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.24.7.tgz", @@ -841,12 +824,12 @@ } }, "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.6.tgz", - "integrity": "sha512-aABl0jHw9bZ2karQ/uUD6XP4u0SG22SJrOHFoL6XB1R7dTovOP4TzTlsxOYC5yQ1pdscVK2JTUnF6QL3ARoAiQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.25.7.tgz", + "integrity": "sha512-ZvZQRmME0zfJnDQnVBKYzHxXT7lYBB3Revz1GuS7oLXWMgqUPX4G+DDbT30ICClht9WKV34QVrZhSw6WdklwZQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -856,11 +839,11 @@ } }, "node_modules/@babel/plugin-syntax-import-attributes": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.6.tgz", - "integrity": "sha512-sXaDXaJN9SNLymBdlWFA+bjzBhFD617ZaFiY13dGt7TVslVvVgA6fkZOP7Ki3IGElC45lwHdOTrCtKZGVAWeLQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.25.7.tgz", + "integrity": "sha512-AqVo+dguCgmpi/3mYBdu9lkngOBlQ2w2vnNpa6gfiCxQZLzV4ZbhsXitJ2Yblkoe1VQwtHSaNmIaGll/26YWRw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -892,11 +875,11 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", - "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.25.7.tgz", + "integrity": "sha512-ruZOnKO+ajVL/MVx+PwNBPOkrnXTXoWMtte1MBpegfCArhqOe3Bj52avVj1huLLxNKYKXYaSxZ2F+woK1ekXfw==", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1030,12 +1013,12 @@ } }, "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", - "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.7.tgz", + "integrity": "sha512-EJN2mKxDwfOUCPxMO6MUI58RN3ganiRAG/MS/S3HfB6QFNjroAMelQo/gybyYq97WerCBAZoyrAoW8Tzdq2jWg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1045,15 +1028,15 @@ } }, "node_modules/@babel/plugin-transform-async-generator-functions": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.4.tgz", - "integrity": "sha512-jz8cV2XDDTqjKPwVPJBIjORVEmSGYhdRa8e5k5+vN+uwcjSrSxUaebBRa4ko1jqNF2uxyg8G6XYk30Jv285xzg==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.8.tgz", + "integrity": "sha512-9ypqkozyzpG+HxlH4o4gdctalFGIjjdufzo7I2XPda0iBnZ6a+FO0rIEQcdSPXp02CkvGsII1exJhmROPQd5oA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-remap-async-to-generator": "^7.25.0", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/traverse": "^7.25.4" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1063,14 +1046,14 @@ } }, "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", - "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.7.tgz", + "integrity": "sha512-ZUCjAavsh5CESCmi/xCpX1qcCaAglzs/7tmuvoFnJgA1dM7gQplsguljoTg+Ru8WENpX89cQyAtWoaE0I3X3Pg==", "dev": true, "dependencies": { - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-remap-async-to-generator": "^7.24.7" + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-remap-async-to-generator": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1080,12 +1063,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", - "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.7.tgz", + "integrity": "sha512-xHttvIM9fvqW+0a3tZlYcZYSBpSWzGBFIt/sYG3tcdSzBB8ZeVgz2gBP7Df+sM0N1850jrviYSSeUuc+135dmQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1095,12 +1078,12 @@ } }, "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.0.tgz", - "integrity": "sha512-yBQjYoOjXlFv9nlXb3f1casSHOZkWr29NX+zChVanLg5Nc157CrbEX9D7hxxtTpuFy7Q0YzmmWfJxzvps4kXrQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.7.tgz", + "integrity": "sha512-ZEPJSkVZaeTFG/m2PARwLZQ+OG0vFIhPlKHK/JdIMy8DbRJ/htz6LRrTFtdzxi9EHmcwbNPAKDnadpNSIW+Aow==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1110,13 +1093,13 @@ } }, "node_modules/@babel/plugin-transform-class-properties": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.4.tgz", - "integrity": "sha512-nZeZHyCWPfjkdU5pA/uHiTaDAFUEqkpzf1YoQT2NeSynCGYq9rxfyI3XpQbfx/a0hSnFH6TGlEXvae5Vi7GD8g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.7.tgz", + "integrity": "sha512-mhyfEW4gufjIqYFo9krXHJ3ElbFLIze5IDp+wQTxoPd+mwFb1NxatNAwmv8Q8Iuxv7Zc+q8EkiMQwc9IhyGf4g==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1126,14 +1109,14 @@ } }, "node_modules/@babel/plugin-transform-class-static-block": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", - "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.25.8.tgz", + "integrity": "sha512-e82gl3TCorath6YLf9xUwFehVvjvfqFhdOo4+0iVIVju+6XOi5XHkqB3P2AXnSwoeTX0HBoXq5gJFtvotJzFnQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1143,16 +1126,16 @@ } }, "node_modules/@babel/plugin-transform-classes": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.4.tgz", - "integrity": "sha512-oexUfaQle2pF/b6E0dwsxQtAol9TLSO88kQvym6HHBWFliV2lGdrPieX+WgMRLSJDVzdYywk7jXbLPuO2KLTLg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.7.tgz", + "integrity": "sha512-9j9rnl+YCQY0IGoeipXvnk3niWicIB6kCsWRGLwX241qSXpbA4MKxtp/EdvFxsc4zI5vqfLxzOd0twIJ7I99zg==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-replace-supers": "^7.25.0", - "@babel/traverse": "^7.25.4", + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7", + "@babel/traverse": "^7.25.7", "globals": "^11.1.0" }, "engines": { @@ -1162,14 +1145,23 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", - "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.7.tgz", + "integrity": "sha512-QIv+imtM+EtNxg/XBKL3hiWjgdLjMOmZ+XzQwSgmBfKbfxUjBzGgVPklUuE55eq5/uVoh8gg3dqlrwR/jw3ZeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/template": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/template": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1179,12 +1171,12 @@ } }, "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.8.tgz", - "integrity": "sha512-36e87mfY8TnRxc7yc6M9g9gOB7rKgSahqkIKwLpz4Ppk2+zC2Cy1is0uwtuSG6AE4zlTOUa+7JGz9jCJGLqQFQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.7.tgz", + "integrity": "sha512-xKcfLTlJYUczdaM1+epcdh1UGewJqr9zATgrNHcLBcV2QmfvPPEixo/sK/syql9cEmbr7ulu5HMFG5vbbt/sEA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1194,13 +1186,13 @@ } }, "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", - "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.7.tgz", + "integrity": "sha512-kXzXMMRzAtJdDEgQBLF4oaiT6ZCU3oWHgpARnTKDAqPkDJ+bs3NrZb310YYevR5QlRo3Kn7dzzIdHbZm1VzJdQ==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1210,12 +1202,12 @@ } }, "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", - "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.7.tgz", + "integrity": "sha512-by+v2CjoL3aMnWDOyCIg+yxU9KXSRa9tN6MbqggH5xvymmr9p4AMjYkNlQy4brMceBnUyHZ9G8RnpvT8wP7Cfg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1225,13 +1217,13 @@ } }, "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.0.tgz", - "integrity": "sha512-YLpb4LlYSc3sCUa35un84poXoraOiQucUTTu8X1j18JV+gNa8E0nyUf/CjZ171IRGr4jEguF+vzJU66QZhn29g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-HvS6JF66xSS5rNKXLqkk7L9c/jZ/cdIVIcoPVrnl8IsVpLggTjXs8OWekbLHs/VtYDDh5WXnQyeE3PPUGm22MA==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1241,13 +1233,13 @@ } }, "node_modules/@babel/plugin-transform-dynamic-import": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", - "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.8.tgz", + "integrity": "sha512-gznWY+mr4ZQL/EWPcbBQUP3BXS5FwZp8RUOw06BaRn8tQLzN4XLIxXejpHN9Qo8x8jjBmAAKp6FoS51AgkSA/A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1257,13 +1249,13 @@ } }, "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", - "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.7.tgz", + "integrity": "sha512-yjqtpstPfZ0h/y40fAXRv2snciYr0OAoMXY/0ClC7tm4C/nG5NJKmIItlaYlLbIVAWNfrYuy9dq1bE0SbX0PEg==", "dev": true, "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1273,13 +1265,13 @@ } }, "node_modules/@babel/plugin-transform-export-namespace-from": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", - "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.8.tgz", + "integrity": "sha512-sPtYrduWINTQTW7FtOy99VCTWp4H23UX7vYcut7S4CIMEXU+54zKX9uCoGkLsWXteyaMXzVHgzWbLfQ1w4GZgw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1305,13 +1297,13 @@ } }, "node_modules/@babel/plugin-transform-for-of": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", - "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.7.tgz", + "integrity": "sha512-n/TaiBGJxYFWvpJDfsxSj9lEEE44BFM1EPGz4KEiTipTgkoFVVcCmzAL3qA7fdQU96dpo4gGf5HBx/KnDvqiHw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1321,14 +1313,14 @@ } }, "node_modules/@babel/plugin-transform-function-name": { - "version": "7.25.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.1.tgz", - "integrity": "sha512-TVVJVdW9RKMNgJJlLtHsKDTydjZAbwIsn6ySBPQaEAUU5+gVvlJt/9nRmqVbsV/IBanRjzWoaAQKLoamWVOUuA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.7.tgz", + "integrity": "sha512-5MCTNcjCMxQ63Tdu9rxyN6cAWurqfrDZ76qvVPrGYdBxIj+EawuuxTu/+dgJlhK5eRz3v1gLwp6XwS8XaX2NiQ==", "dev": true, "dependencies": { - "@babel/helper-compilation-targets": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/traverse": "^7.25.1" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1338,13 +1330,13 @@ } }, "node_modules/@babel/plugin-transform-json-strings": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", - "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.8.tgz", + "integrity": "sha512-4OMNv7eHTmJ2YXs3tvxAfa/I43di+VcF+M4Wt66c88EAED1RoGaf1D64cL5FkRpNL+Vx9Hds84lksWvd/wMIdA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1354,12 +1346,12 @@ } }, "node_modules/@babel/plugin-transform-literals": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.2.tgz", - "integrity": "sha512-HQI+HcTbm9ur3Z2DkO+jgESMAMcYLuN/A7NRw9juzxAezN9AvqvUTnpKP/9kkYANz6u7dFlAyOu44ejuGySlfw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.7.tgz", + "integrity": "sha512-fwzkLrSu2fESR/cm4t6vqd7ebNIopz2QHGtjoU+dswQo/P6lwAG04Q98lliE3jkz/XqnbGFLnUcE0q0CVUf92w==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1369,13 +1361,13 @@ } }, "node_modules/@babel/plugin-transform-logical-assignment-operators": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", - "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.8.tgz", + "integrity": "sha512-f5W0AhSbbI+yY6VakT04jmxdxz+WsID0neG7+kQZbCOjuyJNdL5Nn4WIBm4hRpKnUcO9lP0eipUhFN12JpoH8g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1385,12 +1377,12 @@ } }, "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", - "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.7.tgz", + "integrity": "sha512-Std3kXwpXfRV0QtQy5JJcRpkqP8/wG4XL7hSKZmGlxPlDqmpXtEPRmhF7ztnlTCtUN3eXRUJp+sBEZjaIBVYaw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1400,13 +1392,13 @@ } }, "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", - "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.7.tgz", + "integrity": "sha512-CgselSGCGzjQvKzghCvDTxKHP3iooenLpJDO842ehn5D2G5fJB222ptnDwQho0WjEvg7zyoxb9P+wiYxiJX5yA==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1416,14 +1408,14 @@ } }, "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz", - "integrity": "sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.7.tgz", + "integrity": "sha512-L9Gcahi0kKFYXvweO6n0wc3ZG1ChpSFdgG+eV1WYZ3/dGbJK7vvk91FgGgak8YwRgrCuihF8tE/Xg07EkL5COg==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.8", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-simple-access": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-simple-access": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1433,15 +1425,15 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.0.tgz", - "integrity": "sha512-YPJfjQPDXxyQWg/0+jHKj1llnY5f/R6a0p/vP4lPymxLu7Lvl4k2WMitqi08yxwQcCVUUdG9LCUj4TNEgAp3Jw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.7.tgz", + "integrity": "sha512-t9jZIvBmOXJsiuyOwhrIGs8dVcD6jDyg2icw1VL4A/g+FnWyJKwUfSSU2nwJuMV2Zqui856El9u+ElB+j9fV1g==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.25.0", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", - "@babel/traverse": "^7.25.0" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", + "@babel/traverse": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1451,13 +1443,13 @@ } }, "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", - "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.7.tgz", + "integrity": "sha512-p88Jg6QqsaPh+EB7I9GJrIqi1Zt4ZBHUQtjw3z1bzEXcLh6GfPqzZJ6G+G1HBGKUNukT58MnKG7EN7zXQBCODw==", "dev": true, "dependencies": { - "@babel/helper-module-transforms": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-module-transforms": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1467,13 +1459,13 @@ } }, "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", - "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.7.tgz", + "integrity": "sha512-BtAT9LzCISKG3Dsdw5uso4oV1+v2NlVXIIomKJgQybotJY3OwCwJmkongjHgwGKoZXd0qG5UZ12JUlDQ07W6Ow==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1483,12 +1475,12 @@ } }, "node_modules/@babel/plugin-transform-new-target": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", - "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.7.tgz", + "integrity": "sha512-CfCS2jDsbcZaVYxRFo2qtavW8SpdzmBXC2LOI4oO0rP+JSRDxxF3inF4GcPsLgfb5FjkhXG5/yR/lxuRs2pySA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1498,13 +1490,13 @@ } }, "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", - "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.8.tgz", + "integrity": "sha512-Z7WJJWdQc8yCWgAmjI3hyC+5PXIubH9yRKzkl9ZEG647O9szl9zvmKLzpbItlijBnVhTUf1cpyWBsZ3+2wjWPQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1514,13 +1506,13 @@ } }, "node_modules/@babel/plugin-transform-numeric-separator": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", - "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.8.tgz", + "integrity": "sha512-rm9a5iEFPS4iMIy+/A/PiS0QN0UyjPIeVvbU5EMZFKJZHt8vQnasbpo3T3EFcxzCeYO0BHfc4RqooCZc51J86Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1530,15 +1522,15 @@ } }, "node_modules/@babel/plugin-transform-object-rest-spread": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", - "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.8.tgz", + "integrity": "sha512-LkUu0O2hnUKHKE7/zYOIjByMa4VRaV2CD/cdGz0AxU9we+VA3kDDggKEzI0Oz1IroG+6gUP6UmWEHBMWZU316g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.24.7" + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-transform-parameters": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1548,13 +1540,13 @@ } }, "node_modules/@babel/plugin-transform-object-super": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", - "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.7.tgz", + "integrity": "sha512-pWT6UXCEW3u1t2tcAGtE15ornCBvopHj9Bps9D2DsH15APgNVOTwwczGckX+WkAvBmuoYKRCFa4DK+jM8vh5AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-replace-supers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-replace-supers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1564,13 +1556,13 @@ } }, "node_modules/@babel/plugin-transform-optional-catch-binding": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", - "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.8.tgz", + "integrity": "sha512-EbQYweoMAHOn7iJ9GgZo14ghhb9tTjgOc88xFgYngifx7Z9u580cENCV159M4xDh3q/irbhSjZVpuhpC2gKBbg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1580,14 +1572,14 @@ } }, "node_modules/@babel/plugin-transform-optional-chaining": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.8.tgz", - "integrity": "sha512-5cTOLSMs9eypEy8JUVvIKOu6NgvbJMnpG62VpIHrTmROdQ+L5mDAaI40g25k5vXti55JWNX5jCkq3HZxXBQANw==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.8.tgz", + "integrity": "sha512-q05Bk7gXOxpTHoQ8RSzGSh/LHVB9JEIkKnk3myAWwZHnYiTGYtbdrYkIsS8Xyh4ltKf7GNUSgzs/6P2bJtBAQg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1597,12 +1589,12 @@ } }, "node_modules/@babel/plugin-transform-parameters": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", - "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.7.tgz", + "integrity": "sha512-FYiTvku63me9+1Nz7TOx4YMtW3tWXzfANZtrzHhUZrz4d47EEtMQhzFoZWESfXuAMMT5mwzD4+y1N8ONAX6lMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1612,13 +1604,13 @@ } }, "node_modules/@babel/plugin-transform-private-methods": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.4.tgz", - "integrity": "sha512-ao8BG7E2b/URaUQGqN3Tlsg+M3KlHY6rJ1O1gXAEUnZoyNQnvKyH87Kfg+FoxSeyWUB8ISZZsC91C44ZuBFytw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.7.tgz", + "integrity": "sha512-KY0hh2FluNxMLwOCHbxVOKfdB5sjWG4M183885FmaqWWiGMhRZq4DQRKH6mHdEucbJnyDyYiZNwNG424RymJjA==", "dev": true, "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.25.4", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1628,15 +1620,15 @@ } }, "node_modules/@babel/plugin-transform-private-property-in-object": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", - "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.8.tgz", + "integrity": "sha512-8Uh966svuB4V8RHHg0QJOB32QK287NBksJOByoKmHMp1TAobNniNalIkI2i5IPj5+S9NYCG4VIjbEuiSN8r+ow==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-create-class-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-create-class-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1646,12 +1638,12 @@ } }, "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", - "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.7.tgz", + "integrity": "sha512-lQEeetGKfFi0wHbt8ClQrUSUMfEeI3MMm74Z73T9/kuz990yYVtfofjf3NuA42Jy3auFOpbjDyCSiIkTs1VIYw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1676,12 +1668,12 @@ } }, "node_modules/@babel/plugin-transform-react-display-name": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", - "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.25.7.tgz", + "integrity": "sha512-r0QY7NVU8OnrwE+w2IWiRom0wwsTbjx4+xH2RTd7AVdof3uurXOF+/mXHQDRk+2jIvWgSaCHKMgggfvM4dyUGA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1691,16 +1683,16 @@ } }, "node_modules/@babel/plugin-transform-react-jsx": { - "version": "7.25.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.2.tgz", - "integrity": "sha512-KQsqEAVBpU82NM/B/N9j9WOdphom1SZH3R+2V7INrQUH+V9EBFwZsEJl8eBIVeQE62FxJCc70jzEZwqU7RcVqA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.25.7.tgz", + "integrity": "sha512-vILAg5nwGlR9EXE8JIOX4NHXd49lrYbN8hnjffDtoULwpL9hUx/N55nqh2qd0q6FyNDfjl9V79ecKGvFbcSA0Q==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-module-imports": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/plugin-syntax-jsx": "^7.24.7", - "@babel/types": "^7.25.2" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-module-imports": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/plugin-syntax-jsx": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1710,12 +1702,12 @@ } }, "node_modules/@babel/plugin-transform-react-jsx-development": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", - "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.25.7.tgz", + "integrity": "sha512-5yd3lH1PWxzW6IZj+p+Y4OLQzz0/LzlOG8vGqonHfVR3euf1vyzyMUJk9Ac+m97BH46mFc/98t9PmYLyvgL3qg==", "dev": true, "dependencies": { - "@babel/plugin-transform-react-jsx": "^7.24.7" + "@babel/plugin-transform-react-jsx": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1725,13 +1717,13 @@ } }, "node_modules/@babel/plugin-transform-react-pure-annotations": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", - "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.25.7.tgz", + "integrity": "sha512-6YTHJ7yjjgYqGc8S+CbEXhLICODk0Tn92j+vNJo07HFk9t3bjFgAKxPLFhHwF2NjmQVSI1zBRfBWUeVBa2osfA==", "dev": true, "dependencies": { - "@babel/helper-annotate-as-pure": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-annotate-as-pure": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1741,12 +1733,12 @@ } }, "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", - "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.7.tgz", + "integrity": "sha512-mgDoQCRjrY3XK95UuV60tZlFCQGXEtMg8H+IsW72ldw1ih1jZhzYXbJvghmAEpg5UVhhnCeia1CkGttUvCkiMQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-plugin-utils": "^7.25.7", "regenerator-transform": "^0.15.2" }, "engines": { @@ -1757,12 +1749,12 @@ } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", - "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.7.tgz", + "integrity": "sha512-3OfyfRRqiGeOvIWSagcwUTVk2hXBsr/ww7bLn6TRTuXnexA+Udov2icFOxFX9abaj4l96ooYkcNN1qi2Zvqwng==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1792,12 +1784,12 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", - "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.7.tgz", + "integrity": "sha512-uBbxNwimHi5Bv3hUccmOFlUy3ATO6WagTApenHz9KzoIdn0XeACdB12ZJ4cjhuB2WSi80Ez2FWzJnarccriJeA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1807,13 +1799,13 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", - "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.7.tgz", + "integrity": "sha512-Mm6aeymI0PBh44xNIv/qvo8nmbkpZze1KvR8MkEqbIREDxoiWTi18Zr2jryfRMwDfVZF9foKh060fWgni44luw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1823,12 +1815,12 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", - "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.7.tgz", + "integrity": "sha512-ZFAeNkpGuLnAQ/NCsXJ6xik7Id+tHuS+NT+ue/2+rn/31zcdnupCdmunOizEaP0JsUmTFSTOPoQY7PkK2pttXw==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1838,12 +1830,12 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", - "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.7.tgz", + "integrity": "sha512-SI274k0nUsFFmyQupiO7+wKATAmMFf8iFgq2O+vVFXZ0SV9lNfT1NGzBEhjquFmD8I9sqHLguH+gZVN3vww2AA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1853,12 +1845,12 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.8.tgz", - "integrity": "sha512-adNTUpDCVnmAE58VEqKlAA6ZBlNkMnWD0ZcW76lyNFN3MJniyGFZfNwERVk8Ap56MCnXztmDr19T4mPTztcuaw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.7.tgz", + "integrity": "sha512-OmWmQtTHnO8RSUbL0NTdtpbZHeNTnm68Gj5pA4Y2blFNh+V4iZR68V1qL9cI37J21ZN7AaCnkfdHtLExQPf2uA==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1887,12 +1879,12 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", - "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.7.tgz", + "integrity": "sha512-BN87D7KpbdiABA+t3HbVqHzKWUDN3dymLaTnPFAMyc8lV+KN3+YzNhVRNdinaCPA4AUqx7ubXbQ9shRjYBl3SQ==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1902,13 +1894,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-property-regex": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", - "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.7.tgz", + "integrity": "sha512-IWfR89zcEPQGB/iB408uGtSPlQd3Jpq11Im86vUgcmSTcoWAiQMCTOa2K2yNNqFJEBVICKhayctee65Ka8OB0w==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1918,13 +1910,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", - "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.7.tgz", + "integrity": "sha512-8JKfg/hiuA3qXnlLx8qtv5HWRbgyFx2hMMtpDDuU2rTckpKkGu4ycK5yYHwuEa16/quXfoxHBIApEsNyMWnt0g==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.24.7", - "@babel/helper-plugin-utils": "^7.24.7" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1934,13 +1926,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-sets-regex": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.4.tgz", - "integrity": "sha512-qesBxiWkgN1Q+31xUE9RcMk79eOXXDCv6tfyGMRSs4RGlioSg2WVyQAm07k726cSE56pa+Kb0y9epX2qaXzTvA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.7.tgz", + "integrity": "sha512-YRW8o9vzImwmh4Q3Rffd09bH5/hvY0pxg+1H1i0f7APoUeg12G7+HhLj9ZFNIrYkgBXhIijPJ+IXypN0hLTIbw==", "dev": true, "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8" + "@babel/helper-create-regexp-features-plugin": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -1950,93 +1942,79 @@ } }, "node_modules/@babel/preset-env": { - "version": "7.25.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/preset-env/-/preset-env-7.25.4.tgz", - "integrity": "sha512-W9Gyo+KmcxjGahtt3t9fb14vFRWvPpu5pT6GBlovAK6BTBcxgjfVMSQCfJl4oi35ODrxP6xx2Wr8LNST57Mraw==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.25.4", - "@babel/helper-compilation-targets": "^7.25.2", - "@babel/helper-plugin-utils": "^7.24.8", - "@babel/helper-validator-option": "^7.24.8", - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.3", - "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.0", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.0", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.0", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/preset-env/-/preset-env-7.25.8.tgz", + "integrity": "sha512-58T2yulDHMN8YMUxiLq5YmWUnlDCyY1FsHM+v12VMx+1/FlrUj5tY50iDCpofFQEM8fMYOaY9YRvym2jcjn1Dg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.25.8", + "@babel/helper-compilation-targets": "^7.25.7", + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.7", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.7", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.24.7", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-import-assertions": "^7.25.7", + "@babel/plugin-syntax-import-attributes": "^7.25.7", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.24.7", - "@babel/plugin-transform-async-generator-functions": "^7.25.4", - "@babel/plugin-transform-async-to-generator": "^7.24.7", - "@babel/plugin-transform-block-scoped-functions": "^7.24.7", - "@babel/plugin-transform-block-scoping": "^7.25.0", - "@babel/plugin-transform-class-properties": "^7.25.4", - "@babel/plugin-transform-class-static-block": "^7.24.7", - "@babel/plugin-transform-classes": "^7.25.4", - "@babel/plugin-transform-computed-properties": "^7.24.7", - "@babel/plugin-transform-destructuring": "^7.24.8", - "@babel/plugin-transform-dotall-regex": "^7.24.7", - "@babel/plugin-transform-duplicate-keys": "^7.24.7", - "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.0", - "@babel/plugin-transform-dynamic-import": "^7.24.7", - "@babel/plugin-transform-exponentiation-operator": "^7.24.7", - "@babel/plugin-transform-export-namespace-from": "^7.24.7", - "@babel/plugin-transform-for-of": "^7.24.7", - "@babel/plugin-transform-function-name": "^7.25.1", - "@babel/plugin-transform-json-strings": "^7.24.7", - "@babel/plugin-transform-literals": "^7.25.2", - "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", - "@babel/plugin-transform-member-expression-literals": "^7.24.7", - "@babel/plugin-transform-modules-amd": "^7.24.7", - "@babel/plugin-transform-modules-commonjs": "^7.24.8", - "@babel/plugin-transform-modules-systemjs": "^7.25.0", - "@babel/plugin-transform-modules-umd": "^7.24.7", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", - "@babel/plugin-transform-new-target": "^7.24.7", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", - "@babel/plugin-transform-numeric-separator": "^7.24.7", - "@babel/plugin-transform-object-rest-spread": "^7.24.7", - "@babel/plugin-transform-object-super": "^7.24.7", - "@babel/plugin-transform-optional-catch-binding": "^7.24.7", - "@babel/plugin-transform-optional-chaining": "^7.24.8", - "@babel/plugin-transform-parameters": "^7.24.7", - "@babel/plugin-transform-private-methods": "^7.25.4", - "@babel/plugin-transform-private-property-in-object": "^7.24.7", - "@babel/plugin-transform-property-literals": "^7.24.7", - "@babel/plugin-transform-regenerator": "^7.24.7", - "@babel/plugin-transform-reserved-words": "^7.24.7", - "@babel/plugin-transform-shorthand-properties": "^7.24.7", - "@babel/plugin-transform-spread": "^7.24.7", - "@babel/plugin-transform-sticky-regex": "^7.24.7", - "@babel/plugin-transform-template-literals": "^7.24.7", - "@babel/plugin-transform-typeof-symbol": "^7.24.8", - "@babel/plugin-transform-unicode-escapes": "^7.24.7", - "@babel/plugin-transform-unicode-property-regex": "^7.24.7", - "@babel/plugin-transform-unicode-regex": "^7.24.7", - "@babel/plugin-transform-unicode-sets-regex": "^7.25.4", + "@babel/plugin-transform-arrow-functions": "^7.25.7", + "@babel/plugin-transform-async-generator-functions": "^7.25.8", + "@babel/plugin-transform-async-to-generator": "^7.25.7", + "@babel/plugin-transform-block-scoped-functions": "^7.25.7", + "@babel/plugin-transform-block-scoping": "^7.25.7", + "@babel/plugin-transform-class-properties": "^7.25.7", + "@babel/plugin-transform-class-static-block": "^7.25.8", + "@babel/plugin-transform-classes": "^7.25.7", + "@babel/plugin-transform-computed-properties": "^7.25.7", + "@babel/plugin-transform-destructuring": "^7.25.7", + "@babel/plugin-transform-dotall-regex": "^7.25.7", + "@babel/plugin-transform-duplicate-keys": "^7.25.7", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-dynamic-import": "^7.25.8", + "@babel/plugin-transform-exponentiation-operator": "^7.25.7", + "@babel/plugin-transform-export-namespace-from": "^7.25.8", + "@babel/plugin-transform-for-of": "^7.25.7", + "@babel/plugin-transform-function-name": "^7.25.7", + "@babel/plugin-transform-json-strings": "^7.25.8", + "@babel/plugin-transform-literals": "^7.25.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.8", + "@babel/plugin-transform-member-expression-literals": "^7.25.7", + "@babel/plugin-transform-modules-amd": "^7.25.7", + "@babel/plugin-transform-modules-commonjs": "^7.25.7", + "@babel/plugin-transform-modules-systemjs": "^7.25.7", + "@babel/plugin-transform-modules-umd": "^7.25.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.7", + "@babel/plugin-transform-new-target": "^7.25.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.8", + "@babel/plugin-transform-numeric-separator": "^7.25.8", + "@babel/plugin-transform-object-rest-spread": "^7.25.8", + "@babel/plugin-transform-object-super": "^7.25.7", + "@babel/plugin-transform-optional-catch-binding": "^7.25.8", + "@babel/plugin-transform-optional-chaining": "^7.25.8", + "@babel/plugin-transform-parameters": "^7.25.7", + "@babel/plugin-transform-private-methods": "^7.25.7", + "@babel/plugin-transform-private-property-in-object": "^7.25.8", + "@babel/plugin-transform-property-literals": "^7.25.7", + "@babel/plugin-transform-regenerator": "^7.25.7", + "@babel/plugin-transform-reserved-words": "^7.25.7", + "@babel/plugin-transform-shorthand-properties": "^7.25.7", + "@babel/plugin-transform-spread": "^7.25.7", + "@babel/plugin-transform-sticky-regex": "^7.25.7", + "@babel/plugin-transform-template-literals": "^7.25.7", + "@babel/plugin-transform-typeof-symbol": "^7.25.7", + "@babel/plugin-transform-unicode-escapes": "^7.25.7", + "@babel/plugin-transform-unicode-property-regex": "^7.25.7", + "@babel/plugin-transform-unicode-regex": "^7.25.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.7", "@babel/preset-modules": "0.1.6-no-external-plugins", "babel-plugin-polyfill-corejs2": "^0.4.10", "babel-plugin-polyfill-corejs3": "^0.10.6", "babel-plugin-polyfill-regenerator": "^0.6.1", - "core-js-compat": "^3.37.1", + "core-js-compat": "^3.38.1", "semver": "^6.3.1" }, "engines": { @@ -2051,6 +2029,7 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -2073,17 +2052,17 @@ } }, "node_modules/@babel/preset-react": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/preset-react/-/preset-react-7.24.7.tgz", - "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/preset-react/-/preset-react-7.25.7.tgz", + "integrity": "sha512-GjV0/mUEEXpi1U5ZgDprMRRgajGMRW3G5FjMr5KLKD8nT2fTG8+h/klV3+6Dm5739QE+K5+2e91qFKAYI3pmRg==", "dev": true, "dependencies": { - "@babel/helper-plugin-utils": "^7.24.7", - "@babel/helper-validator-option": "^7.24.7", - "@babel/plugin-transform-react-display-name": "^7.24.7", - "@babel/plugin-transform-react-jsx": "^7.24.7", - "@babel/plugin-transform-react-jsx-development": "^7.24.7", - "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + "@babel/helper-plugin-utils": "^7.25.7", + "@babel/helper-validator-option": "^7.25.7", + "@babel/plugin-transform-react-display-name": "^7.25.7", + "@babel/plugin-transform-react-jsx": "^7.25.7", + "@babel/plugin-transform-react-jsx-development": "^7.25.7", + "@babel/plugin-transform-react-pure-annotations": "^7.25.7" }, "engines": { "node": ">=6.9.0" @@ -2111,12 +2090,6 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/regjsgen": { - "version": "0.8.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", - "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", - "dev": true - }, "node_modules/@babel/runtime": { "version": "7.25.6", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/runtime/-/runtime-7.25.6.tgz", @@ -2141,28 +2114,28 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", - "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", + "dependencies": { + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -2170,13 +2143,22 @@ "node": ">=6.9.0" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.25.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/types/-/types-7.25.8.tgz", + "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -2190,9 +2172,9 @@ "dev": true }, "node_modules/@braintree/sanitize-url": { - "version": "6.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@braintree/sanitize-url/-/sanitize-url-6.0.4.tgz", - "integrity": "sha512-s3jaWicZd0pkP0jf5ysyHUI/RE7MHos6qlToFcGWXVp+ykHOy77OUMrfbgJ9it2C5bow7OIQwYYaHjk9XlBQ2A==" + "version": "7.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@braintree/sanitize-url/-/sanitize-url-7.1.0.tgz", + "integrity": "sha512-o+UlMLt49RvtCASlOMW0AkHnabN9wR9rwCCherxO0yG4Npy34GkvrAqdXQvrhNs+jh+gkK8gB8Lf05qL/O7KWg==" }, "node_modules/@cfaester/enzyme-adapter-react-18": { "version": "0.8.0", @@ -2531,9 +2513,9 @@ } }, "node_modules/@cypress/request": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@cypress/request/-/request-3.0.1.tgz", - "integrity": "sha512-TWivJlJi8ZDx2wGOw1dbLuHJKUYX7bWySw377nlnGOW3hP9/MUKIsEdXT/YngWxVdgNCHRBmFlBipE+5/2ZZlQ==", + "version": "3.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@cypress/request/-/request-3.0.5.tgz", + "integrity": "sha512-v+XHd9XmWbufxF1/bTaVm2yhbxY+TB4YtWRqF2zaXBlDNMkls34KiATz0AVDLavL3iB6bQk9/7n3oY1EoLSWGA==", "dev": true, "dependencies": { "aws-sign2": "~0.7.0", @@ -2542,14 +2524,14 @@ "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "http-signature": "~1.3.6", + "form-data": "~4.0.0", + "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", - "qs": "6.10.4", + "qs": "6.13.0", "safe-buffer": "^5.1.2", "tough-cookie": "^4.1.3", "tunnel-agent": "^0.6.0", @@ -2559,21 +2541,6 @@ "node": ">= 6" } }, - "node_modules/@cypress/request/node_modules/qs": { - "version": "6.10.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.10.4.tgz", - "integrity": "sha512-OQiU+C+Ds5qiH91qh/mg0w+8nwQuLjM4F4M/PbmhDOoYehPh+Fb0bDjtR1sOvy7YKxvj28Y/M0PhP5uVX0kB+g==", - "dev": true, - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/@cypress/request/node_modules/uuid": { "version": "8.3.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-8.3.2.tgz", @@ -2648,9 +2615,9 @@ "integrity": "sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==" }, "node_modules/@emotion/is-prop-valid": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@emotion/is-prop-valid/-/is-prop-valid-1.3.0.tgz", - "integrity": "sha512-SHetuSLvJDzuNbOdtPVbq6yMMMlLoW5Q94uDqJZqy50gcmAjxFkVqmzqSGEFq9gT2iMuIeKV1PXVWmvUhuZLlQ==", + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz", + "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==", "dependencies": { "@emotion/memoize": "^0.9.0" } @@ -2778,31 +2745,71 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, + "node_modules/@eslint/compat": { + "version": "1.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/compat/-/compat-1.2.0.tgz", + "integrity": "sha512-CkPWddN7J9JPrQedEr2X7AjK9y1jaMJtxZ4A/+jTMFA2+n5BWhcKHW/EbJyARqg2zzQfgtWUtVmG3hrG6+nGpg==", "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "peerDependencies": { + "eslint": "^9.10.0" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/@eslint/eslintrc/node_modules/ajv": { "version": "6.12.6", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2814,46 +2821,94 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, + "version": "14.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/@eslint/js": { + "version": "9.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", "dev": true, "engines": { - "node": ">=10" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/migrate-config": { + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/migrate-config/-/migrate-config-1.3.1.tgz", + "integrity": "sha512-wIYN/FCpjhYrGv6e/7F2wMuTzSrXshjIdkYqzTHSfNqgwJvRYiikJqilkrRcMDeSd9RGUskdtrJIX4WaBdBi0g==", + "dependencies": { + "@eslint/compat": "^1.2.0", + "@eslint/eslintrc": "^3.1.0", + "camelcase": "^8.0.0", + "recast": "^0.23.7" + }, + "bin": { + "eslint-migrate-config": "src/migrate-config-cli.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/migrate-config/node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "engines": { + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", + "dev": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@floating-ui/core": { @@ -2967,19 +3022,26 @@ "react-dom": "^16 || ^17 || ^18" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -2991,12 +3053,18 @@ "node": ">=12.22" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "deprecated": "Use @eslint/object-schema instead", - "dev": true + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", @@ -3015,15 +3083,6 @@ "node": ">=12" } }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/@isaacs/cliui/node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-6.2.1.tgz", @@ -4306,106 +4365,403 @@ "node": ">= 8" } }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", - "dev": true, - "optional": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin": { - "version": "0.5.15", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", - "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", - "dev": true, + "node_modules/@parcel/watcher": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher/-/watcher-2.4.1.tgz", + "integrity": "sha512-HNjmfLQEVRZmHRET336f20H/8kOozUGwk7yajvsonjNxbj2wBTK1WsQuHkD5yYh9RxFGL2EyDHryOihOwUoKDA==", + "license": "MIT", "dependencies": { - "ansi-html": "^0.0.9", - "core-js-pure": "^3.23.3", - "error-stack-parser": "^2.0.6", - "html-entities": "^2.1.0", - "loader-utils": "^2.0.4", - "schema-utils": "^4.2.0", - "source-map": "^0.7.3" + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" }, "engines": { - "node": ">= 10.13" + "node": ">= 10.0.0" }, - "peerDependencies": { - "@types/webpack": "4.x || 5.x", - "react-refresh": ">=0.10.0 <1.0.0", - "sockjs-client": "^1.4.0", - "type-fest": ">=0.17.0 <5.0.0", - "webpack": ">=4.43.0 <6.0.0", - "webpack-dev-server": "3.x || 4.x || 5.x", - "webpack-hot-middleware": "2.x", - "webpack-plugin-serve": "0.x || 1.x" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" }, - "peerDependenciesMeta": { - "@types/webpack": { - "optional": true - }, - "sockjs-client": { - "optional": true - }, - "type-fest": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - }, - "webpack-hot-middleware": { - "optional": true - }, - "webpack-plugin-serve": { - "optional": true - } + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.4.1", + "@parcel/watcher-darwin-arm64": "2.4.1", + "@parcel/watcher-darwin-x64": "2.4.1", + "@parcel/watcher-freebsd-x64": "2.4.1", + "@parcel/watcher-linux-arm-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-glibc": "2.4.1", + "@parcel/watcher-linux-arm64-musl": "2.4.1", + "@parcel/watcher-linux-x64-glibc": "2.4.1", + "@parcel/watcher-linux-x64-musl": "2.4.1", + "@parcel/watcher-win32-arm64": "2.4.1", + "@parcel/watcher-win32-ia32": "2.4.1", + "@parcel/watcher-win32-x64": "2.4.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.4.1.tgz", + "integrity": "sha512-LOi/WTbbh3aTn2RYddrO8pnapixAziFl6SMxHM69r3tvdSm94JtCenaKgk1GRg5FJ5wpMCpHeW+7yqPlvZv7kg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.4.1.tgz", + "integrity": "sha512-ln41eihm5YXIY043vBrrHfn94SIBlqOWmoROhsMVTSXGh0QahKGy77tfEywQ7v3NywyxBBkGIfrWRHm0hsKtzA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">= 8" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" - }, - "node_modules/@radix-ui/primitive": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@radix-ui/primitive/-/primitive-1.1.0.tgz", - "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" - }, - "node_modules/@radix-ui/react-arrow": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", - "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.4.1.tgz", + "integrity": "sha512-yrw81BRLjjtHyDu7J61oPuSoeYWR3lDElcPGJyOvIXmor6DEo7/G2u1o7I38cwlcoBHQFULqF6nesIX3tsEXMg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" }, - "peerDependencies": { - "@types/react": "*", - "@types/react-dom": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", - "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.4.1.tgz", + "integrity": "sha512-TJa3Pex/gX3CWIx/Co8k+ykNdDCLx+TuZj3f3h7eOjgpdKM+Mnix37RYsYU4LHhiYJz3DK5nFCCra81p6g050w==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - }, - "@types/react-dom": { - "optional": true - } + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" } }, - "node_modules/@radix-ui/react-collection": { + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.4.1.tgz", + "integrity": "sha512-4rVYDlsMEYfa537BRXxJ5UF4ddNwnr2/1O4MHM5PjI9cvV2qymvhwZSFgXqbS8YoTk5i/JR0L0JDs69BUn45YA==", + "cpu": [ + "arm" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.4.1.tgz", + "integrity": "sha512-BJ7mH985OADVLpbrzCLgrJ3TOpiZggE9FMblfO65PlOCdG++xJpKUJ0Aol74ZUIYfb8WsRlUdgrZxKkz3zXWYA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.4.1.tgz", + "integrity": "sha512-p4Xb7JGq3MLgAfYhslU2SjoV9G0kI0Xry0kuxeG/41UfpjHGOhv7UoUDAz/jb1u2elbhazy4rRBL8PegPJFBhA==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.4.1.tgz", + "integrity": "sha512-s9O3fByZ/2pyYDPoLM6zt92yu6P4E39a03zvO0qCHOTjxmt3GHRMLuRZEWhWLASTMSrrnVNWdVI/+pUElJBBBg==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.4.1.tgz", + "integrity": "sha512-L2nZTYR1myLNST0O632g0Dx9LyMNHrn6TOt76sYxWLdff3cB22/GZX2UPtJnaqQPdCRoszoY5rcOj4oMTtp5fQ==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.4.1.tgz", + "integrity": "sha512-Uq2BPp5GWhrq/lcuItCHoqxjULU1QYEcyjSO5jqqOK8RNFDBQnenMMx4gAl3v8GiWa59E9+uDM7yZ6LxwUIfRg==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.4.1.tgz", + "integrity": "sha512-maNRit5QQV2kgHFSYwftmPBxiuK5u4DXjbXx7q6eKjq5dsLXZ4FJiVvlcw35QXzk0KrUecJmuVFbj4uV9oYrcw==", + "cpu": [ + "ia32" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.4.1.tgz", + "integrity": "sha512-+DvS92F9ezicfswqrvIRM2njcYJbd5mb9CUgtrHCHmvn7pPPa+nMDRu1o1bYYz/l5IB2NVGNJWiH7h1E58IF2A==", + "cpu": [ + "x64" + ], + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher/node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin": { + "version": "0.5.15", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.5.15.tgz", + "integrity": "sha512-LFWllMA55pzB9D34w/wXUCf8+c+IYKuJDgxiZ3qMhl64KRMBHYM1I3VdGaD2BV5FNPV2/S2596bppxHbv2ZydQ==", + "dev": true, + "dependencies": { + "ansi-html": "^0.0.9", + "core-js-pure": "^3.23.3", + "error-stack-parser": "^2.0.6", + "html-entities": "^2.1.0", + "loader-utils": "^2.0.4", + "schema-utils": "^4.2.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">= 10.13" + }, + "peerDependencies": { + "@types/webpack": "4.x || 5.x", + "react-refresh": ">=0.10.0 <1.0.0", + "sockjs-client": "^1.4.0", + "type-fest": ">=0.17.0 <5.0.0", + "webpack": ">=4.43.0 <6.0.0", + "webpack-dev-server": "3.x || 4.x || 5.x", + "webpack-hot-middleware": "2.x", + "webpack-plugin-serve": "0.x || 1.x" + }, + "peerDependenciesMeta": { + "@types/webpack": { + "optional": true + }, + "sockjs-client": { + "optional": true + }, + "type-fest": { + "optional": true + }, + "webpack-dev-server": { + "optional": true + }, + "webpack-hot-middleware": { + "optional": true + }, + "webpack-plugin-serve": { + "optional": true + } + } + }, + "node_modules/@pmmmwh/react-refresh-webpack-plugin/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==" + }, + "node_modules/@radix-ui/primitive": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@radix-ui/primitive/-/primitive-1.1.0.tgz", + "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==" + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", + "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "dependencies": { + "@radix-ui/react-primitive": "2.0.0" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc", + "react-dom": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { "version": "1.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", @@ -5776,22 +6132,22 @@ } }, "node_modules/@testing-library/dom": { - "version": "8.20.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@testing-library/dom/-/dom-8.20.1.tgz", - "integrity": "sha512-/DiOQ5xBxgdYRC8LNk7U+RWat0S3qRLeIw3ZIkMQ9kkVlRmwD/Eg8k8CqIpD6GW7u20JIUOfMKbxtiLutpjQ4g==", + "version": "10.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@testing-library/dom/-/dom-10.4.0.tgz", + "integrity": "sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==", "dev": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^5.0.1", - "aria-query": "5.1.3", + "aria-query": "5.3.0", "chalk": "^4.1.0", "dom-accessibility-api": "^0.5.9", "lz-string": "^1.5.0", "pretty-format": "^27.0.2" }, "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@testing-library/dom/node_modules/ansi-styles": { @@ -5806,6 +6162,15 @@ "node": ">=8" } }, + "node_modules/@testing-library/dom/node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, "node_modules/@testing-library/dom/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", @@ -5979,15 +6344,13 @@ } }, "node_modules/@testing-library/user-event": { - "version": "13.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@testing-library/user-event/-/user-event-13.5.0.tgz", - "integrity": "sha512-5Kwtbo3Y/NowpkbRuSepbyMFkZmHgD+vPzYB/RJ4oxt5Gj/avFFBYjhw27cqSVPVw/3a67NK1PbiIr9k4Gwmdg==", + "version": "14.5.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@testing-library/user-event/-/user-event-14.5.2.tgz", + "integrity": "sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ==", "dev": true, - "dependencies": { - "@babel/runtime": "^7.12.5" - }, + "license": "MIT", "engines": { - "node": ">=10", + "node": ">=12", "npm": ">=6" }, "peerDependencies": { @@ -6143,9 +6506,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/express": { "version": "4.17.21", @@ -6230,9 +6593,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "version": "29.5.13", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/jest/-/jest-29.5.13.tgz", + "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", "dependencies": { "expect": "^29.0.0", "pretty-format": "^29.0.0" @@ -6244,6 +6607,9 @@ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/@types/jest/node_modules/pretty-format": { @@ -6341,9 +6707,9 @@ "dev": true }, "node_modules/@types/react": { - "version": "18.3.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/react/-/react-18.3.5.tgz", - "integrity": "sha512-WeqMfGJLGuLCqHGYRGHxnKrXcTitc6L/nBUWfWPcTarG3t9PsquqUMuVeXZeca+mglY4Vo5GZjCi0A3Or2lnxA==", + "version": "18.3.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/react/-/react-18.3.11.tgz", + "integrity": "sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==", "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -6529,15 +6895,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/@typescript-eslint/experimental-utils": { "version": "5.62.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/experimental-utils/-/experimental-utils-5.62.0.tgz", @@ -6901,10 +7258,9 @@ } }, "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, + "version": "8.12.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "bin": { "acorn": "bin/acorn" }, @@ -6922,6 +7278,18 @@ "acorn-walk": "^7.1.1" } }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/acorn-import-attributes": { "version": "1.9.5", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", @@ -6935,7 +7303,6 @@ "version": "5.3.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -6971,18 +7338,6 @@ "node": ">=8.9" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/agentkeepalive": { "version": "4.5.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", @@ -7008,15 +7363,15 @@ } }, "node_modules/ajv": { - "version": "7.2.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-7.2.4.tgz", - "integrity": "sha512-nBeQgg/ZZA3u3SYxyaDvpvDtgZ/EZPF547ARgZBrG9Bhu1vKDwAIjtIf+sDtJUKa2zOcEbmRLBRSyMraS/Oy1A==", + "version": "8.17.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-8.17.1.tgz", + "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "dependencies": { - "fast-deep-equal": "^3.1.1", + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" + "require-from-string": "^2.0.2" }, "funding": { "type": "github", @@ -7040,22 +7395,6 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/ajv-keywords": { "version": "5.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", @@ -7114,12 +7453,15 @@ } }, "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-styles": { @@ -7449,6 +7791,17 @@ "node": ">=0.10.0" } }, + "node_modules/ast-types": { + "version": "0.16.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ast-types/-/ast-types-0.16.1.tgz", + "integrity": "sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==", + "dependencies": { + "tslib": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/ast-types-flow": { "version": "0.0.8", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", @@ -7586,31 +7939,18 @@ "proxy-from-env": "^1.1.0" } }, - "node_modules/axios/node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/axios/node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" }, "node_modules/axobject-query": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/axobject-query/-/axobject-query-3.1.1.tgz", - "integrity": "sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==", + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, - "dependencies": { - "deep-equal": "^2.0.5" + "engines": { + "node": ">= 0.4" } }, "node_modules/babel-jest": { @@ -8045,6 +8385,7 @@ "version": "2.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, "engines": { "node": ">=8" } @@ -8093,9 +8434,9 @@ "dev": true }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dev": true, "dependencies": { "bytes": "3.1.2", @@ -8106,7 +8447,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -8174,9 +8515,9 @@ "dev": true }, "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "version": "4.24.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/browserslist/-/browserslist-4.24.0.tgz", + "integrity": "sha512-Rmb62sR1Zpjql25eSanFGEhAxcFwfA1K0GuQcLoaJBAcENegrQut3hYdhXFF1obQfiDyqIW/cLM5HSJ/9k884A==", "funding": [ { "type": "opencollective", @@ -8192,8 +8533,8 @@ } ], "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", + "caniuse-lite": "^1.0.30001663", + "electron-to-chromium": "^1.5.28", "node-releases": "^2.0.18", "update-browserslist-db": "^1.1.0" }, @@ -8409,9 +8750,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "version": "1.0.30001669", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caniuse-lite/-/caniuse-lite-1.0.30001669.tgz", + "integrity": "sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==", "funding": [ { "type": "opencollective", @@ -8425,7 +8766,8 @@ "type": "github", "url": "https://github.com/sponsors/ai" } - ] + ], + "license": "CC-BY-4.0" }, "node_modules/capture-exit": { "version": "2.0.0", @@ -8557,6 +8899,7 @@ "version": "3.6.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -8729,78 +9072,17 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" }, "node_modules/cliui": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "dependencies": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/cliui/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "5.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "8.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/clsx": { @@ -9028,58 +9310,115 @@ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" }, "node_modules/concurrently": { - "version": "5.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concurrently/-/concurrently-5.3.0.tgz", - "integrity": "sha512-8MhqOB6PWlBfA2vJ8a0bSFKATOdWlHiQlk11IfmQBPaHVP8oP2gsh2MObE6UR3hqDHqvaIvLTyceNW6obVuFHQ==", + "version": "9.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concurrently/-/concurrently-9.0.1.tgz", + "integrity": "sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==", "dev": true, "dependencies": { - "chalk": "^2.4.2", - "date-fns": "^2.0.1", - "lodash": "^4.17.15", - "read-pkg": "^4.0.1", - "rxjs": "^6.5.2", - "spawn-command": "^0.0.2-1", - "supports-color": "^6.1.0", + "chalk": "^4.1.2", + "lodash": "^4.17.21", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "supports-color": "^8.1.1", "tree-kill": "^1.2.2", - "yargs": "^13.3.0" + "yargs": "^17.7.2" }, "bin": { - "concurrently": "bin/concurrently.js" + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": ">=6.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" + } + }, + "node_modules/concurrently/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/concurrently/node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "node_modules/concurrently/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { - "tslib": "^1.9.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "npm": ">=2.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/concurrently/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "node_modules/concurrently/node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "has-flag": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=6" + "node": ">=8" } }, - "node_modules/concurrently/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "node_modules/concurrently/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/concurrently/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, + "node_modules/concurrently/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/concurrently/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, "node_modules/confusing-browser-globals": { "version": "1.0.11", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz", @@ -9219,6 +9558,14 @@ "node": ">=10" } }, + "node_modules/cosmiconfig/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "engines": { + "node": ">= 6" + } + }, "node_modules/create-jest": { "version": "29.7.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/create-jest/-/create-jest-29.7.0.tgz", @@ -9688,6 +10035,15 @@ "postcss": "^8.2.15" } }, + "node_modules/cssnano/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/csso": { "version": "4.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/csso/-/csso-4.2.0.tgz", @@ -9734,37 +10090,19 @@ "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==", "dev": true }, - "node_modules/cssstyle": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssstyle/-/cssstyle-2.3.0.tgz", - "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, - "dependencies": { - "cssom": "~0.3.6" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cssstyle/node_modules/cssom": { - "version": "0.3.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true - }, "node_modules/csstype": { "version": "3.1.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, "node_modules/cypress": { - "version": "13.14.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cypress/-/cypress-13.14.1.tgz", - "integrity": "sha512-Wo+byPmjps66hACEH5udhXINEiN3qS3jWNGRzJOjrRJF3D0+YrcP2LVB1T7oYaVQM/S+eanqEvBWYc8cf7Vcbg==", + "version": "13.15.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cypress/-/cypress-13.15.0.tgz", + "integrity": "sha512-53aO7PwOfi604qzOkCSzNlWquCynLlKE/rmmpSPcziRH6LNfaDUAklQT6WJIsD8ywxlIy+uVZsnTMCCQVd2kTw==", "dev": true, "hasInstallScript": true, "dependencies": { - "@cypress/request": "^3.0.1", + "@cypress/request": "^3.0.4", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", @@ -9836,6 +10174,9 @@ }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cypress/node_modules/buffer": { @@ -9843,6 +10184,20 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -9913,6 +10268,9 @@ }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/damerau-levenshtein": { @@ -9933,26 +10291,6 @@ "node": ">=0.10" } }, - "node_modules/data-urls": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/data-urls/-/data-urls-2.0.0.tgz", - "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "dev": true, - "dependencies": { - "abab": "^2.0.3", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/data-urls/node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, "node_modules/data-view-buffer": { "version": "1.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", @@ -9995,18 +10333,6 @@ "node": ">= 0.4" } }, - "node_modules/date-fns": { - "version": "2.30.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/date-fns/-/date-fns-2.30.0.tgz", - "integrity": "sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.21.0" - }, - "engines": { - "node": ">=0.11" - } - }, "node_modules/dateformat": { "version": "3.0.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dateformat/-/dateformat-3.0.2.tgz", @@ -10028,11 +10354,11 @@ "integrity": "sha512-rZHcgBkbYavBeD9ej6sP56XfG53d51CD4dnaw989YX/nZ/ZJfgRx/9ePKmTNiUiyQvh4mtrMoS3OAWW+yoYtpg==" }, "node_modules/debug": { - "version": "4.3.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-4.3.6.tgz", - "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==", + "version": "4.3.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dependencies": { - "ms": "2.1.2" + "ms": "^2.1.3" }, "engines": { "node": ">=6.0" @@ -10043,15 +10369,6 @@ } } }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/decimal.js": { "version": "10.4.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/decimal.js/-/decimal.js-10.4.3.tgz", @@ -10287,6 +10604,15 @@ "node": ">= 0.8" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/destroy/-/destroy-1.2.0.tgz", @@ -10586,9 +10912,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==" + "version": "1.5.33", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/electron-to-chromium/-/electron-to-chromium-1.5.33.tgz", + "integrity": "sha512-+cYTcFB1QqD4j4LegwLfpCNxifb6dDFUAwk6RsLusCwIaZI6or2f+q8rs5tTB2YC53HhOlIbEaqHMAAC8IOIwA==" }, "node_modules/emittery": { "version": "0.13.1", @@ -10620,9 +10946,9 @@ "integrity": "sha512-OhYpCGBjaLcD9c4ptwCr9SxHjfRTDqeqdzMobusJ+a/drlfnJ3AT9gmGKIhNHiXtr6626h6fsvLY22Or9CxUqw==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "engines": { "node": ">= 0.8" @@ -11022,60 +11348,63 @@ } }, "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "version": "9.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", "dev": true, "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", + "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" + "optionator": "^0.9.3", + "text-table": "^0.2.0" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-config-airbnb": { @@ -11119,9 +11448,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -11158,24 +11487,6 @@ "eslint": "^8.0.0" } }, - "node_modules/eslint-config-react-app/node_modules/eslint-plugin-flowtype": { - "version": "8.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", - "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", - "dev": true, - "dependencies": { - "lodash": "^4.17.21", - "string-natural-compare": "^3.0.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "peerDependencies": { - "@babel/plugin-syntax-flow": "^7.14.5", - "@babel/plugin-transform-react-jsx": "^7.14.9", - "eslint": "^8.1.0" - } - }, "node_modules/eslint-import-resolver-node": { "version": "0.3.9", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", @@ -11197,9 +11508,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-module-utils/-/eslint-module-utils-2.9.0.tgz", - "integrity": "sha512-McVbYmwA3NEKwRQY5g4aWMdcZE5xZxV8i8l7CqJSrameuGSQJtSWaL/LxTEzSKKaCcOhlpDR8XEfYXWPrdo/ZQ==", + "version": "2.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", + "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", "dev": true, "dependencies": { "debug": "^3.2.7" @@ -11223,58 +11534,33 @@ } }, "node_modules/eslint-plugin-cypress": { - "version": "2.15.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.2.tgz", - "integrity": "sha512-CtcFEQTDKyftpI22FVGpx8bkpKyYXBlNge6zSo0pl5/qJvBAnzaD76Vu2AsP16d6mTj478Ldn2mhgrWV+Xr0vQ==", + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-cypress/-/eslint-plugin-cypress-4.0.0.tgz", + "integrity": "sha512-KRzI4zxoOKMhWKRxcikRu/Vjsomnx1vXJEY2CTG+4oluFbXxGuyRC1CLlhmBVOK5/iR17vY7rzuyRbpcx5zEPA==", "dev": true, "dependencies": { - "globals": "^13.20.0" + "globals": "^15.11.0" }, "peerDependencies": { - "eslint": ">= 3.2.1" - } - }, - "node_modules/eslint-plugin-cypress/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint-plugin-cypress/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "eslint": ">=9" } }, "node_modules/eslint-plugin-flowtype": { - "version": "5.10.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-5.10.0.tgz", - "integrity": "sha512-vcz32f+7TP+kvTUyMXZmCnNujBQZDNmcqPImw8b9PZ+16w1Qdm6ryRuYZYVaG9xRqqmAPr2Cs9FAX5gN+x/bjw==", + "version": "8.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-8.0.3.tgz", + "integrity": "sha512-dX8l6qUL6O+fYPtpNRideCFSpmWOUVx5QcaGLVqe/vlDiBSe4vYljDWDETwnyFzpl7By/WVIu6rcrniCgH9BqQ==", "dev": true, "dependencies": { - "lodash": "^4.17.15", + "lodash": "^4.17.21", "string-natural-compare": "^3.0.1" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=12.0.0" }, "peerDependencies": { - "eslint": "^7.1.0" + "@babel/plugin-syntax-flow": "^7.14.5", + "@babel/plugin-transform-react-jsx": "^7.14.9", + "eslint": "^8.1.0" } }, "node_modules/eslint-plugin-header": { @@ -11287,9 +11573,9 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.30.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-import/-/eslint-plugin-import-2.30.0.tgz", - "integrity": "sha512-/mHNE9jINJfiD2EKkg1BKyPyUk4zdnT54YgbOgfjSakWT5oyX/qQLVNTkehyfpcMxZXMy1zyonZ2v7hZTX43Yw==", + "version": "2.31.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", + "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", "dev": true, "dependencies": { "@rtsao/scc": "^1.1.0", @@ -11300,7 +11586,7 @@ "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.9.0", + "eslint-module-utils": "^2.12.0", "hasown": "^2.0.2", "is-core-module": "^2.15.1", "is-glob": "^4.0.3", @@ -11309,13 +11595,14 @@ "object.groupby": "^1.0.3", "object.values": "^1.2.0", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.8", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, "node_modules/eslint-plugin-import/node_modules/debug": { @@ -11364,17 +11651,17 @@ } }, "node_modules/eslint-plugin-jsx-a11y": { - "version": "6.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.9.0.tgz", - "integrity": "sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==", + "version": "6.10.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.10.0.tgz", + "integrity": "sha512-ySOHvXX8eSN6zz8Bywacm7CvGNhUtdjvqfQDVe6020TUK34Cywkw7m0KsCCk1Qtm9G1FayfTN1/7mMYnYO2Bhg==", "dev": true, "dependencies": { "aria-query": "~5.1.3", "array-includes": "^3.1.8", "array.prototype.flatmap": "^1.3.2", "ast-types-flow": "^0.0.8", - "axe-core": "^4.9.1", - "axobject-query": "~3.1.1", + "axe-core": "^4.10.0", + "axobject-query": "^4.1.0", "damerau-levenshtein": "^1.0.8", "emoji-regex": "^9.2.2", "es-iterator-helpers": "^1.0.19", @@ -11390,34 +11677,43 @@ "node": ">=4.0" }, "peerDependencies": { - "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9" } }, "node_modules/eslint-plugin-prettier": { - "version": "3.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.1.tgz", - "integrity": "sha512-htg25EUYUeIhKHXjOinK4BgCcDwtLHjqaxCDsMy5nbnUMkKFvIhMVCp+5GFUXQ4Nr8lBsPqtGAqBenbpFqAA2g==", + "version": "5.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": ">=6.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=5.0.0", - "prettier": ">=1.13.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-plugin-react": { - "version": "7.35.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-react/-/eslint-plugin-react-7.35.2.tgz", - "integrity": "sha512-Rbj2R9zwP2GYNcIak4xoAMV57hrBh3hTaR0k7hVjwCQgryE/pw5px4b13EYjduOI0hfXyZhwBxaGpOTbWSGzKQ==", + "version": "7.37.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-react/-/eslint-plugin-react-7.37.1.tgz", + "integrity": "sha512-xwTnwDqzbDRA8uJ7BMxPs/EXRB3i8ZfnOIp8BsxEQkT0nHPp+WWceqGgo6rKb9ctNi8GJLDT4Go5HAWELa/WMg==", "dev": true, "dependencies": { "array-includes": "^3.1.8", @@ -11482,6 +11778,9 @@ }, "bin": { "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/eslint-plugin-testing-library": { @@ -11522,27 +11821,6 @@ "node": ">=4.0" } }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", @@ -11607,15 +11885,6 @@ "node": ">=10" } }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, "node_modules/eslint/node_modules/ajv": { "version": "6.12.6", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-6.12.6.tgz", @@ -11678,21 +11947,87 @@ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/eslint/node_modules/globals": { - "version": "13.24.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, "dependencies": { - "type-fest": "^0.20.2" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "dev": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/eslint/node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", @@ -11708,23 +12043,29 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "p-locate": "^5.0.0" }, "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, "engines": { "node": ">=10" }, @@ -11732,27 +12073,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=8" + } + }, + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "engines": { - "node": ">=4" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -12024,37 +12381,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -12065,6 +12422,15 @@ "node": ">= 0.10.0" } }, + "node_modules/express/node_modules/cookie": { + "version": "0.7.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/express/node_modules/debug": { "version": "2.6.9", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-2.6.9.tgz", @@ -12427,13 +12793,13 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -12516,16 +12882,32 @@ "node": "^10.12.0 || >=12.0.0" } }, - "node_modules/flatted": { - "version": "3.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flatted/-/flatted-3.3.1.tgz", - "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/follow-redirects/-/follow-redirects-1.15.8.tgz", - "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==", + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/follow-redirects/-/follow-redirects-1.15.8.tgz", + "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==", "funding": [ { "type": "individual", @@ -12773,18 +13155,26 @@ "node": ">=6" } }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "node_modules/fork-ts-checker-webpack-plugin/node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dependencies": { "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", + "combined-stream": "^1.0.8", "mime-types": "^2.1.12" }, "engines": { - "node": ">= 0.12" + "node": ">= 6" } }, "node_modules/format": { @@ -12967,12 +13357,6 @@ "node": ">= 0.4" } }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, "node_modules/functions-have-names": { "version": "1.2.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/functions-have-names/-/functions-have-names-1.2.3.tgz", @@ -13117,6 +13501,7 @@ "version": "5.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -13187,11 +13572,16 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.11.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { @@ -13224,15 +13614,6 @@ "node": ">=10" } }, - "node_modules/globby/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/gopd": { "version": "1.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gopd/-/gopd-1.0.1.tgz", @@ -13663,27 +14044,6 @@ "call-bind": "^1.0.2" } }, - "node_modules/html-encoding-sniffer": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", - "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "dev": true, - "dependencies": { - "whatwg-encoding": "^1.0.5" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/html-encoding-sniffer/node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, "node_modules/html-entities": { "version": "2.5.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-entities/-/html-entities-2.5.2.tgz", @@ -13696,16 +14056,16 @@ "dev": true }, "node_modules/html-loader": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-loader/-/html-loader-4.2.0.tgz", - "integrity": "sha512-OxCHD3yt+qwqng2vvcaPApCEvbx+nXWu+v69TYHx1FO8bffHn/JjHtE3TTQZmHjwvnJe4xxzuecetDVBrQR1Zg==", + "version": "5.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-loader/-/html-loader-5.1.0.tgz", + "integrity": "sha512-Jb3xwDbsm0W3qlXrCZwcYqYGnYz55hb6aoKQTlzyZPXsPpi6tHXzAfqalecglMQgNvtEfxrCQPaKT90Irt5XDA==", "dev": true, "dependencies": { - "html-minifier-terser": "^7.0.0", - "parse5": "^7.0.0" + "html-minifier-terser": "^7.2.0", + "parse5": "^7.1.2" }, "engines": { - "node": ">= 14.15.0" + "node": ">= 18.12.0" }, "funding": { "type": "opencollective", @@ -13920,20 +14280,6 @@ "node": ">=8.0.0" } }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", - "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/http-proxy-middleware": { "version": "2.0.6", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", @@ -13959,32 +14305,19 @@ } }, "node_modules/http-signature": { - "version": "1.3.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-signature/-/http-signature-1.3.6.tgz", - "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-signature/-/http-signature-1.4.0.tgz", + "integrity": "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg==", "dev": true, "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", - "sshpk": "^1.14.1" + "sshpk": "^1.18.0" }, "engines": { "node": ">=0.10" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/httpsnippet": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/httpsnippet/-/httpsnippet-2.0.0.tgz", @@ -14166,10 +14499,9 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, + "version": "5.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "engines": { "node": ">= 4" } @@ -14386,6 +14718,7 @@ "version": "2.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -15373,20 +15706,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-cli/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", @@ -15426,42 +15745,6 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-cli/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-config": { "version": "29.7.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-config/-/jest-config-29.7.0.tgz", @@ -15996,6 +16279,18 @@ "@types/yargs-parser": "*" } }, + "node_modules/jest-environment-jsdom/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, "node_modules/jest-environment-jsdom/node_modules/anymatch": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/anymatch/-/anymatch-2.0.0.tgz", @@ -16066,6 +16361,38 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-environment-jsdom/node_modules/escape-string-regexp": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", @@ -16114,6 +16441,20 @@ "node": ">=6" } }, + "node_modules/jest-environment-jsdom/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-environment-jsdom/node_modules/fsevents": { "version": "1.2.13", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fsevents/-/fsevents-1.2.13.tgz", @@ -16133,6 +16474,45 @@ "node": ">= 4.0" } }, + "node_modules/jest-environment-jsdom/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/jest-environment-jsdom/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/jest-environment-jsdom/node_modules/is-ci": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-ci/-/is-ci-2.0.0.tgz", @@ -16306,12 +16686,58 @@ "node": ">= 6" } }, - "node_modules/jest-environment-jsdom/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { + "node_modules/jest-environment-jsdom/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "dependencies": { "p-locate": "^3.0.0", "path-exists": "^3.0.0" }, @@ -16394,6 +16820,12 @@ "node": ">=6" } }, + "node_modules/jest-environment-jsdom/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, "node_modules/jest-environment-jsdom/node_modules/path-exists": { "version": "3.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-3.0.0.tgz", @@ -16403,6 +16835,18 @@ "node": ">=4" } }, + "node_modules/jest-environment-jsdom/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-environment-jsdom/node_modules/slash": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/slash/-/slash-2.0.0.tgz", @@ -16473,6 +16917,68 @@ "node": ">=0.10.0" } }, + "node_modules/jest-environment-jsdom/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-environment-jsdom/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-environment-jsdom/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/jest-environment-jsdom/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/jest-environment-jsdom/node_modules/write-file-atomic": { "version": "2.4.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", @@ -16484,6 +16990,33 @@ "signal-exit": "^3.0.2" } }, + "node_modules/jest-environment-jsdom/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "dev": true, + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/jest-environment-jsdom/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, "node_modules/jest-environment-node": { "version": "29.7.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", @@ -18183,15 +18716,6 @@ "node": ">=14.16" } }, - "node_modules/jest-watch-typeahead/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/jest-watch-typeahead/node_modules/chalk": { "version": "5.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-5.3.0.tgz", @@ -18416,108 +18940,15 @@ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==", "dev": true }, - "node_modules/jsdom": { - "version": "16.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsdom/-/jsdom-16.7.0.tgz", - "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", - "dev": true, - "dependencies": { - "abab": "^2.0.5", - "acorn": "^8.2.4", - "acorn-globals": "^6.0.0", - "cssom": "^0.4.4", - "cssstyle": "^2.3.0", - "data-urls": "^2.0.0", - "decimal.js": "^10.2.1", - "domexception": "^2.0.1", - "escodegen": "^2.0.0", - "form-data": "^3.0.0", - "html-encoding-sniffer": "^2.0.1", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.0", - "parse5": "6.0.1", - "saxes": "^5.0.1", - "symbol-tree": "^3.2.4", - "tough-cookie": "^4.0.0", - "w3c-hr-time": "^1.0.2", - "w3c-xmlserializer": "^2.0.0", - "webidl-conversions": "^6.1.0", - "whatwg-encoding": "^1.0.5", - "whatwg-mimetype": "^2.3.0", - "whatwg-url": "^8.5.0", - "ws": "^7.4.6", - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "canvas": "^2.5.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, - "node_modules/jsdom/node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/jsdom/node_modules/form-data": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-3.0.1.tgz", - "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jsdom/node_modules/parse5": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", - "dev": true - }, - "node_modules/jsdom/node_modules/whatwg-encoding": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", - "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "dev": true, - "dependencies": { - "iconv-lite": "0.4.24" - } - }, - "node_modules/jsdom/node_modules/whatwg-mimetype": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", - "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", - "dev": true - }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-buffer": { @@ -19067,12 +19498,6 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -19239,11 +19664,15 @@ } }, "node_modules/loglevel": { - "version": "1.9.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/loglevel/-/loglevel-1.9.1.tgz", - "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "version": "1.9.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", "engines": { "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" } }, "node_modules/loose-envify": { @@ -19401,10 +19830,13 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/merge-stream": { "version": "2.0.0", @@ -19628,9 +20060,9 @@ "dev": true }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "version": "2.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/multicast-dns": { "version": "7.2.5", @@ -19793,6 +20225,12 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==" }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "license": "MIT" + }, "node_modules/node-domexception": { "version": "1.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-domexception/-/node-domexception-1.0.0.tgz", @@ -19833,18 +20271,18 @@ "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==" }, "node_modules/nodemon": { - "version": "2.0.22", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nodemon/-/nodemon-2.0.22.tgz", - "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "version": "3.1.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nodemon/-/nodemon-3.1.7.tgz", + "integrity": "sha512-hLj7fuMow6f0lbB0cD14Lz2xNjwsyruH251Pk4t/yIitCFJbmY1myuLlHm/q06aST4jg6EgAh74PIBBrRqpVAQ==", "dev": true, "dependencies": { "chokidar": "^3.5.2", - "debug": "^3.2.7", + "debug": "^4", "ignore-by-default": "^1.0.1", "minimatch": "^3.1.2", "pstree.remy": "^1.1.8", - "semver": "^5.7.1", - "simple-update-notifier": "^1.0.7", + "semver": "^7.5.3", + "simple-update-notifier": "^2.0.0", "supports-color": "^5.5.0", "touch": "^3.1.0", "undefsafe": "^2.0.5" @@ -19853,22 +20291,13 @@ "nodemon": "bin/nodemon.js" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/nodemon" } }, - "node_modules/nodemon/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, "node_modules/normalize-package-data": { "version": "2.5.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", @@ -20523,9 +20952,9 @@ "dev": true }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "version": "0.1.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==", "dev": true }, "node_modules/path-type": { @@ -21238,18 +21667,6 @@ "node": ">=14" } }, - "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-2.5.1.tgz", - "integrity": "sha512-bLQOjaX/ADgQ20isPJRvF0iRUHIxVhYvr53Of7wGcWlO2jvtUlH5m87DsmulFVxRpNLOnI4tB6p/oh8D7kpn9Q==", - "dev": true, - "bin": { - "yaml": "bin.mjs" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/postcss-loader": { "version": "6.2.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss-loader/-/postcss-loader-6.2.1.tgz", @@ -22073,15 +22490,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -22132,6 +22549,15 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-5.2.0.tgz", @@ -22163,15 +22589,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise/-/promise-8.3.0.tgz", @@ -22250,12 +22667,6 @@ "node": ">= 0.10" } }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true - }, "node_modules/pstree.remy": { "version": "1.1.8", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pstree.remy/-/pstree.remy-1.1.8.tgz", @@ -22306,12 +22717,11 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, + "version": "6.13.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" @@ -22853,9 +23263,9 @@ "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" }, "node_modules/react-router/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", + "version": "1.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-1.9.0.tgz", + "integrity": "sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==", "dependencies": { "isarray": "0.0.1" } @@ -22958,6 +23368,15 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/react-scripts/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, "node_modules/react-scripts/node_modules/@humanwhocodes/config-array": { "version": "0.11.14", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", @@ -23265,16 +23684,16 @@ "@types/yargs-parser": "*" } }, - "node_modules/react-scripts/node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "node_modules/react-scripts/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "bin": { - "acorn": "bin/acorn" + "dependencies": { + "debug": "4" }, "engines": { - "node": ">=0.4.0" + "node": ">= 6.0.0" } }, "node_modules/react-scripts/node_modules/ajv": { @@ -23424,6 +23843,38 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/react-scripts/node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dev": true, + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/react-scripts/node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true + }, + "node_modules/react-scripts/node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dev": true, + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-scripts/node_modules/dedent": { "version": "0.7.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dedent/-/dedent-0.7.0.tgz", @@ -23593,6 +24044,20 @@ "node": ">=10" } }, + "node_modules/react-scripts/node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/react-scripts/node_modules/fs-extra": { "version": "10.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-extra/-/fs-extra-10.1.0.tgz", @@ -23652,6 +24117,45 @@ "node": ">=8" } }, + "node_modules/react-scripts/node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-scripts/node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dev": true, + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/react-scripts/node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, "node_modules/react-scripts/node_modules/human-signals": { "version": "2.1.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/human-signals/-/human-signals-2.1.0.tgz", @@ -23661,15 +24165,6 @@ "node": ">=10.17.0" } }, - "node_modules/react-scripts/node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/react-scripts/node_modules/istanbul-lib-instrument": { "version": "5.2.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", @@ -24375,6 +24870,15 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/react-scripts/node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/react-scripts/node_modules/jest-watch-typeahead/node_modules/jest-watcher/node_modules/string-length": { "version": "4.0.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-length/-/string-length-4.0.2.tgz", @@ -24415,6 +24919,15 @@ "node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0" } }, + "node_modules/react-scripts/node_modules/jest-watch-typeahead/node_modules/pretty-format/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/react-scripts/node_modules/jest-watch-typeahead/node_modules/slash": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/slash/-/slash-4.0.0.tgz", @@ -24458,15 +24971,6 @@ "node": ">=12" } }, - "node_modules/react-scripts/node_modules/jest-watch-typeahead/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/react-scripts/node_modules/jest-watcher": { "version": "27.5.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-watcher/-/jest-watcher-27.5.1.tgz", @@ -24523,6 +25027,52 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/react-scripts/node_modules/jsdom": { + "version": "16.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsdom/-/jsdom-16.7.0.tgz", + "integrity": "sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==", + "dev": true, + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.6", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } + } + }, "node_modules/react-scripts/node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -24553,6 +25103,12 @@ "node": ">=10" } }, + "node_modules/react-scripts/node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true + }, "node_modules/react-scripts/node_modules/react-is": { "version": "18.3.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-is/-/react-is-18.3.1.tgz", @@ -24568,6 +25124,34 @@ "node": ">=10" } }, + "node_modules/react-scripts/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/react-scripts/node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dev": true, + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-scripts/node_modules/source-map": { "version": "0.6.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.6.1.tgz", @@ -24589,6 +25173,18 @@ "node": ">=8" } }, + "node_modules/react-scripts/node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dev": true, + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/react-scripts/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.20.2.tgz", @@ -24624,6 +25220,56 @@ "node": ">= 8" } }, + "node_modules/react-scripts/node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dev": true, + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/react-scripts/node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "dev": true, + "engines": { + "node": ">=10.4" + } + }, + "node_modules/react-scripts/node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/react-scripts/node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", + "dev": true + }, + "node_modules/react-scripts/node_modules/whatwg-url": { + "version": "8.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-url/-/whatwg-url-8.7.0.tgz", + "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", + "dev": true, + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.1.0", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/react-scripts/node_modules/write-file-atomic": { "version": "3.0.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", @@ -24636,15 +25282,33 @@ "typedarray-to-buffer": "^3.1.5" } }, - "node_modules/react-scripts/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "node_modules/react-scripts/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", "dev": true, "engines": { - "node": ">=10" + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } } }, + "node_modules/react-scripts/node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", + "dev": true + }, "node_modules/react-scripts/node_modules/yargs": { "version": "16.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-16.2.0.tgz", @@ -24723,9 +25387,10 @@ } }, "node_modules/react-toastify": { - "version": "10.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-toastify/-/react-toastify-10.0.5.tgz", - "integrity": "sha512-mNKt2jBXJg4O7pSdbNUfDdTsK9FIdikfsIE/yUCxbAEXl4HMyJaivrVFcn3Elvt5xvCQYhUZm+hqTIu1UXM3Pw==", + "version": "10.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-toastify/-/react-toastify-10.0.6.tgz", + "integrity": "sha512-yYjp+omCDf9lhZcrZHKbSq7YMuK0zcYkDFTzfRFgTXkTFHZ1ToxwAonzA4JI5CxA91JpjFLmwEsZEgfYfOqI1A==", + "license": "MIT", "dependencies": { "clsx": "^2.1.0" }, @@ -24738,6 +25403,7 @@ "version": "2.1.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/clsx/-/clsx-2.1.1.tgz", "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "license": "MIT", "engines": { "node": ">=6" } @@ -24766,20 +25432,6 @@ "pify": "^2.3.0" } }, - "node_modules/read-pkg": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read-pkg/-/read-pkg-4.0.1.tgz", - "integrity": "sha512-+UBirHHDm5J+3WDmLBZYSklRYg82nMlz+enn+GMZ22nSR2f4bzxmhso6rzQW/3mT2PVzpzDTiYIZahk8UmZ44w==", - "dev": true, - "dependencies": { - "normalize-package-data": "^2.3.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/read-pkg-up": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", @@ -24889,28 +25541,6 @@ "node": ">=4" } }, - "node_modules/read-pkg/node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/read-pkg/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -24929,6 +25559,7 @@ "version": "3.6.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -24948,6 +25579,29 @@ "node": ">=4" } }, + "node_modules/recast": { + "version": "0.23.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/recast/-/recast-0.23.9.tgz", + "integrity": "sha512-Hx/BGIbwj+Des3+xy5uAtAbdCyqK9y9wbBcDFDYanLS9JnMqf7OeF87HQwUimE87OEc72mr6tkKUKMBBL+hF9Q==", + "dependencies": { + "ast-types": "^0.16.1", + "esprima": "~4.0.0", + "source-map": "~0.6.1", + "tiny-invariant": "^1.3.3", + "tslib": "^2.0.1" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/recast/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -25091,9 +25745,9 @@ "dev": true }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", - "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "version": "10.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, "dependencies": { "regenerate": "^1.4.2" @@ -25150,25 +25804,16 @@ "node": ">= 0.4" } }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/regexpu-core": { - "version": "5.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regexpu-core/-/regexpu-core-5.3.2.tgz", - "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "version": "6.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, "dependencies": { - "@babel/regjsgen": "^0.8.0", "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", "unicode-match-property-value-ecmascript": "^2.1.0" }, @@ -25176,25 +25821,22 @@ "node": ">=4" } }, - "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } + "node_modules/regjsgen": { + "version": "0.8.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "node_modules/regjsparser": { + "version": "0.11.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regjsparser/-/regjsparser-0.11.1.tgz", + "integrity": "sha512-1DHODs4B8p/mQHU9kr+jv8+wIC9mtG4eBHxWxIq5mhjE3D5oORhCc6deRKzTjs9DcfRFmj9BHSDguZklqCGFWQ==", "dev": true, + "dependencies": { + "jsesc": "~3.0.2" + }, "bin": { - "jsesc": "bin/jsesc" + "regjsparser": "bin/parser" } }, "node_modules/relateurl": { @@ -25507,25 +26149,115 @@ "dev": true }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "11.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/lru-cache": { + "version": "11.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-11.0.1.tgz", + "integrity": "sha512-CgeuL5uom6j/ZVrg7G/+1IXqRY8JXX4Hghfy5YE0EhoYQWvndP1kufu58cmZLNIDKnRhZrXfdS9urVWx98AipQ==", + "dev": true, + "engines": { + "node": "20 || >=22" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/rollup": { - "version": "2.79.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rollup/-/rollup-2.79.1.tgz", - "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "version": "2.79.2", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.2.tgz", + "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -25974,11 +26706,13 @@ "dev": true }, "node_modules/sass": { - "version": "1.78.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sass/-/sass-1.78.0.tgz", - "integrity": "sha512-AaIqGSrjo5lA2Yg7RvFZrlXDBCp3nV4XP73GrLGvdRWWwk+8H3l0SDvq/5bA4eF+0RFPLuWUk3E+P1U/YqnpsQ==", + "version": "1.79.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sass/-/sass-1.79.5.tgz", + "integrity": "sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==", + "license": "MIT", "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", + "@parcel/watcher": "^2.4.1", + "chokidar": "^4.0.0", "immutable": "^4.0.0", "source-map-js": ">=0.6.2 <2.0.0" }, @@ -26027,24 +26761,40 @@ } } }, + "node_modules/sass/node_modules/chokidar": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chokidar/-/chokidar-4.0.1.tgz", + "integrity": "sha512-n8enUVCED/KVRQlab1hr3MVpcVMvxtZjmEa956u+4YijlmQED223XMSYj2tLuKvr4jcCTzNNMpQDUer72MMmzA==", + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/sass/node_modules/readdirp": { + "version": "4.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readdirp/-/readdirp-4.0.2.tgz", + "integrity": "sha512-yDMz9g+VaZkqBYS/ozoBJwaBhTbZo3UNYQHNRw1D3UFQB8oHB4uS/tAODO+ZLjGWmUbKnIlOWO+aaIiAxrUWHA==", + "license": "MIT", + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/sax": { "version": "1.2.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sax/-/sax-1.2.4.tgz", "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "node_modules/saxes": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/saxes/-/saxes-5.0.1.tgz", - "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "dev": true, - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/scheduler": { "version": "0.23.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/scheduler/-/scheduler-0.23.2.tgz", @@ -26068,22 +26818,6 @@ "node": ">= 12.13.0" } }, - "node_modules/schema-utils/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/select-hose/-/select-hose-2.0.0.tgz", @@ -26115,9 +26849,9 @@ } }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "dependencies": { "debug": "2.6.9", @@ -26153,11 +26887,14 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, - "node_modules/send/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } }, "node_modules/serialize-error": { "version": "8.1.0", @@ -26269,26 +27006,20 @@ } }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" } }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, "node_modules/set-function-length": { "version": "1.2.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/set-function-length/-/set-function-length-1.2.2.tgz", @@ -26423,15 +27154,15 @@ } }, "node_modules/simple-update-notifier": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", - "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", + "integrity": "sha512-a2B9Y0KlNXl9u/vsW6sTIu9vGEpfKu2wRV6l1H3XEas/0gUIzGzBoP/IouTcUQbm9JWZLH3COxyn03TYlFax6w==", "dev": true, "dependencies": { - "semver": "~7.0.0" + "semver": "^7.5.3" }, "engines": { - "node": ">=8.10.0" + "node": ">=10" } }, "node_modules/sisteransi": { @@ -26789,15 +27520,6 @@ "node": ">=8" } }, - "node_modules/source-map-explorer/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, "node_modules/source-map-explorer/node_modules/yargs": { "version": "16.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-16.2.0.tgz", @@ -26914,12 +27636,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz", "integrity": "sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==" }, - "node_modules/spawn-command": { - "version": "0.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spawn-command/-/spawn-command-0.0.2.tgz", - "integrity": "sha512-zC8zGoGkmc8J9ndvml8Xksr1Amk9qBujgbF0JAIWO7kXr43w0h/0GJNM/Vustixu+YE8N/MTrQ7N31FvHUACxQ==", - "dev": true - }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -27068,19 +27784,19 @@ "dev": true }, "node_modules/start-server-and-test": { - "version": "2.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/start-server-and-test/-/start-server-and-test-2.0.5.tgz", - "integrity": "sha512-2CV4pz69NJVJKQmJeSr+O+SPtOreu0yxvhPmSXclzmAKkPREuMabyMh+Txpzemjx0RDzXOcG2XkhiUuxjztSQw==", + "version": "2.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/start-server-and-test/-/start-server-and-test-2.0.8.tgz", + "integrity": "sha512-v2fV6NV2F7tL1ocwfI4Wpait+IKjRbT5l3ZZ+ZikXdMLmxYsS8ynGAsCQAUVXkVyGyS+UibsRnvgHkMvJIvCsw==", "dev": true, "dependencies": { "arg": "^5.0.2", "bluebird": "3.7.2", "check-more-types": "2.24.0", - "debug": "4.3.6", + "debug": "4.3.7", "execa": "5.1.1", "lazy-ass": "1.6.0", "ps-tree": "1.2.0", - "wait-on": "7.2.0" + "wait-on": "8.0.1" }, "bin": { "server-test": "src/bin/start.js", @@ -27121,6 +27837,9 @@ "dev": true, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/start-server-and-test/node_modules/human-signals": { @@ -27498,6 +28217,24 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-bom/-/strip-bom-4.0.0.tgz", @@ -27550,7 +28287,6 @@ "version": "3.1.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "engines": { "node": ">=8" } @@ -27957,80 +28693,20 @@ "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", "dev": true }, - "node_modules/table": { - "version": "6.8.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/table/-/table-6.8.2.tgz", - "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "node_modules/synckit": { + "version": "0.9.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/synckit/-/synckit-0.9.2.tgz", + "integrity": "sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==", "dev": true, "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" + "node": "^14.18.0 || >=16.0.0" }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" + "url": "https://opencollective.com/unts" } }, "node_modules/tailwindcss": { @@ -28338,18 +29014,6 @@ "node": ">=10" } }, - "node_modules/terser/node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/terser/node_modules/commander": { "version": "2.20.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", @@ -28448,6 +29112,24 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tiny-warning/-/tiny-warning-1.0.3.tgz", "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" }, + "node_modules/tldts": { + "version": "6.1.50", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tldts/-/tldts-6.1.50.tgz", + "integrity": "sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==", + "dev": true, + "dependencies": { + "tldts-core": "^6.1.50" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.50", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tldts-core/-/tldts-core-6.1.50.tgz", + "integrity": "sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==", + "dev": true + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tmp/-/tmp-0.2.3.tgz", @@ -28540,43 +29222,19 @@ "integrity": "sha512-r0eojU4bI8MnHr8c5bNo7lJDdI2qXlWWJk6a9EAFG7vbhTjElYhBVS3/miuE0uOuoLdb8Mc/rVfsmm6eo5o9GA==", "dev": true, "bin": { - "nodetouch": "bin/nodetouch.js" - } - }, - "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", - "dev": true, - "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tough-cookie/node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" + "nodetouch": "bin/nodetouch.js" } }, - "node_modules/tr46": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tr46/-/tr46-2.1.0.tgz", - "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "node_modules/tough-cookie": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", "dev": true, "dependencies": { - "punycode": "^2.1.1" + "tldts": "^6.1.32" }, "engines": { - "node": ">=8" + "node": ">=16" } }, "node_modules/tree-kill": { @@ -28877,6 +29535,8 @@ "version": "6.19.8", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/undici/-/undici-6.19.8.tgz", "integrity": "sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==", + "dev": true, + "license": "MIT", "engines": { "node": ">=18.17" } @@ -28887,9 +29547,9 @@ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==" }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, "engines": { "node": ">=4" @@ -28909,9 +29569,9 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", - "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "version": "2.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, "engines": { "node": ">=4" @@ -29179,20 +29839,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" }, - "node_modules/url/node_modules/qs": { - "version": "6.13.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", - "dependencies": { - "side-channel": "^1.0.6" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/use": { "version": "3.1.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/use/-/use-3.1.1.tgz", @@ -29297,19 +29943,17 @@ } }, "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "version": "10.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], "bin": { "uuid": "dist/bin/uuid" } }, - "node_modules/v8-compile-cache": { - "version": "2.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", - "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", - "dev": true - }, "node_modules/v8-to-istanbul": { "version": "9.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", @@ -29377,26 +30021,14 @@ "browser-process-hrtime": "^1.0.0" } }, - "node_modules/w3c-xmlserializer": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", - "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "dev": true, - "dependencies": { - "xml-name-validator": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/wait-on": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wait-on/-/wait-on-7.2.0.tgz", - "integrity": "sha512-wCQcHkRazgjG5XoAq9jbTMLpNIjoSlZslrJ2+N9MxDsGEv1HnFoVjOCexL0ESva7Y9cu350j+DWADdk54s4AFQ==", + "version": "8.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wait-on/-/wait-on-8.0.1.tgz", + "integrity": "sha512-1wWQOyR2LVVtaqrcIL2+OM+x7bkpmzVROa0Nf6FryXkS+er5Sa1kzFGjzZRqLnHa3n1rACFLeTwUqE1ETL9Mig==", "dev": true, "dependencies": { - "axios": "^1.6.1", - "joi": "^17.11.0", + "axios": "^1.7.7", + "joi": "^17.13.3", "lodash": "^4.17.21", "minimist": "^1.2.8", "rxjs": "^7.8.1" @@ -29452,15 +30084,6 @@ "integrity": "sha512-zKGJW9r23y3BcJusbgvnOH2OYAW40MXAOi9bi3Gcc7T4Gms9WWgXF8m6adsJWpGJEhgOzCrfiz1IzKowJWrtYw==", "optional": true }, - "node_modules/webidl-conversions": { - "version": "6.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", - "dev": true, - "engines": { - "node": ">=10.4" - } - }, "node_modules/webpack": { "version": "5.94.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/webpack/-/webpack-5.94.0.tgz", @@ -29598,25 +30221,20 @@ "node": ">= 10" } }, - "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.18.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ws/-/ws-8.18.0.tgz", - "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", + "node_modules/webpack-dev-server/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", "dev": true, - "engines": { - "node": ">=10.0.0" + "dependencies": { + "glob": "^7.1.3" }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" + "bin": { + "rimraf": "bin.js" }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/webpack-manifest-plugin": { @@ -29666,18 +30284,6 @@ "node": ">=10.13.0" } }, - "node_modules/webpack/node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/webpack/node_modules/ajv": { "version": "6.12.6", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-6.12.6.tgz", @@ -29784,20 +30390,6 @@ "node": ">=18" } }, - "node_modules/whatwg-url": { - "version": "8.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/whatwg-url/-/whatwg-url-8.7.0.tgz", - "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==", - "dev": true, - "dependencies": { - "lodash": "^4.7.0", - "tr46": "^2.1.0", - "webidl-conversions": "^6.1.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-2.0.2.tgz", @@ -29867,12 +30459,6 @@ "node": ">= 0.4" } }, - "node_modules/which-module": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which-module/-/which-module-2.0.1.tgz", - "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", - "dev": true - }, "node_modules/which-typed-array": { "version": "1.1.15", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which-typed-array/-/which-typed-array-1.1.15.tgz", @@ -29964,22 +30550,6 @@ "node": ">=10.0.0" } }, - "node_modules/workbox-build/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, "node_modules/workbox-build/node_modules/source-map": { "version": "0.8.0-beta.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.8.0-beta.0.tgz", @@ -30289,16 +30859,16 @@ } }, "node_modules/ws": { - "version": "7.5.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ws/-/ws-7.5.10.tgz", - "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "version": "8.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { - "node": ">=8.3.0" + "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { @@ -30322,12 +30892,6 @@ "repeat-string": "^1.5.2" } }, - "node_modules/xml-name-validator": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", - "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", - "dev": true - }, "node_modules/xmlbuilder": { "version": "15.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/xmlbuilder/-/xmlbuilder-15.0.0.tgz", @@ -30352,10 +30916,13 @@ } }, "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "version": "5.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/yallist": { "version": "3.1.1", @@ -30363,150 +30930,43 @@ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "engines": { - "node": ">= 6" - } - }, - "node_modules/yargs": { - "version": "13.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-13.3.2.tgz", - "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", - "dev": true, - "dependencies": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.2" - } - }, - "node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yargs/node_modules/ansi-regex": { - "version": "4.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-4.1.1.tgz", - "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/yargs/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "version": "2.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yaml/-/yaml-2.6.0.tgz", + "integrity": "sha512-a6ae//JvKDEra2kdi1qzCyrJW/WZCgFi8ydDV+eXExl95t+5R+ijnqHJbz9tmMh8FUjx3iv2fCQ4dclAQlO2UQ==", "dev": true, - "dependencies": { - "p-limit": "^2.0.0" + "license": "ISC", + "bin": { + "yaml": "bin.mjs" }, "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">= 14" } }, - "node_modules/yargs/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=6" + "node": ">=12" } }, - "node_modules/yargs/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, "engines": { - "node": ">=6" + "node": ">=12" } }, "node_modules/yauzl": { diff --git a/api-catalog-ui/frontend/package.json b/api-catalog-ui/frontend/package.json index b703a64f24..224fb5b033 100644 --- a/api-catalog-ui/frontend/package.json +++ b/api-catalog-ui/frontend/package.json @@ -5,9 +5,10 @@ "homepage": ".", "dependencies": { "@emotion/core": "11.0.0", - "@emotion/is-prop-valid": "1.3.0", + "@emotion/is-prop-valid": "1.3.1", "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", + "@eslint/migrate-config": "^1.3.1", "@jest/globals": "29.7.0", "@material-ui/core": "4.12.4", "@material-ui/icons": "4.11.3", @@ -15,8 +16,8 @@ "@mui/material": "5.16.7", "@react-loadable/revised": "1.5.0", "@types/enzyme": "3.10.18", - "@types/jest": "29.5.12", - "@types/react": "18.3.5", + "@types/jest": "29.5.13", + "@types/react": "18.3.11", "agentkeepalive": "4.5.0", "buffer": "6.0.3", "emotion-theming": "11.0.0", @@ -28,7 +29,7 @@ "htmr": "1.0.2", "install": "0.13.0", "lodash": "4.17.21", - "loglevel": "1.9.1", + "loglevel": "1.9.2", "openapi-snippet": "0.14.0", "react": "18.3.1", "react-app-polyfill": "3.0.0", @@ -36,7 +37,7 @@ "react-hook-form": "7.53.0", "react-redux": "9.1.2", "react-router-dom": "5.3.4", - "react-toastify": "10.0.5", + "react-toastify": "10.0.6", "redux": "5.0.1", "redux-catch": "1.3.1", "redux-logger": "3.0.6", @@ -45,19 +46,18 @@ "redux-persist-transform-filter": "0.0.22", "redux-thunk": "3.1.0", "rxjs": "7.8.1", - "sass": "1.78.0", + "sass": "1.79.5", "stream": "0.0.3", "swagger-ui-react": "5.17.14", - "undici": "6.19.8", "url": "0.11.4", "util": "0.12.5", - "uuid": "9.0.1" + "uuid": "10.0.0" }, "scripts": { "lint": "eslint \"src/**/*.{js,jsx}\"", "build": "react-app-rewired build", "postbuild": "rimraf build/**/*.map", - "test": "react-app-rewired test --silent --watchAll=false --env=jsdom components/* utils/* reducers/* epics/* actions/* selectors/* ErrorBoundary/* helpers/* --reporters=default --reporters=jest-html-reporter --coverage", + "test": "react-app-rewired test --runInBand --silent --watchAll=false --env=jsdom components/* utils/* reducers/* epics/* actions/* selectors/* ErrorBoundary/* helpers/* --reporters=default --reporters=jest-html-reporter --coverage", "cy:open": "cypress open", "cy:e2e:ci": "cypress run --spec \"cypress/e2e/**/*.cy.js\" --env catalogHomePage=https://gateway-service:10010/apicatalog/ui/v1,gatewayOktaRedirect=https://gateway-service:10010/gateway/oauth2/authorization/okta?returnUrl=https%3A%2F%2Fgateway-service%3A10010%2Fapplication%2Fversion --browser chrome --headless", "cy:e2e:localhost": "cypress run --spec \"cypress/e2e/**/*.cy.js\" --browser chrome --headless", @@ -78,39 +78,41 @@ "includeFailureMsg": true }, "devDependencies": { - "@babel/core": "7.25.2", - "@babel/eslint-parser": "7.25.1", + "@babel/core": "7.25.8", + "@babel/eslint-parser": "7.25.8", "@babel/plugin-proposal-private-property-in-object": "7.21.11", - "@babel/preset-env": "7.25.4", - "@babel/preset-react": "7.24.7", + "@babel/preset-env": "7.25.8", + "@babel/preset-react": "7.25.7", "@cfaester/enzyme-adapter-react-18": "0.8.0", - "@testing-library/dom": "8.20.1", + "@eslint/compat": "1.2.0", + "@eslint/js": "9.12.0", + "@testing-library/dom": "10.4.0", "@testing-library/jest-dom": "6.5.0", "@testing-library/react": "16.0.1", - "@testing-library/user-event": "13.5.0", - "ajv": "7.2.4", - "ansi-regex": "5.0.1", - "body-parser": "1.20.2", - "caniuse-lite": "1.0.30001655", - "cheerio": "1.0.0", - "concurrently": "5.3.0", + "@testing-library/user-event": "14.5.2", + "ajv": "8.17.1", + "ansi-regex": "6.1.0", + "body-parser": "1.20.3", + "caniuse-lite": "1.0.30001669", + "concurrently": "9.0.1", "cors": "2.8.5", "cross-env": "7.0.3", - "cypress": "13.14.1", + "cypress": "13.15.0", "cypress-file-upload": "5.0.8", "enzyme": "3.11.0", - "eslint": "7.32.0", + "eslint": "9.12.0", "eslint-config-airbnb": "19.0.4", - "eslint-config-prettier": "8.10.0", - "eslint-plugin-cypress": "2.15.2", - "eslint-plugin-flowtype": "5.10.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-cypress": "4.0.0", + "eslint-plugin-flowtype": "8.0.3", "eslint-plugin-header": "3.1.1", - "eslint-plugin-import": "2.30.0", - "eslint-plugin-jsx-a11y": "6.9.0", - "eslint-plugin-prettier": "3.4.1", - "eslint-plugin-react": "7.35.2", - "express": "4.19.2", - "html-loader": "4.2.0", + "eslint-plugin-import": "2.31.0", + "eslint-plugin-jsx-a11y": "6.10.0", + "eslint-plugin-prettier": "5.2.1", + "eslint-plugin-react": "7.37.1", + "express": "4.21.1", + "globals": "15.11.0", + "html-loader": "5.1.0", "jest": "29.7.0", "jest-environment-enzyme": "7.1.2", "jest-enzyme": "7.1.2", @@ -120,36 +122,37 @@ "jest-watch-typeahead": "2.2.2", "json-schema": "0.4.0", "mini-css-extract-plugin": "2.9.1", - "nodemon": "2.0.22", + "nodemon": "3.1.7", "nth-check": "2.1.1", - "prettier": "2.8.8", + "prettier": "3.3.3", "prop-types": "15.8.1", "querystring-es3": "0.2.1", "react-app-rewired": "2.2.1", "react-error-overlay": "6.0.11", "react-scripts": "5.0.1", "redux-mock-store": "1.5.4", - "rimraf": "3.0.2", + "rimraf": "6.0.1", "source-map-explorer": "2.5.3", - "start-server-and-test": "2.0.5", + "start-server-and-test": "2.0.8", "tmpl": "1.0.5", - "yaml": "1.10.2" + "yaml": "2.6.0", + "undici": "6.19.8" }, "overrides": { "nth-check": "2.1.1", "jsdom": "16.7.0", - "got": "12.6.1", + "got": "14.4.3", "react-error-overlay": "6.0.11", - "tough-cookie": "4.1.4", - "@braintree/sanitize-url": "6.0.4", + "tough-cookie": "5.0.0", + "@braintree/sanitize-url": "7.1.0", "resolve-url-loader": "5.0.0", "lodash": "4.17.21", "semver": "7.6.3", - "@babel/traverse": "7.25.6" + "@babel/traverse": "7.25.7" }, "engines": { - "npm": "=9.9.3", - "node": "=18.20.4" + "npm": "=10.9.0", + "node": "=20.18.0" }, "browserslist": [ ">0.2%", diff --git a/api-catalog-ui/frontend/src/actions/user-actions.jsx b/api-catalog-ui/frontend/src/actions/user-actions.jsx index af0ea02378..7f9514be91 100644 --- a/api-catalog-ui/frontend/src/actions/user-actions.jsx +++ b/api-catalog-ui/frontend/src/actions/user-actions.jsx @@ -40,8 +40,14 @@ function login(credentials) { if (credentials.newPassword) { showUpdatePassSuccess = true; } + const dashBoardPath = '/dashboard'; dispatch(success(token, showUpdatePassSuccess)); - history.push('/dashboard'); + if (history.location.pathname !== dashBoardPath) { + history.replace(dashBoardPath); + window.location.reload(); + } else { + history.push(dashBoardPath); + } }, (error) => { if (error.messageNumber === 'ZWEAT413E') { diff --git a/api-catalog-ui/frontend/src/actions/user-actions.test.jsx b/api-catalog-ui/frontend/src/actions/user-actions.test.jsx index 099cdff072..e1343dde07 100644 --- a/api-catalog-ui/frontend/src/actions/user-actions.test.jsx +++ b/api-catalog-ui/frontend/src/actions/user-actions.test.jsx @@ -52,15 +52,15 @@ describe('>>> User actions tests', () => { userService.login = jest.fn().mockResolvedValue('token'); - const pushSpy = jest.spyOn(history, 'push'); + const replaceSpy = jest.spyOn(history, 'replace'); await userActions.login(credentials)(dispatch); expect(dispatch.mock.calls[0][0]).toStrictEqual(expectedAction); - expect(pushSpy).toHaveBeenCalledWith('/dashboard'); + expect(replaceSpy).toHaveBeenCalledWith('/dashboard'); - pushSpy.mockRestore(); + replaceSpy.mockRestore(); }); it('should logout', async () => { diff --git a/api-catalog-ui/frontend/src/components/App/App.jsx b/api-catalog-ui/frontend/src/components/App/App.jsx index 2185450ef5..47d9cb6846 100644 --- a/api-catalog-ui/frontend/src/components/App/App.jsx +++ b/api-catalog-ui/frontend/src/components/App/App.jsx @@ -16,7 +16,7 @@ import '../../assets/css/APIMReactToastify.css'; import PageNotFound from '../PageNotFound/PageNotFound'; import HeaderContainer from '../Header/HeaderContainer'; import Spinner from '../Spinner/Spinner'; -import { AsyncDashboardContainer, AsyncDetailPageContainer, AsyncLoginContainer } from './AsyncModules'; // eslint-disable-line import/no-cycle +import { AsyncDashboardContainer, AsyncDetailPageContainer, AsyncLoginContainer } from './AsyncModules'; function App({ history }) { const isLoading = true; @@ -50,7 +50,7 @@ function App({ history }) { exact path={dashboardPath} render={(props, state) => ( - + )} diff --git a/api-catalog-ui/frontend/src/components/App/AppContainer.jsx b/api-catalog-ui/frontend/src/components/App/AppContainer.jsx index d2247ad7b9..0b36fd3c5d 100644 --- a/api-catalog-ui/frontend/src/components/App/AppContainer.jsx +++ b/api-catalog-ui/frontend/src/components/App/AppContainer.jsx @@ -8,6 +8,6 @@ * Copyright Contributors to the Zowe Project. */ import { withRouter } from 'react-router-dom'; -import App from './App'; // eslint-disable-line import/no-cycle +import App from './App'; export default withRouter(App); diff --git a/api-catalog-ui/frontend/src/components/App/AsyncModules.jsx b/api-catalog-ui/frontend/src/components/App/AsyncModules.jsx index 1a00402b46..227e8a0ada 100644 --- a/api-catalog-ui/frontend/src/components/App/AsyncModules.jsx +++ b/api-catalog-ui/frontend/src/components/App/AsyncModules.jsx @@ -11,7 +11,7 @@ import loadable from '@react-loadable/revised'; import { lazy } from 'react'; export const AsyncAppContainer = loadable({ - loader: () => import('./AppContainer'), // eslint-disable-line import/no-cycle + loader: () => import('./AppContainer'), loading: () => null, }); diff --git a/api-catalog-ui/frontend/src/components/DetailPage/DetailPage.jsx b/api-catalog-ui/frontend/src/components/DetailPage/DetailPage.jsx index 443f3ed67b..d3071fe544 100644 --- a/api-catalog-ui/frontend/src/components/DetailPage/DetailPage.jsx +++ b/api-catalog-ui/frontend/src/components/DetailPage/DetailPage.jsx @@ -87,7 +87,6 @@ export default class DetailPage extends Component { } } const hasTiles = !fetchTilesError && tiles && tiles.length > 0; - const showSideBar = false; if (hasTiles && tiles[0]?.customStyleConfig && Object.keys(tiles[0].customStyleConfig).length > 0) { customUIStyle(tiles[0].customStyleConfig); } @@ -194,8 +193,6 @@ export default class DetailPage extends Component { )} - - {showSideBar &&
}
); } diff --git a/api-catalog-ui/frontend/src/components/Error/ErrorFormatter.jsx b/api-catalog-ui/frontend/src/components/Error/ErrorFormatter.jsx index 73150f2b9c..00c765eb0e 100644 --- a/api-catalog-ui/frontend/src/components/Error/ErrorFormatter.jsx +++ b/api-catalog-ui/frontend/src/components/Error/ErrorFormatter.jsx @@ -31,7 +31,7 @@ function extractAjaxError(error) { return null; } -function formaHtmlError(message, color) { +function formatHtmlError(message, color) { return ( {htmr(message)} @@ -39,48 +39,54 @@ function formaHtmlError(message, color) { ); } -const formatError = (error) => { - let message = 'Could not determine error'; +function handleValidError(error) { + let message = error.error; let color = colorDanger; + const extractedAjaxError = extractAjaxError(error.error); + if (extractedAjaxError) { + const { msg, clr } = extractedAjaxError; + return formatHtmlError(msg, clr); + } + if (error.key !== null && error.key !== undefined) { + message = `${error.key} : ${error.text}`; + switch (error.messageType.levelStr) { + case 'ERROR': + color = colorDanger; + break; + case 'WARNING': + color = colorWarning; + break; + default: + color = colorDanger; + } + } + return formatHtmlError(message, color); +} + +const formatError = (error) => { + const message = 'Could not determine error'; if (error === null || error === undefined) { - return formaHtmlError(message, color); + return formatHtmlError(message, colorDanger); } if (error.id !== undefined && error.timestamp !== undefined) { - message = error.error; - color = colorDanger; - const extractedAjaxError = extractAjaxError(error.error); - if (extractedAjaxError) { - const { msg, clr } = extractedAjaxError; - return formaHtmlError(msg, clr); - } - if (error.key !== null && error.key !== undefined) { - message = `${error.key} : ${error.text}`; - switch (error.messageType.levelStr) { - case 'ERROR': - color = colorDanger; - break; - case 'WARNING': - color = colorWarning; - break; - default: - color = colorDanger; - } - } - return formaHtmlError(message, color); + return handleValidError(error); } if (error.name === 'AjaxError') { - const { msg, clr } = extractAjaxError(error); - return formaHtmlError(msg, clr); + const extractedAjaxError = extractAjaxError(error); + if (extractedAjaxError) { + const { msg, clr } = extractedAjaxError; + return formatHtmlError(msg, clr); + } } if (error.message !== undefined) { - return formaHtmlError(error.message, colorDanger); + return formatHtmlError(error.message, colorDanger); } - return formaHtmlError(message, color); + return formatHtmlError(message, colorDanger); }; export default formatError; diff --git a/api-catalog-ui/frontend/src/components/ErrorBoundary/BigShield/BigShield.jsx b/api-catalog-ui/frontend/src/components/ErrorBoundary/BigShield/BigShield.jsx index 2e64cae1e1..10c485f396 100644 --- a/api-catalog-ui/frontend/src/components/ErrorBoundary/BigShield/BigShield.jsx +++ b/api-catalog-ui/frontend/src/components/ErrorBoundary/BigShield/BigShield.jsx @@ -99,7 +99,6 @@ export default class BigShield extends Component {
- {/* eslint-disable-next-line jsx-a11y/label-has-for */} @@ -117,7 +116,6 @@ export default class BigShield extends Component {
- {/* eslint-disable-next-line jsx-a11y/label-has-for */} diff --git a/api-catalog-ui/frontend/src/components/ErrorBoundary/Shield/Shield.jsx b/api-catalog-ui/frontend/src/components/ErrorBoundary/Shield/Shield.jsx index 4bc409c55f..c316e6039a 100644 --- a/api-catalog-ui/frontend/src/components/ErrorBoundary/Shield/Shield.jsx +++ b/api-catalog-ui/frontend/src/components/ErrorBoundary/Shield/Shield.jsx @@ -36,7 +36,6 @@ export default class Shield extends Component {

{title}

- {/* eslint-disable-next-line jsx-a11y/label-has-for */} diff --git a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUI.test.jsx b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUI.test.jsx index bc7c8786a7..b62c7428e1 100644 --- a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUI.test.jsx +++ b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUI.test.jsx @@ -11,7 +11,7 @@ import { getIntrospectionQuery } from 'graphql/utilities'; import { render, screen, waitFor, act } from '@testing-library/react'; import '@testing-library/jest-dom'; import GraphQLUI from './GraphQLUIApiml'; - +import { getUrl } from './GraphQLUIApiml'; const host = 'localhost:3000'; const protocol = 'https:'; const graphqlUrl = 'https://localhost:4000/discoverableclient/api/v3/graphql'; @@ -85,37 +85,21 @@ describe('>>> GraphQL component tests', () => { }); } - // function mockFetcherError() { - // global.fetch = jest.fn(); - // jest.mock('graphql/utilities', () => ({ - // ...jest.requireActual('graphql/utilities'), - // buildClientSchema: jest.fn((data) => data), - // })); - // global.fetch.mockRejectedValueOnce(new Error('Network Error')); - // } - it('should render the GraphiQL container', async () => { await act(async () => render()); expect(screen.getByTestId('graphiql-container')).toBeInTheDocument(); }, 10000); it('getUrl constructs the correct URL', async () => { - mockFetcher(); - render(); - await waitFor(() => expect(fetch).toHaveBeenCalled()); - - expect(fetch).toHaveBeenCalledWith( - `${protocol}//${host}/discoverableclient/api/v3/graphql`, - expect.objectContaining({ - method: 'POST', - headers: { - Accept: 'application/json', - 'Content-Type': 'application/json', - }, - body: expect.any(String), - credentials: 'same-origin', - }) - ); + const originalLocation = window.location; + window.location = { + protocol: 'https:', + host: 'example.com', + }; + const graphqlUrl = 'https://some-api.com/graphql'; + const result = getUrl(graphqlUrl); + expect(result).toBe('https://example.com/graphql'); + window.location = originalLocation; }); it('Fetches and sets schema on mount', async () => { diff --git a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApiml.jsx b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApiml.jsx index 401058bb39..2863effb0c 100644 --- a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApiml.jsx +++ b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApiml.jsx @@ -19,7 +19,7 @@ import { buildClientSchema, getIntrospectionQuery } from 'graphql/utilities'; * @param {string} graphqlUrl - The GraphQL endpoint URL. * @returns {string} The full URL for the GraphQL endpoint. */ -function getUrl(graphqlUrl) { +export function getUrl(graphqlUrl) { const location = `${window.location.protocol}//${window.location.host}`; const urlForPathName = new URL(graphqlUrl); const pathName = urlForPathName.pathname; @@ -78,7 +78,7 @@ export default function GraphQLUIApiml(props) { try { const introspectionQuery = getIntrospectionQuery(); const result = await fetcher({ query: introspectionQuery }); - if (result && result.data) { + if (result?.data) { const clientSchema = buildClientSchema(result.data); setSchema(clientSchema); } else { diff --git a/api-catalog-ui/frontend/src/components/Login/Login.jsx b/api-catalog-ui/frontend/src/components/Login/Login.jsx index 211a81dc32..8d1df9d59e 100644 --- a/api-catalog-ui/frontend/src/components/Login/Login.jsx +++ b/api-catalog-ui/frontend/src/components/Login/Login.jsx @@ -88,10 +88,10 @@ function Login(props) { if (invalidNewPassword || isSuspended) { messageText = `${filter[0].messageText}`; } - } else if (error.status === 401 && authentication.sessionOn) { + } else if (error?.status === 401 && authentication.sessionOn) { messageText = `(${errorMessages.messages[0].messageKey}) ${errorMessages.messages[0].messageText}`; authentication.onCompleteHandling(); - } else if (error.status === 500) { + } else if (error?.status === 500) { messageText = `(${errorMessages.messages[1].messageKey}) ${errorMessages.messages[1].messageText}`; } return { messageText, expired, invalidNewPassword, isSuspended, invalidCredentials }; diff --git a/api-catalog-ui/frontend/src/components/ServiceTab/InstanceInfo.jsx b/api-catalog-ui/frontend/src/components/ServiceTab/InstanceInfo.jsx index a89b14ec9e..b011c79de5 100644 --- a/api-catalog-ui/frontend/src/components/ServiceTab/InstanceInfo.jsx +++ b/api-catalog-ui/frontend/src/components/ServiceTab/InstanceInfo.jsx @@ -31,7 +31,6 @@ export default class InstanceInfo extends Component {
- {/* eslint-disable-next-line jsx-a11y/label-has-for */} {!hideServiceInfo && {selectedService.baseUrl}} @@ -40,7 +39,6 @@ export default class InstanceInfo extends Component {
- {/* eslint-disable-next-line jsx-a11y/label-has-for */} {apiId} diff --git a/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx b/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx index 402f3bb9dc..383f0d7806 100644 --- a/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx +++ b/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx @@ -7,7 +7,7 @@ * * Copyright Contributors to the Zowe Project. */ -import { Link, Typography, Tooltip, MenuItem, Select, Button } from '@material-ui/core'; +import { Button, Link, MenuItem, Select, Tooltip, Typography } from '@material-ui/core'; import { Component } from 'react'; import PropTypes from 'prop-types'; import Shield from '../ErrorBoundary/Shield/Shield'; @@ -142,7 +142,7 @@ export default class ServiceTab extends Component { if (!apis || typeof apis !== 'object') { return null; } - const apiKey = Object.keys(apis).find((key) => apis[key] && apis[key].graphqlUrl); + const apiKey = Object.keys(apis).find((key) => apis[key]?.graphqlUrl); return apiKey ? apis[apiKey].graphqlUrl : null; }; @@ -215,7 +215,6 @@ export default class ServiceTab extends Component { placement="bottom" > - {/* eslint-disable-next-line jsx-a11y/label-has-for */} {basePath} @@ -226,7 +225,6 @@ export default class ServiceTab extends Component { placement="bottom" > - {/* eslint-disable-next-line jsx-a11y/label-has-for */} {selectedService.serviceId} @@ -237,7 +235,6 @@ export default class ServiceTab extends Component { placement="bottom" > - {/* eslint-disable-next-line jsx-a11y/label-has-for */} {sso} diff --git a/api-catalog-ui/frontend/src/components/ServicesNavigationBar/ServicesNavigationBar.jsx b/api-catalog-ui/frontend/src/components/ServicesNavigationBar/ServicesNavigationBar.jsx index 7f030b6caa..b61f4a6aff 100644 --- a/api-catalog-ui/frontend/src/components/ServicesNavigationBar/ServicesNavigationBar.jsx +++ b/api-catalog-ui/frontend/src/components/ServicesNavigationBar/ServicesNavigationBar.jsx @@ -42,8 +42,8 @@ export default class ServicesNavigationBar extends Component { handlePopstate = () => { const { services, storeCurrentTileId } = this.props; - const url = window.location.href; - if (url?.includes('/service')) { + const url = window.location.href ?? ''; + if (url.includes('/service')) { const parts = url.split('/'); const serviceId = parts[parts.length - 1]; const correctTile = services.find((tile) => diff --git a/api-catalog-ui/frontend/src/components/Swagger/SwaggerUI.test.jsx b/api-catalog-ui/frontend/src/components/Swagger/SwaggerUI.test.jsx index 487d944b81..874199559f 100644 --- a/api-catalog-ui/frontend/src/components/Swagger/SwaggerUI.test.jsx +++ b/api-catalog-ui/frontend/src/components/Swagger/SwaggerUI.test.jsx @@ -254,13 +254,15 @@ describe('>>> Swagger component tests', () => { endpoint: '/test', language: 'java', }; - const container = document.createElement('div'); - document.body.appendChild(container); - await act(async () => - createRoot(container).render(, container) + const wrapper = shallow( +
+ +
); - expect(container).not.toBeNull(); + const swaggerDiv = wrapper.find('#swaggerContainer'); + + expect(swaggerDiv).toBeDefined(); }); it('should not create element if api portal disabled and element does not exist', () => { diff --git a/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardInputs.jsx b/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardInputs.jsx index 3e25439b75..b8b834f0c9 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardInputs.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardInputs.jsx @@ -289,7 +289,6 @@ class WizardInputs extends Component { */ loadInputs = () => { const dataAsObject = this.props.data; - const { multiple } = this.props.data; if ( dataAsObject === undefined || dataAsObject.content === undefined || @@ -298,6 +297,7 @@ class WizardInputs extends Component { ) { return null; } + const { multiple } = this.props.data; let result = []; let index = 0; dataAsObject.content.forEach((c) => { diff --git a/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardNavigation.test.jsx b/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardNavigation.test.jsx index 920a255739..9507f360b8 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardNavigation.test.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/WizardComponents/WizardNavigation.test.jsx @@ -31,7 +31,7 @@ jest.mock( } ); describe('>>> Wizard navigation tests', () => { - it('should handle category change', () => { + it('should handle category change', async () => { const next = jest.fn(); const changeWizardCategory = jest.fn(); const validateInput = jest.fn(); @@ -46,11 +46,11 @@ describe('>>> Wizard navigation tests', () => { validateInput={validateInput} /> ); - userEvent.click(screen.getByRole('tab')); + await userEvent.click(screen.getByRole('tab')); expect(changeWizardCategory).toHaveBeenCalled(); expect(validateInput).toHaveBeenCalled(); }); - it('should validate all tabs on YAML tab click', () => { + it('should validate all tabs on YAML tab click', async () => { const next = jest.fn(); const changeWizardCategory = jest.fn(); const validateInput = jest.fn(); @@ -88,9 +88,9 @@ describe('>>> Wizard navigation tests', () => { assertAuthorization={jest.fn()} /> ); - userEvent.click(screen.getByRole('tab', { name: 'Nav #1' })); - userEvent.click(screen.getByRole('tab', { name: 'Nav #2' })); - userEvent.click(screen.getByRole('tab', { name: 'YAML result' })); + await userEvent.click(screen.getByRole('tab', { name: 'Nav #1' })); + await userEvent.click(screen.getByRole('tab', { name: 'Nav #2' })); + await userEvent.click(screen.getByRole('tab', { name: 'YAML result' })); expect(validateInput).toHaveBeenCalledTimes(5); }); it('should not validate upon accessing something else', () => { diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_base_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_base_categories.jsx index 7094f8c6c2..1154223da3 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_base_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_base_categories.jsx @@ -9,7 +9,6 @@ */ import { wizRegex } from './wizard_regex_restrictions'; -// eslint-disable-next-line import/prefer-default-export export const baseCategories = [ { text: 'Basic info', diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_categories.jsx index c2842edc01..cc3d032591 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_categories.jsx @@ -22,7 +22,6 @@ import { springSpecificCategories } from './wizard_spring_categories'; import { staticSpecificCategories } from './wizard_static_categories'; import { nodeSpecificCategories } from './wizard_node_categories'; import { micronautSpecificCategories } from './wizard_micronaut_categories'; -// eslint-disable-next-line import/prefer-default-export export const categoryData = [ ...baseCategories, ...springSpecificCategories, diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_defaults.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_defaults.jsx index 64fb24dab7..71488b0c8b 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_defaults.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_defaults.jsx @@ -11,7 +11,6 @@ * Define default values for different enablers */ -// eslint-disable-next-line import/prefer-default-export export const defaultPJE = { SSL: { protocol: { value: 'TLSv1.2', hide: true } }, }; diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_micronaut_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_micronaut_categories.jsx index da9f37b5cf..424a887280 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_micronaut_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_micronaut_categories.jsx @@ -7,7 +7,6 @@ * * Copyright Contributors to the Zowe Project. */ -// eslint-disable-next-line import/prefer-default-export export const micronautSpecificCategories = [ { text: 'API Info for Micronaut', diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_node_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_node_categories.jsx index 69099679fa..3ecdbc406c 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_node_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_node_categories.jsx @@ -7,7 +7,6 @@ * * Copyright Contributors to the Zowe Project. */ -// eslint-disable-next-line import/prefer-default-export export const nodeSpecificCategories = [ { text: 'SSL for Node', diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_onboarding_methods.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_onboarding_methods.jsx index 45de94635b..76a0f61b62 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_onboarding_methods.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_onboarding_methods.jsx @@ -12,7 +12,6 @@ import { defaultMicronaut, defaultNode, defaultPJE, defaultSpring } from './wiza /** * Define which categories each enabler needs. Properties indentation and multiple can be used here as well.(override) */ -// eslint-disable-next-line import/prefer-default-export export const enablerData = [ { text: 'Plain Java Enabler', diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_regex_restrictions.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_regex_restrictions.jsx index 1755b2904c..bd860e7f87 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_regex_restrictions.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_regex_restrictions.jsx @@ -7,7 +7,6 @@ * * Copyright Contributors to the Zowe Project. */ -// eslint-disable-next-line import/prefer-default-export export const wizRegex = { gatewayUrl: { value: '^(/[a-z]+\\/v\\d+)$', tooltip: 'Format: /api/vX, Example: /api/v1' }, version: { value: '^(\\d+)\\.(\\d+)\\.(\\d+)$', tooltip: 'Semantic versioning expected, example: 1.0.7' }, diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_spring_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_spring_categories.jsx index 38ca46904d..ad3a22778f 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_spring_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_spring_categories.jsx @@ -7,7 +7,6 @@ * * Copyright Contributors to the Zowe Project. */ -// eslint-disable-next-line import/prefer-default-export export const springSpecificCategories = [ { text: 'Enable', diff --git a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_static_categories.jsx b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_static_categories.jsx index 46397f690c..0912cd1999 100644 --- a/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_static_categories.jsx +++ b/api-catalog-ui/frontend/src/components/Wizard/configs/wizard_static_categories.jsx @@ -9,7 +9,6 @@ */ import { wizRegex } from './wizard_regex_restrictions'; -// eslint-disable-next-line import/prefer-default-export export const staticSpecificCategories = [ { text: 'URL for Static', diff --git a/api-catalog-ui/frontend/src/epics/fetch-tiles.jsx b/api-catalog-ui/frontend/src/epics/fetch-tiles.jsx index 196e15c057..482b6a41c8 100644 --- a/api-catalog-ui/frontend/src/epics/fetch-tiles.jsx +++ b/api-catalog-ui/frontend/src/epics/fetch-tiles.jsx @@ -11,7 +11,6 @@ import * as log from 'loglevel'; import { of, throwError, timer } from 'rxjs'; import { ofType } from 'redux-observable'; -// eslint-disable-next-line import/no-extraneous-dependencies import { catchError, debounceTime, exhaustMap, map, mergeMap, retryWhen, takeUntil } from 'rxjs/operators'; import { FETCH_TILES_REQUEST, FETCH_NEW_TILES_REQUEST, FETCH_TILES_STOP } from '../constants/catalog-tile-constants'; import { diff --git a/api-catalog-ui/frontend/src/epics/index.jsx b/api-catalog-ui/frontend/src/epics/index.jsx index 93363b340e..78e42a11d2 100644 --- a/api-catalog-ui/frontend/src/epics/index.jsx +++ b/api-catalog-ui/frontend/src/epics/index.jsx @@ -11,5 +11,4 @@ import { combineEpics } from 'redux-observable'; import { fetchTilesPollingEpic, fetchTilesPollingEpic2 } from './fetch-tiles'; -// eslint-disable-next-line import/prefer-default-export export const rootEpic = combineEpics(fetchTilesPollingEpic, fetchTilesPollingEpic2); diff --git a/api-catalog-ui/frontend/src/index.js b/api-catalog-ui/frontend/src/index.js index 6bcecfcbfc..f6d3d897b6 100644 --- a/api-catalog-ui/frontend/src/index.js +++ b/api-catalog-ui/frontend/src/index.js @@ -13,7 +13,6 @@ import { createRoot } from 'react-dom/client'; import { Provider } from 'react-redux'; import { applyMiddleware, compose, createStore } from 'redux'; import { createEpicMiddleware } from 'redux-observable'; -// eslint-disable-next-line import/no-extraneous-dependencies import { ajax } from 'rxjs/ajax'; import logger from 'redux-logger'; import * as log from 'loglevel'; diff --git a/api-catalog-ui/frontend/src/reducers/index.jsx b/api-catalog-ui/frontend/src/reducers/index.jsx index 36c7dc3070..9761d22f82 100644 --- a/api-catalog-ui/frontend/src/reducers/index.jsx +++ b/api-catalog-ui/frontend/src/reducers/index.jsx @@ -31,5 +31,4 @@ const reducers = { wizardReducer, }; -// eslint-disable-next-line import/prefer-default-export export const rootReducer = combineReducers(reducers); diff --git a/api-catalog-ui/frontend/src/utils/filterApis.js b/api-catalog-ui/frontend/src/utils/filterApis.js index 0a20e344ab..e51937afe7 100644 --- a/api-catalog-ui/frontend/src/utils/filterApis.js +++ b/api-catalog-ui/frontend/src/utils/filterApis.js @@ -48,7 +48,6 @@ export function extendFilter(phrase, taggedOps, system) { /** * Custom Plugin which extends the SwaggerUI filter functionality to filter APIs by tag, summary and description */ -// eslint-disable-next-line import/prefer-default-export export const AdvancedFilterPlugin = function (system) { return { fn: { diff --git a/api-catalog-ui/frontend/src/utils/generateSnippets.js b/api-catalog-ui/frontend/src/utils/generateSnippets.js index 9a90ff5a67..cd672a82d3 100644 --- a/api-catalog-ui/frontend/src/utils/generateSnippets.js +++ b/api-catalog-ui/frontend/src/utils/generateSnippets.js @@ -30,7 +30,7 @@ export const wrapSelectors = { export function getSnippetContent(req, target, codeSnippet) { // get extended info about request - const { spec, oasPathMethod } = req.toJS(); + const { spec, oasPathMethod } = req?.toJS?.() ?? {}; const { path, method } = oasPathMethod; // Include query parameters in the path for comparison const query = req?.get('query'); diff --git a/apiml-common/build.gradle b/apiml-common/build.gradle index caba434f2d..60ab7536b2 100644 --- a/apiml-common/build.gradle +++ b/apiml-common/build.gradle @@ -1,3 +1,7 @@ +plugins { + id "java-test-fixtures" +} + dependencies { api project(':apiml-utility') @@ -17,4 +21,11 @@ dependencies { testCompileOnly libs.lombok annotationProcessor libs.lombok + + testFixturesImplementation libs.spring.boot.starter.test + testFixturesImplementation libs.commons.io + testFixturesImplementation libs.http.client5 + testFixturesImplementation libs.rest.assured + testFixturesImplementation libs.lombok + testFixturesAnnotationProcessor libs.lombok } diff --git a/apiml-common/src/main/resources/logback.xml b/apiml-common/src/main/resources/logback.xml index 6091f14bb4..37885ba2e7 100644 --- a/apiml-common/src/main/resources/logback.xml +++ b/apiml-common/src/main/resources/logback.xml @@ -19,7 +19,7 @@ - + diff --git a/apiml-common/src/testFixtures/java/org/zowe/apiml/util/HttpClientMockHelper.java b/apiml-common/src/testFixtures/java/org/zowe/apiml/util/HttpClientMockHelper.java new file mode 100644 index 0000000000..f7015e9e04 --- /dev/null +++ b/apiml-common/src/testFixtures/java/org/zowe/apiml/util/HttpClientMockHelper.java @@ -0,0 +1,64 @@ +/* + * 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. + */ + +package org.zowe.apiml.util; + +import lombok.SneakyThrows; +import org.apache.commons.io.IOUtils; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.core5.http.ClassicHttpRequest; +import org.apache.hc.core5.http.ClassicHttpResponse; +import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; +import org.apache.hc.core5.http.io.entity.BasicHttpEntity; +import org.mockito.ArgumentMatchers; +import org.mockito.Mockito; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.OngoingStubbing; + +import java.nio.charset.StandardCharsets; + +public class HttpClientMockHelper { + + @SneakyThrows + public static OngoingStubbing whenExecuteThenThrow(CloseableHttpClient httpClientMock, Exception exception) { + return Mockito.when(httpClientMock.execute(ArgumentMatchers.any(ClassicHttpRequest.class), ArgumentMatchers.any(HttpClientResponseHandler.class))) + .thenThrow(exception); + } + + @SneakyThrows + public static OngoingStubbing mockExecuteWithResponse(CloseableHttpClient httpClientMock, ClassicHttpResponse responseMock) { + return Mockito.when(httpClientMock.execute(ArgumentMatchers.any(ClassicHttpRequest.class), ArgumentMatchers.any(HttpClientResponseHandler.class))) + .thenAnswer((InvocationOnMock invocation) -> invokeResponseHandler(invocation, responseMock)); + } + + @SneakyThrows + public static T invokeResponseHandler(InvocationOnMock invocation, ClassicHttpResponse responseMock) { + @SuppressWarnings("unchecked") + HttpClientResponseHandler handler + = (HttpClientResponseHandler) invocation.getArguments()[1]; + return handler.handleResponse(responseMock); + + } + + public static void mockResponse(ClassicHttpResponse responseMock, int statusCode, String responseBody) { + mockResponse(responseMock, statusCode); + mockResponse(responseMock, responseBody); + } + + public static void mockResponse(ClassicHttpResponse responseMock, String responseBody) { + BasicHttpEntity responseEntity = (responseBody == null) ? null : new BasicHttpEntity(IOUtils.toInputStream(responseBody, StandardCharsets.UTF_8), ContentType.APPLICATION_JSON); + Mockito.when(responseMock.getEntity()).thenReturn(responseEntity); + } + + public static void mockResponse(ClassicHttpResponse responseMock, int statusCode) { + Mockito.when(responseMock.getCode()).thenReturn(statusCode); + } +} diff --git a/integration-tests/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java b/apiml-common/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java similarity index 94% rename from integration-tests/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java rename to apiml-common/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java index a4cfecc686..a331b89d75 100644 --- a/integration-tests/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java +++ b/apiml-common/src/testFixtures/java/org/zowe/apiml/util/config/SslContext.java @@ -40,6 +40,18 @@ public class SslContext { private static AtomicBoolean isInitialized = new AtomicBoolean(false); private static AtomicReference configurer = new AtomicReference<>(); + public synchronized static void reset() { + clientCertValid = null; + clientCertApiml = null; + clientCertUser = null; + clientCertUnknownUser = null; + apimlRootCert = null; + selfSignedUntrusted = null; + tlsWithoutCert = null; + configurer.set(null); + isInitialized.set(false); + } + public synchronized static void prepareSslAuthentication(SslContextConfigurer providedConfigurer) throws Exception { if (configurer.get() != null && !configurer.get().equals(providedConfigurer)) { diff --git a/integration-tests/src/testFixtures/java/org/zowe/apiml/util/config/SslContextConfigurer.java b/apiml-common/src/testFixtures/java/org/zowe/apiml/util/config/SslContextConfigurer.java similarity index 100% rename from integration-tests/src/testFixtures/java/org/zowe/apiml/util/config/SslContextConfigurer.java rename to apiml-common/src/testFixtures/java/org/zowe/apiml/util/config/SslContextConfigurer.java diff --git a/apiml-extension-loader/src/main/java/org/zowe/apiml/extension/ExtensionConfigReader.java b/apiml-extension-loader/src/main/java/org/zowe/apiml/extension/ExtensionConfigReader.java index 5d98d05713..21a2a3c905 100644 --- a/apiml-extension-loader/src/main/java/org/zowe/apiml/extension/ExtensionConfigReader.java +++ b/apiml-extension-loader/src/main/java/org/zowe/apiml/extension/ExtensionConfigReader.java @@ -10,7 +10,10 @@ package org.zowe.apiml.extension; -import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import lombok.extern.slf4j.Slf4j; +import org.zowe.apiml.extension.ExtensionDefinition.ApimlServices; import java.io.File; import java.nio.charset.Charset; @@ -21,14 +24,8 @@ import java.util.List; import java.util.Objects; import java.util.Optional; -import java.util.stream.Collectors; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; - -import org.zowe.apiml.extension.ExtensionDefinition.ApimlServices; -import lombok.extern.slf4j.Slf4j; +import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES; @Slf4j public class ExtensionConfigReader { @@ -46,7 +43,7 @@ public String[] getBasePackages() { .filter(Objects::nonNull) .map(ApimlServices::getBasePackage) .filter(Objects::nonNull) - .collect(Collectors.toList()) + .toList() .toArray(new String[0]); } diff --git a/apiml-security-common/build.gradle b/apiml-security-common/build.gradle index 580a2e2865..7528ad89c8 100644 --- a/apiml-security-common/build.gradle +++ b/apiml-security-common/build.gradle @@ -8,6 +8,7 @@ dependencies { implementation libs.http.client5 testImplementation libs.spring.boot.starter.test + testImplementation(testFixtures(project(":apiml-common"))) compileOnly libs.lombok annotationProcessor libs.lombok diff --git a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/config/AuthConfigurationProperties.java b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/config/AuthConfigurationProperties.java index 37e38ca5d2..f3bff3e7cf 100644 --- a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/config/AuthConfigurationProperties.java +++ b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/config/AuthConfigurationProperties.java @@ -104,8 +104,6 @@ public static class CookieProperties { private String cookieNamePAT = ApimlConstants.PAT_COOKIE_AUTH_NAME; private boolean cookieSecure = true; private String cookiePath = "/"; - @Deprecated(since = "Servlet 6.0", forRemoval = true) - private String cookieComment = "API Mediation Layer security token"; private Integer cookieMaxAge = null; private SameSiteCookies cookieSameSite = SameSiteCookies.STRICT; } diff --git a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/filter/CategorizeCertsFilter.java b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/filter/CategorizeCertsFilter.java index 9b7ec7ceb6..9729c1518e 100644 --- a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/filter/CategorizeCertsFilter.java +++ b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/filter/CategorizeCertsFilter.java @@ -10,6 +10,12 @@ package org.zowe.apiml.security.common.filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.ServletRequest; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequestWrapper; +import jakarta.servlet.http.HttpServletResponse; import lombok.Getter; import lombok.NonNull; import lombok.RequiredArgsConstructor; @@ -20,12 +26,6 @@ import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; import org.zowe.apiml.security.common.verify.CertificateValidator; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.ServletRequest; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletRequestWrapper; -import jakarta.servlet.http.HttpServletResponse; import java.io.ByteArrayInputStream; import java.io.IOException; import java.security.cert.Certificate; @@ -33,7 +33,6 @@ import java.security.cert.X509Certificate; import java.util.*; import java.util.function.Predicate; -import java.util.stream.Collectors; /** * This filter processes certificates on request. It decides, which certificates are considered for client authentication @@ -147,7 +146,7 @@ protected void doFilterInternal(@NonNull HttpServletRequest request, @NonNull Ht private X509Certificate[] selectCerts(X509Certificate[] certs, Predicate test) { return Arrays.stream(certs) .filter(test) - .collect(Collectors.toList()).toArray(new X509Certificate[0]); + .toList().toArray(new X509Certificate[0]); } public String base64EncodePublicKey(X509Certificate cert) { diff --git a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/login/SuccessfulLoginHandler.java b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/login/SuccessfulLoginHandler.java index f0ff2c7ced..54618ebfc8 100644 --- a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/login/SuccessfulLoginHandler.java +++ b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/login/SuccessfulLoginHandler.java @@ -10,6 +10,8 @@ package org.zowe.apiml.security.common.login; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.security.core.Authentication; @@ -19,9 +21,6 @@ import org.zowe.apiml.security.common.token.TokenAuthentication; import org.zowe.apiml.util.CookieUtil; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; - /** * Handles the successful login */ @@ -59,7 +58,6 @@ private void setCookie(String token, HttpServletResponse response) { AuthConfigurationProperties.CookieProperties cp = authConfigurationProperties.getCookieProperties(); String cookieHeader = new CookieUtil.CookieHeaderBuilder(cp.getCookieName(), token) - .comment(cp.getCookieComment()) .path(cp.getCookiePath()) .sameSite(cp.getCookieSameSite().getValue()) .maxAge(cp.getCookieMaxAge()) diff --git a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/CertificateValidator.java b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/CertificateValidator.java index fcf0c67d25..00ccab6380 100644 --- a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/CertificateValidator.java +++ b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/CertificateValidator.java @@ -12,6 +12,7 @@ import lombok.Getter; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; @@ -25,6 +26,8 @@ import java.util.List; import java.util.Set; +import static java.util.Collections.emptyList; + /** * Service to verify if given certificate chain can be trusted. */ @@ -60,7 +63,7 @@ public CertificateValidator(TrustedCertificatesProvider trustedCertificatesProvi * @return true if all given certificates are known false otherwise */ public boolean isTrusted(X509Certificate[] certs) { - List trustedCerts = trustedCertificatesProvider.getTrustedCerts(proxyCertificatesEndpoint); + List trustedCerts = StringUtils.isBlank(proxyCertificatesEndpoint) ? emptyList() : trustedCertificatesProvider.getTrustedCerts(proxyCertificatesEndpoint); for (X509Certificate cert : certs) { if (!trustedCerts.contains(cert)) { apimlLog.log("org.zowe.apiml.security.common.verify.untrustedCert"); diff --git a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProvider.java b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProvider.java index 7f4e1ff14b..fea2bae680 100644 --- a/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProvider.java +++ b/apiml-security-common/src/main/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProvider.java @@ -14,9 +14,7 @@ import org.apache.commons.lang3.StringUtils; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.HttpStatus; -import org.apache.hc.core5.http.ParseException; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.cache.annotation.Cacheable; @@ -75,22 +73,22 @@ public List getTrustedCerts(String certificatesEndpoint) { private String callCertificatesEndpoint(String url) { try { HttpGet httpGet = new HttpGet(new URI(url)); - ClassicHttpResponse httpResponse = httpClient.execute(httpGet); - final int statusCode = httpResponse.getCode(); - String body = ""; - if (httpResponse.getEntity() != null) { - body = EntityUtils.toString(httpResponse.getEntity(), StandardCharsets.UTF_8); - } - if (statusCode != HttpStatus.SC_OK) { - apimlLog.log("org.zowe.apiml.security.common.verify.invalidResponse", url, statusCode, body); - return null; - } - log.debug("Trusted certificates from {}: {}", url, body); - return body; - + return httpClient.execute(httpGet, response -> { + final int statusCode = response.getCode(); + String body = ""; + if (response.getEntity() != null) { + body = EntityUtils.toString(response.getEntity(), StandardCharsets.UTF_8); + } + if (statusCode != HttpStatus.SC_OK) { + apimlLog.log("org.zowe.apiml.security.common.verify.invalidResponse", url, statusCode, body); + return null; + } + log.debug("Trusted certificates from {}: {}", url, body); + return body; + }); } catch (URISyntaxException e) { apimlLog.log("org.zowe.apiml.security.common.verify.invalidURL", e.getMessage()); - } catch (IOException | ParseException e) { //TODO: Consider a better message + } catch (IOException e) { apimlLog.log("org.zowe.apiml.security.common.verify.httpError", e.getMessage()); } return null; diff --git a/apiml-security-common/src/main/resources/security-common-log-messages.yml b/apiml-security-common/src/main/resources/security-common-log-messages.yml index b7ac14baed..7e1b569180 100644 --- a/apiml-security-common/src/main/resources/security-common-log-messages.yml +++ b/apiml-security-common/src/main/resources/security-common-log-messages.yml @@ -167,7 +167,7 @@ messages: type: ERROR text: "Invalid body provided in request to create personal access token" reason: "The request body is not valid" - action: "Use a valid body in the request. Format of a message: {validity: int , scopes: [string]}." + action: "Use a valid body in the request. Format of a message: `{validity: int , scopes: [string]}`." # Personal access token messages @@ -183,7 +183,7 @@ messages: number: ZWEAT608 type: ERROR text: "Error mapping between distributed and mainframe identity. Reason: %s %s" - reason: "Unexpected error occurred when mapping between distributed and mainframe identity " + reason: "Unexpected error occurred when mapping between distributed and mainframe identity" action: "Contact Broadcom support." - key: org.zowe.apiml.security.common.OIDCMappingFailed diff --git a/apiml-security-common/src/test/java/org/zowe/apiml/security/common/auth/SafMethodSecurityExpressionControllerTest.java b/apiml-security-common/src/test/java/org/zowe/apiml/security/common/auth/SafMethodSecurityExpressionControllerTest.java index 91bb7955e3..3a2f4f0f85 100644 --- a/apiml-security-common/src/test/java/org/zowe/apiml/security/common/auth/SafMethodSecurityExpressionControllerTest.java +++ b/apiml-security-common/src/test/java/org/zowe/apiml/security/common/auth/SafMethodSecurityExpressionControllerTest.java @@ -12,8 +12,8 @@ import com.fasterxml.jackson.databind.ObjectMapper; import jakarta.servlet.http.HttpServletRequest; +import org.apache.hc.client5.http.utils.Base64; import org.apache.hc.core5.http.HttpHeaders; -import org.apache.tomcat.util.codec.binary.Base64; import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; @@ -29,6 +29,7 @@ import org.springframework.security.authentication.AbstractAuthenticationToken; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -146,9 +147,9 @@ public FailedAuthenticationHandler failedAuthenticationHandler() { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { return http - .authorizeRequests(requests -> requests.anyRequest().authenticated()) - .apply(new CustomSecurityFilters()) - .and().build(); + .authorizeHttpRequests(requests -> requests.anyRequest().authenticated()) + .with(new CustomSecurityFilters(), Customizer.withDefaults()) + .build(); } @Bean @@ -161,7 +162,7 @@ public SafMethodSecurityExpressionRoot safMethodSecurityExpressionRoot( private class CustomSecurityFilters extends AbstractHttpConfigurer { @Override - public void configure(HttpSecurity http) throws Exception { + public void configure(HttpSecurity http) { AuthenticationManager authenticationManager = http.getSharedObject(AuthenticationManager.class); http.addFilterBefore(new BasicContentFilter( diff --git a/apiml-security-common/src/test/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProviderTest.java b/apiml-security-common/src/test/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProviderTest.java index 6cfe1ada7f..0b2832c0f6 100644 --- a/apiml-security-common/src/test/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProviderTest.java +++ b/apiml-security-common/src/test/java/org/zowe/apiml/security/common/verify/TrustedCertificatesProviderTest.java @@ -14,53 +14,53 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.http.HttpStatus; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.zowe.apiml.util.HttpClientMockHelper; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.security.cert.Certificate; import java.security.cert.X509Certificate; import java.util.List; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.when; +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.reset; @ExtendWith(MockitoExtension.class) class TrustedCertificatesProviderTest { private static final String VALID_CERTIFICATE = - "-----BEGIN CERTIFICATE-----\n" + - "MIID7zCCAtegAwIBAgIED0TPEjANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJD\n" + - "WjEPMA0GA1UECBMGUHJhZ3VlMQ8wDQYDVQQHEwZQcmFndWUxFDASBgNVBAoTC1pv\n" + - "d2UgU2FtcGxlMRwwGgYDVQQLExNBUEkgTWVkaWF0aW9uIExheWVyMRUwEwYDVQQD\n" + - "Ewxab3dlIFNlcnZpY2UwHhcNMTgxMjA3MTQ1NzIyWhcNMjgxMjA0MTQ1NzIyWjB6\n" + - "MQswCQYDVQQGEwJDWjEPMA0GA1UECBMGUHJhZ3VlMQ8wDQYDVQQHEwZQcmFndWUx\n" + - "FDASBgNVBAoTC1pvd2UgU2FtcGxlMRwwGgYDVQQLExNBUEkgTWVkaWF0aW9uIExh\n" + - "eWVyMRUwEwYDVQQDEwxab3dlIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IB\n" + - "DwAwggEKAoIBAQC6Orc/EJ5/t2qam1DiYU/xVbHaQrjd6uvpj2HTvOOohtFZ7/Kx\n" + - "yMAezgB8DBR4+77qXXsdP9ngnTl/i22yGwvo7Tlz6dhnQLnks7VFr1eGGC2ks+rL\n" + - "BJsF/RQexmONG9ddexWD8SOYoW9RRapQqETbcllxOenvzXruOEzaXhMazkK9Cg+J\n" + - "ucNb9HcfhIM0rjLZhqG8Gc8dAtCcxF/xHlVyFQq8fr4u2p/wGmARM14iZeQltQV7\n" + - "F3gxmw3djfcNM5S3tirPrHlZb76ZmmQEn4QiLSP198Lm+4QKAOw1dUpMf4eELO4c\n" + - "EFUHXQUCHLWc5NztZxWW40NrDbZEjcRI5ah7AgMBAAGjfTB7MB0GA1UdJQQWMBQG\n" + - "CCsGAQUFBwMCBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBPAwKwYDVR0RBCQwIoIV\n" + - "bG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3QwHQYDVR0OBBYEFHL1ygBb\n" + - "UCI/ktdk3TgQA6EJlATIMA0GCSqGSIb3DQEBCwUAA4IBAQBHALBlFf0P1TBR1MHQ\n" + - "vXYDFAW+PiyF7zP0HcrvQTAGYhF7uJtRIamapjUdIsDVbqY0RhoFnBOu8ti2z0pW\n" + - "djw47f3X/yj98n+J2aYcO64Ar+ovx93P01MA8+Mz1u/LwXk4pmrbUIcOEtyNu+vT\n" + - "a0jDobC++3Zfv5Y+iD2M8L+jacSMZNCqQByhKtTkAICXg9LMccx4XLYtJ65zGP2h\n" + - "4TEK0MMfO2G1/vUmdb3tq17zKdukj3MUS254mENCck7ioNFR0Cc9lzuSHyBrdb0x\n" + - "M/iHeamNblckK/r1roDjhCAQz9DtmETad/o7qGNFxDTRRShRV9Lww0fFB7PaV7u/\n" + - "VPx2\n" + - "-----END CERTIFICATE-----"; + """ + -----BEGIN CERTIFICATE----- + MIID7zCCAtegAwIBAgIED0TPEjANBgkqhkiG9w0BAQsFADB6MQswCQYDVQQGEwJD + WjEPMA0GA1UECBMGUHJhZ3VlMQ8wDQYDVQQHEwZQcmFndWUxFDASBgNVBAoTC1pv + d2UgU2FtcGxlMRwwGgYDVQQLExNBUEkgTWVkaWF0aW9uIExheWVyMRUwEwYDVQQD + Ewxab3dlIFNlcnZpY2UwHhcNMTgxMjA3MTQ1NzIyWhcNMjgxMjA0MTQ1NzIyWjB6 + MQswCQYDVQQGEwJDWjEPMA0GA1UECBMGUHJhZ3VlMQ8wDQYDVQQHEwZQcmFndWUx + FDASBgNVBAoTC1pvd2UgU2FtcGxlMRwwGgYDVQQLExNBUEkgTWVkaWF0aW9uIExh + eWVyMRUwEwYDVQQDEwxab3dlIFNlcnZpY2UwggEiMA0GCSqGSIb3DQEBAQUAA4IB + DwAwggEKAoIBAQC6Orc/EJ5/t2qam1DiYU/xVbHaQrjd6uvpj2HTvOOohtFZ7/Kx + yMAezgB8DBR4+77qXXsdP9ngnTl/i22yGwvo7Tlz6dhnQLnks7VFr1eGGC2ks+rL + BJsF/RQexmONG9ddexWD8SOYoW9RRapQqETbcllxOenvzXruOEzaXhMazkK9Cg+J + ucNb9HcfhIM0rjLZhqG8Gc8dAtCcxF/xHlVyFQq8fr4u2p/wGmARM14iZeQltQV7 + F3gxmw3djfcNM5S3tirPrHlZb76ZmmQEn4QiLSP198Lm+4QKAOw1dUpMf4eELO4c + EFUHXQUCHLWc5NztZxWW40NrDbZEjcRI5ah7AgMBAAGjfTB7MB0GA1UdJQQWMBQG + CCsGAQUFBwMCBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBPAwKwYDVR0RBCQwIoIV + bG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3QwHQYDVR0OBBYEFHL1ygBb + UCI/ktdk3TgQA6EJlATIMA0GCSqGSIb3DQEBCwUAA4IBAQBHALBlFf0P1TBR1MHQ + vXYDFAW+PiyF7zP0HcrvQTAGYhF7uJtRIamapjUdIsDVbqY0RhoFnBOu8ti2z0pW + djw47f3X/yj98n+J2aYcO64Ar+ovx93P01MA8+Mz1u/LwXk4pmrbUIcOEtyNu+vT + a0jDobC++3Zfv5Y+iD2M8L+jacSMZNCqQByhKtTkAICXg9LMccx4XLYtJ65zGP2h + 4TEK0MMfO2G1/vUmdb3tq17zKdukj3MUS254mENCck7ioNFR0Cc9lzuSHyBrdb0x + M/iHeamNblckK/r1roDjhCAQz9DtmETad/o7qGNFxDTRRShRV9Lww0fFB7PaV7u/ + VPx2 + -----END CERTIFICATE----- + """.stripIndent(); private static final String VALID_CERT_SUBJECT_DN = "CN=Zowe Service,OU=API Mediation Layer,O=Zowe Sample,L=Prague,ST=Prague,C=CZ"; @@ -75,16 +75,23 @@ class TrustedCertificatesProviderTest { private HttpEntity responseEntity; private TrustedCertificatesProvider provider; + @BeforeEach + void setup() { + HttpClientMockHelper.mockExecuteWithResponse(closeableHttpClient, httpResponse); + provider = new TrustedCertificatesProvider(closeableHttpClient); + } + + @AfterEach + void tearDown() { + reset(httpResponse); + } + @Nested class GivenResponseWithValidCertificate { @Test - void whenGetTrustedCerts_thenCertificatesReturned() throws UnsupportedOperationException, IOException { - when(httpResponse.getCode()).thenReturn(HttpStatus.SC_OK); - when(httpResponse.getEntity()).thenReturn(responseEntity); - when(responseEntity.getContent()).thenReturn(new ByteArrayInputStream(VALID_CERTIFICATE.getBytes())); - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); - provider = new TrustedCertificatesProvider(closeableHttpClient); + void whenGetTrustedCerts_thenCertificatesReturned() throws UnsupportedOperationException { + HttpClientMockHelper.mockResponse(httpResponse, HttpStatus.SC_OK, VALID_CERTIFICATE); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertEquals(1, result.size()); @@ -95,16 +102,16 @@ void whenGetTrustedCerts_thenCertificatesReturned() throws UnsupportedOperationE @Test void whenInvalidUrl_thenNoCertificatesReturned() { - provider = new TrustedCertificatesProvider(closeableHttpClient); + reset(closeableHttpClient); List result = provider.getTrustedCerts("htpp>\\\\//wrong.url"); assertNotNull(result); assertTrue(result.isEmpty()); } @Test - void whenIOError_thenNoCertificatesReturned() throws IOException { - when(closeableHttpClient.execute(any())).thenThrow(new IOException("communication error")); - provider = new TrustedCertificatesProvider(closeableHttpClient); + void whenIOError_thenNoCertificatesReturned() { + reset(closeableHttpClient); + HttpClientMockHelper.whenExecuteThenThrow(closeableHttpClient, new IOException("communication error")); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertTrue(result.isEmpty()); @@ -115,15 +122,11 @@ void whenIOError_thenNoCertificatesReturned() throws IOException { class GivenResponseWithInvalidCertificate { @Test - void whenGetTrustedCerts_thenNoCertificatesReturned() throws IOException { - provider = new TrustedCertificatesProvider(closeableHttpClient); - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); - when(httpResponse.getEntity()).thenReturn(responseEntity); - when(responseEntity.getContent()).thenReturn(new ByteArrayInputStream("invalid_certificate".getBytes())); + void whenGetTrustedCerts_thenNoCertificatesReturned() { + HttpClientMockHelper.mockResponse(httpResponse, HttpStatus.SC_OK, "invalid_response_causing_certificate_parsing_error"); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertTrue(result.isEmpty()); - // check for log message } } @@ -131,24 +134,16 @@ void whenGetTrustedCerts_thenNoCertificatesReturned() throws IOException { class GivenEmptyResponse { @Test - void whenGetTrustedCerts_thenNoCertificatesReturned() throws UnsupportedOperationException, IOException { - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); - when(httpResponse.getEntity()).thenReturn(responseEntity); - when(responseEntity.getContent()).thenReturn(new ByteArrayInputStream(new byte[0])); - - provider = new TrustedCertificatesProvider(closeableHttpClient); + void whenGetTrustedCerts_thenNoCertificatesReturned() { + HttpClientMockHelper.mockResponse(httpResponse, HttpStatus.SC_OK, ""); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertTrue(result.isEmpty()); } @Test - void whenNoHttpEntity_thenNoCertificatesReturned() throws IOException { - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); - when(httpResponse.getEntity()).thenReturn(responseEntity); - when(httpResponse.getEntity()).thenReturn(null); - - provider = new TrustedCertificatesProvider(closeableHttpClient); + void whenNoHttpEntity_thenNoCertificatesReturned() { + HttpClientMockHelper.mockResponse(httpResponse, HttpStatus.SC_OK, null); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertTrue(result.isEmpty()); @@ -158,29 +153,12 @@ void whenNoHttpEntity_thenNoCertificatesReturned() throws IOException { @Nested class GivenErrorResponseCode { - @BeforeEach - void setup() throws IOException { - when(httpResponse.getCode()).thenReturn(HttpStatus.SC_BAD_REQUEST); - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); - when(httpResponse.getEntity()).thenReturn(responseEntity); - } - - @Test - void whenGetTrustedCerts_thenNoCertificatesReturned() throws IOException { - provider = new TrustedCertificatesProvider(closeableHttpClient); - List result = provider.getTrustedCerts(CERTS_URL); - assertNotNull(result); - assertTrue(result.isEmpty()); - //check for log message - } - @Test - void whenNoStatusLine_thenNoCertificatesReturned() { - provider = new TrustedCertificatesProvider(closeableHttpClient); + void whenGetTrustedCerts_thenNoCertificatesReturned() { + HttpClientMockHelper.mockResponse(httpResponse, HttpStatus.SC_BAD_REQUEST); List result = provider.getTrustedCerts(CERTS_URL); assertNotNull(result); assertTrue(result.isEmpty()); - //check for log message } } } diff --git a/apiml-tomcat-common/src/test/java/org/zowe/apiml/filter/AttlsFilterTest.java b/apiml-tomcat-common/src/test/java/org/zowe/apiml/filter/AttlsFilterTest.java index 9f7dbe6aaf..0ff53ec206 100644 --- a/apiml-tomcat-common/src/test/java/org/zowe/apiml/filter/AttlsFilterTest.java +++ b/apiml-tomcat-common/src/test/java/org/zowe/apiml/filter/AttlsFilterTest.java @@ -10,16 +10,16 @@ package org.zowe.apiml.filter; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.tomcat.util.codec.binary.Base64; import org.junit.jupiter.api.Test; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; import org.zowe.commons.attls.ContextIsNotInitializedException; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.security.cert.CertificateException; @@ -32,29 +32,30 @@ class AttlsFilterTest { @Test void providedCertificateInCorrectFormat_thenPopulateRequest() throws CertificateException, ContextIsNotInitializedException { AttlsFilter attlsFilter = new AttlsFilter(); - String certificate = - "MIID8TCCAtmgAwIBAgIUVyBCWfHF/ZwZKVsBEpTNIBj9mQcwDQYJKoZIhvcNAQEL\n" + - "BQAwfzELMAkGA1UEBhMCQ1oxDzANBgNVBAgMBlByYWd1ZTEPMA0GA1UEBwwGUHJh\n" + - "Z3VlMREwDwYDVQQKDAhCcm9hZGNvbTEMMAoGA1UECwwDTUZEMS0wKwYDVQQDDCRB\n" + - "UElNTCBFeHRlcm5hbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjAwOTA0MTE0\n" + - "MzM2WhcNMjMwNjAxMTE0MzM2WjBiMQswCQYDVQQGEwJDWjEQMA4GA1UECAwHQ3pl\n" + - "Y2hpYTEPMA0GA1UEBwwGUHJhZ3VlMREwDwYDVQQKDAhCcm9hZGNvbTEOMAwGA1UE\n" + - "CwwFQ0EgQ1oxDTALBgNVBAMMBFVTRVIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n" + - "ggEKAoIBAQDN0NIJjuRJPE43CRvIVEg2hfIUWpos6lNs4ZNEyCxOPU0b6kyNxpTm\n" + - "aSX8LUX0JQ9c5N1Yie6F7k2JJzfkhoHh/x67CsoHYvaV60gJGuhO1PPM/QsGFrXH\n" + - "7Po0fS5jsqmJWnn+B8mUoNWFSqKUuusyuMT+Y8d8cr67g4MmnA7YEDag7F7i2s7x\n" + - "yrBMiU5IcLChMmWsZiar/vl0ykDb5Fsjt8pCFAPeuwT+nLUxCcqY5N5t11qxuS2a\n" + - "roZvM2PHdVkCQagB9dKlIYEtJeD6ZkYS0C/CHiJBqujx9dxAate/WJc5r6rdCkfB\n" + - "RGN0nZQaE7AupgDi4BqoZQzbeyU+DRutAgMBAAGjgYEwfzALBgNVHQ8EBAMCBeAw\n" + - "HQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBRbQ4fcpM8i\n" + - "paU2mwI4Fl/GRfNy/TARBglghkgBhvhCAQEEBAMCBeAwHwYDVR0jBBgwFoAUcYHv\n" + - "14ClCeqgaHg5n4LYjlmgj3cwDQYJKoZIhvcNAQELBQADggEBANMyHteCcktXSloB\n" + - "w3BrCYe0mup+BKe9lT2ARVoCuamxj/VqKq6IbNUBNqvIIbEK5wIEiSPvQ6VJqmks\n" + - "yw+gr+Dch+2sd9jiCKYAPTeDeoBHzRo88j4L7y+w/FN+13y3QIUxSfzEdrcsSA5Z\n" + - "VwTQsFF5zC6u2k7onDlE6NiYnuU5VUaM4jel1atSeA6xLdD+ePfI70B+m034Nhrk\n" + - "aUUTK+iCCeM9heokpWqpA9bqlHcIP0fliG6Estnt9xaPwA4VpLkQR6t9E49yBDJ5\n" + - "C0lqInPB7xGphhYZ6cV9/c3u/B3r9iK1IHQffhdANStogiQrzGk2yvUg0/t0qmle\n" + - "PzYuxfM="; + String certificate = """ + MIID8TCCAtmgAwIBAgIUVyBCWfHF/ZwZKVsBEpTNIBj9mQcwDQYJKoZIhvcNAQEL + BQAwfzELMAkGA1UEBhMCQ1oxDzANBgNVBAgMBlByYWd1ZTEPMA0GA1UEBwwGUHJh + Z3VlMREwDwYDVQQKDAhCcm9hZGNvbTEMMAoGA1UECwwDTUZEMS0wKwYDVQQDDCRB + UElNTCBFeHRlcm5hbCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMjAwOTA0MTE0 + MzM2WhcNMjMwNjAxMTE0MzM2WjBiMQswCQYDVQQGEwJDWjEQMA4GA1UECAwHQ3pl + Y2hpYTEPMA0GA1UEBwwGUHJhZ3VlMREwDwYDVQQKDAhCcm9hZGNvbTEOMAwGA1UE + CwwFQ0EgQ1oxDTALBgNVBAMMBFVTRVIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw + ggEKAoIBAQDN0NIJjuRJPE43CRvIVEg2hfIUWpos6lNs4ZNEyCxOPU0b6kyNxpTm + aSX8LUX0JQ9c5N1Yie6F7k2JJzfkhoHh/x67CsoHYvaV60gJGuhO1PPM/QsGFrXH + 7Po0fS5jsqmJWnn+B8mUoNWFSqKUuusyuMT+Y8d8cr67g4MmnA7YEDag7F7i2s7x + yrBMiU5IcLChMmWsZiar/vl0ykDb5Fsjt8pCFAPeuwT+nLUxCcqY5N5t11qxuS2a + roZvM2PHdVkCQagB9dKlIYEtJeD6ZkYS0C/CHiJBqujx9dxAate/WJc5r6rdCkfB + RGN0nZQaE7AupgDi4BqoZQzbeyU+DRutAgMBAAGjgYEwfzALBgNVHQ8EBAMCBeAw + HQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMB0GA1UdDgQWBBRbQ4fcpM8i + paU2mwI4Fl/GRfNy/TARBglghkgBhvhCAQEEBAMCBeAwHwYDVR0jBBgwFoAUcYHv + 14ClCeqgaHg5n4LYjlmgj3cwDQYJKoZIhvcNAQELBQADggEBANMyHteCcktXSloB + w3BrCYe0mup+BKe9lT2ARVoCuamxj/VqKq6IbNUBNqvIIbEK5wIEiSPvQ6VJqmks + yw+gr+Dch+2sd9jiCKYAPTeDeoBHzRo88j4L7y+w/FN+13y3QIUxSfzEdrcsSA5Z + VwTQsFF5zC6u2k7onDlE6NiYnuU5VUaM4jel1atSeA6xLdD+ePfI70B+m034Nhrk + aUUTK+iCCeM9heokpWqpA9bqlHcIP0fliG6Estnt9xaPwA4VpLkQR6t9E49yBDJ5 + C0lqInPB7xGphhYZ6cV9/c3u/B3r9iK1IHQffhdANStogiQrzGk2yvUg0/t0qmle + PzYuxfM= + """.stripIndent(); HttpServletRequest request = new MockHttpServletRequest(); attlsFilter.populateRequestWithCertificate(request, Base64.decodeBase64(certificate)); diff --git a/apiml-utility/build.gradle b/apiml-utility/build.gradle index b896cbb96c..64cedaa656 100644 --- a/apiml-utility/build.gradle +++ b/apiml-utility/build.gradle @@ -1,7 +1,7 @@ dependencies { api project(':common-service-core') - implementation libs.apache.commons.lang3 + api libs.apache.commons.lang3 compileOnly libs.spring.boot.starter.web diff --git a/apiml-utility/src/main/java/org/zowe/apiml/product/logging/LogMessageTracker.java b/apiml-utility/src/main/java/org/zowe/apiml/product/logging/LogMessageTracker.java index 8197f90828..f4af63d2b1 100644 --- a/apiml-utility/src/main/java/org/zowe/apiml/product/logging/LogMessageTracker.java +++ b/apiml-utility/src/main/java/org/zowe/apiml/product/logging/LogMessageTracker.java @@ -20,7 +20,6 @@ import java.util.Collections; import java.util.List; import java.util.regex.Pattern; -import java.util.stream.Collectors; /** * Class that contains the content made by a given logger. @@ -106,7 +105,7 @@ public boolean contains(String content, Level level) { public List search(Pattern regex) { return logAppender.list.stream() .filter(event -> regex.matcher(event.getFormattedMessage()).find()) - .collect(Collectors.toList()); + .toList(); } /** @@ -116,7 +115,7 @@ public List search(Pattern regex) { public List search(String content) { return logAppender.list.stream() .filter(event -> event.getFormattedMessage().contains(content)) - .collect(Collectors.toList()); + .toList(); } /** @@ -128,7 +127,7 @@ public List search(Pattern regex, Level level) { return logAppender.list.stream() .filter(event -> regex.matcher(event.getFormattedMessage()).find() && event.getLevel().equals(level)) - .collect(Collectors.toList()); + .toList(); } /** @@ -140,7 +139,7 @@ public List search(String content, Level level) { return logAppender.list.stream() .filter(event -> event.getFormattedMessage().contains(content) && event.getLevel().equals(level)) - .collect(Collectors.toList()); + .toList(); } /** @@ -164,6 +163,6 @@ public List getAllLoggedEvents() { public List getAllLoggedEventsWithLevel(Level level) { return logAppender.list.stream() .filter(event -> event.getLevel().equals(level)) - .collect(Collectors.toList()); + .toList(); } } diff --git a/build.gradle b/build.gradle index ce40e385e2..785eb8c0f0 100644 --- a/build.gradle +++ b/build.gradle @@ -30,13 +30,16 @@ buildscript { classpath libs.gradle.release classpath libs.gradle.licencer classpath libs.gradle.jib.plugin + classpath libs.apache.compress } } -import java.util.regex.Matcher + +import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry import org.gradle.plugins.ide.eclipse.model.AccessRule import org.gradle.plugins.ide.eclipse.model.ClasspathEntry -import org.gradle.plugins.ide.eclipse.model.AbstractClasspathEntry + +import java.util.regex.Matcher //noinspection GroovyAssignabilityCheck group 'org.zowe.apiml' @@ -92,6 +95,28 @@ allprojects { } } + configurations.all { + resolutionStrategy.dependencySubstitution { + substitute(module('javax.servlet:servlet-api')).using(module('javax.servlet:javax.servlet-api:4.0.1')) + } + } + +} + +configure(subprojects.findAll { it.name in [ + 'apiml-common-lib-package', + 'api-catalog-services', + 'caching-service', + 'discovery-service', + 'gateway-service', + 'zaas-service' +]}) { + + configurations.all { + // it has been replaced by spring-jcl + exclude group: "commons-logging", module: "commons-logging" + } + } configure(subprojects.findAll {it.name != 'platform'}) { @@ -107,6 +132,7 @@ configure(subprojects.findAll {it.name != 'platform'}) { jvmArgs '--add-opens=java.base/java.io=ALL-UNNAMED' jvmArgs '--add-opens=java.base/java.util=ALL-UNNAMED' jvmArgs '--add-opens=java.base/java.util.concurrent=ALL-UNNAMED' + jvmArgs '--add-opens=java.base/java.lang=ALL-UNNAMED' jvmArgs '--add-opens=java.base/java.lang.invoke=ALL-UNNAMED' jvmArgs '--add-opens=java.base/java.lang.reflect=ALL-UNNAMED' jvmArgs '--add-opens=java.base/javax.net.ssl=ALL-UNNAMED' @@ -137,12 +163,6 @@ subprojects { } } -task updateCatalogVersion { - ant.replaceregexp(match:'REACT_APP_ZOWE_BUILD_INFO=(.*)', replace:'REACT_APP_ZOWE_BUILD_INFO=' + version, flags:'g', byline:true) { - fileset(dir: 'api-catalog-ui/frontend', includes: '.env') - } -} - task buildCore(dependsOn: [':discovery-service:build', ':api-catalog-services:build', ':api-catalog-ui:build', ':discoverable-client:build', ':zaas-client:build', ':apiml-sample-extension:build', ':gateway-service:build']) { description "Build core components" diff --git a/caching-service-package/src/main/resources/bin/start.sh b/caching-service-package/src/main/resources/bin/start.sh index d94586f174..5d692cd266 100755 --- a/caching-service-package/src/main/resources/bin/start.sh +++ b/caching-service-package/src/main/resources/bin/start.sh @@ -124,10 +124,15 @@ ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" ATTLS_ENABLED="false" -# ZWE_configs_spring_profiles_active for back compatibility, should be removed in v3 - enabling via Spring profile -if [ "${ZWE_zowe_network_server_tls_attls}" = "true" -o "$(echo ${ZWE_configs_spring_profiles_active:-} | awk '/^(.*,)?attls(,.*)?$/')" ]; then +ATTLS_CLIENT_ENABLED="false" + +if [ "${ZWE_zowe_network_server_tls_attls}" = "true" ]; then ATTLS_ENABLED="true" fi +if [ "${ZWE_zowe_network_client_tls_attls}" = "true" ]; then + ATTLS_CLIENT_ENABLED="true" +fi + if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_server_ssl_enabled="false" if [ -n "${ZWE_configs_spring_profiles_active}" ]; then @@ -138,10 +143,55 @@ fi # Verify discovery service URL in case AT-TLS is enabled, assumes outgoing rules are in place ZWE_DISCOVERY_SERVICES_LIST=${ZWE_DISCOVERY_SERVICES_LIST:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_discovery_port:-7553}/eureka/"} -if [ "${ATTLS_ENABLED}" = "true" ]; then +if [ "${ATTLS_CLIENT_ENABLED}" = "true" ]; then ZWE_DISCOVERY_SERVICES_LIST=$(echo "${ZWE_DISCOVERY_SERVICES_LIST=}" | sed -e 's|https://|http://|g') fi +get_enabled_protocol_limit() { + target=$1 + type=$2 + key_component="ZWE_configs_zowe_network_${target}_tls_${type}Tls" + value_component=$(eval echo \$$key_component) + key_gateway="ZWE_components_gateway_zowe_network_${target}_tls_${type}Tls" + value_gateway=$(eval echo \$$key_gateway) + key_zowe="ZWE_zowe_network_${target}_tls_${type}Tls" + value_zowe=$(eval echo \$$key_zowe) + enabled_protocol_limit=${value_component:-${value_gateway:-${value_zowe:-}}} +} + +extract_between() { + echo "$1" | sed -e "s/.*$2,//" -e "s/$3.*//" +} + +get_enabled_protocol() { + target=$1 + get_enabled_protocol_limit "${target}" "min" + enabled_protocols_min=${enabled_protocol_limit} + get_enabled_protocol_limit "${target}" "max" + enabled_protocols_max=${enabled_protocol_limit} + + if [ "${enabled_protocols_min:-}" = "${enabled_protocols_max:-}" ]; then + result="${enabled_protocols_max:-}" + elif [ -z "${enabled_protocols_min:-}" ]; then + result="${enabled_protocols_max:-}" + else + enabled_protocols_max=${enabled_protocols_max:-"TLSv1.3"} + enabled_protocols=,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TLSv1.4, + # Extract protocols between min and max (inclusive) + result=$(extract_between "$enabled_protocols" "$enabled_protocols_min" "$enabled_protocols_max") + result="$enabled_protocols_min,$result$enabled_protocols_max" + fi +} + +get_enabled_protocol_limit "server" "max" +server_protocol=${enabled_protocol_limit:-"TLS"} +get_enabled_protocol "server" +server_enabled_protocols=${result:-"TLSv1.3"} +server_ciphers=${ZWE_configs_zowe_network_server_tls_ciphers:-${ZWE_components_gateway_zowe_network_server_tls_ciphers:-${ZWE_zowe_network_server_tls_ciphers:-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384}}} +get_enabled_protocol "client" +client_enabled_protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-${result:-${server_enabled_protocols}}} +client_ciphers=${ZWE_configs_zowe_network_client_tls_ciphers:-${ZWE_components_gateway_zowe_network_client_tls_ciphers:-${ZWE_zowe_network_client_tls_ciphers:-${server_ciphers}}}} + keystore_type="${ZWE_configs_certificate_keystore_type:-${ZWE_zowe_certificate_keystore_type:-PKCS12}}" keystore_pass="${ZWE_configs_certificate_keystore_password:-${ZWE_zowe_certificate_keystore_password}}" key_alias="${ZWE_configs_certificate_keystore_alias:-${ZWE_zowe_certificate_keystore_alias}}" @@ -198,7 +248,11 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CACHING_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.service.customMetadata.apiml.gatewayPort=${ZWE_components_gateway_port:-7554} \ -Dapiml.service.ssl.verifySslCertificatesOfServices=${verifySslCertificatesOfServices:-false} \ -Dapiml.service.ssl.nonStrictVerifySslCertificatesOfServices=${nonStrictVerifySslCertificatesOfServices:-false} \ - -Dapiml.httpclient.ssl.enabled-protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-"TLSv1.2"} \ + -Dapiml.httpclient.ssl.enabled-protocols=${client_enabled_protocols} \ + -Djdk.tls.client.cipherSuites=${client_ciphers} \ + -Dserver.ssl.ciphers=${server_ciphers} \ + -Dserver.ssl.protocol=${server_protocol} \ + -Dserver.ssl.enabled-protocols=${server_enabled_protocols} \ -Dcaching.storage.evictionStrategy=${ZWE_configs_storage_evictionStrategy:-reject} \ -Dcaching.storage.size=${ZWE_configs_storage_size:-10000} \ -Dcaching.storage.mode=${ZWE_configs_storage_mode:-inMemory} \ @@ -209,9 +263,8 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CACHING_CODE} ${JAVA_BIN_DIR}java \ -Dcaching.storage.infinispan.persistence.dataLocation=${ZWE_configs_storage_infinispan_persistence_dataLocation:-data} \ -Dcaching.storage.infinispan.persistence.indexLocation=${ZWE_configs_storage_infinispan_persistence_indexLocation:-index} \ -Dcaching.storage.infinispan.initialHosts=${ZWE_configs_storage_infinispan_initialHosts:-localhost[7098]} \ - -Dserver.address=0.0.0.0 \ + -Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \ -Dserver.ssl.enabled=${ZWE_configs_server_ssl_enabled:-true} \ - -Dserver.ssl.protocol=${ZWE_configs_server_ssl_protocol:-"TLSv1.2"} \ -Dserver.ssl.keyStore="${keystore_location}" \ -Dserver.ssl.keyStoreType="${keystore_type}" \ -Dserver.ssl.keyStorePassword="${keystore_pass}" \ @@ -221,6 +274,7 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CACHING_CODE} ${JAVA_BIN_DIR}java \ -Dserver.ssl.trustStoreType="${truststore_type}" \ -Dserver.ssl.trustStorePassword="${truststore_pass}" \ -Djava.protocol.handler.pkgs=com.ibm.crypto.provider \ + -Djava.net.preferIPv4Stack=true \ -Djavax.net.debug=${ZWE_configs_sslDebug:-""} \ -Djava.library.path=${LIBPATH} \ -jar "${JAR_FILE}" & diff --git a/caching-service/build.gradle b/caching-service/build.gradle index e8c38f3f47..c6464b20db 100644 --- a/caching-service/build.gradle +++ b/caching-service/build.gradle @@ -48,6 +48,11 @@ gitProperties { gitPropertiesDir = new File("${project.rootDir}/${name}/build/resources/main/META-INF") } +configurations.all { + // Remove Spring Cloud enabler + exclude group: "org.springframework.cloud", module: "spring-cloud-starter-netflix-eureka-client" +} + dependencies { api project(':apiml-tomcat-common') api project(':onboarding-enabler-spring') @@ -64,11 +69,13 @@ dependencies { implementation libs.jakarta.servlet.api implementation libs.lettuce - testImplementation(testFixtures(project(":integration-tests"))) + testImplementation(testFixtures(project(":apiml-common"))) testImplementation libs.spring.boot.starter.test + testImplementation libs.spring.boot.starter testImplementation libs.rest.assured + compileOnly libs.lombok annotationProcessor libs.lombok } diff --git a/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamFile.java b/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamFile.java index 49196ddcff..24f06da5b4 100644 --- a/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamFile.java +++ b/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamFile.java @@ -133,8 +133,7 @@ public Optional read(VsamRecord vsamRec) { log.info("Attempting to read record: {}", vsamRec); return recordOperation(vsamRec, () -> { - byte[] recBuf = new byte[vsamConfig.getRecordLength()]; - zfile.read(recBuf); + byte[] recBuf = readRecord(); log.trace("RecBuf: {}", recBuf); //NOSONAR log.info("ConvertedStringValue: {}", new String(recBuf, vsamConfig.getEncoding())); VsamRecord returned = new VsamRecord(vsamConfig, recBuf); @@ -147,8 +146,7 @@ public Optional update(VsamRecord vsamRec) { log.info("Attempting to update record: {}", vsamRec); return recordOperation(vsamRec, () -> { - byte[] recBuf = new byte[vsamConfig.getRecordLength()]; - zfile.read(recBuf); //has to be read before update + byte[] recBuf = readRecord(); log.trace("Read found record: {}", new String(recBuf, ZFileConstants.DEFAULT_EBCDIC_CODE_PAGE)); log.info("Will update record: {}", vsamRec); int nUpdated = zfile.update(vsamRec.getBytes()); @@ -161,8 +159,8 @@ public Optional delete(VsamRecord vsamRec) { log.info("Attempting to delete record: {}", vsamRec); return recordOperation(vsamRec, () -> { - byte[] recBuf = new byte[vsamConfig.getRecordLength()]; - zfile.read(recBuf); //has to be read before delete + //has to be read before delete + byte[] recBuf = readRecord(); VsamRecord returned = new VsamRecord(vsamConfig, recBuf); zfile.delrec(); log.info("Deleted vsam record: {}", returned); @@ -170,6 +168,14 @@ public Optional delete(VsamRecord vsamRec) { }); } + private byte[] readRecord() throws ZFileException { + byte[] recBuf = new byte[vsamConfig.getRecordLength()]; + if (vsamConfig.getRecordLength() != zfile.read(recBuf)) { + log.warn("Configured VSAM record length is different that the actual data read from {}", zfile.getActualFilename()); + } + return recBuf; + } + private Optional recordOperation(VsamRecord vsamRec, RecordHandler recordHandler) { if (vsamRec == null) { throw new IllegalArgumentException(RECORD_CANNOT_BE_NULL_MESSAGE); diff --git a/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamInitializer.java b/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamInitializer.java index 973c31f9fa..fc428289c2 100644 --- a/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamInitializer.java +++ b/caching-service/src/main/java/org/zowe/apiml/caching/service/vsam/VsamInitializer.java @@ -1,14 +1,14 @@ -/* - * 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. - */ - -package org.zowe.apiml.caching.service.vsam; +/* + * 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. + */ + +package org.zowe.apiml.caching.service.vsam; import lombok.extern.slf4j.Slf4j; import org.springframework.retry.annotation.Retryable; @@ -61,7 +61,11 @@ public void warmUpVsamFile(ZFile zFile, VsamConfig vsamConfig) throws ZFileExcep log.info("Test record for deletion found: {}", found); if (found) { byte[] recBuf = new byte[vsamConfig.getRecordLength()]; - zFile.read(recBuf); //has to be read before update/delete + //has to be read before update/delete + if (vsamConfig.getRecordLength() != zFile.read(recBuf)) { + log.warn("Configured VSAM record length is different that the actual data read from {}", zFile.getActualFilename()); + } + zFile.delrec(); log.info("Test record deleted."); } diff --git a/caching-service/src/main/resources/application.yml b/caching-service/src/main/resources/application.yml index 7362a3ef90..e8fd57aa74 100644 --- a/caching-service/src/main/resources/application.yml +++ b/caching-service/src/main/resources/application.yml @@ -30,6 +30,7 @@ logging: org.springdoc: WARN org.springframework: WARN org.springframework.boot: OFF + org.jgroups.protocols: ERROR com.netflix: WARN com.netflix.discovery: ERROR com.netflix.config: ERROR @@ -37,6 +38,7 @@ logging: com.netflix.discovery.DiscoveryClient: OFF org.springframework.boot.web.embedded.tomcat.TomcatWebServer: INFO org.apache.http.conn.ssl.DefaultHostnameVerifier: DEBUG #logs only SSLException + org.apache.tomcat.util.net.SSLUtilBase: ERROR org.springframework.security.config.annotation.web.builders.WebSecurity: ERROR javax.net.ssl: ERROR @@ -108,6 +110,9 @@ spring: cloud: compatibilityVerifier: enabled: false # Should be removed when upgrade to Spring Cloud 3.x + gateway: + mvc.enabled: false + enabled: false application: name: Caching service mvc: @@ -116,6 +121,8 @@ spring: output.ansi.enabled: always main: allow-circular-references: true + banner-mode: ${apiml.banner:"off"} + web-application-type: servlet springdoc: pathsToMatch: /api/v1/** @@ -159,6 +166,7 @@ management: logging: level: ROOT: INFO + com.netflix.discovery.shared.transport.decorator: DEBUG org.zowe.apiml: DEBUG org.zowe.apiml.enable: DEBUG org.zowe.apiml.caching: DEBUG @@ -167,11 +175,12 @@ logging: org.apache.http: DEBUG com.netflix: INFO org.hibernate: INFO + org.jgroups.protocols: ERROR org.springframework.web.servlet.PageNotFound: WARN org.ehcache: INFO - com.netflix.discovery.shared.transport.decorator: DEBUG + org.apache.tomcat.util.net: DEBUG org.springframework.security.web: INFO - javax.net.ssl: INFO + javax.net.ssl: ERROR spring.config.activate.on-profile: dev @@ -194,3 +203,12 @@ eureka: instance: nonSecurePortEnabled: true securePortEnabled: false + +--- +spring.config.activate.on-profile: debug + +logging: + level: + ROOT: INFO + org.apache.tomcat.util.net: DEBUG + org.jgroups: DEBUG diff --git a/caching-service/src/main/resources/infinispan.xml b/caching-service/src/main/resources/infinispan.xml index 3b83eeb35f..873e25144b 100644 --- a/caching-service/src/main/resources/infinispan.xml +++ b/caching-service/src/main/resources/infinispan.xml @@ -22,7 +22,7 @@ diff --git a/caching-service/src/main/resources/logback.xml b/caching-service/src/main/resources/logback.xml index 452ccc5c08..bf5983afc9 100644 --- a/caching-service/src/main/resources/logback.xml +++ b/caching-service/src/main/resources/logback.xml @@ -15,7 +15,7 @@ - + diff --git a/client-cert-auth-sample/build.gradle b/client-cert-auth-sample/build.gradle new file mode 100644 index 0000000000..deba9403f0 --- /dev/null +++ b/client-cert-auth-sample/build.gradle @@ -0,0 +1,18 @@ +plugins { + id 'java' +} + +group = 'org.zowe.apiml' +version = '3.0.39-SNAPSHOT' + +repositories { + mavenCentral() +} + +dependencies { + implementation libs.http.client5 +} + +test { + useJUnitPlatform() +} diff --git a/client-cert-auth-sample/src/main/java/org/zowe/apiml/Main.java b/client-cert-auth-sample/src/main/java/org/zowe/apiml/Main.java new file mode 100644 index 0000000000..ff94c76ace --- /dev/null +++ b/client-cert-auth-sample/src/main/java/org/zowe/apiml/Main.java @@ -0,0 +1,81 @@ +/* + * 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. + */ + +package org.zowe.apiml; + +import org.apache.hc.client5.http.classic.methods.HttpPost; +import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; +import org.apache.hc.client5.http.impl.io.BasicHttpClientConnectionManager; +import org.apache.hc.client5.http.ssl.DefaultClientTlsStrategy; +import org.apache.hc.core5.ssl.SSLContextBuilder; + +import java.io.File; +import java.io.FileInputStream; +import java.security.KeyStore; +import java.security.cert.Certificate; + +public class Main { + + private static final String API_URL = "https://localhost:8080/gateway/api/v1/auth/login"; // Replace with your API URL + private static final String CLIENT_CERT_PATH = "../keystore/client_cert/client-certs.p12"; // Replace with your client cert path + private static final String CLIENT_CERT_PASSWORD = "password"; // Replace with your cert password + private static final String CLIENT_CERT_ALIAS = "apimtst"; // Replace with your signed client cert alias + private static final String PRIVATE_KEY_ALIAS = "apimtst"; // Replace with your private key alias + + + public static void main(String[] args) { + try { + // Load the keystore containing the client certificate + KeyStore keyStore = KeyStore.getInstance("PKCS12"); + try (FileInputStream keyStoreStream = new FileInputStream(new File(CLIENT_CERT_PATH))) { + keyStore.load(keyStoreStream, CLIENT_CERT_PASSWORD.toCharArray()); + } + + var key = keyStore.getKey(PRIVATE_KEY_ALIAS, CLIENT_CERT_PASSWORD.toCharArray()); // Load private key from original keystore + var cert = keyStore.getCertificate(CLIENT_CERT_ALIAS); // Load signed certificate from original keystore + + // Create new keystore + var newKeyStore = KeyStore.getInstance("PKCS12"); + newKeyStore.load(null); + newKeyStore.setKeyEntry(PRIVATE_KEY_ALIAS, key, CLIENT_CERT_PASSWORD.toCharArray(), new Certificate[]{cert}); // Create an entry with private key + signed certificate + + // Create SSL context with the client certificate + var sslContext = new SSLContextBuilder().loadTrustMaterial((chain, type) -> true) + .loadKeyMaterial(newKeyStore, CLIENT_CERT_PASSWORD.toCharArray()).build(); + var sslsf = new DefaultClientTlsStrategy(sslContext); + + + var connectionManager = BasicHttpClientConnectionManager.create((s) -> sslsf); + + var clientBuilder = HttpClientBuilder.create().setConnectionManager(connectionManager); + + try (var httpClient = clientBuilder.build()) { + + // Create a POST request + var httpPost = new HttpPost(API_URL); + + // Execute the request + var response = httpClient.execute(httpPost, res -> res); + + // Print the response status + System.out.println("Response Code: " + response.getCode()); + + // Print headers + var headers = response.getHeaders(); + for (var header : headers) { + System.out.println("Key : " + header.getName() + + " ,Value : " + header.getValue()); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + } +} diff --git a/client-cert-auth-sample/src/test/java/org/zowe/apiml/MainTest.java b/client-cert-auth-sample/src/test/java/org/zowe/apiml/MainTest.java new file mode 100644 index 0000000000..05278547a6 --- /dev/null +++ b/client-cert-auth-sample/src/test/java/org/zowe/apiml/MainTest.java @@ -0,0 +1,110 @@ +/* + * 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. + */ + +package org.zowe.apiml; + +import com.sun.net.httpserver.HttpsConfigurator; +import com.sun.net.httpserver.HttpsExchange; +import com.sun.net.httpserver.HttpsParameters; +import com.sun.net.httpserver.HttpsServer; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import javax.net.ssl.KeyManagerFactory; +import javax.net.ssl.SSLContext; +import javax.net.ssl.TrustManagerFactory; +import java.io.FileInputStream; +import java.net.InetSocketAddress; +import java.security.KeyStore; + +import static org.junit.jupiter.api.Assertions.assertNotNull; + +class MainTest { + + static HttpsServer httpServer; + static AssertionError error; + + @BeforeAll + static void setup() throws Exception { + var inetAddress = new InetSocketAddress("127.0.0.1", 8080); + httpServer = HttpsServer.create(inetAddress, 0); + + var sslContext = SSLContext.getInstance("TLS"); + var ks = KeyStore.getInstance("PKCS12"); + try (var fis = new FileInputStream("../keystore/localhost/localhost.keystore.p12")) { + ks.load(fis, "password".toCharArray()); + } + var km = KeyManagerFactory.getInstance("SunX509"); + km.init(ks, "password".toCharArray()); + var ts = KeyStore.getInstance("PKCS12"); + try (var fis = new FileInputStream("../keystore/localhost/localhost.truststore.p12")) { + ts.load(fis, "password".toCharArray()); + } + var tm = TrustManagerFactory.getInstance("SunX509"); + tm.init(ts); + + sslContext.init(km.getKeyManagers(), tm.getTrustManagers(), null); + + var httpsConfigurator = new TestHttpsConfigurator(sslContext); + httpServer.setHttpsConfigurator(httpsConfigurator); + httpServer.createContext("/gateway/api/v1/auth/login", exchange -> { + + exchange.sendResponseHeaders(204, 0); + var clientCert = ((HttpsExchange) exchange).getSSLSession().getPeerCertificates(); + try { + // client certificate must be present at this stage + assertNotNull(clientCert); + } catch (AssertionError e) { + error = e; + } + exchange.close(); + }); + httpServer.start(); + + } + + @AfterAll + static void tearDown() { + + httpServer.stop(0); + if (error != null) { + throw error; + } + } + + @Test + void givenHttpsRequestWithClientCertificate_thenPeerCertificateMustBeAvailable() { + // Assertion is done on the server to make sure that client certificate was delivered. + // Assertion error is then rethrown in the tear down method in case certificate was not present. + Main.main(null); + } + + static class TestHttpsConfigurator extends HttpsConfigurator { + /** + * Creates a Https configuration, with the given {@link SSLContext}. + * + * @param context the {@code SSLContext} to use for this configurator + * @throws NullPointerException if no {@code SSLContext} supplied + */ + public TestHttpsConfigurator(SSLContext context) { + super(context); + } + + @Override + public void configure(HttpsParameters params) { + var parms = getSSLContext().getDefaultSSLParameters(); + parms.setNeedClientAuth(true); + params.setWantClientAuth(true); + params.setSSLParameters(parms); + } + } + +} diff --git a/cloud-gateway-package/src/main/resources/bin/start.sh b/cloud-gateway-package/src/main/resources/bin/start.sh deleted file mode 100755 index e69de29bb2..0000000000 diff --git a/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationCondition.java b/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationCondition.java index 4f59a803da..be016f27d7 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationCondition.java +++ b/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationCondition.java @@ -18,7 +18,6 @@ import org.springframework.core.type.AnnotatedTypeMetadata; import java.util.List; -import java.util.stream.Collectors; import static org.zowe.apiml.config.AdditionalRegistrationParser.DISCOVERYSERVICEURLS_PATTERN; @@ -30,8 +29,8 @@ public class AdditionalRegistrationCondition implements Condition { public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) { String dcUrls = context.getEnvironment().getProperty("apiml.service.additionalRegistration[0].discoveryServiceUrls"); List additionalKeys = ((StandardEnvironment) context.getEnvironment()).getSystemEnvironment() - .entrySet().stream().map(e -> e.getKey().toUpperCase()).filter(key -> DISCOVERYSERVICEURLS_PATTERN.matcher(key).matches()) - .collect(Collectors.toList()); + .keySet().stream().map(String::toUpperCase).filter(key -> DISCOVERYSERVICEURLS_PATTERN.matcher(key).matches()) + .toList(); boolean isAdditionalRegistrationsDetected = dcUrls != null || !additionalKeys.isEmpty(); log.debug("isAdditionalRegistrationsDetected: {}", isAdditionalRegistrationsDetected); return isAdditionalRegistrationsDetected; diff --git a/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationParser.java b/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationParser.java index 4de9afcc55..badb2b782e 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationParser.java +++ b/common-service-core/src/main/java/org/zowe/apiml/config/AdditionalRegistrationParser.java @@ -13,14 +13,9 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.Pair; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.TreeMap; +import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern; -import java.util.stream.Collectors; import static org.apache.commons.lang.StringUtils.isNotBlank; @@ -48,7 +43,7 @@ public List extractAdditionalRegistrations(Map putRouteGatewayUrl(map, pair, entry.getValue())); } map.values().forEach(registration -> registration.setRoutes(registration.getRoutes().stream() - .filter(AdditionalRegistrationParser::isRouteDefined).collect(Collectors.toList()))); + .filter(AdditionalRegistrationParser::isRouteDefined).toList())); return new ArrayList<>(map.values()); } diff --git a/common-service-core/src/main/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParser.java b/common-service-core/src/main/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParser.java index 93cdf175d2..fe1ea38ac3 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParser.java +++ b/common-service-core/src/main/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParser.java @@ -27,7 +27,6 @@ import java.net.URL; import java.util.*; import java.util.function.Supplier; -import java.util.stream.Collectors; import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; @@ -125,7 +124,7 @@ public List parseToListRoute(Map eurekaMetadata) .filter(this::filterMetadata) .map(metadata -> mapMetadataToRoutedService(metadata, routeMap)) .filter(Objects::nonNull) - .collect(Collectors.toList()); + .toList(); } private boolean filterMetadata(Map.Entry metadata) { diff --git a/common-service-core/src/main/java/org/zowe/apiml/message/core/AbstractMessageService.java b/common-service-core/src/main/java/org/zowe/apiml/message/core/AbstractMessageService.java index 49da1c50eb..6c14b8392e 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/message/core/AbstractMessageService.java +++ b/common-service-core/src/main/java/org/zowe/apiml/message/core/AbstractMessageService.java @@ -10,12 +10,14 @@ package org.zowe.apiml.message.core; +import lombok.extern.slf4j.Slf4j; import org.zowe.apiml.message.storage.MessageTemplateStorage; import org.zowe.apiml.message.template.MessageTemplate; import org.zowe.apiml.message.template.MessageTemplates; -import lombok.extern.slf4j.Slf4j; -import java.util.*; +import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -51,8 +53,12 @@ public Message createMessage(String key, Object... parameters) { try { return Message.of(key, messageTemplate, parameters); - } catch (IllegalFormatConversionException | MissingFormatArgumentException exception) { - log.debug("Internal error: Invalid message format was used", exception); + } catch (IllegalArgumentException exception) { + if (log.isDebugEnabled()) { + log.debug("Internal error: Invalid message format was used", exception); + } else { + log.warn("Internal error: Invalid message format was used for key: {}, enable debug for stack trace: {}", key, exception.getMessage()); + } messageTemplate = validateMessageTemplate(Message.INVALID_MESSAGE_TEXT_FORMAT); return Message.of(key, messageTemplate, parameters); } @@ -70,7 +76,7 @@ public List createMessage(String key, List parameters) { return parameters.stream() .filter(Objects::nonNull) .map(ob -> createMessage(key, ob)) - .collect(Collectors.toList()); + .toList(); } /** @@ -89,8 +95,10 @@ protected final void addMessageTemplates(MessageTemplates messageTemplates) { * * @param messageTemplates the list of message templates * @throws DuplicateMessageException when a message key already exists + * @throws IllegalArgumentException when message template is null */ private void validateMessageTemplates(MessageTemplates messageTemplates) { + Objects.requireNonNull(messageTemplates); String existedMessageTemplates = messageTemplates.getMessages() .stream() .collect( @@ -105,7 +113,7 @@ private void validateMessageTemplates(MessageTemplates messageTemplates) { .map(Map.Entry::getKey) .collect(Collectors.joining(",")); - if (!existedMessageTemplates.equals("")) { + if (!existedMessageTemplates.isEmpty()) { String exceptionMessage = String.format("Message template with number [%s] already exists", existedMessageTemplates); throw new DuplicateMessageException(exceptionMessage); } diff --git a/common-service-core/src/main/java/org/zowe/apiml/message/core/Message.java b/common-service-core/src/main/java/org/zowe/apiml/message/core/Message.java index a8a94de080..852dc22dee 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/message/core/Message.java +++ b/common-service-core/src/main/java/org/zowe/apiml/message/core/Message.java @@ -10,6 +10,7 @@ package org.zowe.apiml.message.core; +import lombok.ToString; import org.zowe.apiml.message.api.ApiMessage; import org.zowe.apiml.message.api.ApiMessageView; import org.zowe.apiml.message.template.MessageTemplate; @@ -23,6 +24,7 @@ /** * Message creator immutable class */ +@ToString public final class Message { public static final String INVALID_KEY_MESSAGE = "org.zowe.apiml.common.invalidMessageKey"; public static final String INVALID_KEY_MESSAGE_TEXT = "Internal error: Invalid message key '%s' provided. " + diff --git a/common-service-core/src/main/java/org/zowe/apiml/message/log/ApimlLogger.java b/common-service-core/src/main/java/org/zowe/apiml/message/log/ApimlLogger.java index b50de9af92..8caf1e5d2f 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/message/log/ApimlLogger.java +++ b/common-service-core/src/main/java/org/zowe/apiml/message/log/ApimlLogger.java @@ -49,7 +49,6 @@ public static ApimlLogger of(Class clazz, return new ApimlLogger(clazz, messageService); } - /** * Method which returns ApimlLogger with null {@link MessageService}. * It is used for unit test environment. @@ -74,6 +73,7 @@ public Message log(String key, Object... parameters) { ObjectUtil.requireNotNull(parameters, "parameters can't be null"); if (messageService == null) { + logger.warn(marker, "Logger is not properly initialized, unable to log custom error messages with key '{}' and arguments {}", key, parameters); return null; } message = messageService.createMessage(key, parameters); @@ -88,8 +88,13 @@ public Message log(String key, Object... parameters) { * @param message the message */ public void log(Message message) { - ObjectUtil.requireNotNull(message, "message can't be null"); - ObjectUtil.requireNotNull(message.getMessageTemplate(), "message template can't be null"); + try { + ObjectUtil.requireNotNull(message, "message can't be null"); + ObjectUtil.requireNotNull(message.getMessageTemplate(), "message template can't be null"); + } catch (IllegalArgumentException e) { + logInvalidArguments(e, message); + return; + } log(message.getMessageTemplate().getType(), message.mapToLogMessage()); } @@ -104,9 +109,14 @@ public void log(Message message) { */ @SuppressWarnings("squid:S2629") public void log(MessageType messageType, String text, Object... arguments) { - ObjectUtil.requireNotNull(messageType, "messageType can't be null"); - ObjectUtil.requireNotNull(text, "text can't be null"); - ObjectUtil.requireNotNull(arguments, "arguments can't be null"); + try { + ObjectUtil.requireNotNull(messageType, "messageType can't be null"); + ObjectUtil.requireNotNull(text, "text can't be null"); + ObjectUtil.requireNotNull(arguments, "arguments can't be null"); + } catch (IllegalArgumentException e) { + logInvalidArguments(e, messageType, text, arguments); + return; + } switch (messageType) { case TRACE: @@ -130,4 +140,13 @@ public void log(MessageType messageType, String text, Object... arguments) { break; } } + + private void logInvalidArguments(IllegalArgumentException e, Object... arguments) { + if (logger.isDebugEnabled()) { + logger.debug(marker, "Invalid log message cannot be logged: {}", arguments, e); + } else { + logger.warn(marker, "Invalid log message cannot be logged: {}, enable debug for stack trace: {}", arguments, e.getMessage()); + } + } + } diff --git a/common-service-core/src/main/java/org/zowe/apiml/message/yaml/YamlMessageService.java b/common-service-core/src/main/java/org/zowe/apiml/message/yaml/YamlMessageService.java index 481486372b..c3e436102e 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/message/yaml/YamlMessageService.java +++ b/common-service-core/src/main/java/org/zowe/apiml/message/yaml/YamlMessageService.java @@ -55,7 +55,7 @@ public void loadMessages(String messagesFilePath) { Yaml yaml = new Yaml(); MessageTemplates messageTemplates = yaml.loadAs(in, MessageTemplates.class); super.addMessageTemplates(messageTemplates); - } catch (YAMLException | IOException e) { + } catch (YAMLException | IOException | IllegalArgumentException e) { throw new MessageLoadException("There is problem with reading application messages file: " + messagesFilePath, e); } } diff --git a/common-service-core/src/main/java/org/zowe/apiml/security/SecurityUtils.java b/common-service-core/src/main/java/org/zowe/apiml/security/SecurityUtils.java index 7c05b47c94..e36e7fccac 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/security/SecurityUtils.java +++ b/common-service-core/src/main/java/org/zowe/apiml/security/SecurityUtils.java @@ -210,16 +210,12 @@ public static Key findPrivateKeyByPublic(HttpsConfig config, byte[] publicKey) { */ public static KeyStore loadKeyStore(String type, String path, char[] password) throws IOException, CertificateException, NoSuchAlgorithmException, KeyStoreException { KeyStore ks = KeyStore.getInstance(type); - InputStream inputStream; - if (SecurityUtils.isKeyring(path)) { - inputStream = new URL(path).openStream(); - } else { - inputStream = new FileInputStream(path); + try (InputStream inputStream = SecurityUtils.isKeyring(path) ? + new URL(path).openStream() : new FileInputStream(path)) { + ks.load(inputStream, password); + return ks; } - ks.load(inputStream, password); - return ks; } - /** * Loads keystore or key ring, if keystore URL has proper format {@link #KEYRING_PATTERN}, from specified location * diff --git a/common-service-core/src/main/java/org/zowe/apiml/services/BasicInfoService.java b/common-service-core/src/main/java/org/zowe/apiml/services/BasicInfoService.java index 4546245946..397c27e418 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/services/BasicInfoService.java +++ b/common-service-core/src/main/java/org/zowe/apiml/services/BasicInfoService.java @@ -21,11 +21,7 @@ import org.zowe.apiml.config.ApiInfo; import org.zowe.apiml.eurekaservice.client.util.EurekaMetadataParser; -import java.util.AbstractMap; -import java.util.Comparator; -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; +import java.util.*; import java.util.stream.Collectors; import static java.util.stream.Collectors.groupingBy; @@ -33,11 +29,7 @@ import static org.zowe.apiml.constants.EurekaMetadataDefinition.SERVICE_DESCRIPTION; import static org.zowe.apiml.constants.EurekaMetadataDefinition.SERVICE_TITLE; import static org.zowe.apiml.services.ServiceInfo.ApiInfoExtended; -import static org.zowe.apiml.services.ServiceInfoUtils.getBasePath; -import static org.zowe.apiml.services.ServiceInfoUtils.getInstances; -import static org.zowe.apiml.services.ServiceInfoUtils.getMajorVersion; -import static org.zowe.apiml.services.ServiceInfoUtils.getStatus; -import static org.zowe.apiml.services.ServiceInfoUtils.getVersion; +import static org.zowe.apiml.services.ServiceInfoUtils.*; /** * Similar to {@link org.zowe.apiml.gateway.services.ServicesInfoService} service which does not depend on gateway-service components. @@ -136,7 +128,7 @@ private List getAuthentication(List appInstances) .map(instanceInfo -> eurekaMetadataParser.parseAuthentication(instanceInfo.getMetadata())) .filter(a -> !a.isEmpty()) .distinct() - .collect(Collectors.toList()); + .toList(); } private InstanceInfo getInstanceWithHighestVersion(List appInstances) { diff --git a/common-service-core/src/main/java/org/zowe/apiml/util/CacheUtils.java b/common-service-core/src/main/java/org/zowe/apiml/util/CacheUtils.java index cc2d81d6f0..7a3803a52e 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/util/CacheUtils.java +++ b/common-service-core/src/main/java/org/zowe/apiml/util/CacheUtils.java @@ -70,7 +70,7 @@ public void evictSubset(CacheManager cacheManager, String cacheName, Predicate keysToRemove = StreamSupport.stream(spliterator, true) // if the key matches the predicate then evict the record or // if the key is not compositeKey (unknown for evict) evict record (as failover) - .filter(e -> !(e.getKey() instanceof CompositeKey) || keyPredicate.test((CompositeKey) e.getKey())) + .filter(e -> !(e.getKey() instanceof CompositeKey key) || keyPredicate.test(key)) .map(javax.cache.Cache.Entry::getKey) .collect(Collectors.toSet()); ((javax.cache.Cache) nativeCache).removeAll(keysToRemove); @@ -96,7 +96,7 @@ public List getAllRecords(CacheManager cacheManager, String cacheName) { final Object nativeCache = cache.getNativeCache(); if (nativeCache instanceof javax.cache.Cache) { Spliterator> spliterator = ((javax.cache.Cache) nativeCache).spliterator(); - return StreamSupport.stream(spliterator, true).map(javax.cache.Cache.Entry::getValue).collect(Collectors.toList()); + return StreamSupport.stream(spliterator, true).map(javax.cache.Cache.Entry::getValue).toList(); } else if (nativeCache instanceof NoOpCache) { return Collections.emptyList(); } else { diff --git a/common-service-core/src/main/java/org/zowe/apiml/util/CookieUtil.java b/common-service-core/src/main/java/org/zowe/apiml/util/CookieUtil.java index b1a4f1ef96..15fde74492 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/util/CookieUtil.java +++ b/common-service-core/src/main/java/org/zowe/apiml/util/CookieUtil.java @@ -11,6 +11,7 @@ package org.zowe.apiml.util; import lombok.experimental.UtilityClass; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.http.HttpHeaders; @@ -24,6 +25,7 @@ /** * A utility class for Cookies administration */ +@Slf4j @UtilityClass public final class CookieUtil { @@ -159,6 +161,15 @@ public static String removeCookie(String cookieHeader, String name) { return sb.toString(); } + static List parseCookieSuppress(String cookie) { + try { + return HttpCookie.parse(cookie); + } catch (Exception e) { + log.debug("Cannot parse cookie from String `{}`: {}", cookie, e.getMessage()); + return Collections.emptyList(); + } + } + /** * Read cookie from HTTP header and return it as stream, otherwise return empty list. * @param httpHeaders the HTTP header @@ -171,7 +182,7 @@ public static Stream readCookies(HttpHeaders httpHeaders) { .map(v -> StringUtils.split(v, ";")) .flatMap(Arrays::stream) .map(StringUtils::trim) - .map(HttpCookie::parse) + .map(CookieUtil::parseCookieSuppress) .flatMap(List::stream); } diff --git a/common-service-core/src/main/java/org/zowe/apiml/util/Cookies.java b/common-service-core/src/main/java/org/zowe/apiml/util/Cookies.java index 99449c25a1..36f795e6be 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/util/Cookies.java +++ b/common-service-core/src/main/java/org/zowe/apiml/util/Cookies.java @@ -48,7 +48,7 @@ public List get(String needle) { return getAll() .stream() .filter(c -> c.getName().equalsIgnoreCase(needle)) - .collect(Collectors.toList()); + .toList(); } public void set(HttpCookie cookie) { @@ -72,7 +72,7 @@ public void remove(String cookie) { List cookieList = getAllCookiesFromHeader(header); cookieList = cookieList.stream() .filter(c -> !c.getName().equalsIgnoreCase(cookie)) - .collect(Collectors.toList()); + .toList(); if (cookieList.isEmpty()) { request.removeHeaders(HttpHeaders.COOKIE); } else { diff --git a/common-service-core/src/main/java/org/zowe/apiml/util/RequestUtils.java b/common-service-core/src/main/java/org/zowe/apiml/util/RequestUtils.java index 6d9eebfe97..b4dbfef704 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/util/RequestUtils.java +++ b/common-service-core/src/main/java/org/zowe/apiml/util/RequestUtils.java @@ -51,7 +51,7 @@ public List
getHeader(String needle) { return getAllHeaders().stream() .filter(h -> h.getName().equalsIgnoreCase(needle)) - .collect(Collectors.toList()); + .toList(); } public void setHeader(Header newHeader) { @@ -65,14 +65,14 @@ public void setHeader(Header newHeader) { public void removeHeader(String needle) { List
newHeaderList = getAllHeaders().stream() .filter(h -> !h.getName().equalsIgnoreCase(needle)) - .collect(Collectors.toList()); + .toList(); request.setHeaders(newHeaderList.toArray(new Header[] {})); } public List getAllCookies() { List cookieList = new ArrayList<>(); List
cookieHeaders = getAllHeaders().stream() - .filter(h -> h.getName().equalsIgnoreCase(HttpHeaders.COOKIE)).collect(Collectors.toList()); + .filter(h -> h.getName().equalsIgnoreCase(HttpHeaders.COOKIE)).toList(); cookieHeaders.forEach(h -> cookieList.addAll(getAllCookiesFromHeader(h))); return cookieList; @@ -94,7 +94,7 @@ private List getAllCookiesFromHeader(Header header) { } public List getCookie(String needle) { - return getAllCookies().stream().filter(c -> c.getName().equalsIgnoreCase(needle)).collect(Collectors.toList()); + return getAllCookies().stream().filter(c -> c.getName().equalsIgnoreCase(needle)).toList(); } public void setCookie(HttpCookie cookie) { @@ -124,7 +124,7 @@ public void removeCookie(String cookie) { List cookieList = getAllCookiesFromHeader(header); cookieList = cookieList.stream() .filter(c -> !c.getName().equalsIgnoreCase(cookie)) - .collect(Collectors.toList()); + .toList(); if (cookieList.isEmpty()) { removeHeader(HttpHeaders.COOKIE); } else { diff --git a/common-service-core/src/main/java/org/zowe/apiml/util/UrlUtils.java b/common-service-core/src/main/java/org/zowe/apiml/util/UrlUtils.java index d1ade2e026..307b1aa7db 100644 --- a/common-service-core/src/main/java/org/zowe/apiml/util/UrlUtils.java +++ b/common-service-core/src/main/java/org/zowe/apiml/util/UrlUtils.java @@ -40,9 +40,8 @@ public String getEncodedUrl(String url) { if (url != null) { return url.replaceAll("\\W", "-"); } else { - SecureRandom random = new SecureRandom(); byte[] bytes = new byte[20]; - random.nextBytes(bytes); + new SecureRandom().nextBytes(bytes); return Arrays.toString(bytes); } } diff --git a/common-service-core/src/test/java/org/zowe/apiml/message/log/ApimlLoggerTest.java b/common-service-core/src/test/java/org/zowe/apiml/message/log/ApimlLoggerTest.java index 8c835579ee..586e226ef0 100644 --- a/common-service-core/src/test/java/org/zowe/apiml/message/log/ApimlLoggerTest.java +++ b/common-service-core/src/test/java/org/zowe/apiml/message/log/ApimlLoggerTest.java @@ -20,8 +20,7 @@ import org.springframework.test.util.ReflectionTestUtils; import org.zowe.apiml.message.template.MessageTemplate; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNull; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; @@ -103,6 +102,16 @@ void when_nullKey_return_invalidKeyMessage() { verify(logger, times(1)).error(marker, "ZWEAM102E Internal error: Invalid message key " + "'null' provided. No default message found. Please contact support of further assistance.", new Object[0]); } + + @Test + void when_nullMessageArgument_doNotThrowRuntimeException() { + assertDoesNotThrow(() -> apimlLogger.log(null)); + } + + @Test + void when_nullArguments_doNotThrowRuntimeException() { + assertDoesNotThrow(() -> apimlLogger.log((MessageType) null, null)); + } } } diff --git a/common-service-core/src/test/java/org/zowe/apiml/security/HttpsFactoryTest.java b/common-service-core/src/test/java/org/zowe/apiml/security/HttpsFactoryTest.java index 865be4a4da..c1a469784d 100644 --- a/common-service-core/src/test/java/org/zowe/apiml/security/HttpsFactoryTest.java +++ b/common-service-core/src/test/java/org/zowe/apiml/security/HttpsFactoryTest.java @@ -21,14 +21,9 @@ import javax.net.ssl.SSLContext; import java.security.KeyStoreException; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.*; class HttpsFactoryTest { - private static final String EUREKA_URL_NO_SCHEME = "://localhost:10011/eureka/"; - private static final String TEST_SERVICE_ID = "service1"; private static final String INCORRECT_PARAMETER_VALUE = "WRONG"; private HttpsConfig.HttpsConfigBuilder httpsConfigBuilder; diff --git a/common-service-core/src/test/java/org/zowe/apiml/util/CookieUtilTest.java b/common-service-core/src/test/java/org/zowe/apiml/util/CookieUtilTest.java index 4eeabdb2fa..9eaafb7613 100644 --- a/common-service-core/src/test/java/org/zowe/apiml/util/CookieUtilTest.java +++ b/common-service-core/src/test/java/org/zowe/apiml/util/CookieUtilTest.java @@ -63,6 +63,12 @@ void givenNoCookie_thenReturnEmpty() { Stream httpCookieStream = CookieUtil.readCookies(header); assertTrue(httpCookieStream.toList().isEmpty()); } + + @Test + void givenInvalidCookie_thenReturnEmptyList() { + assertTrue(CookieUtil.parseCookieSuppress("invalid").isEmpty()); + } + } @Nested diff --git a/config/docker/caching-service.yml b/config/docker/caching-service.yml index fe136a4920..4ad11ff4fb 100644 --- a/config/docker/caching-service.yml +++ b/config/docker/caching-service.yml @@ -2,6 +2,7 @@ apiml: service: discoveryServiceUrls: https://discovery-service:10011/eureka/ hostname: caching-service + banner: console server: ssl: diff --git a/config/local/caching-service-2.yml b/config/local/caching-service-2.yml index cf65f19e92..6444570da3 100644 --- a/config/local/caching-service-2.yml +++ b/config/local/caching-service-2.yml @@ -12,6 +12,7 @@ caching: apiml: service: port: 10022 + banner: console spring: profiles: include: dev diff --git a/config/local/caching-service.yml b/config/local/caching-service.yml index 4ae553766b..ff768816f8 100644 --- a/config/local/caching-service.yml +++ b/config/local/caching-service.yml @@ -1,3 +1,5 @@ +apiml: + banner: console jgroups: bind: port: 7098 diff --git a/config/local/gateway-service.yml b/config/local/gateway-service.yml index 389f69f17d..75affbb305 100644 --- a/config/local/gateway-service.yml +++ b/config/local/gateway-service.yml @@ -7,6 +7,7 @@ apiml: forwardClientCertEnabled: true hostname: localhost port: 10010 + banner: console eureka: client: serviceUrl: diff --git a/containers/README.md b/containers/README.md index 00190f34fa..da4490e59f 100644 --- a/containers/README.md +++ b/containers/README.md @@ -9,7 +9,7 @@ Each image supports both `amd64` and `s390x` CPU architectures. ## Gateway Service Image -Image `zowe-docker-release.jfrog.io/ompzowe/gateway-service:2` should be able to run with minimal environment variables: +Image `zowe-docker-release.jfrog.io/ompzowe/gateway-service:3` should be able to run with minimal environment variables: - `ZWE_configs_certificate_keystore_file`: path to keystore. - `ZWE_configs_certificate_keystore_alias`: certificate alias stored in keystore. @@ -25,7 +25,7 @@ Example commands: ``` # pull image -docker pull zowe-docker-release.jfrog.io/ompzowe/gateway-service:2 +docker pull zowe-docker-release.jfrog.io/ompzowe/gateway-service:3 # start container docker run -it --rm -p 7554:7554 \ -v $(pwd)/keystore:/home/zowe/keystore \ @@ -36,12 +36,12 @@ docker run -it --rm -p 7554:7554 \ -e ZWE_configs_certificate_truststore_password=password \ -e CMMN_LB=apiml-common-lib/bin/api-layer-lite-lib-all.jar \ -e ZWE_zowe_workspaceDirectory=/component \ - zowe-docker-release.jfrog.io/ompzowe/gateway-service:2 + zowe-docker-release.jfrog.io/ompzowe/gateway-service:3 ``` ## Discovery Service Image -Image `zowe-docker-release.jfrog.io/ompzowe/discovery-service:2` should be able to run with minimal environment variables: +Image `zowe-docker-release.jfrog.io/ompzowe/discovery-service:3` should be able to run with minimal environment variables: - `ZWE_configs_certificate_keystore_file`: path to keystore. - `ZWE_configs_certificate_keystore_alias`: certificate alias stored in keystore. @@ -57,7 +57,7 @@ Example commands: ``` # pull image -docker pull zowe-docker-release.jfrog.io/ompzowe/discovery-service:2 +docker pull zowe-docker-release.jfrog.io/ompzowe/discovery-service:3 # start container docker run -it --rm -p 7553:7553 \ -v $(pwd)/keystore:/home/zowe/keystore \ @@ -68,12 +68,12 @@ docker run -it --rm -p 7553:7553 \ -e ZWE_configs_certificate_truststore_password=password \ -e CMMN_LB=apiml-common-lib/bin/api-layer-lite-lib-all.jar \ -e ZWE_zowe_workspaceDirectory=/component \ - zowe-docker-release.jfrog.io/ompzowe/discovery-service:2 + zowe-docker-release.jfrog.io/ompzowe/discovery-service:3 ``` ## API Catalog Image -Image `zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:2` should be able to run with minimal environment variables: +Image `zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:3` should be able to run with minimal environment variables: - `ZWE_configs_certificate_keystore_file`: path to keystore. - `ZWE_configs_certificate_keystore_alias`: certificate alias stored in keystore. @@ -90,7 +90,7 @@ Example commands: ``` # pull image -docker pull zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:2 +docker pull zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:3 # start container docker run -it --rm -p 7552:7552 \ -v $(pwd)/keystore:/home/zowe/keystore \ @@ -102,12 +102,12 @@ docker run -it --rm -p 7552:7552 \ -e CMMN_LB=apiml-common-lib/bin/api-layer-lite-lib-all.jar \ -e ZWE_zowe_workspaceDirectory=/component \ -e ZWE_GATEWAY_HOST=gateway.com \ - zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:2 + zowe-docker-release.jfrog.io/ompzowe/api-catalog-services:3 ``` ## Caching Service Image -Image `zowe-docker-release.jfrog.io/ompzowe/caching-service:2` should be able to run with minimal environment variables: +Image `zowe-docker-release.jfrog.io/ompzowe/caching-service:3` should be able to run with minimal environment variables: - `ZWE_configs_certificate_keystore_file`: path to keystore. - `ZWE_configs_certificate_keystore_alias`: certificate alias stored in keystore. @@ -122,7 +122,7 @@ Example commands: ``` # pull image -docker pull zowe-docker-release.jfrog.io/ompzowe/caching-service:2 +docker pull zowe-docker-release.jfrog.io/ompzowe/caching-service:3 # start container docker run -it --rm -p 7555:7555 \ -v $(pwd)/keystore:/home/zowe/keystore \ @@ -132,5 +132,35 @@ docker run -it --rm -p 7555:7555 \ -e ZWE_configs_certificate_truststore_file=/home/zowe/keystore/localhost/localhost.truststore.p12 \ -e ZWE_configs_certificate_truststore_password=password \ -e ZWE_zowe_workspaceDirectory=/component \ - zowe-docker-release.jfrog.io/ompzowe/caching-service:2 + zowe-docker-release.jfrog.io/ompzowe/caching-service:3 +``` + +## ZAAS Image + +Image `zowe-docker-release.jfrog.io/ompzowe/zaas:3` should be able to run with minimal environment variables: + +- `ZWE_configs_certificate_keystore_file`: path to keystore. +- `ZWE_configs_certificate_keystore_alias`: certificate alias stored in keystore. +- `ZWE_configs_certificate_keystore_password`: password of your keystore. +- `ZWE_configs_certificate_truststore_file`: path to truststore. +- `ZWE_configs_certificate_truststore_password`: password of your truststore. +- `ZWE_zowe_workspaceDirectory`: set to `/component` + +Review the [ZAAS package start script](../zaas-package/src/main/resources/bin/start.sh) to see other environment variables that can be set. + +Example commands: + +``` +# pull image +docker pull zowe-docker-release.jfrog.io/ompzowe/zaas-service:3 +# start container +docker run -it --rm -p 7558:7558 \ + -v $(pwd)/keystore:/home/zowe/keystore \ + -e ZWE_configs_certificate_keystore_file=/home/zowe/keystore/localhost/localhost.keystore.p12 \ + -e ZWE_configs_certificate_keystore_alias=localhost \ + -e ZWE_configs_certificate_keystore_password=password \ + -e ZWE_configs_certificate_truststore_file=/home/zowe/keystore/localhost/localhost.truststore.p12 \ + -e ZWE_configs_certificate_truststore_password=password \ + -e ZWE_zowe_workspaceDirectory=/component \ + zowe-docker-release.jfrog.io/ompzowe/caching-service:3 ``` diff --git a/containers/zaas-service/Dockerfile b/containers/zaas-service/Dockerfile index b04a493c4e..e1b82f99c9 100644 --- a/containers/zaas-service/Dockerfile +++ b/containers/zaas-service/Dockerfile @@ -36,5 +36,5 @@ COPY --chown=zowe:zowe component/LICENSE /licenses ################################## # start command -EXPOSE 7563 +EXPOSE 7558 ENTRYPOINT [ "bin/start.sh" ] diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/api/PetControllerExceptionHandler.java b/discoverable-client/src/main/java/org/zowe/apiml/client/api/PetControllerExceptionHandler.java index b26cad80b3..e246276f27 100644 --- a/discoverable-client/src/main/java/org/zowe/apiml/client/api/PetControllerExceptionHandler.java +++ b/discoverable-client/src/main/java/org/zowe/apiml/client/api/PetControllerExceptionHandler.java @@ -10,12 +10,6 @@ package org.zowe.apiml.client.api; -import org.zowe.apiml.client.exception.PetIdMismatchException; -import org.zowe.apiml.client.exception.PetNotFoundException; -import org.zowe.apiml.message.api.ApiMessage; -import org.zowe.apiml.message.api.ApiMessageView; -import org.zowe.apiml.message.core.Message; -import org.zowe.apiml.message.core.MessageService; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.exc.InvalidFormatException; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; @@ -30,10 +24,15 @@ import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; +import org.zowe.apiml.client.exception.PetIdMismatchException; +import org.zowe.apiml.client.exception.PetNotFoundException; +import org.zowe.apiml.message.api.ApiMessage; +import org.zowe.apiml.message.api.ApiMessageView; +import org.zowe.apiml.message.core.Message; +import org.zowe.apiml.message.core.MessageService; import java.util.ArrayList; import java.util.List; -import java.util.stream.Collectors; /** * This class creates responses for exceptional behavior of the PetController @@ -115,7 +114,7 @@ public ResponseEntity handleMethodArgumentNotValid(MethodArgumen .createMessage("org.zowe.apiml.sampleservice.api.petMethodArgumentNotValid", messages) .stream() .map(Message::mapToApiMessage) - .collect(Collectors.toList()); + .toList(); return ResponseEntity .status(HttpStatus.BAD_REQUEST) diff --git a/discoverable-client/src/main/resources/application.yml b/discoverable-client/src/main/resources/application.yml index 568a29f634..065adc21cf 100644 --- a/discoverable-client/src/main/resources/application.yml +++ b/discoverable-client/src/main/resources/application.yml @@ -150,7 +150,7 @@ server: ssl: enabled: true clientAuth: want - protocol: TLSv1.2 + protocol: TLSv1.3 enabled-protocols: TLSv1.2+TLSv1.3 ciphers: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384 keyStoreType: PKCS12 diff --git a/discoverable-client/src/main/resources/logback.xml b/discoverable-client/src/main/resources/logback.xml index 0530aa584b..79cb080a01 100644 --- a/discoverable-client/src/main/resources/logback.xml +++ b/discoverable-client/src/main/resources/logback.xml @@ -5,7 +5,7 @@ 0 - + %d{yyyy-MM-dd HH:mm:ss.SSS,UTC} %clr(<${logbackService:-${logbackServiceName}}:%thread:${PID:- }>){magenta} %X{userid:-} %clr(%-5level) %clr(\(%logger{15}\)){cyan} %msg%n diff --git a/discovery-package/src/main/resources/bin/configure.sh b/discovery-package/src/main/resources/bin/configure.sh new file mode 100644 index 0000000000..6584b6a7b3 --- /dev/null +++ b/discovery-package/src/main/resources/bin/configure.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +################################################################################ +# 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 IBM Corporation 2021 +################################################################################ + +if [ -z "$ZWE_zowe_workspaceDirectory" ]; then + echo "Workspace directory is not defined" + exit 1 +fi + +echo "$(env)" > $ZWE_zowe_workspaceDirectory/api-mediation/api-defs/env + +INSTANCE_ID=$ZWE_haInstance_id + +if [ -z "$INSTANCE_ID" ]; then + SOURCE_FILE=$ZWE_zowe_workspaceDirectory/api-mediation/api-defs/discovery.zosmf_static_definition_yaml_template.yml +else + SOURCE_FILE=$ZWE_zowe_workspaceDirectory/api-mediation/api-defs/discovery.zosmf_static_definition_yaml_template.$INSTANCE_ID.yml +fi + +DEST_FILE="$ZWE_zowe_workspaceDirectory/api-mediation/api-defs/zosmf.temp" + +ZOSMF_SCHEME=https + +if [ "$ZWE_zowe_network_client_tls_attls" = "true" ]; then + ZOSMF_SCHEME=http +fi + +if [ -e "$SOURCE_FILE" ]; then + chtag -tc ISO8859-1 $SOURCE_FILE + sed -e "s|%ZOSMF_SCHEME%|${ZOSMF_SCHEME}|g" $SOURCE_FILE > $DEST_FILE + iconv -f IBM-1047 -t ISO8859-1 $DEST_FILE > $SOURCE_FILE + chtag -tc ISO8859-1 $SOURCE_FILE + rm -f $DEST_FILE +else + echo "File $SOURCE_FILE not found" +fi diff --git a/discovery-package/src/main/resources/bin/start.sh b/discovery-package/src/main/resources/bin/start.sh index 7f63b93ee3..81b1d2d4cb 100755 --- a/discovery-package/src/main/resources/bin/start.sh +++ b/discovery-package/src/main/resources/bin/start.sh @@ -101,10 +101,15 @@ if [ "$(uname)" = "OS/390" ]; then fi ATTLS_ENABLED="false" -# ZWE_configs_spring_profiles_active for back compatibility, should be removed in v3 - enabling via Spring profile -if [ "${ZWE_zowe_network_server_tls_attls}" = "true" -o "$(echo ${ZWE_configs_spring_profiles_active:-} | awk '/^(.*,)?attls(,.*)?$/')" ]; then +ATTLS_CLIENT_ENABLED="false" + +if [ "${ZWE_zowe_network_server_tls_attls}" = "true" ]; then ATTLS_ENABLED="true" fi +if [ "${ZWE_zowe_network_client_tls_attls}" = "true" ]; then + ATTLS_CLIENT_ENABLED="true" +fi + if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_server_ssl_enabled="false" if [ -n "${ZWE_configs_spring_profiles_active}" ]; then @@ -113,9 +118,8 @@ if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_spring_profiles_active="${ZWE_configs_spring_profiles_active}attls" fi -# Verify discovery service URL in case AT-TLS is enabled, assumes outgoing rules are in place ZWE_DISCOVERY_SERVICES_LIST=${ZWE_DISCOVERY_SERVICES_LIST:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_discovery_port:-7553}/eureka/"} -if [ "${ATTLS_ENABLED}" = "true" ]; then +if [ "${ATTLS_CLIENT_ENABLED}" = "true" ]; then ZWE_DISCOVERY_SERVICES_LIST=$(echo "${ZWE_DISCOVERY_SERVICES_LIST=}" | sed -e 's|https://|http://|g') fi @@ -150,6 +154,51 @@ ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" +get_enabled_protocol_limit() { + target=$1 + type=$2 + key_component="ZWE_configs_zowe_network_${target}_tls_${type}Tls" + value_component=$(eval echo \$$key_component) + key_gateway="ZWE_components_gateway_zowe_network_${target}_tls_${type}Tls" + value_gateway=$(eval echo \$$key_gateway) + key_zowe="ZWE_zowe_network_${target}_tls_${type}Tls" + value_zowe=$(eval echo \$$key_zowe) + enabled_protocol_limit=${value_component:-${value_gateway:-${value_zowe:-}}} +} + +extract_between() { + echo "$1" | sed -e "s/.*$2,//" -e "s/$3.*//" +} + +get_enabled_protocol() { + target=$1 + get_enabled_protocol_limit "${target}" "min" + enabled_protocols_min=${enabled_protocol_limit} + get_enabled_protocol_limit "${target}" "max" + enabled_protocols_max=${enabled_protocol_limit} + + if [ "${enabled_protocols_min:-}" = "${enabled_protocols_max:-}" ]; then + result="${enabled_protocols_max:-}" + elif [ -z "${enabled_protocols_min:-}" ]; then + result="${enabled_protocols_max:-}" + else + enabled_protocols_max=${enabled_protocols_max:-"TLSv1.3"} + enabled_protocols=,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TLSv1.4, + # Extract protocols between min and max (inclusive) + result=$(extract_between "$enabled_protocols" "$enabled_protocols_min" "$enabled_protocols_max") + result="$enabled_protocols_min,$result$enabled_protocols_max" + fi +} + +get_enabled_protocol_limit "server" "max" +server_protocol=${enabled_protocol_limit:-"TLS"} +get_enabled_protocol "server" +server_enabled_protocols=${result:-"TLSv1.3"} +server_ciphers=${ZWE_configs_zowe_network_server_tls_ciphers:-${ZWE_components_gateway_zowe_network_server_tls_ciphers:-${ZWE_zowe_network_server_tls_ciphers:-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384}}} +get_enabled_protocol "client" +client_enabled_protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-${result:-${server_enabled_protocols}}} +client_ciphers=${ZWE_configs_zowe_network_client_tls_ciphers:-${ZWE_components_gateway_zowe_network_client_tls_ciphers:-${ZWE_zowe_network_client_tls_ciphers:-${server_ciphers}}}} + keystore_type="${ZWE_configs_certificate_keystore_type:-${ZWE_zowe_certificate_keystore_type:-PKCS12}}" keystore_pass="${ZWE_configs_certificate_keystore_password:-${ZWE_zowe_certificate_keystore_password}}" key_alias="${ZWE_configs_certificate_keystore_alias:-${ZWE_zowe_certificate_keystore_alias}}" @@ -198,7 +247,7 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${DISCOVERY_CODE} ${JAVA_BIN_DIR}java \ -Djava.io.tmpdir=${TMPDIR:-/tmp} \ -Dspring.profiles.active=${ZWE_configs_spring_profiles_active:-https} \ -Dspring.profiles.include=$LOG_LEVEL \ - -Dserver.address=0.0.0.0 \ + -Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \ -Dapiml.discovery.userid=eureka \ -Dapiml.discovery.password=password \ -Dapiml.discovery.allPeersUrls=${ZWE_DISCOVERY_SERVICES_LIST} \ @@ -211,9 +260,12 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${DISCOVERY_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.security.ssl.verifySslCertificatesOfServices=${verifySslCertificatesOfServices:-false} \ -Dapiml.security.ssl.nonStrictVerifySslCertificatesOfServices=${nonStrictVerifySslCertificatesOfServices:-false} \ -Dapiml.security.auth.cookieProperties.cookieName=${cookieName:-apimlAuthenticationToken} \ - -Dapiml.httpclient.ssl.enabled-protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-"TLSv1.2"} \ -Dserver.ssl.enabled=${ZWE_configs_server_ssl_enabled:-true} \ - -Dserver.ssl.protocol=${ZWE_configs_server_ssl_protocol:-"TLSv1.2"} \ + -Dapiml.httpclient.ssl.enabled-protocols=${client_enabled_protocols} \ + -Djdk.tls.client.cipherSuites=${client_ciphers} \ + -Dserver.ssl.ciphers=${server_ciphers} \ + -Dserver.ssl.protocol=${server_protocol} \ + -Dserver.ssl.enabled-protocols=${server_enabled_protocols} \ -Dserver.ssl.keyStore="${keystore_location}" \ -Dserver.ssl.keyStoreType="${keystore_type}" \ -Dserver.ssl.keyStorePassword="${keystore_pass}" \ diff --git a/discovery-package/src/main/resources/manifest.yaml b/discovery-package/src/main/resources/manifest.yaml index 9156595c70..8a85d86c50 100644 --- a/discovery-package/src/main/resources/manifest.yaml +++ b/discovery-package/src/main/resources/manifest.yaml @@ -21,6 +21,7 @@ build: commands: start: bin/start.sh validate: bin/validate.sh + configure: bin/configure.sh # if we need to automatically tag file encoding on z/OS during installation autoEncoding: # tag all files diff --git a/discovery-package/src/main/resources/zosmf-static-definition.yaml.template b/discovery-package/src/main/resources/zosmf-static-definition.yaml.template index 73eeac20c3..f6ac38400e 100644 --- a/discovery-package/src/main/resources/zosmf-static-definition.yaml.template +++ b/discovery-package/src/main/resources/zosmf-static-definition.yaml.template @@ -9,7 +9,7 @@ services: description: 'IBM z/OS Management Facility REST API service. Once configured you can access z/OSMF via the API gateway: https://${ZOWE_EXPLORER_HOST}:${GATEWAY_PORT}/ibmzosmf/api/v1/info' catalogUiTileId: zosmf instanceBaseUrls: - - ${ZWE_zOSMF_scheme:-https}://${ZOSMF_HOST}:${ZOSMF_PORT}/ + - %ZOSMF_SCHEME%://${ZOSMF_HOST}:${ZOSMF_PORT}/" homePageRelativeUrl: # Home page is at the same URL routedServices: - gatewayUrl: api/v1 @@ -20,7 +20,7 @@ services: - apiId: ibm.zosmf gatewayUrl: api/v1 documentationUrl: https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.4.0/com.ibm.zos.v2r4.izua700/IZUHPINFO_RESTServices.htm - swaggerUrl: ${ZWE_zOSMF_scheme:-https}://${ZOSMF_HOST}:${ZOSMF_PORT}/zosmf/api/docs + swaggerUrl: %ZOSMF_SCHEME%://${ZOSMF_HOST}:${ZOSMF_PORT}/zosmf/api/docs" customMetadata: apiml: enableUrlEncodedCharacters: true diff --git a/discovery-service/build.gradle b/discovery-service/build.gradle index c5197bea5d..c7fa918ec8 100644 --- a/discovery-service/build.gradle +++ b/discovery-service/build.gradle @@ -61,8 +61,9 @@ dependencies { implementation libs.apache.commons.lang3 implementation libs.jackson.dataformat.yaml + implementation libs.caffeine - testImplementation(testFixtures(project(":integration-tests"))) + testImplementation(testFixtures(project(":apiml-common"))) testImplementation libs.spring.boot.starter.test testImplementation libs.rest.assured diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/config/DiscoveryErrorController.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/config/DiscoveryErrorController.java new file mode 100644 index 0000000000..4b49270fc2 --- /dev/null +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/config/DiscoveryErrorController.java @@ -0,0 +1,48 @@ +/* + * 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. + */ + +package org.zowe.apiml.discovery.config; + +import jakarta.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.StringUtils; +import org.springframework.boot.autoconfigure.web.ServerProperties; +import org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController; +import org.springframework.boot.autoconfigure.web.servlet.error.ErrorViewResolver; +import org.springframework.boot.web.servlet.error.ErrorAttributes; +import org.springframework.context.annotation.Primary; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.List; +import java.util.Map; + +@Primary +@Controller +@RequestMapping(value = "${server.error.path:${error.path:/error}}") +public class DiscoveryErrorController extends BasicErrorController { + + public DiscoveryErrorController(ErrorAttributes errorAttributes, ServerProperties serverProperties, List errorViewResolvers) { + super(errorAttributes, serverProperties.getError(), errorViewResolvers); + } + + @Override + @RequestMapping // NOSONAR - No security risk, the controller cleans body for specified endpoint patterns + public ResponseEntity> error(HttpServletRequest request) { + HttpStatus status = getStatus(request); + String originalUrl = String.valueOf(request.getAttribute("jakarta.servlet.error.request_uri")); + if ((status == HttpStatus.NOT_FOUND) && StringUtils.startsWith(originalUrl, "/eureka/apps/")) { + return new ResponseEntity<>(status); + } + return super.error(request); + } + +} diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/eureka/RefreshablePeerEurekaNodes.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/eureka/RefreshablePeerEurekaNodes.java index 02eef94a29..f0a3576efb 100644 --- a/discovery-service/src/main/java/org/zowe/apiml/discovery/eureka/RefreshablePeerEurekaNodes.java +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/eureka/RefreshablePeerEurekaNodes.java @@ -12,6 +12,7 @@ import com.netflix.appinfo.ApplicationInfoManager; import com.netflix.discovery.EurekaClientConfig; +import com.netflix.discovery.converters.wrappers.CodecWrapper; import com.netflix.discovery.provider.DiscoveryJerseyProvider; import com.netflix.discovery.shared.transport.jersey3.EurekaIdentityHeaderFilter; import com.netflix.discovery.shared.transport.jersey3.EurekaJersey3Client; @@ -32,6 +33,7 @@ import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.params.CoreProtocolPNames; @@ -104,43 +106,7 @@ private Jersey3ReplicationClient createReplicationClient(EurekaServerConfig conf String jerseyClientName = "Discovery-PeerNodeClient-" + hostname; var fullJsonCodec = serverCodecs.getFullJsonCodec(); - EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder clientBuilder = new EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder() { - @Override - public EurekaJersey3Client build() { - ClientConfig clientConfig = new ClientConfig() { - { - - DiscoveryJerseyProvider discoveryJerseyProvider = new DiscoveryJerseyProvider(fullJsonCodec, fullJsonCodec); - register(discoveryJerseyProvider); - - // Common properties to all clients - ConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(secureSslContext, SSLConnectionSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER); - Registry registry = RegistryBuilder.create().register("https", socketFactory).build(); - var cm = new PoolingHttpClientConnectionManager(registry); - cm.setDefaultMaxPerRoute(config.getPeerNodeTotalConnectionsPerHost()); - cm.setMaxTotal(config.getPeerNodeTotalConnections()); - property(ApacheClientProperties.CONNECTION_MANAGER, cm); - - String fullUserAgentName = USER_AGENT + "/v" + buildVersion(); - property(CoreProtocolPNames.USER_AGENT, fullUserAgentName); - - // To pin a client to specific server in case redirect happens, we handle redirects directly - // (see DiscoveryClient.makeRemoteCall methods). - property(ClientProperties.FOLLOW_REDIRECTS, Boolean.FALSE); - property(ClientPNames.HANDLE_REDIRECTS, Boolean.FALSE); - } - }; - try { - return new EurekaJersey3ClientImpl( - config.getPeerNodeConnectTimeoutMs(), - config.getPeerNodeReadTimeoutMs(), - config.getPeerNodeConnectionIdleTimeoutSeconds(), - clientConfig); - } catch (Throwable e) { - throw new RuntimeException("Cannot create Jersey client ", e); - } - } - } + EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder clientBuilder = new CustomEurekaJersey3ClientBuilder(fullJsonCodec, config) .withClientName(jerseyClientName).withUserAgent(USER_AGENT) .withEncoderWrapper(fullJsonCodec) .withDecoderWrapper(fullJsonCodec) @@ -212,4 +178,49 @@ protected boolean shouldUpdate(final Set changedKeys) { return false; } + class CustomEurekaJersey3ClientBuilder extends EurekaJersey3ClientImpl.EurekaJersey3ClientBuilder { + private final CodecWrapper fullJsonCodec; + private final EurekaServerConfig config; + + public CustomEurekaJersey3ClientBuilder(CodecWrapper fullJsonCodec, EurekaServerConfig config) { + this.fullJsonCodec = fullJsonCodec; + this.config = config; + } + + @Override + public EurekaJersey3Client build() { + try { + return new EurekaJersey3ClientImpl( + config.getPeerNodeConnectTimeoutMs(), + config.getPeerNodeReadTimeoutMs(), + config.getPeerNodeConnectionIdleTimeoutSeconds(), + new CustomClientConfig(fullJsonCodec, config)); + } catch (Throwable e) { + throw new RuntimeException("Cannot create Jersey client ", e); + } + } + + class CustomClientConfig extends ClientConfig { + public CustomClientConfig(CodecWrapper fullJsonCodec, EurekaServerConfig config) { + DiscoveryJerseyProvider discoveryJerseyProvider = new DiscoveryJerseyProvider(fullJsonCodec, fullJsonCodec); + register(discoveryJerseyProvider); + + // Common properties to all clients + ConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(secureSslContext, NoopHostnameVerifier.INSTANCE); + Registry registry = RegistryBuilder.create().register("https", socketFactory).build(); + var cm = new PoolingHttpClientConnectionManager(registry); + cm.setDefaultMaxPerRoute(config.getPeerNodeTotalConnectionsPerHost()); + cm.setMaxTotal(config.getPeerNodeTotalConnections()); + property(ApacheClientProperties.CONNECTION_MANAGER, cm); + + String fullUserAgentName = USER_AGENT + "/v" + buildVersion(); + property(CoreProtocolPNames.USER_AGENT, fullUserAgentName); + + // To pin a client to specific server in case redirect happens, we handle redirects directly + // (see DiscoveryClient.makeRemoteCall methods). + property(ClientProperties.FOLLOW_REDIRECTS, Boolean.FALSE); + property(ClientPNames.HANDLE_REDIRECTS, Boolean.FALSE); + } + } + } } diff --git a/discovery-service/src/main/java/org/zowe/apiml/discovery/staticdef/ServiceDefinitionProcessor.java b/discovery-service/src/main/java/org/zowe/apiml/discovery/staticdef/ServiceDefinitionProcessor.java index b55b2b8e86..30fe0adcc3 100644 --- a/discovery-service/src/main/java/org/zowe/apiml/discovery/staticdef/ServiceDefinitionProcessor.java +++ b/discovery-service/src/main/java/org/zowe/apiml/discovery/staticdef/ServiceDefinitionProcessor.java @@ -19,6 +19,8 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; +import org.zowe.apiml.auth.Authentication; +import org.zowe.apiml.auth.AuthenticationScheme; import org.zowe.apiml.config.ApiInfo; import org.zowe.apiml.eurekaservice.client.util.EurekaMetadataParser; import org.zowe.apiml.exception.MetadataValidationException; @@ -26,8 +28,6 @@ import org.zowe.apiml.message.core.Message; import org.zowe.apiml.message.log.ApimlLogger; import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; -import org.zowe.apiml.auth.Authentication; -import org.zowe.apiml.auth.AuthenticationScheme; import org.zowe.apiml.util.MapUtils; import org.zowe.apiml.util.UrlUtils; @@ -40,7 +40,6 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.*; -import java.util.stream.Collectors; import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; @@ -87,7 +86,7 @@ protected List getFiles(StaticRegistrationResult context, String staticApi } return isDir; }) - .collect(Collectors.toList()); + .toList(); } /** diff --git a/discovery-service/src/main/resources/application.yml b/discovery-service/src/main/resources/application.yml index ca514eea47..21222b4332 100644 --- a/discovery-service/src/main/resources/application.yml +++ b/discovery-service/src/main/resources/application.yml @@ -9,6 +9,7 @@ logging: com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient: OFF com.netflix.discovery.DiscoveryClient: OFF org.springframework.boot.web.embedded.tomcat.TomcatWebServer: INFO + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: ERROR com.sun.jersey.server.impl.application.WebApplicationImpl: WARN org.ehcache: WARN org.springframework.security.config.annotation.web.builders.WebSecurity: ERROR @@ -18,6 +19,7 @@ logging: org.eclipse.jetty: WARN org.apache.http.conn.ssl.DefaultHostnameVerifier: DEBUG #logs only SSLException javax.net.ssl: ERROR + org.apache.tomcat.util.net.SSLUtilBase: ERROR # com.netflix.eureka.resources: WARN apiml: @@ -47,12 +49,16 @@ spring: client: hostname: ${apiml.service.hostname} ipAddress: ${apiml.service.ipAddress} + gateway: + mvc.enabled: false + enabled: false output: ansi: enabled: detect main: banner-mode: ${apiml.banner:"off"} allow-circular-references: true + web-application-type: servlet profiles.group: dev: debug, diag @@ -159,13 +165,15 @@ logging: ROOT: DEBUG org.zowe.apiml: DEBUG org.springframework: INFO + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: DEBUG org.apache: INFO org.apache.http: DEBUG + org.apache.tomcat.util.net: DEBUG com.netflix: INFO com.sun.jersey.server.impl.application.WebApplicationImpl: INFO org.ehcache: INFO com.netflix.discovery.shared.transport.decorator: DEBUG - javax.net.ssl: INFO + javax.net.ssl: ERROR --- spring.config.activate.on-profile: diag diff --git a/discovery-service/src/main/resources/discovery-log-messages.yml b/discovery-service/src/main/resources/discovery-log-messages.yml index dc32d504d0..787492f8ae 100644 --- a/discovery-service/src/main/resources/discovery-log-messages.yml +++ b/discovery-service/src/main/resources/discovery-log-messages.yml @@ -13,14 +13,14 @@ messages: type: ERROR text: "Cannot notify Gateway on '%s' about new instance '%s'" reason: "The Discovery Service tried to notify the Gateway about an instance update, but the REST call failed. The purpose of this call is to update the Gateway caches. The Gateway might be down or a network problem occurred." - action: "Ensure that there are no network issues and that the Gateway was not restarted. If the problem reoccurs, contact Broadcom support. " + action: "Ensure that there are no network issues and that the Gateway was not restarted. If the problem reoccurs, contact Broadcom support." - key: org.zowe.apiml.discovery.unregistration.gateway.notify number: ZWEAD401 type: ERROR text: "Cannot notify Gateway on '%s' about cancelled registration" reason: "The Discovery Service tried to notify the Gateway about service un-registration, but the REST call failed. The purpose of this call is to update the Gateway caches. The Gateway might be down or a network problem occurred." - action: "Ensure that there are no network issues and that the Gateway was not restarted. If the problem reoccurs, contact Broadcom support. " + action: "Ensure that there are no network issues and that the Gateway was not restarted. If the problem reoccurs, contact Broadcom support." # TLS,Certificate messages # 500-599 diff --git a/discovery-service/src/test/java/org/zowe/apiml/discovery/EurekaInstanceRegisteredListenerTest.java b/discovery-service/src/test/java/org/zowe/apiml/discovery/EurekaInstanceRegisteredListenerTest.java index 7357bdad33..8abd08fc28 100644 --- a/discovery-service/src/test/java/org/zowe/apiml/discovery/EurekaInstanceRegisteredListenerTest.java +++ b/discovery-service/src/test/java/org/zowe/apiml/discovery/EurekaInstanceRegisteredListenerTest.java @@ -11,8 +11,11 @@ package org.zowe.apiml.discovery; import com.netflix.appinfo.InstanceInfo; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.mockito.Mockito; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.cloud.netflix.eureka.server.event.EurekaInstanceRegisteredEvent; import org.zowe.apiml.discovery.metadata.MetadataDefaultsService; import org.zowe.apiml.discovery.metadata.MetadataTranslationService; @@ -20,38 +23,50 @@ import java.util.HashMap; import java.util.Map; +import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.*; +@ExtendWith(MockitoExtension.class) class EurekaInstanceRegisteredListenerTest { + @Mock + private MetadataTranslationService metadataTranslationService; + + @Mock + private MetadataDefaultsService metadataDefaultsService; + + private EurekaInstanceRegisteredListener eurekaInstanceRegisteredListener; + + private final Map metadata = new HashMap<>(); + + @BeforeEach + void setUp() { + eurekaInstanceRegisteredListener = new EurekaInstanceRegisteredListener(metadataTranslationService, metadataDefaultsService); + reset(metadataTranslationService, metadataDefaultsService); + } + @Test void getServiceId() { - MetadataTranslationService metadataTranslationService = Mockito.mock(MetadataTranslationService.class); - MetadataDefaultsService metadataDefaultsService = Mockito.mock(MetadataDefaultsService.class); - - EurekaInstanceRegisteredListener eirl = new EurekaInstanceRegisteredListener(metadataTranslationService, metadataDefaultsService); + var serviceId = "serviceName"; doAnswer( x -> { - assertEquals("serviceName", x.getArgument(0)); + assertEquals(serviceId, x.getArgument(0)); return null; } ).when(metadataDefaultsService).updateMetadata(anyString(), any()); - final Map metadata = new HashMap<>(); - InstanceInfo instanceInfo = mock(InstanceInfo.class); - when(instanceInfo.getInstanceId()).thenReturn("1:serviceName:2"); + when(instanceInfo.getInstanceId()).thenReturn("1:" + serviceId + ":2"); EurekaInstanceRegisteredEvent event = mock(EurekaInstanceRegisteredEvent.class); when(event.getInstanceInfo()).thenReturn(instanceInfo); - eirl.listen(event); + eurekaInstanceRegisteredListener.listen(event); - verify(metadataTranslationService, times(1)).translateMetadata("serviceName", metadata); - verify(metadataDefaultsService, times(1)).updateMetadata("serviceName", metadata); + verifyListenerMetadataOperations(serviceId); } private EurekaInstanceRegisteredEvent createEvent(String instanceId) { @@ -66,12 +81,21 @@ private EurekaInstanceRegisteredEvent createEvent(String instanceId) { @Test void registeredInstanceListen() { - EurekaInstanceRegisteredListener listener = new EurekaInstanceRegisteredListener(Mockito.mock(MetadataTranslationService.class), Mockito.mock(MetadataDefaultsService.class)); - listener.listen(createEvent("host:service:instance")); - listener.listen(createEvent("unknown format")); + assertDoesNotThrow(() -> eurekaInstanceRegisteredListener.listen(createEvent("host:service:instance"))); + verifyListenerMetadataOperations("service"); + + assertDoesNotThrow(() -> eurekaInstanceRegisteredListener.listen(createEvent("unknown format"))); + verifyListenerMetadataOperations(null); + + assertDoesNotThrow(() -> eurekaInstanceRegisteredListener.listen(createEvent("host:GATEWAY:instance"))); + verifyListenerMetadataOperations("GATEWAY"); + + } - listener.listen(createEvent("host:GATEWAY:instance")); + private void verifyListenerMetadataOperations(String serviceId) { + verify(metadataTranslationService, times(1)).translateMetadata(serviceId, metadata); + verify(metadataDefaultsService, times(1)).updateMetadata(serviceId, metadata); } } diff --git a/discovery-service/src/test/java/org/zowe/apiml/discovery/eureka/EurekaEndpointTest.java b/discovery-service/src/test/java/org/zowe/apiml/discovery/eureka/EurekaEndpointTest.java new file mode 100644 index 0000000000..f28388bc9c --- /dev/null +++ b/discovery-service/src/test/java/org/zowe/apiml/discovery/eureka/EurekaEndpointTest.java @@ -0,0 +1,75 @@ +/* + * 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. + */ + +package org.zowe.apiml.discovery.eureka; + +import io.restassured.http.ContentType; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.HttpStatus; +import org.springframework.test.context.ActiveProfiles; +import org.zowe.apiml.discovery.functional.DiscoveryFunctionalTest; +import org.zowe.apiml.util.config.SslContext; +import org.zowe.apiml.util.config.SslContextConfigurer; + +import static io.restassured.RestAssured.given; +import static org.hamcrest.core.IsEqual.equalTo; + +@ActiveProfiles("https") +@TestInstance(Lifecycle.PER_CLASS) +public class EurekaEndpointTest extends DiscoveryFunctionalTest { + + @Value("${server.ssl.keyPassword}") + char[] password; + @Value("${server.ssl.keyStore}") + String client_cert_keystore; + @Value("${server.ssl.keyStore}") + String keystore; + + @BeforeEach + void setup() throws Exception { + SslContextConfigurer configurer = new SslContextConfigurer(password, client_cert_keystore, keystore); + SslContext.prepareSslAuthentication(configurer); + } + + @BeforeAll + void init() { + SslContext.reset(); + } + + @AfterAll + void tearDown() { + SslContext.reset(); + } + + @Override + protected String getProtocol() { + return "https"; + } + + @Test + void givenInvalidService_whenRenewInstance_thenReturnEmptyBody() { + given() + .config(SslContext.clientCertApiml) + .contentType(ContentType.JSON) + .log().all() + .when() + .put(getDiscoveryUriWithPath("/eureka/apps/unknown-service-id/unknown-instance-id")) + .then() + .statusCode(HttpStatus.NOT_FOUND.value()) + .body(equalTo("")); + } + +} diff --git a/discovery-service/src/test/java/org/zowe/apiml/discovery/staticdef/StaticApiRestControllerTest.java b/discovery-service/src/test/java/org/zowe/apiml/discovery/staticdef/StaticApiRestControllerTest.java index 5313ca9c80..aa3ffeb64e 100644 --- a/discovery-service/src/test/java/org/zowe/apiml/discovery/staticdef/StaticApiRestControllerTest.java +++ b/discovery-service/src/test/java/org/zowe/apiml/discovery/staticdef/StaticApiRestControllerTest.java @@ -20,10 +20,7 @@ import java.util.List; import static org.hamcrest.CoreMatchers.hasItem; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; @@ -55,7 +52,6 @@ public void setup() { @Test void listDefinitions() throws Exception { - String serviceName = "service"; String basicToken = "Basic " + Base64.getEncoder().encodeToString(CREDENTIALS.getBytes()); when(registrationService.getStaticInstances()).thenReturn(instancesInfo); diff --git a/docker/README.md b/docker/README.md deleted file mode 100644 index 7db837fe6e..0000000000 --- a/docker/README.md +++ /dev/null @@ -1,93 +0,0 @@ -# API Mediation Layer in container - -## Docker-compose - -Recommended setup for running API ML in the local setup. The API Mediation Layer containers are built using jib. - -### Quick start - -**Follow these steps:** - -1. Build all containers for local usage: - - ```sh - ./gradlew jibDockerBuild - ``` - -2. Run the whole configuration via: - - ```sh - docker compose -f docker/local-single/docker-compose.yml up - ``` - -3. Access the API Gateway on the URL: https://localhost:10010/ and wait until all services are green. - -### Quick start for HA - -1. Build all containers for local usage: - - ```sh - ./gradlew jibDockerBuild - ``` - -2. Run the whole configuration via: - - ```sh - docker compose -f docker/ha-local/docker-compose.yml up - ``` - -3. Access the API Gateway on the URL: https://localhost:10010/ and wait until all services are green. - - -## Single container - -**Deprecated**. Don't recommend to use anymore. - -In the end there are three articles: - - Start developing the API ML - - Verify that your API is working with the API ML - More technical / developer guy - - Use the try-out functionality - A different primary user - -The API Mediation Layer is available for development and testing packaged as a Docker container. - -There are two main reasons to use following Docker container: -1) You have an API and want to verify that you can onboard the API to the API Mediation Layer -2) You want to contribute to the API Mediation Layer but don't want to set up a full development environment on your machine - -To use the prepared container you need to [install the Docker Engine](https://docs.docker.com/install/) on the machine, where you want to run it. - -### Verify onboarding of API - -Just for running: -With volume for static configuration. - -``` -docker run --rm --name api-layer --net host -d jbalhar/api-layer-development:1.0.1 /sbin/my_init -docker exec api-layer bash _run -``` - -At the moment the static onboarding isn't allowed. Only via direct call or via enablers. - -The services are available via: -localhost:10010 -localhost:10011 -localhost:10014 - -To verify via - -### For the development use - -The main purpose of the development image is to help the new developer set up -their environment with as little pain as possible. The built image is available -via [Docker hub](https://hub.docker.com/r/jbalhar/api-layer-development) - -The main goal of the image is to simplify running of all the types of the tests. To do so there is a script [_test](https://github.com/zowe/api-layer/blob/master/docker/development/_test) that can be run from anywhere in the system. - -To download and run the container it is necessary to install the [Docker Engine](https://www.docker.com/) first. The following commands start new instance of the container and log you into the bash with root privileges. The last line then updates the version of the api-layer and run the unit tests, integration tests and end to end tests. - -``` -docker run --rm --name api-layer -d jbalhar/api-layer-development:1.13.1 /sbin/my_init -docker exec api-layer bash _test -``` - -The Dockerfile to inspect if you want to setup your own environment is available in the [repository](https://github.com/zowe/api-layer/blob/master/docker/development/Dockerfile) diff --git a/docker/development/Dockerfile b/docker/development/Dockerfile deleted file mode 100644 index 55bcd21f8f..0000000000 --- a/docker/development/Dockerfile +++ /dev/null @@ -1,49 +0,0 @@ -FROM phusion/baseimage - -MAINTAINER Jakub Balhar - -#Install necessary dependencies -RUN install_clean build-essential wget software-properties-common openjdk-8-jdk git curl python3 python3-pip python3-dev \ - wget libgtk2.0-0 libgtk-3-0 libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb - -# Install Node related dependencies -RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash \ - && export NVM_DIR="$HOME/.nvm" \ - && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ - && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \ - && nvm install v12.16.1 \ - && npm add -g pnpm \ - && npm install -g concurrently - -# Prepare environment -RUN mkdir /var/src - -# Install Zowe-CLI -RUN export NVM_DIR="$HOME/.nvm" \ - && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ - && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \ - && nvm use v12.16.1 \ - && npm install -g @zowe/cli --ignore-scripts \ - && npm -g install @zowedev/zowe-api-dev - -# Clean up APT when done. -RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* - -# Download public api-layer -RUN cd /var/src \ - && git clone https://github.com/zowe/api-layer.git \ - && cd /var/src/api-layer \ - && export NVM_DIR="$HOME/.nvm" \ - && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ - && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \ - && nvm use v12.16.1 \ - && cd /var/src/api-layer/api-catalog-ui/frontend/; pnpm install; cd ../.. \ - && ./gradlew clean build - -# Copy all the remaining scripts -COPY ./_* /bin/ - -# Other. -RUN export TERM=xterm - -ENTRYPOINT ["/sbin/my_init"] diff --git a/docker/development/README.md b/docker/development/README.md deleted file mode 100644 index 884eb87df9..0000000000 --- a/docker/development/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# Release new version - -With each release of the Zowe new version of this container needs to be published. The prerequisity to release is a full Docker instalation on the machine running the comands. - -1) Based on the OS open the PowerShell or Bash -2) Change working directory to api-layer/docker/development -3) docker build --no-cache -t jbalhar/api-layer-development:{versionOfZowe} . -4) docker push jbalhar/api-layer-development:{versionOfZowe} diff --git a/docker/development/_run b/docker/development/_run deleted file mode 100644 index e6002c8bda..0000000000 --- a/docker/development/_run +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash -export NVM_DIR="$HOME/.nvm" \ - && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ - && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \ - && nvm use v12.16.1 - -# Update -cd /var/src/api-layer -git fetch -git pull - -# Install dependencies -cd /var/src/api-layer/api-catalog-ui/frontend -npm install - -# Build -cd /var/src/api-layer -./gradlew clean build - -# Run integration tests and local instances of the services -npm install -npm run api-layer diff --git a/docker/development/_test b/docker/development/_test deleted file mode 100644 index 173aff3a04..0000000000 --- a/docker/development/_test +++ /dev/null @@ -1,23 +0,0 @@ -export NVM_DIR="$HOME/.nvm" \ - && [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" \ - && [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" \ - && nvm use v12.16.1 - -# Update and build -cd /var/src/api-layer -git fetch -git pull -./gradlew clean build - -# Run integration tests and local instances of the services -npm install -npm run api-layer & -./gradlew runLocalIntegrationTests - -# Run the E2E tests -cd api-catalog-ui/frontend -npm install -npm run cy:e2e:localhost - -# Kill all the running services -killall -9 java diff --git a/docker/ha-local/docker-compose.yml b/docker/ha-local/docker-compose.yml deleted file mode 100644 index 48f3189fec..0000000000 --- a/docker/ha-local/docker-compose.yml +++ /dev/null @@ -1,50 +0,0 @@ -version: "3.3" -services: - api-catalog-services: - image: ghcr.io/zowe/api-catalog-services:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - - api-catalog-services-2: - image: ghcr.io/zowe/api-catalog-services:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - environment: - - APIML_SERVICE_HOSTNAME=api-catalog-services-2 - caching-service: - image: ghcr.io/zowe/caching-service:latest - discoverable-client: - image: ghcr.io/zowe/discoverable-client:latest - discoverable-client-2: - image: ghcr.io/zowe/discoverable-client:latest - environment: - - APIML_SERVICE_HOSTNAME=discoverable-client-2 - discovery-service: - image: ghcr.io/zowe/discovery-service:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - ports: - - "10011:10011" - environment: - - APIML_DISCOVERY_ALLPEERSURLS=https://discovery-service:10011/eureka,https://discovery-service-2:10011/eureka - discovery-service-2: - image: ghcr.io/zowe/discovery-service:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - environment: - - APIML_DISCOVERY_ALLPEERSURLS=https://discovery-service:10011/eureka,https://discovery-service-2:10011/eureka - - APIML_SERVICE_HOSTNAME=discovery-service-2 - gateway-service: - image: ghcr.io/zowe/gateway-service:latest - ports: - - "10010:10010" - environment: - - APIML_SERVICE_DISCOVERYSERVICEURLS=https://discovery-service:10011/eureka/,https://discovery-service-2:10011/eureka/ - gateway-service-2: - image: ghcr.io/zowe/gateway-service:latest - environment: - - APIML_SERVICE_HOSTNAME=gateway-service-2 - - SERVER_INTERNAL_PORT=10027 - - APIML_SERVICE_DISCOVERYSERVICEURLS=https://discovery-service:10011/eureka/,https://discovery-service-2:10011/eureka/ - mock-services: - image: ghcr.io/zowe/mock-services:latest diff --git a/docker/local-single/docker-compose.yml b/docker/local-single/docker-compose.yml deleted file mode 100644 index d9f75b535c..0000000000 --- a/docker/local-single/docker-compose.yml +++ /dev/null @@ -1,40 +0,0 @@ -version: "3.3" -services: - zaas-service: - image: ghcr.io/zowe/zaas-service:latest - ports: - - "10023:10023" - api-catalog-services: - image: ghcr.io/zowe/api-catalog-services:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - ports: - - "10014:10014" - api-catalog-services-2: - image: ghcr.io/zowe/api-catalog-services-standalone:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - ports: - - "10015:10015" - caching-service: - image: ghcr.io/zowe/caching-service:latest - ports: - - "10016:10016" - discoverable-client: - image: ghcr.io/zowe/discoverable-client:latest - ports: - - "10012:10012" - discovery-service: - image: ghcr.io/zowe/discovery-service:latest - volumes: - - ../../config/docker/api-defs-shared:/api-defs - ports: - - "10011:10011" - gateway-service: - image: ghcr.io/zowe/gateway-service:latest - ports: - - "10010:10010" - mock-services: - image: ghcr.io/zowe/mock-services:latest - ports: - - "10013:10013" diff --git a/docker/nginx/conf/load-balancer.conf b/docker/nginx/conf/load-balancer.conf deleted file mode 100644 index 04a12f7f2c..0000000000 --- a/docker/nginx/conf/load-balancer.conf +++ /dev/null @@ -1,47 +0,0 @@ -events { - worker_connections 4096; ## Default: 1024 -} - -http { -# Load balancing for simulating DVIPA on Gateway. It uses Round robin. -upstream backend { - server gateway-service; - server gateway-service-2; - server discovery-service; - server discovery-service-2; - server discoverable-client; - server discoverable-client-2; - server api-catalog-services; - server api-catalog-services-2; -} - -# This server accepts all traffic to port 10010 and passes it to the upstream. -# Notice that the upstream name and the proxy_pass need to match. - -server { - listen 443 ssl; - server_name localhost; - ssl_certificate /etc/ssl/private/localhost/localhost.keystore.cer; - ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - ssl_client_certificate /etc/ssl/private/localhost/trusted_CAs.cer; - ssl_verify_client optional; - proxy_set_header Host $http_host; - location / { - proxy_pass http://backend; - proxy_http_version 1.1; - proxy_cache_bypass $http_upgrade; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header X-SSL-CERT $ssl_client_escaped_cert; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} -} diff --git a/docker/nginx/conf/nginx.conf b/docker/nginx/conf/nginx.conf deleted file mode 100644 index f8e59d443b..0000000000 --- a/docker/nginx/conf/nginx.conf +++ /dev/null @@ -1,123 +0,0 @@ -events { - worker_connections 4096; ## Default: 1024 -} -http { - -# Gateway service secure port for integration tests -server { -listen 10030 ssl; -server_name localhost; - ssl_certificate /etc/ssl/private/localhost/localhost.keystore.cer; - ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - ssl_client_certificate /etc/ssl/private/localhost/trusted_CAs.cer; - ssl_verify_client optional; - location / { - proxy_pass http://host.docker.internal:10010; - proxy_http_version 1.1; - proxy_cache_bypass $http_upgrade; - - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header X-SSL-CERT $ssl_client_escaped_cert; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} - -# Full tunnel for discovery service to pass client certificate -server { -listen 9001 ssl; -server_name localhost; - ssl_certificate /etc/ssl/private/localhost/localhost.keystore.cer; - ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - ssl_client_certificate /etc/ssl/private/localhost/localca.cer; - ssl_verify_client optional; - location / { - proxy_pass http://host.docker.internal:10011; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header X-SSL-CERT $ssl_client_escaped_cert; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} - -server { -listen 10001 ; -server_name localhost; - location / { - proxy_pass https://localhost:9001; - proxy_http_version 1.1; - proxy_ssl_certificate /etc/ssl/private/localhost/Zowe_Service_Zowe_Development_Instances_Certificate_Authority_.cer; - proxy_ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - proxy_ssl_trusted_certificate /etc/ssl/private/localhost/localca.cer; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} - -# Full tunnel for caching service to pass client certificate -server { -listen 9000 ssl; -server_name localhost; - ssl_certificate /etc/ssl/private/localhost/localhost.keystore.cer; - ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - ssl_client_certificate /etc/ssl/private/localhost/localca.cer; - ssl_verify_client optional; - location / { - proxy_pass http://host.docker.internal:10006; - proxy_http_version 1.1; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_set_header X-SSL-CERT $ssl_client_escaped_cert; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} - -server { -listen 10016 ; -server_name localhost; - location / { - proxy_pass https://localhost:9000; - proxy_http_version 1.1; - proxy_ssl_certificate /etc/ssl/private/localhost/Zowe_Service_Zowe_Development_Instances_Certificate_Authority_.cer; - proxy_ssl_certificate_key /etc/ssl/private/localhost/localhost.keystore.key; - proxy_ssl_trusted_certificate /etc/ssl/private/localhost/localca.cer; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $scheme; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-Port $server_port; - proxy_buffer_size 128k; - proxy_buffers 4 256k; - proxy_busy_buffers_size 256k; - } -} -} diff --git a/docker/nginx/docker-compose.yml b/docker/nginx/docker-compose.yml deleted file mode 100644 index 202145c667..0000000000 --- a/docker/nginx/docker-compose.yml +++ /dev/null @@ -1,17 +0,0 @@ -version: '3' - -services: - reverse: - container_name: reverse - hostname: reverse - image: nginx - ports: - - 10000:10000 - - 10001:10001 - - 10030:10030 - - 10016:10016 - volumes: - - ./conf:/etc/nginx - - ../../keystore:/etc/ssl/private - extra_hosts: - host.docker.internal: host-gateway diff --git a/gateway-package/build.gradle b/gateway-package/build.gradle index d53cca704a..ed92af999e 100644 --- a/gateway-package/build.gradle +++ b/gateway-package/build.gradle @@ -9,7 +9,7 @@ configurations { } dependencies { - gatewayServiceJar(project(path: ":gateway-service", configuration: "bootArchives")) + gatewayServiceJar(project(path: ":gateway-service", configuration: "liteJarConfiguration")) } task packageApiGateway(type: Zip) { diff --git a/gateway-package/src/main/resources/bin/start.sh b/gateway-package/src/main/resources/bin/start.sh index c2a03abbbf..c50c39c2ac 100755 --- a/gateway-package/src/main/resources/bin/start.sh +++ b/gateway-package/src/main/resources/bin/start.sh @@ -84,13 +84,20 @@ if [ -n "${LAUNCH_COMPONENT}" ] then - JAR_FILE="${LAUNCH_COMPONENT}/gateway-service.jar" + JAR_FILE="${LAUNCH_COMPONENT}/gateway-service-lite.jar" else - JAR_FILE="$(pwd)/bin/gateway-service.jar" + JAR_FILE="$(pwd)/bin/gateway-service-lite.jar" fi echo "jar file: "${JAR_FILE} # script assumes it's in the gateway component directory and common_lib needs to be relative path +if [ -z "${CMMN_LB}" ] +then + COMMON_LIB="../apiml-common-lib/bin/api-layer-lite-lib-all.jar" +else + COMMON_LIB=${CMMN_LB} +fi + if [ -z "${LIBRARY_PATH}" ] then LIBRARY_PATH="../common-java-lib/bin/" @@ -122,11 +129,32 @@ else nonStrictVerifySslCertificatesOfServices=false fi +if [ "$(uname)" = "OS/390" ] +then + QUICK_START=-Xquickstart + GATEWAY_LOADER_PATH=${COMMON_LIB},/usr/include/java_classes/IRRRacf.jar +else + GATEWAY_LOADER_PATH=${COMMON_LIB} +fi + +# Check if the directory containing the ZAAS shared JARs was set and append it to the ZAAS loader path +if [ -n "${ZWE_GATEWAY_SHARED_LIBS}" ] +then + GATEWAY_LOADER_PATH=${ZWE_GATEWAY_SHARED_LIBS},${GATEWAY_LOADER_PATH} +fi + +echo "Setting loader path: "${GATEWAY_LOADER_PATH} + ATTLS_ENABLED="false" -# ZWE_configs_spring_profiles_active for back compatibility, should be removed in v3 - enabling via Spring profile -if [ "${ZWE_zowe_network_server_tls_attls}" = "true" -o "$(echo ${ZWE_configs_spring_profiles_active:-} | awk '/^(.*,)?attls(,.*)?$/')" ]; then +ATTLS_CLIENT_ENABLED="false" + +if [ "${ZWE_zowe_network_server_tls_attls}" = "true" ]; then ATTLS_ENABLED="true" fi +if [ "${ZWE_zowe_network_client_tls_attls}" = "true" ]; then + ATTLS_CLIENT_ENABLED="true" +fi + if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_server_ssl_enabled="false" if [ -n "${ZWE_configs_spring_profiles_active}" ]; then @@ -135,10 +163,11 @@ if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_spring_profiles_active="${ZWE_configs_spring_profiles_active}attls" fi -# Verify discovery service URL in case AT-TLS is enabled, assumes outgoing rules are in place +internalProtocol="https" ZWE_DISCOVERY_SERVICES_LIST=${ZWE_DISCOVERY_SERVICES_LIST:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_discovery_port:-7553}/eureka/"} -if [ "${ATTLS_ENABLED}" = "true" ]; then +if [ "${ATTLS_CLIENT_ENABLED}" = "true" ]; then ZWE_DISCOVERY_SERVICES_LIST=$(echo "${ZWE_DISCOVERY_SERVICES_LIST=}" | sed -e 's|https://|http://|g') + internalProtocol=http ZWE_configs_apiml_service_corsEnabled=true fi @@ -148,15 +177,6 @@ else externalProtocol="http" fi -GATEWAY_LOADER_PATH="" -# Check if the directory containing the ZAAS shared JARs was set and append it to the ZAAS loader path -if [ -n "${ZWE_GATEWAY_SHARED_LIBS}" ] -then - GATEWAY_LOADER_PATH=${ZWE_GATEWAY_SHARED_LIBS} -fi - -echo "Setting loader path: "${GATEWAY_LOADER_PATH} - LIBPATH="$LIBPATH":"/lib" LIBPATH="$LIBPATH":"/usr/lib" LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin @@ -167,6 +187,11 @@ LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390/default LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390/j9vm LIBPATH="$LIBPATH":"${LIBRARY_PATH}" +if [ -n "${ZWE_GATEWAY_LIBRARY_PATH}" ] +then + LIBPATH="$LIBPATH":"${ZWE_GATEWAY_LIBRARY_PATH}" +fi + ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.nio.channels.spi=ALL-UNNAMED @@ -176,6 +201,49 @@ ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" +get_enabled_protocol_limit() { + target=$1 + type=$2 + key_component="ZWE_configs_zowe_network_${target}_tls_${type}Tls" + value_component=$(eval echo \$$key_component) + key_zowe="ZWE_zowe_network_${target}_tls_${type}Tls" + value_zowe=$(eval echo \$$key_zowe) + enabled_protocol_limit=${value_component:-${value_zowe:-}} +} + +extract_between() { + echo "$1" | sed -e "s/.*$2,//" -e "s/$3.*//" +} + +get_enabled_protocol() { + target=$1 + get_enabled_protocol_limit "${target}" "min" + enabled_protocols_min=${enabled_protocol_limit} + get_enabled_protocol_limit "${target}" "max" + enabled_protocols_max=${enabled_protocol_limit} + + if [ "${enabled_protocols_min:-}" = "${enabled_protocols_max:-}" ]; then + result="${enabled_protocols_max:-}" + elif [ -z "${enabled_protocols_min:-}" ]; then + result="${enabled_protocols_max:-}" + else + enabled_protocols_max=${enabled_protocols_max:-"TLSv1.3"} + enabled_protocols=,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TLSv1.4, + # Extract protocols between min and max (inclusive) + result=$(extract_between "$enabled_protocols" "$enabled_protocols_min" "$enabled_protocols_max") + result="$enabled_protocols_min,$result$enabled_protocols_max" + fi +} + +get_enabled_protocol_limit "server" "max" +server_protocol=${enabled_protocol_limit:-"TLS"} +get_enabled_protocol "server" +server_enabled_protocols=${result:-"TLSv1.3"} +server_ciphers=${ZWE_configs_zowe_network_server_tls_ciphers:-${ZWE_components_gateway_zowe_network_server_tls_ciphers:-${ZWE_zowe_network_server_tls_ciphers:-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384}}} +get_enabled_protocol "client" +client_enabled_protocols=${ZWE_configs_apiml_httpclient_ssl_enabled_protocols:-${result:-${server_enabled_protocols}}} +client_ciphers=${ZWE_configs_zowe_network_client_tls_ciphers:-${ZWE_components_gateway_zowe_network_client_tls_ciphers:-${ZWE_zowe_network_client_tls_ciphers:-${server_ciphers}}}} + keystore_type="${ZWE_configs_certificate_keystore_type:-${ZWE_zowe_certificate_keystore_type:-PKCS12}}" keystore_pass="${ZWE_configs_certificate_keystore_password:-${ZWE_zowe_certificate_keystore_password}}" key_alias="${ZWE_configs_certificate_keystore_alias:-${ZWE_zowe_certificate_keystore_alias}}" @@ -255,7 +323,7 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${GATEWAY_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.gateway.rateLimiterRefillDuration=${ZWE_configs_gateway_registry_rateLimiterRefillDuration:-1} \ -Dapiml.gateway.registry.metadata-key-allow-list=${ZWE_configs_gateway_registry_metadataKeyAllowList:-} \ -Dapiml.gateway.refresh-interval-ms=${ZWE_configs_gateway_registry_refreshIntervalMs:-30000} \ - -Dserver.address=0.0.0.0 \ + -Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \ -Deureka.client.serviceUrl.defaultZone=${ZWE_DISCOVERY_SERVICES_LIST} \ -Dserver.maxConnectionsPerRoute=${ZWE_configs_server_maxConnectionsPerRoute:-100} \ -Dserver.maxTotalConnections=${ZWE_configs_server_maxTotalConnections:-1000} \ @@ -272,8 +340,14 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${GATEWAY_CODE} ${JAVA_BIN_DIR}java \ -Dserver.ssl.trustStore="${truststore_location}" \ -Dserver.ssl.trustStoreType="${truststore_type}" \ -Dserver.ssl.trustStorePassword="${truststore_pass}" \ + -Dserver.ssl.ciphers=${server_ciphers} \ + -Dserver.ssl.protocol=${server_protocol} \ + -Dserver.ssl.enabled-protocols=${server_enabled_protocols} \ + -Dapiml.httpclient.ssl.enabled-protocols=${client_enabled_protocols} \ + -Djdk.tls.client.cipherSuites=${client_ciphers} \ -Djava.protocol.handler.pkgs=com.ibm.crypto.provider \ -Djavax.net.debug=${ZWE_configs_sslDebug:-""} \ + -Dloader.path=${GATEWAY_LOADER_PATH} \ -Djava.library.path=${LIBPATH} \ -Dloader.path=${GATEWAY_LOADER_PATH} \ -jar ${JAR_FILE} & diff --git a/gateway-package/src/main/resources/manifest.yaml b/gateway-package/src/main/resources/manifest.yaml index a124c6073b..6538493b2f 100644 --- a/gateway-package/src/main/resources/manifest.yaml +++ b/gateway-package/src/main/resources/manifest.yaml @@ -24,10 +24,50 @@ apimlServices: dynamic: - serviceId: gateway configs: - port: 7563 + port: 7554 debug: false sslDebug: "" + apimlId: apiml: - service: - # Enables forwarding client certificate from request to next gateway in a special request header - forwardClientCertEnabled: false + service: + # Enables forwarding client certificate from request to next gateway in a special request header + forwardClientCertEnabled: false + security: + auth: + provider: zosmf + zosmf: + jwtAutoconfiguration: jwt + serviceId: ibmzosmf + authorization: + endpoint: + enabled: false + # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/saf-auth + url: + provider: "" + resourceClass: ZOWE + resourceNamePrefix: "APIML." + x509: + enabled: false + # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/certificate/x509/map + externalMapperUrl: + # default value is Zowe runtime user defined in zowe.yaml "zowe.setup.security.users.zowe" + externalMapperUser: + # Enables consumption of forwarded client certificate from proxy gateway in a special request header + acceptForwardedCert: true + oidc: + enabled: false + clientId: + clientSecret: + registry: + # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/certificate/dn + identityMapperUrl: + # default value is Zowe runtime user defined in zowe.yaml "zowe.setup.security.users.zowe" + identityMapperUser: + saf: + provider: + urls: + authenticate: + verify: + server: + maxConnectionsPerRoute: 100 + maxTotalConnections: 1000 diff --git a/gateway-service/build.gradle b/gateway-service/build.gradle index d0391ec399..ef121c83f3 100644 --- a/gateway-service/build.gradle +++ b/gateway-service/build.gradle @@ -18,6 +18,7 @@ normalization { } apply plugin: 'org.springframework.boot' +apply from: "$projectDir/gradle/lite.gradle" apply plugin: 'com.google.cloud.tools.jib' apply from: "../gradle/jib.gradle" @@ -79,10 +80,11 @@ dependencies { implementation libs.jjwt.jackson implementation libs.nimbus.jose.jwt implementation libs.bcpkix + implementation libs.caffeine implementation libs.swagger2.parser implementation libs.swagger3.parser - implementation libs.jaxbApi + implementation libs.bundles.jaxb testImplementation libs.spring.boot.starter.test testImplementation libs.spring.mock.mvc diff --git a/gateway-service/gradle/lite.gradle b/gateway-service/gradle/lite.gradle new file mode 100644 index 0000000000..5f9f17f21a --- /dev/null +++ b/gateway-service/gradle/lite.gradle @@ -0,0 +1,64 @@ +import org.springframework.boot.gradle.tasks.bundling.BootJar + +/** + * This gradle file extends task `build` to create thin JAR files: + * -lite.jar - contains base SpringBoot part to be executable and built submodules + * -lite-lib.jar - contains all external libraries (except modules) + * + * To run application with thin and library file use: + * java -Dloader.path=-lite-lib-.jar -jar -lite-.jar + * + * Example: + * java -Dloader.path=zowe-rest-api-sample-spring-lite-lib-0.0.1-SNAPSHOT.jar -jar zowe-rest-api-sample-spring-lite-0.0.1-SNAPSHOT.jar + */ + + +buildscript { + repositories { + mavenCentral() + } + dependencies { + classpath libs.spring.boot.gradle.plugin + } +} + +apply from: "$rootDir/gradle/lite-project.gradle" + +task liteJar(type: BootJar) { + //Do not allow duplicates by ignoring subsequent items to be created at the same path. + duplicatesStrategy = DuplicatesStrategy.EXCLUDE + targetJavaVersion = JavaVersion.VERSION_17 + manifest { + attributes 'Main-Class': 'org.springframework.boot.loader.launch.PropertiesLauncher' + } + def modulesJar = getModulesJarNames() + archiveFileName = getBaseNameLite() + ".jar" + mainClass = getSpringBootApp() + exclude { details -> details.file && details.file.name.endsWith('.jar') && !modulesJar.contains(details.file.name) } + with bootJar + + archiveClassifier = "lite" +} + +configurations { + liteJarConfiguration +} + +artifacts { + liteJarConfiguration(liteJar) { + builtBy(liteJar) + } +} +task liteLibJar(type: Jar) { + archiveFileName = getBaseNameLite() + "-lib.jar" + entryCompression = ZipEntryCompression.STORED + from {configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }} + include '*.jar' + exclude getModulesJarFilters() + with bootJar + + archiveClassifier = "lite-lib" +} + +jar.dependsOn liteLibJar +jar.dependsOn liteJar diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/GatewayServiceApplication.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/GatewayServiceApplication.java index f1c9e3712b..7c49a16445 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/GatewayServiceApplication.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/GatewayServiceApplication.java @@ -21,6 +21,7 @@ "org.zowe.apiml.product.web", "org.zowe.apiml.product.gateway", "org.zowe.apiml.product.version", + "org.zowe.apiml.product.logging", "org.zowe.apiml.security" }, exclude = {ReactiveOAuth2ClientAutoConfiguration.class, GatewayReactiveOAuth2AutoConfiguration.class} diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/attls/AttlsHttpHandler.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/attls/AttlsHttpHandler.java index 4a703db0b7..af81c199e6 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/attls/AttlsHttpHandler.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/attls/AttlsHttpHandler.java @@ -134,8 +134,8 @@ public Object postProcessAfterInitialization(Object bean, String beanName) throw @Value static class AttlsSslInfo implements SslInfo { - private String sessionId; - private X509Certificate[] peerCertificates; + String sessionId; + X509Certificate[] peerCertificates; } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/AuthEndpointConfig.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/AuthEndpointConfig.java index 9c03c45850..d27530195c 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/AuthEndpointConfig.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/AuthEndpointConfig.java @@ -77,9 +77,9 @@ private WebClient createLoadBalanced(WebClient webClient, ReactiveLoadBalancer.F private WebClient.RequestBodySpec getWebclient(ServerRequest serverRequest, String path) { var sslInfo = serverRequest.exchange().getRequest().getSslInfo(); - var webClient = sslInfo == null ? this.webClient : this.webClientClientCert; + var client = sslInfo == null ? this.webClient : this.webClientClientCert; - var request = webClient + var request = client .method(serverRequest.method()) .uri("lb://zaas/zaas" + path) .headers(headers -> headers.addAll(serverRequest.headers().asHttpHeaders())) diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/ConnectionsConfig.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/ConnectionsConfig.java index 5467fb212b..7a541e848a 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/ConnectionsConfig.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/ConnectionsConfig.java @@ -173,39 +173,41 @@ public HttpsFactory factory() { } /** - * This bean processor is used to override bean routingFilter defined at - * org.springframework.cloud.gateway.config.GatewayAutoConfiguration.NettyConfiguration#routingFilter(HttpClient, ObjectProvider, HttpClientProperties) - *

- * There is no simple way how to override this specific bean, but bean processing could handle that. - * * @param httpClient default http client * @param headersFiltersProvider header filter for spring gateway router * @param properties client HTTP properties - * @return bean processor to replace NettyRoutingFilter by NettyRoutingFilterApiml + * @return instance of NettyRoutingFilterApiml */ @Bean - public BeanPostProcessor routingFilterHandler(HttpClient httpClient, ObjectProvider> headersFiltersProvider, HttpClientProperties properties) { - // obtain SSL contexts (one with keystore to support client cert sign and truststore, second just with truststore) - SslContext justTruststore = sslContext(false); - SslContext withKeystore = sslContext(true); + public NettyRoutingFilterApiml createNettyRoutingFilterApiml(HttpClient httpClient, ObjectProvider> headersFiltersProvider, HttpClientProperties properties) { + return new NettyRoutingFilterApiml(getHttpClient(httpClient, false), getHttpClient(httpClient, true), headersFiltersProvider, properties); + } - var builderJustTruststore = SslProvider.builder().sslContext(justTruststore); - var builderWithKeystore = SslProvider.builder().sslContext(withKeystore); + public HttpClient getHttpClient(HttpClient httpClient, boolean useClientCert) { + var sslContextBuilder = SslProvider.builder().sslContext(getSslContext(useClientCert)); if (!nonStrictVerifySslCertificatesOfServices) { - builderJustTruststore.handlerConfigurator(HttpClientSecurityUtils.HOSTNAME_VERIFICATION_CONFIGURER); - builderWithKeystore.handlerConfigurator(HttpClientSecurityUtils.HOSTNAME_VERIFICATION_CONFIGURER); + sslContextBuilder.handlerConfigurator(HttpClientSecurityUtils.HOSTNAME_VERIFICATION_CONFIGURER); } + return httpClient.secure(sslContextBuilder.build()); + } - // construct http clients with different SSL configuration - with / without client certs - var httpClientNoCert = httpClient.secure(builderJustTruststore.build()); - var httpClientClientCert = httpClient.secure(builderWithKeystore.build()); + /** + * This bean processor is used to override bean routingFilter defined at + * org.springframework.cloud.gateway.config.GatewayAutoConfiguration.NettyConfiguration#routingFilter(HttpClient, ObjectProvider, HttpClientProperties) + *

+ * There is no simple way how to override this specific bean, but bean processing could handle that. + * + * @return bean processor to replace NettyRoutingFilter by NettyRoutingFilterApiml + */ + @Bean + public static BeanPostProcessor routingFilterHandler(ApplicationContext context) { return new BeanPostProcessor() { @Override public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException { if ("routingFilter".equals(beanName)) { log.debug("Updating routing bean {}", NettyRoutingFilterApiml.class); // once is creating original bean by autoconfiguration replace it with custom implementation - return new NettyRoutingFilterApiml(httpClientNoCert, httpClientClientCert, headersFiltersProvider, properties); + return context.getBean(NettyRoutingFilterApiml.class); } // do not touch any other bean return bean; @@ -216,7 +218,7 @@ public Object postProcessBeforeInitialization(Object bean, String beanName) thro /** * @return io.netty.handler.ssl.SslContext for http client. */ - SslContext sslContext(boolean setKeystore) { + SslContext getSslContext(boolean setKeystore) { try { SslContextBuilder builder = SslContextBuilder.forClient(); @@ -339,7 +341,7 @@ public HttpClientFactory gatewayHttpClientFactory( ServerProperties serverProperties, List customizers, HttpClientSslConfigurer sslConfigurer ) { - SslContext sslContext = sslContext(false); + SslContext sslContext = getSslContext(false); return new HttpClientFactory(properties, serverProperties, sslConfigurer, customizers) { @Override protected HttpClient createInstance() { @@ -351,13 +353,12 @@ protected HttpClient createInstance() { @Bean @Primary public WebClient webClient(HttpClient httpClient) { - return WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient)).build(); + return WebClient.builder().clientConnector(new ReactorClientHttpConnector(getHttpClient(httpClient, false))).build(); } @Bean public WebClient webClientClientCert(HttpClient httpClient) { - httpClient = httpClient.secure(sslContextSpec -> sslContextSpec.sslContext(sslContext(true))); - return WebClient.builder().clientConnector(new ReactorClientHttpConnector(httpClient)).build(); + return WebClient.builder().clientConnector(new ReactorClientHttpConnector(getHttpClient(httpClient, true))).build(); } @Bean diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/MessageServiceConfiguration.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/MessageServiceConfiguration.java index ecaef7a70d..84f23d5b0e 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/MessageServiceConfiguration.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/MessageServiceConfiguration.java @@ -27,6 +27,7 @@ public MessageService messageService() { messageService.loadMessages("/utility-log-messages.yml"); messageService.loadMessages("/common-log-messages.yml"); messageService.loadMessages("/gateway-log-messages.yml"); + messageService.loadMessages("/security-common-log-messages.yml"); return messageService; } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/RoutingConfig.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/RoutingConfig.java index 666843f6e0..ffd00835a6 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/RoutingConfig.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/RoutingConfig.java @@ -42,9 +42,9 @@ public List filters() { } if (!allowEncodedSlashes) { - var allowEncodedSlashes = new FilterDefinition(); - allowEncodedSlashes.setName("ForbidEncodedSlashesFilterFactory"); - filters.add(allowEncodedSlashes); + var encodedSlashesFilter = new FilterDefinition(); + encodedSlashesFilter.setName("ForbidEncodedSlashesFilterFactory"); + filters.add(encodedSlashesFilter); } var secureHeaders = new FilterDefinition(); diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/SwaggerConfig.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/SwaggerConfig.java index c9e834ad89..e6e4f37294 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/SwaggerConfig.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/SwaggerConfig.java @@ -134,7 +134,7 @@ void updatePaths(OpenAPI openApi, String pathToMatch) { String download(URI uri) { return webClient - .get().uri(zaasUri) + .get().uri(uri) .retrieve() .bodyToMono(String.class).share().block(); } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/WebSecurity.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/WebSecurity.java index c02f2fe18b..9c864e8dbb 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/WebSecurity.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/WebSecurity.java @@ -251,7 +251,7 @@ public ApimlServerAuthorizationRequestRepository requestRepository(Optional null; } return new InMemoryReactiveClientRegistrationRepository(this.getClientRegistrations()); } @@ -275,7 +275,7 @@ public ReactiveOAuth2AuthorizedClientManager gatewayReactiveOAuth2AuthorizedClie Optional authorizedClientService ) { if (!clientConfiguration.isConfigured()) { - return null; + return registrationId -> null; } var authorizedClientProvider = ReactiveOAuth2AuthorizedClientProviderBuilder @@ -304,7 +304,7 @@ private List getClientRegistrations() { .jwkSetUri(c.getProvider().getJwkSetUri()) .clientName(c.getId()) .build() - ).collect(Collectors.toList()); + ).toList(); } public ServerHttpSecurity defaultSecurityConfig(ServerHttpSecurity http) { diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/oidc/ClientConfiguration.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/oidc/ClientConfiguration.java index 28207feed4..02fed5d1dd 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/config/oidc/ClientConfiguration.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/config/oidc/ClientConfiguration.java @@ -19,12 +19,7 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; -import java.util.Arrays; -import java.util.HashMap; -import java.util.Map; -import java.util.Objects; -import java.util.Optional; -import java.util.Set; +import java.util.*; import java.util.function.Consumer; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -44,6 +39,10 @@ public class ClientConfiguration { "^" + SYSTEM_ENV_PREFIX + "(registration|provider)_([^_]+)_.*$" ); + public static final String REGISTRATION_ENV_TYPE = "registration"; + public static final String PROVIDER_ENV_TYPE = "provider"; + + private Map registration = new HashMap<>(); private Map provider = new HashMap<>(); @@ -61,22 +60,22 @@ private void update(String id, String type, String base, Consumer setter } private void update(String id, Registration registration) { - update(id, "registration", "clientId", registration::setClientId); - update(id, "registration", "clientSecret", registration::setClientSecret); - update(id, "registration", "redirectUri", registration::setRedirectUri); + update(id, REGISTRATION_ENV_TYPE, "clientId", registration::setClientId); + update(id, REGISTRATION_ENV_TYPE, "clientSecret", registration::setClientSecret); + update(id, REGISTRATION_ENV_TYPE, "redirectUri", registration::setRedirectUri); - String scope = getSystemEnv(id, "registration", "scope"); + String scope = getSystemEnv(id, REGISTRATION_ENV_TYPE, "scope"); if (scope != null) { - registration.setScope(Arrays.asList(scope.split("[,]"))); + registration.setScope(Arrays.asList(scope.split(","))); } } private void update(String id, Provider provider) { - update(id, "provider", "authorizationUri", provider::setAuthorizationUri); - update(id, "provider", "tokenUri", provider::setTokenUri); - update(id, "provider", "userInfoUri", provider::setUserInfoUri); - update(id, "provider", "userNameAttribute", provider::setUserNameAttribute); - update(id, "provider", "jwkSetUri", provider::setJwkSetUri); + update(id, PROVIDER_ENV_TYPE, "authorizationUri", provider::setAuthorizationUri); + update(id, PROVIDER_ENV_TYPE, "tokenUri", provider::setTokenUri); + update(id, PROVIDER_ENV_TYPE, "userInfoUri", provider::setUserInfoUri); + update(id, PROVIDER_ENV_TYPE, "userNameAttribute", provider::setUserNameAttribute); + update(id, PROVIDER_ENV_TYPE, "jwkSetUri", provider::setJwkSetUri); } private Set getRegistrationsIdsFromSystemEnv() { diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV2Validator.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV2Validator.java index 174b13d542..f7ed8c27e5 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV2Validator.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV2Validator.java @@ -11,6 +11,7 @@ package org.zowe.apiml.gateway.conformance; import io.swagger.models.Path; +import io.swagger.models.Response; import io.swagger.parser.SwaggerParser; import io.swagger.parser.util.SwaggerDeserializationResult; import org.springframework.http.HttpMethod; @@ -53,7 +54,10 @@ public Set getAllEndpoints() { private HashMap> getValidResponses(Path value) { HashMap> result = new HashMap<>(); for (HttpMethod httpMethod : getMethod(value)) { - result.put(httpMethod.name(), value.getOperationMap().get(convertSpringHttpToSwagger(httpMethod)).getResponses().keySet()); + Map responseMap = value.getOperationMap().get(convertSpringHttpToSwagger(httpMethod)).getResponses(); + if (responseMap != null && !responseMap.isEmpty()) { + result.put(httpMethod.name(), responseMap.keySet()); + } } return result; } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV3Validator.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV3Validator.java index 6b7fe2a79a..1d713b740e 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV3Validator.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/OpenApiV3Validator.java @@ -11,6 +11,7 @@ package org.zowe.apiml.gateway.conformance; import io.swagger.v3.oas.models.PathItem; +import io.swagger.v3.oas.models.responses.ApiResponses; import io.swagger.v3.parser.OpenAPIV3Parser; import io.swagger.v3.parser.core.models.SwaggerParseResult; import org.springframework.http.HttpMethod; @@ -51,7 +52,10 @@ public Set getAllEndpoints() { private HashMap> getValidResponses(PathItem value) { HashMap> result = new HashMap<>(); for (HttpMethod httpMethod : getMethod(value)) { - result.put(httpMethod.name(), value.readOperationsMap().get(convertSpringHttpToSwagger(httpMethod)).getResponses().keySet()); + ApiResponses apiResponses = value.readOperationsMap().get(convertSpringHttpToSwagger(httpMethod)).getResponses(); + if (!apiResponses.isEmpty()) { + result.put(httpMethod.name(), apiResponses.keySet()); + } } return result; } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/ValidateAPIController.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/ValidateAPIController.java index dff6936497..b346697d5a 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/ValidateAPIController.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/ValidateAPIController.java @@ -27,11 +27,13 @@ import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.security.core.Authentication; import org.springframework.web.bind.annotation.*; import org.zowe.apiml.constants.EurekaMetadataDefinition; import org.zowe.apiml.message.core.Message; import org.zowe.apiml.message.core.MessageService; import org.zowe.apiml.product.gateway.GatewayClient; +import org.zowe.apiml.security.common.token.TokenAuthentication; import java.util.*; import java.util.regex.Matcher; @@ -103,7 +105,7 @@ public class ValidateAPIController { )) }) public ResponseEntity checkConformance(@Parameter(in = ParameterIn.PATH, required = true, description = "Service ID of the service to check") @PathVariable String serviceId, - @Parameter(hidden = true) @CookieValue(value = "apimlAuthenticationToken", defaultValue = "dummy") String authenticationToken) { + Authentication authentication) { ConformanceProblemsContainer foundNonConformanceIssues = new ConformanceProblemsContainer(serviceId); foundNonConformanceIssues.add(CONFORMANCE_PROBLEMS, validateServiceIdFormat(serviceId)); if (!foundNonConformanceIssues.isEmpty()) @@ -121,7 +123,7 @@ public ResponseEntity checkConformance(@Parameter(in = ParameterIn.PATH, checkMetadataCanBeRetrieved(metadata); Optional swaggerUrl = verificationOnboardService.findSwaggerUrl(metadata); - validateSwaggerDocument(serviceId, foundNonConformanceIssues, metadata, swaggerUrl, authenticationToken); + validateSwaggerDocument(serviceId, foundNonConformanceIssues, metadata, swaggerUrl, getToken(authentication)); } catch (ValidationException e) { switch (e.getKey()) { case WRONG_SERVICE_ID_KEY: @@ -142,6 +144,13 @@ public ResponseEntity checkConformance(@Parameter(in = ParameterIn.PATH, return new ResponseEntity<>("{\"message\":\"Service " + serviceId + " fulfills all checked conformance criteria\"}", HttpStatus.OK); } + private String getToken(Authentication authentication) { + if (authentication instanceof TokenAuthentication tokenAuthentication) { + return tokenAuthentication.getCredentials(); + } + return null; + } + private void validateSwaggerDocument(String serviceId, ConformanceProblemsContainer foundNonConformanceIssues, Map metadata, Optional swaggerUrl, String token) throws ValidationException { if (swaggerUrl.isEmpty()) { throw new ValidationException("Could not find Swagger Url", NON_CONFORMANT_KEY); @@ -206,11 +215,11 @@ private void validateSwaggerDocument(String serviceId, ConformanceProblemsContai } )) }) - public ResponseEntity checkValidateLegacy(@RequestBody String serviceId, @Parameter(hidden = true) @CookieValue(value = "apimlAuthenticationToken", defaultValue = "dummy") String authenticationToken) { + public ResponseEntity checkValidateLegacy(@RequestBody String serviceId, Authentication authentication) { if (serviceId.startsWith("serviceID")) { serviceId = serviceId.replace("serviceID=", ""); } - return checkConformance(serviceId, authenticationToken); + return checkConformance(serviceId, authentication); } /** diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/VerificationOnboardService.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/VerificationOnboardService.java index 0c886406f0..54d4849933 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/VerificationOnboardService.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/conformance/VerificationOnboardService.java @@ -13,28 +13,15 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; -import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.HttpStatusCode; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.stereotype.Service; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.client.HttpServerErrorException; import org.springframework.web.client.RestTemplate; import org.zowe.apiml.constants.EurekaMetadataDefinition; -import org.zowe.apiml.product.constants.CoreService; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; +import java.util.*; /** * Service class that offers methods for checking onboarding information and also checks availability metadata from @@ -107,11 +94,7 @@ public String getSwagger(String swaggerUrl) { */ public List testEndpointsByCalling(Set endpoints, String passedAuthenticationToken) { ArrayList result = new ArrayList<>(checkEndpointsNoSSO(endpoints)); - try { - result.addAll(checkEndpointsWithSSO(endpoints, passedAuthenticationToken)); - } catch (ValidationException e) { - result.add(e.getMessage()); - } + result.addAll(checkEndpointsWithSSO(endpoints, passedAuthenticationToken)); return result; } @@ -119,11 +102,15 @@ public List testEndpointsByCalling(Set endpoints, String passe private List checkEndpointsWithSSO(Set endpoints, String passedAuthenticationToken) { ArrayList result = new ArrayList<>(); - String ssoCookie = getAuthenticationCookie(passedAuthenticationToken); + if (passedAuthenticationToken == null) { + result.add("Authentication token is not available, serviceId '%s' endpoints SSO check skipped.".formatted( + endpoints.stream().findAny().map(Endpoint::getServiceId).orElse("unknown"))); + return result; + } HttpHeaders headersSSO = new HttpHeaders(); headersSSO.setContentType(MediaType.APPLICATION_JSON); - headersSSO.add("Cookie", "apimlAuthenticationToken=" + ssoCookie); + headersSSO.add("Cookie", "apimlAuthenticationToken=" + passedAuthenticationToken); HttpEntity requestSSO = new HttpEntity<>(headersSSO); for (Endpoint endpoint : endpoints) { @@ -201,33 +188,6 @@ public static List getProblemsWithEndpointUrls(AbstractSwaggerValidator return swaggerParser.getProblemsWithEndpointUrls(); } - private String getAuthenticationCookie(String passedAuthenticationToken) { - String errorMsg = "Error retrieving ZAAS connection details"; - // FIXME This keeps the current behaviour - if (passedAuthenticationToken.equals("dummy")) { - URI uri = discoveryClient.getServices().stream() - .filter(service -> CoreService.ZAAS.getServiceId().equalsIgnoreCase(service)) - .flatMap(service -> discoveryClient.getInstances(service).stream()) - .findFirst() - .map(ServiceInstance::getUri) - .orElseThrow(() -> new ValidationException(errorMsg, ValidateAPIController.NO_METADATA_KEY)); - - String zaasAuthValidateUri = String.format("%s://%s:%d%s", uri.getScheme() == null ? "https" : uri.getScheme(), uri.getHost(), uri.getPort(), uri.getPath() + "/zaas/validate/auth"); - try { - restTemplate.exchange(zaasAuthValidateUri, HttpMethod.GET, null, String.class); - } catch (HttpClientErrorException.Conflict e) { - throw new ValidationException(e.getResponseBodyAsString(), ValidateAPIController.NON_CONFORMANT_KEY); - } catch (Exception e) { - if (log.isDebugEnabled()) { - log.debug("Error getting authentication support", e); - } - throw new ValidationException("Error validating the authentication support", ValidateAPIController.NO_METADATA_KEY); - } - - } - return passedAuthenticationToken; - } - public static boolean supportsSSO(Map metadata) { if (metadata.containsKey(EurekaMetadataDefinition.AUTHENTICATION_SSO)) { return metadata.get(EurekaMetadataDefinition.AUTHENTICATION_SSO).equals("true"); diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/controllers/GatewayExceptionHandler.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/controllers/GatewayExceptionHandler.java index cf3e8c60c5..993a9cd8cc 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/controllers/GatewayExceptionHandler.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/controllers/GatewayExceptionHandler.java @@ -79,7 +79,7 @@ public Mono setBodyResponse(ServerWebExchange exchange, int responseCode, return serverWebExchange.getResponse().writeWith(Flux.just(buffer)); } catch (JsonProcessingException e) { apimlLog.log("org.zowe.apiml.security.errorWritingResponse", e.getMessage()); - throw new RuntimeException(e); + return Mono.error(e); } } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/scheduled/GatewayScanJob.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/scheduled/GatewayScanJob.java index a299bc239a..144d4f39dd 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/scheduled/GatewayScanJob.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/scheduled/GatewayScanJob.java @@ -30,7 +30,6 @@ import java.util.List; import java.util.Optional; -import java.util.stream.Collectors; import static org.zowe.apiml.constants.EurekaMetadataDefinition.APIML_ID; @@ -84,7 +83,9 @@ private void addLocalServices() { */ protected Flux> doScanExternalGateway() { Mono> registeredGateways = instanceInfoService.getServiceInstance(CoreService.GATEWAY.getServiceId()) - .map(gateways -> gateways.stream().filter(info -> !StringUtils.equals(info.getMetadata().getOrDefault(APIML_ID, "N/A"), currentApimlId)).collect(Collectors.toList())); + .map(gateways -> gateways.stream() + .filter(info -> !StringUtils.equals(info.getMetadata().getOrDefault(APIML_ID, "N/A"), currentApimlId)) + .toList()); Flux serviceInstanceFlux = registeredGateways.flatMapMany(Flux::fromIterable); diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/BasicAuthProvider.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/BasicAuthProvider.java index d3cdf3290b..c88e0b4f84 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/BasicAuthProvider.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/BasicAuthProvider.java @@ -51,7 +51,7 @@ protected Mono processResponse(WebClient.RequestHeadersS }); } - protected WebClient.RequestHeadersSpec createRequest(ServiceInstance instance, String headerValue) { + protected WebClient.RequestHeadersSpec createRequest(ServiceInstance instance, String headerValue) { return webClient.post() .uri(getEndpointUrl(instance)) .headers(httpHeaders -> httpHeaders.set(HttpHeaders.AUTHORIZATION, headerValue)); diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/CentralApimlInfoMapper.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/CentralApimlInfoMapper.java index 527c1eccbb..f8dd1510e2 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/CentralApimlInfoMapper.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/CentralApimlInfoMapper.java @@ -13,9 +13,9 @@ import lombok.NonNull; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; +import org.zowe.apiml.config.ApiInfo; import org.zowe.apiml.gateway.service.model.ApimlInfo; import org.zowe.apiml.gateway.service.model.CentralServiceInfo; -import org.zowe.apiml.config.ApiInfo; import org.zowe.apiml.services.ServiceInfo; import java.util.*; @@ -37,7 +37,7 @@ public ApimlInfo buildApimlServiceInfo(@NonNull String apimlId, List services = Optional.ofNullable(gatewayServices).orElse(Collections.emptyList()).stream() .filter(Objects::nonNull) .map(this::mapServices) - .collect(Collectors.toList()); + .toList(); return ApimlInfo.builder() .apimlId(apimlId) diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/GatewayIndexService.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/GatewayIndexService.java index 46dd1e318b..92f7898b68 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/GatewayIndexService.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/GatewayIndexService.java @@ -13,6 +13,7 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import com.google.common.collect.ImmutableMap; +import jakarta.validation.constraints.NotNull; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; @@ -28,7 +29,6 @@ import org.zowe.apiml.services.ServiceInfo; import reactor.core.publisher.Mono; -import jakarta.validation.constraints.NotNull; import java.util.*; import java.util.stream.Collectors; @@ -130,7 +130,7 @@ List filterServicesByApiIdAndServiceId(List apimlIdSer .filter(Objects::nonNull) .filter(serviceInfo -> apiId == null || hasSameApiId(serviceInfo, apiId)) .filter(serviceInfo -> serviceId == null || hasSameServiceId(serviceInfo, serviceId)) - .collect(Collectors.toList()); + .toList(); } return Collections.emptyList(); } diff --git a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/RouteLocator.java b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/RouteLocator.java index a8f8b76ca2..a5162efcf5 100644 --- a/gateway-service/src/main/java/org/zowe/apiml/gateway/service/RouteLocator.java +++ b/gateway-service/src/main/java/org/zowe/apiml/gateway/service/RouteLocator.java @@ -32,19 +32,11 @@ import org.zowe.apiml.util.StringUtils; import reactor.core.publisher.Flux; -import java.util.Comparator; -import java.util.EnumMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Optional; +import java.util.*; import java.util.concurrent.atomic.AtomicInteger; -import java.util.stream.Collectors; import java.util.stream.Stream; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.APIML_ID; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.ENABLE_URL_ENCODED_CHARACTERS; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.SERVICE_SUPPORTING_CLIENT_CERT_FORWARDING; +import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; @Service public class @@ -177,10 +169,10 @@ private List getAuthFilterPerRoute( setAuth(serviceInstance, routeDefinition, auth); return routeDefinition; - }).collect(Collectors.toList()) + }).toList() ) .flatMap(List::stream) - .collect(Collectors.toList()); + .toList(); } /** diff --git a/gateway-service/src/main/resources/application.yml b/gateway-service/src/main/resources/application.yml index d23625da9d..c518cac452 100644 --- a/gateway-service/src/main/resources/application.yml +++ b/gateway-service/src/main/resources/application.yml @@ -39,6 +39,7 @@ eureka: client: fetchRegistry: true registerWithEureka: true + instanceInfoReplicationIntervalSeconds: 1 region: default serviceUrl: defaultZone: ${apiml.service.discoveryServiceUrls} @@ -61,6 +62,9 @@ spring: registration: okta: redirectUri: "{baseUrl}/gateway/{action}/oauth2/code/{registrationId}" + main: + banner-mode: ${apiml.banner:"off"} + web-application-type: reactive springdoc: api-docs: @@ -123,15 +127,25 @@ server: logbackServiceName: ZWEAGW1 logging: + config: classpath:logback-gateway.xml level: ROOT: INFO com.netflix: WARN + com.netflix.discovery: ERROR + com.netflix.config: ERROR + com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient: OFF + com.netflix.discovery.DiscoveryClient: OFF org.springframework.cloud.gateway.filter: WARN org.springframework.cloud.gateway.route: WARN org.springframework.context.support: WARN + org.springframework.beans: WARN + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: ERROR reactor.netty.http.client: INFO reactor.netty.http.client.HttpClientConnect: OFF + io.netty.util.internal.MacAddressUtil: ERROR # Can print WARN not finding usable MAC Address + io.netty.resolver.dns: WARN javax.net.ssl: ERROR + org.apache.tomcat.util.net.SSLUtilBase: ERROR management: endpoint: @@ -153,6 +167,7 @@ logging: level: org.zowe.apiml: DEBUG org.springframework.cloud.gateway: DEBUG + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: DEBUG org.springframework.security: DEBUG org.springframework.web.reactive: DEBUG org.springframework.web.reactive.socket: DEBUG @@ -161,7 +176,7 @@ logging: reactor.netty.http.client.HttpClientConnect: DEBUG com.netflix: DEBUG org.apache.tomcat.util.net: DEBUG - javax.net.ssl: INFO + javax.net.ssl: ERROR --- spring.config.activate.on-profile: attls diff --git a/gateway-service/src/main/resources/logback.xml b/gateway-service/src/main/resources/logback-gateway.xml similarity index 95% rename from gateway-service/src/main/resources/logback.xml rename to gateway-service/src/main/resources/logback-gateway.xml index 41c7f59f35..cd5430a296 100644 --- a/gateway-service/src/main/resources/logback.xml +++ b/gateway-service/src/main/resources/logback-gateway.xml @@ -15,7 +15,7 @@ - + diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/common/AcceptanceTestWithMockServices.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/common/AcceptanceTestWithMockServices.java index f5cff53f5a..55ada7c884 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/common/AcceptanceTestWithMockServices.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/common/AcceptanceTestWithMockServices.java @@ -44,7 +44,7 @@ protected void updateRoutingRules() { } /** - * Create mock service. It will be automatically registred and removed on the time. It is not necessary to handle + * Create mock service. It will be automatically registered and removed on the time. It is not necessary to handle * its lifecycle. * * Example: diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApimlDiscoveryClientStub.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApimlDiscoveryClientStub.java index 55facc5943..e36b39bf83 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApimlDiscoveryClientStub.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApimlDiscoveryClientStub.java @@ -21,7 +21,6 @@ import org.springframework.context.ApplicationEventPublisher; import java.util.List; -import java.util.stream.Collectors; public class ApimlDiscoveryClientStub extends CloudEurekaClient { private ApplicationRegistry applicationRegistry; @@ -47,7 +46,7 @@ public List getInstancesByVipAddress(String vipAddress, boolean se return applicationRegistry.getInstances().stream() .filter(x -> StringUtils.equalsAnyIgnoreCase(vipAddress, x.getVIPAddress())) .filter(x -> !secure || x.getSecurePort() != 0) - .collect(Collectors.toList()); + .toList(); } @Override @@ -55,7 +54,7 @@ public List getInstancesByVipAddress(String vipAddress, boolean se return applicationRegistry.getInstances().stream() .filter(x -> StringUtils.equalsAnyIgnoreCase(vipAddress, x.getVIPAddress())) .filter(x -> !secure || x.getSecurePort() != 0) - .collect(Collectors.toList()); + .toList(); } } diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApplicationRegistry.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApplicationRegistry.java index 3620460c90..15b726c1cd 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApplicationRegistry.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/acceptance/netflix/ApplicationRegistry.java @@ -86,7 +86,7 @@ public Applications getApplications() { public List getInstances() { return instanceIdToService.values().stream() .map(MockService::getInstanceInfo) - .collect(Collectors.toList()); + .toList(); } public List getServiceInstance(String serviceId) { diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/ConnectionsConfigTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/ConnectionsConfigTest.java index 0971e131a9..b8b5e8eaf6 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/ConnectionsConfigTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/ConnectionsConfigTest.java @@ -66,6 +66,8 @@ class KeyringFormatAndPasswordUpdate { ApplicationContext context; + ConnectionsConfig noContextConnectionsConfig = new ConnectionsConfig(null); + @BeforeEach void setup() { context = mock(ApplicationContext.class); @@ -76,30 +78,28 @@ void setup() { @Test void whenKeyringHasWrongFormatAndMissingPasswords_thenFixIt() { - ConnectionsConfig connectionsConfig = new ConnectionsConfig(null); - ReflectionTestUtils.setField(connectionsConfig, "keyStorePath", "safkeyring:///userId/ringId1"); - ReflectionTestUtils.setField(connectionsConfig, "trustStorePath", "safkeyring:////userId/ringId2"); - ReflectionTestUtils.setField(connectionsConfig, "context", context); - connectionsConfig.updateConfigParameters(); - - assertThat(ReflectionTestUtils.getField(connectionsConfig, "keyStorePath")).isEqualTo("safkeyring://userId/ringId1"); - assertThat(ReflectionTestUtils.getField(connectionsConfig, "trustStorePath")).isEqualTo("safkeyring://userId/ringId2"); - assertThat((char[]) ReflectionTestUtils.getField(connectionsConfig, "keyStorePassword")).isEqualTo("password".toCharArray()); - assertThat((char[]) ReflectionTestUtils.getField(connectionsConfig, "trustStorePassword")).isEqualTo("password".toCharArray()); + ReflectionTestUtils.setField(noContextConnectionsConfig, "keyStorePath", "safkeyring:///userId/ringId1"); + ReflectionTestUtils.setField(noContextConnectionsConfig, "trustStorePath", "safkeyring:////userId/ringId2"); + ReflectionTestUtils.setField(noContextConnectionsConfig, "context", context); + noContextConnectionsConfig.updateConfigParameters(); + + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "keyStorePath")).isEqualTo("safkeyring://userId/ringId1"); + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "trustStorePath")).isEqualTo("safkeyring://userId/ringId2"); + assertThat((char[]) ReflectionTestUtils.getField(noContextConnectionsConfig, "keyStorePassword")).isEqualTo("password".toCharArray()); + assertThat((char[]) ReflectionTestUtils.getField(noContextConnectionsConfig, "trustStorePassword")).isEqualTo("password".toCharArray()); } @Test void whenKeystore_thenDoNothing() { - ConnectionsConfig connectionsConfig = new ConnectionsConfig(null); - ReflectionTestUtils.setField(connectionsConfig, "keyStorePath", "/path1"); - ReflectionTestUtils.setField(connectionsConfig, "trustStorePath", "/path2"); - ReflectionTestUtils.setField(connectionsConfig, "context", context); - connectionsConfig.updateConfigParameters(); - - assertThat(ReflectionTestUtils.getField(connectionsConfig, "keyStorePath")).isEqualTo("/path1"); - assertThat(ReflectionTestUtils.getField(connectionsConfig, "trustStorePath")).isEqualTo("/path2"); - assertThat(ReflectionTestUtils.getField(connectionsConfig, "keyStorePassword")).isNull(); - assertThat(ReflectionTestUtils.getField(connectionsConfig, "trustStorePassword")).isNull(); + ReflectionTestUtils.setField(noContextConnectionsConfig, "keyStorePath", "/path1"); + ReflectionTestUtils.setField(noContextConnectionsConfig, "trustStorePath", "/path2"); + ReflectionTestUtils.setField(noContextConnectionsConfig, "context", context); + noContextConnectionsConfig.updateConfigParameters(); + + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "keyStorePath")).isEqualTo("/path1"); + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "trustStorePath")).isEqualTo("/path2"); + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "keyStorePassword")).isNull(); + assertThat(ReflectionTestUtils.getField(noContextConnectionsConfig, "trustStorePassword")).isNull(); } } } diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/NettyRoutingFilterApimlTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/NettyRoutingFilterApimlTest.java index 13307643f3..e8d1a8e0c5 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/NettyRoutingFilterApimlTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/NettyRoutingFilterApimlTest.java @@ -82,10 +82,10 @@ class GetHttpClient { NettyRoutingFilterApiml nettyRoutingFilterApiml; private final Route ROUTE_NO_TIMEOUT = Route.async() - .id("1").uri("http://localhost/").predicate(serverWebExchange -> true) + .id("1").uri("http://localhost/").predicate(__ -> true) .build(); private final Route ROUTE_TIMEOUT = Route.async() - .id("2").uri("http://localhost/").predicate(serverWebExchange -> true).metadata(CONNECT_TIMEOUT_ATTR, "100") + .id("2").uri("http://localhost/").predicate(__ -> true).metadata(CONNECT_TIMEOUT_ATTR, "100") .build(); MockServerWebExchange serverWebExchange; diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/WebSecurityTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/WebSecurityTest.java index ab43355ddb..3e6b4e7495 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/config/WebSecurityTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/config/WebSecurityTest.java @@ -42,7 +42,6 @@ import java.util.HashMap; import java.util.concurrent.atomic.AtomicReference; -import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -82,7 +81,7 @@ void shouldAddRegistryAuthorityToAllowedUser() { assertThat(details.getAuthorities()).hasSize(1); assertThat(details.getAuthorities().stream() .map(GrantedAuthority::getAuthority) - .collect(Collectors.toList())) + .toList()) .containsExactly("REGISTRY"); }) .verifyComplete(); @@ -126,7 +125,7 @@ void shouldAddRegistryAuthorityToAllowedUserIgnoringCase() { assertThat(details.getAuthorities()).hasSize(1); assertThat(details.getAuthorities().stream() .map(GrantedAuthority::getAuthority) - .collect(Collectors.toList())) + .toList()) .containsExactly("REGISTRY"); }) .verifyComplete(); @@ -165,7 +164,7 @@ void shouldAddRegistryAuthorityToAnyUser() { assertThat(details.getAuthorities()).hasSize(1); assertThat(details.getAuthorities().stream() .map(GrantedAuthority::getAuthority) - .collect(Collectors.toList())) + .toList()) .containsExactly("REGISTRY"); }) .verifyComplete(); diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/ValidateAPIControllerTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/ValidateAPIControllerTest.java index 57abba5703..2c338f4d09 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/ValidateAPIControllerTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/ValidateAPIControllerTest.java @@ -41,7 +41,7 @@ import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isNull; import static org.mockito.Mockito.mockStatic; import static org.mockito.Mockito.when; @@ -106,7 +106,7 @@ void checkValidJson() { void whenServiceIdTooLong_thenNonconformant() { when(messageService.createMessage(NON_CONFORMANT_KEY, "ThisWillBeRemoved")).thenReturn(NON_CONFORMANT_MESSAGE); String testString = "qwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiopqwertyuiop"; - result = validateAPIController.checkConformance(testString, "dummy"); + result = validateAPIController.checkConformance(testString, null); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("The serviceId is longer than 64 characters")); } @@ -115,7 +115,7 @@ void whenServiceIdTooLong_thenNonconformant() { void whenServiceIdTooLongAndSymbols_thenNonconformant() { when(messageService.createMessage(NON_CONFORMANT_KEY, "ThisWillBeRemoved")).thenReturn(NON_CONFORMANT_MESSAGE); String testString = "qwertyuiopqwertyuiop--qwertyuiopqwertyuio-pqwertyuio-pqwertyuiopqwertyuiop"; - result = validateAPIController.checkConformance(testString, "dummy"); + result = validateAPIController.checkConformance(testString, null); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("The serviceId is longer than 64 characters")); assertTrue(result.getBody().contains("The serviceId contains symbols or upper case letters")); @@ -126,7 +126,7 @@ void whenServiceIdTooLongAndSymbols_thenNonconformant() { @ValueSource(strings = {"test-test", "TEST", "Test"}) void whenServiceIdNonAlphaNumeric_thenNonconformant(String testString) { when(messageService.createMessage(NON_CONFORMANT_KEY, "ThisWillBeRemoved")).thenReturn(NON_CONFORMANT_MESSAGE); - result = validateAPIController.checkConformance(testString, "dummy"); + result = validateAPIController.checkConformance(testString, null); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("The serviceId contains symbols or upper case letters")); } @@ -135,7 +135,7 @@ void whenServiceIdNonAlphaNumeric_thenNonconformant(String testString) { void notInvalidTextFormat() { when(messageService.createMessage(WRONG_SERVICE_ID_KEY, "ThisWillBeRemoved")).thenReturn(WRONG_SERVICE_ID_MESSAGE); String testString = "test"; - result = validateAPIController.checkConformance(testString, "dummy"); + result = validateAPIController.checkConformance(testString, null); assertNotNull(result.getBody()); assertFalse(result.getBody().contains("Message service is requested to create a message with an invalid text format")); } @@ -162,7 +162,7 @@ void checkValidJson() { void whenServiceNotOboarded_thenError() { when(messageService.createMessage(WRONG_SERVICE_ID_KEY, "ThisWillBeRemoved")).thenReturn(WRONG_SERVICE_ID_MESSAGE); String testString = "notonboarded"; - result = validateAPIController.checkConformance(testString, "dummy"); + result = validateAPIController.checkConformance(testString, null); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("The service is not registered")); } @@ -171,7 +171,7 @@ void whenServiceNotOboarded_thenError() { void legacyWhenServiceNotOboarded_thenError() { when(messageService.createMessage(WRONG_SERVICE_ID_KEY, "ThisWillBeRemoved")).thenReturn(WRONG_SERVICE_ID_MESSAGE); String testString = "notonboarded"; - result = validateAPIController.checkValidateLegacy(testString, "dummy"); + result = validateAPIController.checkValidateLegacy(testString, null); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("The service is not registered")); @@ -203,7 +203,7 @@ void whenEmpty_thenCorrectConformanceResponse() { when(discoveryClient.getInstances(serviceId)).thenReturn(new ArrayList<>(Collections.singleton(serviceInstance))); when(serviceInstance.getMetadata()).thenReturn(mockMetadata); when(messageService.createMessage(NO_METADATA_KEY, "ThisWillBeRemoved")).thenReturn(NO_METADATA_MESSAGE); - result = validateAPIController.checkConformance(serviceId, "dummy"); + result = validateAPIController.checkConformance(serviceId, null); assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode()); } @@ -261,11 +261,11 @@ void whenEverythingOk_thenOkResponse(String mockSwaggerFileLocation) throws IOEx when(verificationOnboardService.getSwagger("a")).thenReturn(new String(Files.readAllBytes(mockSwaggerFile.getAbsoluteFile().toPath()))); - when(verificationOnboardService.testEndpointsByCalling(any(), eq("dummy"))).thenReturn(new ArrayList<>()); + when(verificationOnboardService.testEndpointsByCalling(any(), isNull())).thenReturn(new ArrayList<>()); try (MockedStatic validatorFactoryMockedStatic = mockStatic(ValidatorFactory.class)) { validatorFactoryMockedStatic.when(() -> ValidatorFactory.parseSwagger(any(), any(), any(), any())).thenReturn(swaggerValidator); - result = validateAPIController.checkConformance(serviceId, "dummy"); + result = validateAPIController.checkConformance(serviceId, null); assertEquals(HttpStatus.OK, result.getStatusCode()); } } @@ -281,7 +281,7 @@ void whenBadMetadata_thenBadMetadataResponse() { when(serviceInstance.getMetadata()).thenReturn(mockMetadata); when(messageService.createMessage(NO_METADATA_KEY, "ThisWillBeRemoved")).thenReturn(NO_METADATA_MESSAGE); - result = validateAPIController.checkConformance(serviceId, "dummy"); + result = validateAPIController.checkConformance(serviceId, null); assertEquals(HttpStatus.BAD_REQUEST, result.getStatusCode()); assertNotNull(result.getBody()); assertTrue(result.getBody().contains("Cannot Retrieve MetaData")); diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/VerificationOnboardServiceTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/VerificationOnboardServiceTest.java index 4eeaa1f661..8181673354 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/VerificationOnboardServiceTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/conformance/VerificationOnboardServiceTest.java @@ -10,7 +10,6 @@ package org.zowe.apiml.gateway.conformance; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -18,33 +17,17 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.cloud.client.ServiceInstance; import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestTemplate; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; - -import static java.util.Arrays.asList; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; +import java.util.*; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @ExtendWith(MockitoExtension.class) @@ -127,18 +110,6 @@ void whenDoesntSupportSSO_thenFalse() { @Nested class GivenEndpoint { - @BeforeEach - void setup() throws URISyntaxException { - setUpZaasService(); - } - - private void setUpZaasService() throws URISyntaxException { - ServiceInstance serviceInstance = mock(ServiceInstance.class); - when(serviceInstance.getUri()).thenReturn(new URI("https://localhost:1000")); - when(discoveryClient.getServices()).thenReturn(asList("zaas")); - when(discoveryClient.getInstances("zaas")).thenReturn(asList(serviceInstance)); - } - @Test void whenEndpointNotFound_thenReturnCorrectError() { String url = "https://localhost:8000/test"; @@ -149,12 +120,11 @@ void whenEndpointNotFound_thenReturnCorrectError() { HashMap> responses = new HashMap<>(); responses.put("GET", new HashSet<>(Collections.singleton("404"))); - doReturn(response).when(restTemplate).exchange(eq("https://localhost:1000/zaas/validate/auth"), any(), any(), eq(String.class)); doReturn(response).when(restTemplate).exchange(eq(url), any(), any(), eq(String.class)); Endpoint endpoint = new Endpoint(url, "testservice", methods, responses); HashSet endpoints = new HashSet<>(); endpoints.add(endpoint); - List result = verificationOnboardService.testEndpointsByCalling(endpoints, "dummy"); + List result = verificationOnboardService.testEndpointsByCalling(endpoints, null); assertTrue(result.get(0).contains("could not be located, attempting to call it through gateway gives the ZWEAM104E")); } @@ -168,14 +138,14 @@ void whenEndpointReturnsDocumented400_thenReturnEmptyList() { HashMap> responses = new HashMap<>(); responses.put("GET", new HashSet<>(Collections.singleton("400"))); - doReturn(response).when(restTemplate).exchange(eq("https://localhost:1000/zaas/validate/auth"), any(), any(), eq(String.class)); doReturn(response).when(restTemplate).exchange(eq(url), any(), any(), eq(String.class)); Endpoint endpoint = new Endpoint(url, "testservice", methods, responses); HashSet endpoints = new HashSet<>(); endpoints.add(endpoint); - List result = verificationOnboardService.testEndpointsByCalling(endpoints, "dummy"); + List result = verificationOnboardService.testEndpointsByCalling(endpoints, null); - assertTrue(result.isEmpty()); + assertEquals(1, result.size()); + assertTrue(result.get(0).contains("token is not available")); } @Test @@ -188,14 +158,14 @@ void whenEndpointReturnsDocumented200Response_thenReturnEmptyList() { HashMap> responses = new HashMap<>(); responses.put("GET", new HashSet<>(Collections.singleton("200"))); - doReturn(response).when(restTemplate).exchange(eq("https://localhost:1000/zaas/validate/auth"), any(), any(), eq(String.class)); doReturn(response).when(restTemplate).exchange(eq(url), any(), any(), eq(String.class)); Endpoint endpoint = new Endpoint(url, "testservice", methods, responses); HashSet endpoints = new HashSet<>(); endpoints.add(endpoint); - List result = verificationOnboardService.testEndpointsByCalling(endpoints, "dummy"); + List result = verificationOnboardService.testEndpointsByCalling(endpoints, null); - assertTrue(result.isEmpty()); + assertEquals(1, result.size()); + assertTrue(result.get(0).contains("token is not available")); } @Test @@ -208,13 +178,12 @@ void whenEndpointReturnsUndocumented500_thenReturnCorrectError() { HashMap> responses = new HashMap<>(); responses.put("GET", new HashSet<>(Collections.singleton("0"))); - doReturn(response).when(restTemplate).exchange(eq("https://localhost:1000/zaas/validate/auth"), any(), any(), eq(String.class)); doReturn(response).when(restTemplate).exchange(eq(url), any(), any(), eq(String.class)); Endpoint endpoint = new Endpoint(url, "testservice", methods, responses); HashSet endpoints = new HashSet<>(); endpoints.add(endpoint); - List result = verificationOnboardService.testEndpointsByCalling(endpoints, "dummy"); + List result = verificationOnboardService.testEndpointsByCalling(endpoints, null); assertTrue(result.get(0).contains("returns undocumented")); } diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/controllers/CertificatesRestControllerTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/controllers/CertificatesRestControllerTest.java index f02728d20f..ba1172a7e9 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/controllers/CertificatesRestControllerTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/controllers/CertificatesRestControllerTest.java @@ -28,53 +28,57 @@ class CertificatesRestControllerTest { private static final String NO_CERTIFICATES = ""; private static final String SINGLE_CERTIFICATE = - "-----BEGIN CERTIFICATE-----\n" + - "MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL\n" + - "MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC\n" + - "VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx\n" + - "NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD\n" + - "TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu\n" + - "ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j\n" + - "V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj\n" + - "gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA\n" + - "FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE\n" + - "CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS\n" + - "BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE\n" + - "BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju\n" + - "Wm7DCfrPNGVwFWUQOmsPue9rZBgO\n" + - "-----END CERTIFICATE-----"; + """ + -----BEGIN CERTIFICATE----- + MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL + MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC + VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx + NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD + TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu + ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j + V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj + gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA + FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE + CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS + BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE + BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju + Wm7DCfrPNGVwFWUQOmsPue9rZBgO + -----END CERTIFICATE----- + """.stripIndent(); private static final String CERTIFICATE_CHAIN = - "-----BEGIN CERTIFICATE-----\n" + - "MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL\n" + - "MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC\n" + - "VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx\n" + - "NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD\n" + - "TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu\n" + - "ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j\n" + - "V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj\n" + - "gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA\n" + - "FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE\n" + - "CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS\n" + - "BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE\n" + - "BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju\n" + - "Wm7DCfrPNGVwFWUQOmsPue9rZBgO\n" + - "-----END CERTIFICATE-----\n" + - "-----BEGIN CERTIFICATE-----\n" + - "MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL\n" + - "MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC\n" + - "VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx\n" + - "NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD\n" + - "TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu\n" + - "ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j\n" + - "V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj\n" + - "gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA\n" + - "FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE\n" + - "CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS\n" + - "BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE\n" + - "BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju\n" + - "Wm7DCfrPNGVwFWUQOmsPue9rZBgO\n" + - "-----END CERTIFICATE-----"; + """ + -----BEGIN CERTIFICATE----- + MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL + MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC + VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx + NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD + TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu + ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j + V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj + gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA + FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE + CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS + BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE + BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju + Wm7DCfrPNGVwFWUQOmsPue9rZBgO + -----END CERTIFICATE----- + -----BEGIN CERTIFICATE----- + MIICUTCCAfugAwIBAgIBADANBgkqhkiG9w0BAQQFADBXMQswCQYDVQQGEwJDTjEL + MAkGA1UECBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMC + VU4xFDASBgNVBAMTC0hlcm9uZyBZYW5nMB4XDTA1MDcxNTIxMTk0N1oXDTA1MDgx + NDIxMTk0N1owVzELMAkGA1UEBhMCQ04xCzAJBgNVBAgTAlBOMQswCQYDVQQHEwJD + TjELMAkGA1UEChMCT04xCzAJBgNVBAsTAlVOMRQwEgYDVQQDEwtIZXJvbmcgWWFu + ZzBcMA0GCSqGSIb3DQEBAQUAA0sAMEgCQQCp5hnG7ogBhtlynpOS21cBewKE/B7j + V14qeyslnr26xZUsSVko36ZnhiaO/zbMOoRcKK9vEcgMtcLFuQTWDl3RAgMBAAGj + gbEwga4wHQYDVR0OBBYEFFXI70krXeQDxZgbaCQoR4jUDncEMH8GA1UdIwR4MHaA + FFXI70krXeQDxZgbaCQoR4jUDncEoVukWTBXMQswCQYDVQQGEwJDTjELMAkGA1UE + CBMCUE4xCzAJBgNVBAcTAkNOMQswCQYDVQQKEwJPTjELMAkGA1UECxMCVU4xFDAS + BgNVBAMTC0hlcm9uZyBZYW5nggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEE + BQADQQA/ugzBrjjK9jcWnDVfGHlk3icNRq0oV7Ri32z/+HQX67aRfgZu7KWdI+Ju + Wm7DCfrPNGVwFWUQOmsPue9rZBgO + -----END CERTIFICATE----- + """.stripIndent(); @Autowired WebTestClient webTestClient; diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/service/CertificateChainServiceTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/service/CertificateChainServiceTest.java index 9f0b0dc644..8765e1862f 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/service/CertificateChainServiceTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/service/CertificateChainServiceTest.java @@ -35,59 +35,63 @@ class CertificateChainServiceTest { ConnectionsConfig connectionsConfig = new ConnectionsConfig(null); private static final String CERTIFICATE_1 = - "-----BEGIN CERTIFICATE-----\n" + - "MIIENzCCAx+gAwIBAgIEBUx4bjANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMC\n" + - "Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta\n" + - "b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjE5MDcGA1UE\n" + - "AxMwWm93ZSBEZXZlbG9wbWVudCBJbnN0YW5jZXMgQ2VydGlmaWNhdGUgQXV0aG9y\n" + - "aXR5MB4XDTE5MDExMTEyMTIwN1oXDTI5MDEwODEyMTIwN1owejELMAkGA1UEBhMC\n" + - "Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta\n" + - "b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjEVMBMGA1UE\n" + - "AxMMWm93ZSBTZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\n" + - "jo7rxDzO51tfSmqahMbY6lsXLO+/tXYk1ZcIufsh5L+UMs5StHlfSglbiRgWhfdJ\n" + - "DTZb9R760klXL7QRYwBcYn3yhdYTsTB0+RJddPlTQzxAx45xV7b+fCtsQqBFZk5a\n" + - "es/TduyHCHXQRl+iLos13isrl5LSB66ohKxMtflPBeqTM/ptNBbq72XqFCQIZClC\n" + - "lvMMYnxrW2FNfftxpLQbeFu3KN/8V4gcQoSUvE8YU8PYbVUnuhURActywrxHpke5\n" + - "q/tYQR8iDb6D1ZwLU8+/rTrnPbZq+O2DP7vRyBP9pHS/WNSxY1sTnz7gQ2OlUL+B\n" + - "EQLgRXRPc5ev1kwn0kVd8QIDAQABo4GfMIGcMB8GA1UdIwQYMBaAFPA6lVzMZhd6\n" + - "jkR4JClljOSWs0J1MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAOBgNV\n" + - "HQ8BAf8EBAMCBPAwKwYDVR0RBCQwIoIVbG9jYWxob3N0LmxvY2FsZG9tYWluggls\n" + - "b2NhbGhvc3QwHQYDVR0OBBYEFJDw32hIl2AHqtLlFJtyVkrIlaGjMA0GCSqGSIb3\n" + - "DQEBCwUAA4IBAQAwO1TPIg5ebOiotTtJgj2wbyYFBfqljLrBMEfgP6h6ZOkj5fQI\n" + - "dZSLNmyY/PSk8IHUPE43QzEPV8Bd2zOwtDzbrnfvtuKLuLzPr+shih3gpUoSYGLU\n" + - "2miZZerk4AhpOrjIaUvKgcZ5QU7EQy32kQuKf9ldozxgnOzgN60G5z/qae7fYZxo\n" + - "SeV/nq8t7AkognCwHAKx8Iy418ucsfAuXQbursVWMi3KHrSENimZ+3fgCJ3ym0QT\n" + - "qwTpojppW5F9SWkJ4Q31l+oRROwIRKm44XSB8DVFnX/k8gzTPMylfQ+GwEyVHcyA\n" + - "R9zBnNhbbueFLlG9CBMeCHCyia6DUdIQlY5/\n" + - "-----END CERTIFICATE-----\n"; + """ + -----BEGIN CERTIFICATE----- + MIIENzCCAx+gAwIBAgIEBUx4bjANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMC + Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta + b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjE5MDcGA1UE + AxMwWm93ZSBEZXZlbG9wbWVudCBJbnN0YW5jZXMgQ2VydGlmaWNhdGUgQXV0aG9y + aXR5MB4XDTE5MDExMTEyMTIwN1oXDTI5MDEwODEyMTIwN1owejELMAkGA1UEBhMC + Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta + b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjEVMBMGA1UE + AxMMWm93ZSBTZXJ2aWNlMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA + jo7rxDzO51tfSmqahMbY6lsXLO+/tXYk1ZcIufsh5L+UMs5StHlfSglbiRgWhfdJ + DTZb9R760klXL7QRYwBcYn3yhdYTsTB0+RJddPlTQzxAx45xV7b+fCtsQqBFZk5a + es/TduyHCHXQRl+iLos13isrl5LSB66ohKxMtflPBeqTM/ptNBbq72XqFCQIZClC + lvMMYnxrW2FNfftxpLQbeFu3KN/8V4gcQoSUvE8YU8PYbVUnuhURActywrxHpke5 + q/tYQR8iDb6D1ZwLU8+/rTrnPbZq+O2DP7vRyBP9pHS/WNSxY1sTnz7gQ2OlUL+B + EQLgRXRPc5ev1kwn0kVd8QIDAQABo4GfMIGcMB8GA1UdIwQYMBaAFPA6lVzMZhd6 + jkR4JClljOSWs0J1MB0GA1UdJQQWMBQGCCsGAQUFBwMCBggrBgEFBQcDATAOBgNV + HQ8BAf8EBAMCBPAwKwYDVR0RBCQwIoIVbG9jYWxob3N0LmxvY2FsZG9tYWluggls + b2NhbGhvc3QwHQYDVR0OBBYEFJDw32hIl2AHqtLlFJtyVkrIlaGjMA0GCSqGSIb3 + DQEBCwUAA4IBAQAwO1TPIg5ebOiotTtJgj2wbyYFBfqljLrBMEfgP6h6ZOkj5fQI + dZSLNmyY/PSk8IHUPE43QzEPV8Bd2zOwtDzbrnfvtuKLuLzPr+shih3gpUoSYGLU + 2miZZerk4AhpOrjIaUvKgcZ5QU7EQy32kQuKf9ldozxgnOzgN60G5z/qae7fYZxo + SeV/nq8t7AkognCwHAKx8Iy418ucsfAuXQbursVWMi3KHrSENimZ+3fgCJ3ym0QT + qwTpojppW5F9SWkJ4Q31l+oRROwIRKm44XSB8DVFnX/k8gzTPMylfQ+GwEyVHcyA + R9zBnNhbbueFLlG9CBMeCHCyia6DUdIQlY5/ + -----END CERTIFICATE----- + """.stripIndent(); private static final String CERTIFICATE_2 = - "-----BEGIN CERTIFICATE-----\n" + - "MIID+zCCAuOgAwIBAgIEdkRICDANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMC\n" + - "Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta\n" + - "b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjE5MDcGA1UE\n" + - "AxMwWm93ZSBEZXZlbG9wbWVudCBJbnN0YW5jZXMgQ2VydGlmaWNhdGUgQXV0aG9y\n" + - "aXR5MB4XDTE5MDExMTEyMTIwNVoXDTI5MDEwODEyMTIwNVowgZ4xCzAJBgNVBAYT\n" + - "AkNaMQ8wDQYDVQQIEwZQcmFndWUxDzANBgNVBAcTBlByYWd1ZTEUMBIGA1UEChML\n" + - "Wm93ZSBTYW1wbGUxHDAaBgNVBAsTE0FQSSBNZWRpYXRpb24gTGF5ZXIxOTA3BgNV\n" + - "BAMTMFpvd2UgRGV2ZWxvcG1lbnQgSW5zdGFuY2VzIENlcnRpZmljYXRlIEF1dGhv\n" + - "cml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALyotswfS+sLTmwO\n" + - "08ocbkNWPccRVWGWaP/LvfLe1USmhUOMO7E38ztTy8AJYBxrFTPr2lL3rXybRHCn\n" + - "Lscz0XNvkNll6Yef71ghaLbpe0V12Jygw4J9BAbYdVIsrP+brR3pijGVO/ECvJwD\n" + - "815ODsGU3Staw9HFlHO7dWss/TM2uz3Y6oVLObuhEWvAXiU3fW3PpFebRUlhLe5g\n" + - "yprGSZDFQAJpiqD7Nac5uZB53ETSPI+Cyku2E5CPx3qDJh9ueiHyaqmtbhBXjOue\n" + - "7rHU9F03zpldofqp4WDMnrl9ktzQDx+OHY5HI+gsaKV/MEX3YVrD+Rdc1GTc0JiI\n" + - "OS2VBCsCAwEAAaM/MD0wDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAgQwHQYD\n" + - "VR0OBBYEFPA6lVzMZhd6jkR4JClljOSWs0J1MA0GCSqGSIb3DQEBCwUAA4IBAQCt\n" + - "onZY1WkhTXmBxIl6EW/IDmcXZeYgucw590I7iVVXDi53oCM16AIM6pniqMP/iku5\n" + - "2MX2JqGD//eEnJDt6q+qA4htJSb7lswjbC90xLkGAKAuDsC2cKGaoQAeTh5ouP7C\n" + - "itN2+xVjZTfyAg3ZxmhXmVKVsv4rRpiAOYvX7R7ewNjpJkBeTQouind5rKtabzPD\n" + - "0nHKF0u/Y8FaEwv8zFRffsnl0/3nqfnT6l0mvekDP+LhIKZI9TwIJYkP9PGraR50\n" + - "HgUnKdoaJuPVQfbiMzISRqXygfTdmVnY9CEP9/W2S4NgaLXI6AkNLEcLNvz/CKJg\n" + - "TRqXQKkvunUCrHxi5oV+\n" + - "-----END CERTIFICATE-----\n"; - - private Certificate[] certificates = new Certificate[2]; + """ + -----BEGIN CERTIFICATE----- + MIID+zCCAuOgAwIBAgIEdkRICDANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMC + Q1oxDzANBgNVBAgTBlByYWd1ZTEPMA0GA1UEBxMGUHJhZ3VlMRQwEgYDVQQKEwta + b3dlIFNhbXBsZTEcMBoGA1UECxMTQVBJIE1lZGlhdGlvbiBMYXllcjE5MDcGA1UE + AxMwWm93ZSBEZXZlbG9wbWVudCBJbnN0YW5jZXMgQ2VydGlmaWNhdGUgQXV0aG9y + aXR5MB4XDTE5MDExMTEyMTIwNVoXDTI5MDEwODEyMTIwNVowgZ4xCzAJBgNVBAYT + AkNaMQ8wDQYDVQQIEwZQcmFndWUxDzANBgNVBAcTBlByYWd1ZTEUMBIGA1UEChML + Wm93ZSBTYW1wbGUxHDAaBgNVBAsTE0FQSSBNZWRpYXRpb24gTGF5ZXIxOTA3BgNV + BAMTMFpvd2UgRGV2ZWxvcG1lbnQgSW5zdGFuY2VzIENlcnRpZmljYXRlIEF1dGhv + cml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALyotswfS+sLTmwO + 08ocbkNWPccRVWGWaP/LvfLe1USmhUOMO7E38ztTy8AJYBxrFTPr2lL3rXybRHCn + Lscz0XNvkNll6Yef71ghaLbpe0V12Jygw4J9BAbYdVIsrP+brR3pijGVO/ECvJwD + 815ODsGU3Staw9HFlHO7dWss/TM2uz3Y6oVLObuhEWvAXiU3fW3PpFebRUlhLe5g + yprGSZDFQAJpiqD7Nac5uZB53ETSPI+Cyku2E5CPx3qDJh9ueiHyaqmtbhBXjOue + 7rHU9F03zpldofqp4WDMnrl9ktzQDx+OHY5HI+gsaKV/MEX3YVrD+Rdc1GTc0JiI + OS2VBCsCAwEAAaM/MD0wDwYDVR0TAQH/BAUwAwEB/zALBgNVHQ8EBAMCAgQwHQYD + VR0OBBYEFPA6lVzMZhd6jkR4JClljOSWs0J1MA0GCSqGSIb3DQEBCwUAA4IBAQCt + onZY1WkhTXmBxIl6EW/IDmcXZeYgucw590I7iVVXDi53oCM16AIM6pniqMP/iku5 + 2MX2JqGD//eEnJDt6q+qA4htJSb7lswjbC90xLkGAKAuDsC2cKGaoQAeTh5ouP7C + itN2+xVjZTfyAg3ZxmhXmVKVsv4rRpiAOYvX7R7ewNjpJkBeTQouind5rKtabzPD + 0nHKF0u/Y8FaEwv8zFRffsnl0/3nqfnT6l0mvekDP+LhIKZI9TwIJYkP9PGraR50 + HgUnKdoaJuPVQfbiMzISRqXygfTdmVnY9CEP9/W2S4NgaLXI6AkNLEcLNvz/CKJg + TRqXQKkvunUCrHxi5oV+ + -----END CERTIFICATE----- + """; + + private final Certificate[] certificates = new Certificate[2]; @Nested class GivenValidCertificateChain { diff --git a/gateway-service/src/test/java/org/zowe/apiml/gateway/service/RouteLocatorTest.java b/gateway-service/src/test/java/org/zowe/apiml/gateway/service/RouteLocatorTest.java index 1534b038be..9a4736cc77 100644 --- a/gateway-service/src/test/java/org/zowe/apiml/gateway/service/RouteLocatorTest.java +++ b/gateway-service/src/test/java/org/zowe/apiml/gateway/service/RouteLocatorTest.java @@ -33,13 +33,10 @@ import java.util.*; import java.util.function.Consumer; -import java.util.stream.Collectors; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.APIML_ID; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.ENABLE_URL_ENCODED_CHARACTERS; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.SERVICE_SUPPORTING_CLIENT_CERT_FORWARDING; +import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; class RouteLocatorTest { @@ -207,7 +204,7 @@ void givenNoApimlId_whenSetCors_thenServiceIdIsUsed() { @Test void givenNonGatewayService_whenGetRoutedService_thenReturnRoutingFromMetadata() { ServiceInstance s = createServiceInstance("myservice", "api/v1", "ui/v1"); - List rs = routeLocator.getRoutedService(s).collect(Collectors.toList()); + List rs = routeLocator.getRoutedService(s).toList(); assertEquals(2, rs.size()); } diff --git a/gateway-service/src/test/resources/application.yml b/gateway-service/src/test/resources/application.yml index 97d87cdbb9..256b0dce02 100644 --- a/gateway-service/src/test/resources/application.yml +++ b/gateway-service/src/test/resources/application.yml @@ -48,6 +48,7 @@ logging: org.springframework.cloud.gateway: DEBUG reactor.netty: DEBUG org.springframework.security: DEBUG + org.springframework.beans: WARN management: diff --git a/gradle.properties b/gradle.properties index 086e74c0e3..0f1432700b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,12 +12,12 @@ mavenPublishPassword= sonar.host.url=https://sonarcloud.io -# Artifactory repositories for publising +# Artifactory repositories for publishing artifactoryPublishingMavenRepo=https://zowe.jfrog.io/zowe/libs-release-local artifactoryPublishingMavenSnapshotRepo=https://zowe.jfrog.io/zowe/libs-snapshot-local # Artifacts version -version=3.0.22-SNAPSHOT +version=3.0.39-SNAPSHOT defaultSpringBootVersion=2.0.2.RELEASE defaultSpringBootCloudVersion=2.0.0.RELEASE diff --git a/gradle/code-quality.gradle b/gradle/code-quality.gradle index 33ab6cc890..bf200bf65b 100644 --- a/gradle/code-quality.gradle +++ b/gradle/code-quality.gradle @@ -12,7 +12,7 @@ allprojects { configurations.checkstyle { resolutionStrategy.capabilitiesResolution.withCapability("com.google.collections:google-collections") { - select("com.google.guava:guava:0") + select("com.google.guava:guava:33.3.1-jre") } } diff --git a/gradle/lite.gradle b/gradle/lite.gradle index 439fc16346..3df8a0675c 100644 --- a/gradle/lite.gradle +++ b/gradle/lite.gradle @@ -54,6 +54,7 @@ task liteLibJarAll(type: Jar) { } liteLibJarAll.dependsOn(":zaas-service:build") +liteLibJarAll.dependsOn(":gateway-service:build") liteLibJarAll.dependsOn(":discovery-service:build") liteLibJarAll.dependsOn(":api-catalog-services:build") diff --git a/gradle/sonar.gradle b/gradle/sonar.gradle index 78f0ce0a7e..85def3610b 100644 --- a/gradle/sonar.gradle +++ b/gradle/sonar.gradle @@ -1,7 +1,5 @@ apply plugin: "org.sonarqube" -ext.pullRequest = System.getenv()["CHANGE_ID"] ?: null - sonar { properties { property "sonar.host.url", project.getProperty("sonar.host.url") @@ -13,18 +11,6 @@ sonar { property "sonar.projectVersion", project.version property "sonar.language", "java" property "sonar.links.scm", "https://github.com/zowe/api-layer" - property "sonar.links.ci", System.getenv()["BUILD_URL"] ?: null - - if (pullRequest != null) { - property "sonar.pullrequest.key", System.getenv()["CHANGE_ID"] ?: null - property "sonar.pullrequest.branch", System.getenv()["CHANGE_BRANCH"] ?: null - property "sonar.pullrequest.base", System.getenv()["CHANGE_TARGET"] ?: null - property "sonar.github.pullRequest", pullRequest - property "sonar.github.repository", "zowe/api-layer" - property "sonar.github.oauth", project.hasProperty("sonar.github.oauth") ? project.getProperty("sonar.github.oauth") : null - } else { - property "sonar.branch.name", System.getenv()["BRANCH_NAME"] ?: null - } } } diff --git a/gradle/versions.gradle b/gradle/versions.gradle index fea3e7d3f7..f5f35f1da8 100644 --- a/gradle/versions.gradle +++ b/gradle/versions.gradle @@ -2,42 +2,47 @@ dependencyResolutionManagement { versionCatalogs { libs { // for node projects - version('projectNode', '18.20.4') - version('projectNpm', '9.9.3') + version('projectNode', '20.14.0') + version('projectNpm', '10.7.0') - version('springBoot', '3.2.9') - version('springBootGraphQl', '3.3.3') + version('springBoot', '3.3.4') + version('springBootGraphQl', '3.3.4') version('springCloudNetflix', '4.1.3') version('springCloudCommons', '4.1.4') version('springCloudCB', '3.1.2') version('springCloudGateway', '4.1.5') - version('springFramework', '6.1.12') - version('springRetry', '2.0.8') + version('springFramework', '6.1.13') + version('springRetry', '2.0.9') + version('glassfishHk2', '3.1.1') version('zosUtils', '2.0.5') + version('aws', '1.12.773') version('awaitility', '4.2.2') version('bouncyCastle', '1.78.1') version('caffeine', '3.1.8') + version('checkerQual', '3.48.1') version('commonsLang3', '3.17.0') + version('commonsLogging', '1.3.4') version('commonsText', '1.12.0') - version('commonsIo', '2.16.1') + version('commonsIo', '2.17.0') version('ehCache', '3.10.8') version('eureka', '2.0.3') version('netflixServo', '0.13.2') + version('googleErrorprone', '2.33.0') version('gradleGitProperties', '2.4.2') // Used in classpath dependencies - version('gradleNode', '3.6.0') // Used in classpath dependencies - version('guava', '33.3.0-jre') - // version('hamcrest', '1.3') - version('hamcrest', '2.2') - version('httpClient5', '5.3.1') - version('infinispan', '15.0.8.Final') - version('jacksonCore', '2.17.2') - version('jacksonDatabind', '2.17.2') - version('jacksonDataformatYaml', '2.17.2') + version('guava', '33.3.1-jre') + version('hamcrest', '3.0') + version('httpClient4', '4.5.14') + version('httpClient5', '5.4') + version('infinispan', '15.0.10.Final') + version('jacksonCore', '2.18.0') + version('jacksonDatabind', '2.18.0') + version('jacksonDataformatYaml', '2.18.0') version('janino', '3.1.12') version('jakartaValidation', '3.1.0') version('jakartaInject', '2.0.1') version('jakartaServlet', '6.1.0') + version('javaxAnnotation', '1.3.2') version('jaxbApi') { strictly '[2.3.3,3.0.0[' prefer '2.3.3' @@ -46,56 +51,54 @@ dependencyResolutionManagement { strictly '[2.3.9,3.0.0[' prefer '2.3.9' } + version('jbossLogging', '3.6.1.Final') version('jerseySun', '1.19.4') - version('jettyWebSocketClient', '9.4.56.v20240826') + version('jettyWebSocketClient', '12.0.14') version('jettison', '1.5.4') //0.12.x version contains breaking changes version('jjwt', '0.12.6') + version('jodaTime', '2.13.0') version('jsonPath', '2.9.0') version('jsonSmart', '2.5.1') - version('junitJupiter', '5.11.0') - version('junitPlatform', '1.11.0') + version('junitJupiter', '5.11.2') + version('junitPlatform', '1.11.2') version('lettuce', '6.4.0.RELEASE') // force version in build.gradle file - compatibility with Slf4j - version('log4j', '2.23.1') + version('log4j', '2.24.1') version('lombok', '1.18.34') - version('netty', '4.1.112.Final') - version('nettyReactor', '1.1.22') - version('nimbusJoseJwt', '9.40') + version('netty', '4.1.114.Final') + version('nettyReactor', '1.1.23') + version('nimbusJoseJwt', '9.41.2') version('openApiDiff', '2.0.1') version('picocli', '4.7.6') - version('reactor', '3.6.9') + version('reactor', '3.6.11') version('restAssured', '5.5.0') + version('rhino', '1.7.15') version('springDoc', '2.6.0') version('swaggerInflector', '2.0.12') version('swagger2Parser', '1.0.71') version('swagger3Parser', '2.1.22') version('thymeleaf', '3.1.2.RELEASE') - version('velocity', '2.3') - version('woodstoxCore', '6.7.0') - version('xstream') { - // older versions are vulnerable to CVE-2022-40151, CVE-2022-40152, and CVE-2022-41966 - strictly '[1.4.20,2.0[' - prefer '1.4.20' - } - version('jgit', '6.10.0.202406032230-r') - version('gradleNode', '7.0.2') - version('sonarGradlePlugin', '4.0.0.2929') + version('velocity', '2.4') + version('woodstoxCore', '7.0.0') + version('jgit', '7.0.0.202409031743-r') + version('gradleNode', '7.1.0') + version('sonarGradlePlugin', '5.1.0.4882') version('gradleRelease', '3.0.2') version('gradleLicencer', '0.6.1') - version('gradleJibPlugin', '3.2.1') - version('taskTree', '2.1.1') + version('gradleJibPlugin', '3.4.4') version('reactorBom', '2023.0') version('gradleTestLogger', '4.0.0') version('testLogger', '4.0.0') - version('micronautPlatform', '4.6.0') - version('micronaut', '4.6.3') - version('micronautPlugin', '4.4.2') + version('micronautPlatform', '4.6.1') + version('micronaut', '4.7.0') + version('micronautPlugin', '4.4.3') version('shadow', '8.1.1') version('checkstyle', '10.17.0') version('jacoco', '0.8.11') version('gradle', '8.6') + version('commonsCompress', '1.27.1') library('zowe_zos_utils', 'org.zowe.apiml.sdk', 'zos-utils').versionRef('zosUtils') library('spring_boot_configuration_processor', 'org.springframework.boot', 'spring-boot-configuration-processor').versionRef('springBoot') @@ -127,21 +130,30 @@ dependencyResolutionManagement { library('spring_tx', 'org.springframework', 'spring-tx').versionRef('springFramework') library('spring_webmvc', 'org.springframework', 'spring-webmvc').versionRef('springFramework') library('spring_context_support', 'org.springframework', 'spring-context-support').versionRef('springFramework') + library('spring_beans', 'org.springframework', 'spring-beans').versionRef('springFramework') library('apache_commons_lang3', 'org.apache.commons', 'commons-lang3').versionRef('commonsLang3') + library('apache_commons_logging', 'commons-logging', 'commons-logging').versionRef('commonsLogging') // to define minimum version and avoid duplicity libraries in the classpath library('apache_commons_text', 'org.apache.commons', 'commons-text').versionRef('commonsText') + library('aopalliance', 'org.glassfish.hk2.external', 'aopalliance-repackaged').versionRef('glassfishHk2') // to define minimum version and avoid duplicity libraries in the classpath + library('hk2_api', 'org.glassfish.hk2', 'hk2-api').versionRef('glassfishHk2') // to define minimum version and avoid duplicity libraries in the classpath library('apache_velocity', 'org.apache.velocity', 'velocity-engine-core').versionRef('velocity') library('awaitility', 'org.awaitility', 'awaitility').versionRef('awaitility') + library('aws_bom', 'com.amazonaws', 'aws-java-sdk-bom').versionRef('aws') library('bcprov', 'org.bouncycastle', 'bcprov-jdk18on').versionRef('bouncyCastle') library('bcpkix', 'org.bouncycastle', 'bcpkix-jdk18on').versionRef('bouncyCastle') library('caffeine', 'com.github.ben-manes.caffeine', 'caffeine').versionRef('caffeine') + library('checker_qual', 'org.checkerframework', 'checker-qual').versionRef('checkerQual') library('commons_io', 'commons-io', 'commons-io').versionRef('commonsIo') library('eh_cache', 'org.ehcache', 'ehcache').versionRef('ehCache') library('eureka_jersey_client', 'com.netflix.eureka', 'eureka-client-jersey3').versionRef('eureka') + library('google_errorprone', 'com.google.errorprone', 'error_prone_annotations').versionRef('googleErrorprone') // to define minimum version and avoid duplicity libraries in the classpath library('guava', 'com.google.guava', 'guava').versionRef('guava') library('hamcrest', 'org.hamcrest', 'hamcrest').versionRef('hamcrest') + library('http_client4', 'org.apache.httpcomponents', 'httpclient').versionRef('httpClient4') // to define minimum version and avoid duplicity libraries in the classpath library('http_client5', 'org.apache.httpcomponents.client5', 'httpclient5').versionRef('httpClient5') + library('javax_annotation', 'javax.annotation', 'javax.annotation-api').versionRef('javaxAnnotation') // to define minimum version and avoid duplicity libraries in the classpath library('netflix_servo', 'com.netflix.servo', 'servo-core').versionRef('netflixServo') library('infinispan_spring_boot3_starter_embedded', 'org.infinispan', 'infinispan-spring-boot3-starter-embedded').versionRef('infinispan') @@ -157,6 +169,7 @@ dependencyResolutionManagement { library('jakarta_servlet_api', 'jakarta.servlet', 'jakarta.servlet-api').versionRef('jakartaServlet') library('jaxbApi', 'jakarta.xml.bind', 'jakarta.xml.bind-api').versionRef('jaxbApi') library('jaxbImpl', 'com.sun.xml.bind', 'jaxb-impl').versionRef('jaxbImpl') + library('jboss_logging', 'org.jboss.logging', 'jboss-logging').versionRef('jbossLogging') // to define minimum version and avoid duplicity libraries in the classpath library('jetty_client', 'org.eclipse.jetty', 'jetty-client').versionRef('jettyWebSocketClient') library('jetty_http', 'org.eclipse.jetty', 'jetty-http').versionRef('jettyWebSocketClient') library('jetty_io', 'org.eclipse.jetty', 'jetty-io').versionRef('jettyWebSocketClient') @@ -165,6 +178,7 @@ dependencyResolutionManagement { library('jetty_websocket_client', 'org.eclipse.jetty.websocket', 'websocket-client').versionRef('jettyWebSocketClient') library('jetty_websocket_common', 'org.eclipse.jetty.websocket', 'websocket-common').versionRef('jettyWebSocketClient') library('jettison', 'org.codehaus.jettison', 'jettison').versionRef('jettison') + library('joda_time', 'joda-time', 'joda-time').versionRef('jodaTime') // to define minimum version and avoid duplicity libraries in the classpath library('json_smart', 'net.minidev', 'json-smart').versionRef('jsonSmart') library('jjwt', 'io.jsonwebtoken', 'jjwt-api').versionRef('jjwt') library('jjwt_impl', 'io.jsonwebtoken', 'jjwt-impl').versionRef('jjwt') @@ -190,6 +204,7 @@ dependencyResolutionManagement { library('rest_assured_json_path', 'io.rest-assured', 'json-path').versionRef('restAssured') library('rest_assured_xml_path', 'io.rest-assured', 'xml-path').versionRef('restAssured') library('rest_assured_web_test_client', 'io.rest-assured', 'spring-web-test-client').versionRef('restAssured') + library('rhino', 'org.mozilla', 'rhino').versionRef('rhino') // Added to force minimum transitive version library('spring_test', 'org.springframework', 'spring-test').versionRef('springFramework') library('spring_doc', 'org.springdoc', 'springdoc-openapi-starter-webmvc-ui').versionRef('springDoc') library('spring_doc_webflux', 'org.springdoc', 'springdoc-openapi-starter-webflux-api').versionRef('springDoc') @@ -199,7 +214,6 @@ dependencyResolutionManagement { library('swagger_inflector', 'io.swagger', 'swagger-inflector').versionRef('swaggerInflector') library('thymeleaf_spring5', 'org.thymeleaf', 'thymeleaf-spring5').versionRef('thymeleaf') library('thymeleaf', 'org.thymeleaf', 'thymeleaf').versionRef('thymeleaf') - library('xstream', 'com.thoughtworks.xstream', 'xstream').versionRef('xstream') library('woodstox_core', 'com.fasterxml.woodstox', 'woodstox-core').versionRef('woodstoxCore') library('spring_boot_starter_graphql', 'org.springframework.boot', 'spring-boot-starter-graphql').versionRef('springBootGraphQl') @@ -213,13 +227,14 @@ dependencyResolutionManagement { library('gradle_sonar_plugin', 'org.sonarsource.scanner.gradle', 'sonarqube-gradle-plugin').versionRef('sonarGradlePlugin') library('gradle_release', 'net.researchgate', 'gradle-release').versionRef('gradleRelease') library('gradle_licencer', 'gradle.plugin.org.cadixdev.gradle', 'licenser').versionRef('gradleLicencer') - library('gradle_jib_plugin', 'gradle.plugin.com.google.cloud.tools', 'jib-gradle-plugin').versionRef('gradleJibPlugin') + library('gradle_jib_plugin', 'com.google.cloud.tools', 'jib-gradle-plugin').versionRef('gradleJibPlugin') library('gradle_test_logger', 'com.adarshr', 'gradle-test-logger-plugin').versionRef('gradleTestLogger') library('micronaut_http_client', 'io.micronaut', 'micronaut-http-client').versionRef('micronaut') + library('micronaut_bom', 'io.micronaut', 'micronaut-core-bom').versionRef('micronaut') + library('apache_compress', 'org.apache.commons', 'commons-compress').versionRef('commonsCompress') plugin('gradle_git_properties', 'com.gorylenko.gradle-git-properties').versionRef('gradleGitProperties') plugin('gradle_node', 'com.github.node-gradle.node').versionRef('gradleNode') - plugin('task_tree', 'com.dorongold.task-tree').versionRef('taskTree') plugin('test_logger', 'com.adarshr.test-logger').versionRef('testLogger') plugin('micronaut_minimal_application', 'io.micronaut.minimal.application').versionRef('micronautPlugin') plugin('micronaut_docker', 'io.micronaut.docker').versionRef('micronautPlugin') @@ -229,8 +244,8 @@ dependencyResolutionManagement { plugin('micronaut_library', 'io.micronaut.library').versionRef('micronautPlugin') // Pure Java dependencies - do not use in Spring unless really necessary - version('logback', '1.5.6') - version('mockitoCore', '5.13.0') + version('logback', '1.5.11') + version('mockitoCore', '5.14.2') version('mockitoInline', '5.2.0') library('logback_classic', 'ch.qos.logback', 'logback-classic').versionRef('logback') diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9355b41557..df97d72b8b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle index cd2765dea4..c0089cd121 100644 --- a/integration-tests/build.gradle +++ b/integration-tests/build.gradle @@ -11,7 +11,6 @@ buildscript { plugins { alias(libs.plugins.test.logger) - id "java-test-fixtures" } repositories { @@ -42,18 +41,13 @@ dependencies { testImplementation libs.nimbus.jose.jwt testImplementation libs.reactor.test testImplementation libs.rest.assured + testImplementation(testFixtures(project(":apiml-common"))) runtimeOnly libs.jjwt.impl runtimeOnly libs.jjwt.jackson - testFixturesImplementation libs.spring.boot.starter - testFixturesImplementation libs.rest.assured - testCompileOnly libs.lombok testAnnotationProcessor libs.lombok - - testFixturesImplementation libs.lombok - testFixturesAnnotationProcessor libs.lombok } jar { diff --git a/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/AuthenticationOnDeploymentTest.java b/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/AuthenticationOnDeploymentTest.java index 7ff11912f5..37aacbc729 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/AuthenticationOnDeploymentTest.java +++ b/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/AuthenticationOnDeploymentTest.java @@ -75,13 +75,13 @@ void testMultipleAuthenticationSchemes() throws Exception { try ( final VirtualService service1 = new VirtualService("testService", ports.get(0)); - final VirtualService service2 = new VirtualService("testService", ports.get(1)); + final VirtualService service2 = new VirtualService("testService", ports.get(1)) ) { // start first instance - without passTickets service1 .addVerifyServlet() .start() - .waitForGatewayRegistration(1, TIMEOUT); + .waitForGatewayRegistration(TIMEOUT); // on each gateway make a call to service @@ -102,19 +102,19 @@ void testMultipleAuthenticationSchemes() throws Exception { .addVerifyServlet() .setAuthentication(new Authentication(AuthenticationScheme.HTTP_BASIC_PASSTICKET, "ZOWEAPPL")) .start() - .waitForGatewayRegistration(2, TIMEOUT); + .waitForGatewayRegistration(TIMEOUT); // on each gateway make calls (count same as instances) to service service1.getGatewayVerifyUrls().forEach(x -> given() .cookie(GATEWAY_TOKEN_COOKIE_NAME, jwt) .when().get(x + "/test") .then().statusCode(is(SC_OK))); - service2.getGatewayVerifyUrls().forEach(x -> { + service2.getGatewayVerifyUrls().forEach(x -> given() .cookie(GATEWAY_TOKEN_COOKIE_NAME, jwt) .when().get(x + "/test") - .then().statusCode(is(SC_OK)); - }); + .then().statusCode(is(SC_OK)) + ); // verify if each gateway sent request to service (one with and one without passTicket) service1.getGatewayVerifyUrls().forEach(gw -> { @@ -134,19 +134,19 @@ void testMultipleAuthenticationSchemes() throws Exception { .stop(); // check second service, all called second one with passTicket, same url like service1 (removed) - service1.getGatewayVerifyUrls().forEach(x -> { + service1.getGatewayVerifyUrls().forEach(x -> given() .cookie(GATEWAY_TOKEN_COOKIE_NAME, jwt) .when().get(x + "/test") - .then().statusCode(is(SC_OK)); - }); - service1.getGatewayVerifyUrls().forEach(gw -> { + .then().statusCode(is(SC_OK)) + ); + service1.getGatewayVerifyUrls().forEach(gw -> verifier.existAndClean(service2, x -> { assertNotNull(x.getHeader(HttpHeaders.AUTHORIZATION)); assertEquals("/verify/test", x.getRequestURI()); return true; - }); - }); + }) + ); } } @@ -167,7 +167,7 @@ void testReregistration() throws Exception { serviceList.forEach(s -> { try { - s.addVerifyServlet().start().waitForGatewayRegistration(1, TIMEOUT); + s.addVerifyServlet().start().waitForGatewayRegistration(TIMEOUT); } catch (IOException | LifecycleException | JSONException e) { e.printStackTrace(); } @@ -181,7 +181,7 @@ void testReregistration() throws Exception { } }); // register service with the same name - service4.addVerifyServlet().start().waitForGatewayRegistration(1, TIMEOUT); + service4.addVerifyServlet().start().waitForGatewayRegistration(TIMEOUT); // on each gateway make a call to service service4.getGatewayVerifyUrls().forEach(x -> given() diff --git a/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/ServiceHaModeTest.java b/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/ServiceHaModeTest.java index 1ec66637ff..3bb1bc0076 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/ServiceHaModeTest.java +++ b/integration-tests/src/test/java/org/zowe/apiml/functional/gateway/ServiceHaModeTest.java @@ -96,7 +96,7 @@ void setUp() throws LifecycleException, IOException, JSONException { service2 = new VirtualService("testHaModeService1", ports.get(1)); service1.start(); - service2.start().waitForGatewayRegistration(2, TIMEOUT); + service2.start().waitForGatewayRegistration(TIMEOUT); service2.zombie(); } @@ -134,7 +134,7 @@ private void routeAndVerifyRetry(List gatewayUrls, Method method, int ti assertEquals(HttpStatus.SC_OK, response.getStatusCode()); break; } catch (RuntimeException | AssertionError e) { - if (System.currentTimeMillis() - time0 > timeoutSec * 1000) throw e; + if (System.currentTimeMillis() - time0 > timeoutSec * 1000L) throw e; await().timeout(1, TimeUnit.SECONDS); } } @@ -158,7 +158,7 @@ void setUp() throws LifecycleException, IOException, JSONException { service2.addHttpStatusCodeServlet(HttpStatus.SC_SERVICE_UNAVAILABLE); service1.start(); - service2.start().waitForGatewayRegistration(2, TIMEOUT); + service2.start().waitForGatewayRegistration(TIMEOUT); } @AfterAll @@ -178,17 +178,17 @@ void cleanUp() { @ParameterizedTest @MethodSource("org.zowe.apiml.functional.gateway.ServiceHaModeTest#retryableHttpMethods") void verifyThatGatewayRetriesGet(Method method) { - routeAndVerifyRetries(service1.getGatewayUrls(), method, 2); + routeAndVerifyRetries(service1.getGatewayUrls(), method); } @ParameterizedTest @MethodSource("org.zowe.apiml.functional.gateway.ServiceHaModeTest#nonRetryableHttpMethods") void verifyThatGatewayNotRetriesPost(Method method) { - routeAndVerifyRetries(service1.getGatewayUrls(), method, 1); + routeAndVerifyRetries(service1.getGatewayUrls(), method); } // TODO This method used to verify how many retries happened based on an optional response header with debug information - private void routeAndVerifyRetries(List gatewayUrls, Method method, int maximumRetries) { + private void routeAndVerifyRetries(List gatewayUrls, Method method) { for (String gatewayUrl : gatewayUrls) { IntStream.rangeClosed(0, 1).forEach(x -> { diff --git a/integration-tests/src/test/java/org/zowe/apiml/integration/authentication/schemes/GatewayAuthTest.java b/integration-tests/src/test/java/org/zowe/apiml/integration/authentication/schemes/GatewayAuthTest.java index bdc37d11d4..ca48cfc29f 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/integration/authentication/schemes/GatewayAuthTest.java +++ b/integration-tests/src/test/java/org/zowe/apiml/integration/authentication/schemes/GatewayAuthTest.java @@ -161,6 +161,27 @@ void givenValidRequest_thenOidcIsTransformed(String title, String basePath, Cons assertEquals(200, response.getStatusCode()); } + @ParameterizedTest(name = "givenInvalidCookies_thenCredentialsAreTransformedAndInvalidCookiesAreRemoved {0} [{index}]") + @MethodSource("org.zowe.apiml.integration.authentication.schemes.GatewayAuthTest#validToBeTransformed") + void givenInvalidCookies_thenCredentialsAreTransformedAndInvalidCookiesAreRemoved(String title, String basePath, Consumer assertions) { + String gatewayToken = SecurityUtils.gatewayToken( + ConfigReader.environmentConfiguration().getCredentials().getUser(), + ConfigReader.environmentConfiguration().getCredentials().getPassword() + ); + + Response response = given() + .header(HttpHeaders.AUTHORIZATION, "Bearer " + gatewayToken) + .header(HttpHeaders.COOKIE, "cookie1=1;personalAccessToken;LtpaToken2=ltpa;cookie2=2") + .when() + .get(HttpRequestUtils.getUri(GATEWAY_CONF, basePath)); + assertions.accept(response); + assertEquals("1", response.jsonPath().getString("cookies.cookie1")); + assertEquals("2", response.jsonPath().getString("cookies.cookie2")); + assertNull(response.jsonPath().getString("cookies.LtpaToken2")); + assertNull(response.jsonPath().getString("cookies.personalAccessToken")); + assertEquals(200, response.getStatusCode()); + } + } @Nested diff --git a/integration-tests/src/test/java/org/zowe/apiml/integration/graphql/BookControllerTest.java b/integration-tests/src/test/java/org/zowe/apiml/integration/graphql/BookControllerTest.java index 7d5b3885cc..052401db7c 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/integration/graphql/BookControllerTest.java +++ b/integration-tests/src/test/java/org/zowe/apiml/integration/graphql/BookControllerTest.java @@ -46,7 +46,7 @@ private Book setUpBook() { @BeforeAll static void setUpTester() { String baseUrl = HttpRequestUtils.getUriFromGateway("/discoverableclient/api/v3/graphql").toString(); - SslContext sslContext = null; + SslContext sslContext; try { sslContext = SslContextBuilder .forClient() @@ -66,7 +66,7 @@ static void setUpTester() { } @Test - public void whenGetAllBooks_thenReturnAllBooks() throws SSLException { + public void whenGetAllBooks_thenReturnAllBooks() { String document = """ query { getAllBooks { @@ -75,15 +75,18 @@ public void whenGetAllBooks_thenReturnAllBooks() throws SSLException { } } """; - tester.document(document) + + var books = tester.document(document) .execute() .path("getAllBooks") .entityList(Book.class) .get(); + + assertFalse(books.isEmpty()); } @Test - public void whenGetAllBooksWithWrongSchema_thenReturnException() throws SSLException { + public void whenGetAllBooksWithWrongSchema_thenReturnException() { String document = """ query { getAllBooks { @@ -92,18 +95,17 @@ public void whenGetAllBooksWithWrongSchema_thenReturnException() throws SSLExcep } """; - AssertionError thrown = assertThrows(AssertionError.class, () -> { + assertThrows(AssertionError.class, () -> tester.document(document) .execute() .path("getAllBooks") .entityList(Book.class) - .get(); - }); - assertNotNull(thrown); + .get() + ); } @Test - public void whenAddBook_thenReturnAddedBook() throws SSLException { + public void whenAddBook_thenReturnAddedBook() { Book expectedBook = setUpBook(); String addBookDocument = String.format(""" mutation { @@ -145,7 +147,7 @@ public void whenAddBook_thenReturnAddedBook() throws SSLException { } @Test - public void whenGetBookById_thenReturnMatchingBook() throws SSLException { + public void whenGetBookById_thenReturnMatchingBook() { Book expectedBook = setUpBook(); String addBookDocument = String.format(""" mutation { @@ -173,13 +175,11 @@ public void whenGetBookById_thenReturnMatchingBook() throws SSLException { .execute() .path("getBookById") .entity(Book.class) - .satisfies(book -> { - assertEquals(addedBookId, book.bookId); - }); + .satisfies(book -> assertEquals(addedBookId, book.bookId)); } @Test - public void whenGetBookByIdWithWrongId_thenBookNotFound() throws SSLException { + public void whenGetBookByIdWithWrongId_thenBookNotFound() { String id = "UnexistingId"; String getBookByIdDocument = String.format(""" query { @@ -198,7 +198,7 @@ public void whenGetBookByIdWithWrongId_thenBookNotFound() throws SSLException { } @Test - public void whenAddBookWithNullParameter_thenReturnException() throws SSLException { + public void whenAddBookWithNullParameter_thenReturnException() { Book expectedBook = setUpBook(); String addBookDocument = String.format(""" mutation { @@ -210,18 +210,17 @@ public void whenAddBookWithNullParameter_thenReturnException() throws SSLExcepti } """, expectedBook.pageCount, expectedBook.authorId ); - AssertionError thrown = assertThrows(AssertionError.class, () -> { + assertThrows(AssertionError.class, () -> tester.document(addBookDocument) .execute() .path("addBook") .entity(Book.class) - .get(); - }); - assertNotNull(thrown); + .get() + ); } @Test - public void whenUpdateBook_thenReturnUpdatedBook() throws SSLException { + public void whenUpdateBook_thenReturnUpdatedBook() { Book expectedBook = setUpBook(); String addBookDocument = String.format(""" mutation { @@ -259,7 +258,7 @@ public void whenUpdateBook_thenReturnUpdatedBook() throws SSLException { } @Test - public void whenUpdateUnknownBook_thenReturnException() throws SSLException { + public void whenUpdateUnknownBook_thenReturnException() { Book bookToUpdateBook = setUpBook(); bookToUpdateBook.bookId = "unknown-id"; String updateBookDocument = String.format(""" @@ -272,18 +271,17 @@ public void whenUpdateUnknownBook_thenReturnException() throws SSLException { } """, bookToUpdateBook.bookId, bookToUpdateBook.name, bookToUpdateBook.pageCount, bookToUpdateBook.authorId); - AssertionError thrown = assertThrows(AssertionError.class, () -> { + assertThrows(AssertionError.class, () -> tester.document(updateBookDocument) .execute() .path("updateBook") .entity(Book.class) - .get(); - }); - assertNotNull(thrown); + .get() + ); } @Test - public void whenDeleteBook_thenReturnDeletedBook() throws SSLException { + public void whenDeleteBook_thenReturnDeletedBook() { // add book which will be later deleted Book bookToDelete = setUpBook(); String addBookDocument = String.format(""" @@ -338,7 +336,7 @@ public void whenDeleteBook_thenReturnDeletedBook() throws SSLException { } @Test - public void whenDeleteUnknownBook_thenReturnException() throws SSLException { + public void whenDeleteUnknownBook_thenReturnException() { String unknownId = "unknown-id"; String deleteBookDocument = String.format(""" mutation { @@ -350,14 +348,13 @@ public void whenDeleteUnknownBook_thenReturnException() throws SSLException { } """, unknownId); - AssertionError thrown = assertThrows(AssertionError.class, () -> { + assertThrows(AssertionError.class, () -> tester.document(deleteBookDocument) .execute() .path("deleteBook") .entity(Book.class) - .get(); - }); - assertNotNull(thrown); + .get() + ); } @Data diff --git a/integration-tests/src/test/java/org/zowe/apiml/integration/zaas/PassTicketTest.java b/integration-tests/src/test/java/org/zowe/apiml/integration/zaas/PassTicketTest.java index ac1f09bf5c..6cd47ea8bd 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/integration/zaas/PassTicketTest.java +++ b/integration-tests/src/test/java/org/zowe/apiml/integration/zaas/PassTicketTest.java @@ -109,7 +109,7 @@ void givenValidZoweTokenWithLtpa() throws UnrecoverableKeyException, Certificate } @Test - void givenValidAccessToken() { + void givenValidPersonalAccessToken() { String serviceId = "gateway"; String pat = personalAccessToken(Collections.singleton(serviceId)); diff --git a/integration-tests/src/test/java/org/zowe/apiml/util/config/AuxiliaryUserList.java b/integration-tests/src/test/java/org/zowe/apiml/util/config/AuxiliaryUserList.java index fa2bb288b7..73c4d01852 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/util/config/AuxiliaryUserList.java +++ b/integration-tests/src/test/java/org/zowe/apiml/util/config/AuxiliaryUserList.java @@ -16,7 +16,6 @@ import java.util.Arrays; import java.util.List; -import java.util.stream.Collectors; /** * Class is supposed to hold a value string with username,password pairs separated by ; @@ -35,7 +34,7 @@ public List getCredentials() { s.split(",")[2], null) ) - .collect(Collectors.toList()); + .toList(); } public List getCredentials(String key) { @@ -50,6 +49,6 @@ public List getCredentials(String key) { null) ) .filter(credentials -> key.equals(credentials.getKey())) - .collect(Collectors.toList()); + .toList(); } } diff --git a/integration-tests/src/test/java/org/zowe/apiml/util/service/DiscoveryUtils.java b/integration-tests/src/test/java/org/zowe/apiml/util/service/DiscoveryUtils.java index 572fd0aebb..cd30bb66e2 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/util/service/DiscoveryUtils.java +++ b/integration-tests/src/test/java/org/zowe/apiml/util/service/DiscoveryUtils.java @@ -25,7 +25,6 @@ import java.util.LinkedList; import java.util.List; import java.util.function.Predicate; -import java.util.stream.Collectors; import static io.restassured.RestAssured.given; import static org.zowe.apiml.util.SecurityUtils.getConfiguredSslConfig; @@ -46,7 +45,7 @@ public static String getAdditionalDiscoveryUrl() { } public static List getGatewayUrls() { - return getInstances("gateway").stream().filter(InstanceInfo.ONLY_UP).map(InstanceInfo::getUrl).collect(Collectors.toList()); + return getInstances("gateway").stream().filter(InstanceInfo.ONLY_UP).map(InstanceInfo::getUrl).toList(); } public static List getInstances(String serviceId) { diff --git a/integration-tests/src/test/java/org/zowe/apiml/util/service/VirtualService.java b/integration-tests/src/test/java/org/zowe/apiml/util/service/VirtualService.java index 5f24a22c3d..30eedc6859 100644 --- a/integration-tests/src/test/java/org/zowe/apiml/util/service/VirtualService.java +++ b/integration-tests/src/test/java/org/zowe/apiml/util/service/VirtualService.java @@ -10,6 +10,7 @@ package org.zowe.apiml.util.service; +import io.restassured.http.Header; import io.restassured.response.Response; import io.restassured.response.ResponseBody; import jakarta.servlet.Servlet; @@ -42,20 +43,13 @@ import java.util.List; import java.util.Map; import java.util.concurrent.TimeUnit; -import java.util.stream.Collectors; import static io.restassured.RestAssured.given; import static org.apache.http.HttpStatus.SC_NO_CONTENT; import static org.apache.http.HttpStatus.SC_OK; import static org.awaitility.Awaitility.await; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.fail; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.AUTHENTICATION_APPLID; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.AUTHENTICATION_SCHEME; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.ROUTES; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.ROUTES_GATEWAY_URL; -import static org.zowe.apiml.constants.EurekaMetadataDefinition.ROUTES_SERVICE_URL; +import static org.junit.jupiter.api.Assertions.*; +import static org.zowe.apiml.constants.EurekaMetadataDefinition.*; /** * This class simulate a service. You can create new instance dynamically in the test. It will register into discovery @@ -278,36 +272,26 @@ public VirtualService addVerifyServlet() { * The check means make serviceCount calls. There is a preposition that load balancer is based on cyclic queue and * if it will call multiple times (same to count of instances of same service), it should call all instances. * - * @param instanceCount Assumed count of instances of the same service at the moment * @param timeoutSec Timeout in secs to break waiting */ - public VirtualService waitForGatewayRegistration(int instanceCount, int timeoutSec) { + public VirtualService waitForGatewayRegistration(int timeoutSec) { final long time0 = System.currentTimeMillis(); boolean slept = false; + for (String gatewayUrl : getGatewayUrls()) { String url = gatewayUrl + "/application/instance"; - // count of calls (to make instanceCount times until sleep) - int testCounter = 0; while (true) { try { final ResponseBody responseBody = given().when() .contentType(MediaType.APPLICATION_JSON_VALUE) + .header(new Header("X-InstanceId", instanceId)) .get(url) .body(); - // FIXME it seems the routing is not deterministic, the first time it's only one instance, the second time it's not guaranteeing that it's the same one replying. - // A possible fix would be to use deterministic routing once implemented. assertEquals(HttpMethod.GET + " " + instanceId, responseBody.print()); break; } catch (RuntimeException | AssertionError e) { - testCounter++; - // less calls than instance counts, continue without waiting - if (testCounter < instanceCount) continue; - - // instance should be called, but didn't, wait for a while and then try call again (instanceCount times) - testCounter = 0; - - if (System.currentTimeMillis() - time0 > timeoutSec * 1000) throw e; + if (System.currentTimeMillis() - time0 > timeoutSec * 1000L) throw e; await().timeout(1, TimeUnit.SECONDS); slept = true; @@ -346,7 +330,7 @@ public VirtualService waitForGatewayUnregistering(int instanceCountBefore, int t } break; } catch (RuntimeException | AssertionError e) { - if (System.currentTimeMillis() - time0 > timeoutSec * 1000) throw e; + if (System.currentTimeMillis() - time0 > timeoutSec * 1000L) throw e; await().timeout(1, TimeUnit.SECONDS); slept = true; @@ -576,7 +560,7 @@ private void addDefaultRouteIfMissing() { public List getGatewayUrls() { return DiscoveryUtils.getGatewayUrls().stream() .map(x -> String.format("%s/%s%s", x, serviceId.toLowerCase(), gatewayPath)) - .collect(Collectors.toList()); + .toList(); } /** @@ -584,21 +568,21 @@ public List getGatewayUrls() { * @return list of url to the header servlet, for each registered gateway one */ public List getGatewayHeaderUrls(String headerName) { - return getGatewayUrls().stream().map(x -> x + "/header/" + headerName).collect(Collectors.toList()); + return getGatewayUrls().stream().map(x -> x + "/header/" + headerName).toList(); } /** * @return url of all gateways to this service and health service */ public List getGatewayHealthUrls() { - return getGatewayUrls().stream().map(x -> x + "/application/health").collect(Collectors.toList()); + return getGatewayUrls().stream().map(x -> x + "/application/health").toList(); } /** * @return URL of all gateways to this service and servlet {@link VerifyServlet} */ public List getGatewayVerifyUrls() { - return getGatewayUrls().stream().map(x -> x + "/verify").collect(Collectors.toList()); + return getGatewayUrls().stream().map(x -> x + "/verify").toList(); } @AllArgsConstructor @@ -651,7 +635,7 @@ public void run() { await().timeout(100, TimeUnit.MILLISECONDS); if (instanceId == null) continue; - if (lastCall + 1000 * heartbeatInterval < System.currentTimeMillis()) { + if (lastCall + 1000L * heartbeatInterval < System.currentTimeMillis()) { lastCall = System.currentTimeMillis(); sendHeartBeat(); } @@ -694,7 +678,7 @@ protected void doGet(HttpServletRequest req, HttpServletResponse resp) { /** * Servlet answer on /application/instance Http method and instanceId. This is base part of method to verify registration on - * gateways, see {@link #waitForGatewayRegistration(int, int)} and {@link #waitForGatewayUnregistering(int, int)} + * gateways, see {@link #waitForGatewayRegistration(int)} and {@link #waitForGatewayUnregistering(int, int)} */ @NoArgsConstructor public class InstanceServlet extends HttpServlet { diff --git a/mock-services/src/main/resources/application.yml b/mock-services/src/main/resources/application.yml index cdd44ff51a..61df059349 100644 --- a/mock-services/src/main/resources/application.yml +++ b/mock-services/src/main/resources/application.yml @@ -1,3 +1,7 @@ +logging: + level: + ROOT: INFO + org.apache.tomcat.util.net.SSLUtilBase: ERROR spring: application: name: Mock services diff --git a/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImpl.java b/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImpl.java index ff06c5054e..aa50f746b4 100644 --- a/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImpl.java +++ b/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImpl.java @@ -12,6 +12,7 @@ import com.netflix.appinfo.ApplicationInfoManager; import com.netflix.appinfo.EurekaInstanceConfig; +import com.netflix.appinfo.HealthCheckCallbackToHandlerBridge; import com.netflix.appinfo.InstanceInfo; import com.netflix.appinfo.providers.EurekaConfigBasedInstanceInfoProvider; import com.netflix.discovery.*; @@ -102,6 +103,9 @@ public synchronized void register(ApiMediationServiceConfig config) throws Servi EurekaClientConfig clientConfiguration = eurekaClientConfigProvider.config(config); ApplicationInfoManager infoManager = initializeApplicationInfoManager(config); eurekaClient = initializeEurekaClient(infoManager, clientConfiguration, config); + if (eurekaClient != null) { + eurekaClient.registerHealthCheck(new HealthCheckCallbackToHandlerBridge()); + } } /** @@ -155,6 +159,7 @@ private EurekaClient initializeEurekaClient( AbstractDiscoveryClientOptionalArgs args = new Jersey3DiscoveryClientOptionalArgs(); args.setSSLContext(factory.getSslContext()); + args.setHostnameVerifier(factory.getHostnameVerifier()); TransportClientFactories transportClientFactories = Jersey3TransportClientFactories.getInstance(); applicationInfoManager.setInstanceStatus(InstanceInfo.InstanceStatus.UP); return this.eurekaClientProvider.client(applicationInfoManager, clientConfig, transportClientFactories, args); diff --git a/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReader.java b/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReader.java index eff9327b03..410b5f49e6 100644 --- a/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReader.java +++ b/onboarding-enabler-java/src/main/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReader.java @@ -10,22 +10,25 @@ package org.zowe.apiml.eurekaservice.client.util; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import jakarta.servlet.ServletContext; +import lombok.extern.slf4j.Slf4j; import org.zowe.apiml.eurekaservice.client.config.ApiMediationServiceConfig; import org.zowe.apiml.exception.ServiceDefinitionException; import org.zowe.apiml.util.FileUtils; import org.zowe.apiml.util.ObjectUtil; import org.zowe.apiml.util.StringUtils; import org.zowe.apiml.util.UrlUtils; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; -import jakarta.servlet.ServletContext; -import java.io.*; +import java.io.IOException; import java.net.MalformedURLException; import java.net.UnknownHostException; -import java.util.*; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_ABSENT; import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL; @@ -79,6 +82,7 @@ *

* */ +@Slf4j public class ApiMediationServiceConfigReader { public static final String APIML_DEFAULT_CONFIG = "apiml.config.location"; @@ -159,7 +163,7 @@ public ApiMediationServiceConfig loadConfiguration(String internalConfigFileName } private ApiMediationServiceConfig loadConfiguration(String internalConfigFileName, String externalizedConfigFileName, boolean isInitialized) - throws ServiceDefinitionException { + throws ServiceDefinitionException { /* * Loading new configuration. Clean context map which might be kept in ThreadLocal object from previous configs. @@ -198,8 +202,15 @@ private ApiMediationServiceConfig loadConfiguration(String internalConfigFileNam } public static void setServiceIpAddress(ApiMediationServiceConfig serviceConfig) throws ServiceDefinitionException { + if ((serviceConfig == null) || !serviceConfig.isPreferIpAddress()) { + if (serviceConfig != null && org.apache.commons.lang3.StringUtils.isEmpty(serviceConfig.getServiceIpAddress())) { + serviceConfig.setServiceIpAddress("127.0.0.1"); + } + log.debug("IP Address is not preferred, will not resolve address from hostname."); + return; + } // Set instance ipAddress if required by Eureka and not set in the configuration files - if ((serviceConfig != null) && (serviceConfig.getServiceIpAddress() == null)) { + if ((serviceConfig.getServiceIpAddress() == null)) { String urlString = serviceConfig.getBaseUrl(); try { serviceConfig.setServiceIpAddress(UrlUtils.getIpAddressFromUrl(urlString)); @@ -369,7 +380,7 @@ private Map setApiMlSystemProperties() { Enumeration propertyNames = System.getProperties().propertyNames(); while (propertyNames.hasMoreElements()) { - String param = (String)propertyNames.nextElement(); + String param = (String) propertyNames.nextElement(); String value = System.getProperties().getProperty(param); if (param.startsWith("apiml.")) { threadContextMap.put(param, value); diff --git a/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReaderTest.java b/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReaderTest.java index 7a9de6865f..60cc3bb066 100644 --- a/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReaderTest.java +++ b/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/util/ApiMediationServiceConfigReaderTest.java @@ -16,6 +16,7 @@ import org.zowe.apiml.exception.ServiceDefinitionException; import jakarta.servlet.ServletContext; + import java.net.MalformedURLException; import java.net.UnknownHostException; import java.util.HashMap; @@ -54,17 +55,17 @@ void testLoadConfiguration_TwoFiles_OK() throws ServiceDefinitionException { } @Test - void readConfigurationWithWrongFormat() throws ServiceDefinitionException { - String file = "/bad-format-of-service-configuration.yml"; + void whenIPAddressMissing_thenProvideLocalhostAsDefault() throws ServiceDefinitionException { + String file = "/service-configuration-without-ip-address.yml"; ApiMediationServiceConfigReader apimlConfigReader = new ApiMediationServiceConfigReader(); - assertThrows(ServiceDefinitionException.class, () -> apimlConfigReader.loadConfiguration(file)); + assertEquals("127.0.0.1", apimlConfigReader.loadConfiguration(file).getServiceIpAddress()); } @Test void testMapMerge_FULL() throws ServiceDefinitionException { - ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile( "/service-configuration.yml", null); - ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile( "/additional-service-configuration.yml", null); + ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile("/service-configuration.yml", null); + ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile("/additional-service-configuration.yml", null); ApiMediationServiceConfig apiMediationServiceConfig = new ApiMediationServiceConfigReader().mergeConfigurations(apimlServcieConfig1, apimlServcieConfig2); @@ -88,8 +89,8 @@ void testMapMerge_FULL() throws ServiceDefinitionException { @Test void testMapMerge_PART_serviceid_keystore_truststore() throws ServiceDefinitionException { - ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile( "/service-configuration.yml", null); - ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile( "/additional-service-configuration_serviceid-andkeystore-truststore-only.yml", null); + ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile("/service-configuration.yml", null); + ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile("/additional-service-configuration_serviceid-andkeystore-truststore-only.yml", null); ApiMediationServiceConfig apiMediationServiceConfig = new ApiMediationServiceConfigReader().mergeConfigurations(apimlServcieConfig1, apimlServcieConfig2); @@ -104,8 +105,8 @@ void testMapMerge_PART_serviceid_keystore_truststore() throws ServiceDefinitionE @Test void testMapMerge_PART_serviceid_ciphers() throws ServiceDefinitionException { - ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile( "/service-configuration.yml", null); - ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile( "/additional-service-configuration_serviceid-ssl-ciphers-only.yml", null); + ApiMediationServiceConfig apimlServcieConfig1 = getApiMediationServiceConfigFromFile("/service-configuration.yml", null); + ApiMediationServiceConfig apimlServcieConfig2 = getApiMediationServiceConfigFromFile("/additional-service-configuration_serviceid-ssl-ciphers-only.yml", null); ApiMediationServiceConfig apiMediationServiceConfig = new ApiMediationServiceConfigReader().mergeConfigurations(apimlServcieConfig1, apimlServcieConfig2); assertNotNull(apiMediationServiceConfig); @@ -154,7 +155,7 @@ void testSetApiMlContext_Ok() { ServletContext context = getMockServletContext(); ApiMediationServiceConfigReader reader = new ApiMediationServiceConfigReader(); - Map contextMap = reader.setApiMlServiceContext(context); + Map contextMap = reader.setApiMlServiceContext(context); checkContextMap(contextMap); } @@ -163,7 +164,7 @@ void testSetApiMlContextTwice_Ok() { ServletContext context = getMockServletContext(); ApiMediationServiceConfigReader reader = new ApiMediationServiceConfigReader(); - Map contextMap = reader.setApiMlServiceContext(context); + Map contextMap = reader.setApiMlServiceContext(context); checkContextMap(contextMap); } @@ -224,7 +225,7 @@ void testLoadConfiguration_IpAddressIsNull_OK() throws ServiceDefinitionExceptio } @Test - void testLoadConfiguration_IpAddressIsNull_bad_baseUrl() throws ServiceDefinitionException { + void testLoadConfiguration_IpAddressIsNull_bad_baseUrl() { String internalFileName = "/additional-service-configuration_ip-address-null_bad-baseUrl.yml"; String additionalFileName = "/additional-service-configuration_ip-address-null_bad-baseUrl.yml"; @@ -237,7 +238,7 @@ void testLoadConfiguration_IpAddressIsNull_bad_baseUrl() throws ServiceDefinitio } @Test - void testLoadConfiguration_IpAddressIsNull_UnknownHost() throws ServiceDefinitionException { + void testLoadConfiguration_IpAddressIsNull_UnknownHost() { String internalFileName = "/additional-service-configuration_ip-address-null_UnknownHost.yml"; ApiMediationServiceConfigReader apiMediationServiceConfigReader = new ApiMediationServiceConfigReader(); diff --git a/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_UnknownHost.yml b/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_UnknownHost.yml index 71eec5ba4d..9d0e9594b4 100644 --- a/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_UnknownHost.yml +++ b/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_UnknownHost.yml @@ -2,6 +2,7 @@ serviceId: service title: HelloWorld Spring REST API description: POC for exposing a Spring REST API baseUrl: http://blah.blah.blah.com:10021/hellospring +preferIpAddress: true homePageRelativeUrl: / statusPageRelativeUrl: /application/info diff --git a/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_bad-baseUrl.yml b/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_bad-baseUrl.yml index 5eff7f3816..d31cf53d59 100644 --- a/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_bad-baseUrl.yml +++ b/onboarding-enabler-java/src/test/resources/additional-service-configuration_ip-address-null_bad-baseUrl.yml @@ -2,6 +2,7 @@ serviceId: service title: HelloWorld Spring REST API description: POC for exposing a Spring REST API baseUrl: htt #p://localhost:10021/hellospring +preferIpAddress: true homePageRelativeUrl: / statusPageRelativeUrl: /application/info diff --git a/onboarding-enabler-java/src/test/resources/bad-format-of-service-configuration.yml b/onboarding-enabler-java/src/test/resources/service-configuration-without-ip-address.yml similarity index 100% rename from onboarding-enabler-java/src/test/resources/bad-format-of-service-configuration.yml rename to onboarding-enabler-java/src/test/resources/service-configuration-without-ip-address.yml diff --git a/onboarding-enabler-micronaut-sample-app/src/main/resources/logback.xml b/onboarding-enabler-micronaut-sample-app/src/main/resources/logback.xml index 3c61c50aee..9890c6e977 100644 --- a/onboarding-enabler-micronaut-sample-app/src/main/resources/logback.xml +++ b/onboarding-enabler-micronaut-sample-app/src/main/resources/logback.xml @@ -4,7 +4,7 @@ 0 - + %cyan(%d{yyyy-MM-dd HH:mm:ss.SSS,UTC}) %gray(<${logbackService:-${logbackServiceName}}:%thread:${PID:- }>){magenta} %X{userid:-} %highlight(%-5level) %magenta(\(%logger{15}\)){cyan} %msg%n diff --git a/onboarding-enabler-micronaut/src/main/java/org/zowe/apiml/config/SslTypeConverter.java b/onboarding-enabler-micronaut/src/main/java/org/zowe/apiml/config/SslTypeConverter.java index 3503c8213c..7a05952ce3 100644 --- a/onboarding-enabler-micronaut/src/main/java/org/zowe/apiml/config/SslTypeConverter.java +++ b/onboarding-enabler-micronaut/src/main/java/org/zowe/apiml/config/SslTypeConverter.java @@ -13,7 +13,6 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.micronaut.core.convert.ConversionContext; import io.micronaut.core.convert.TypeConverter; -import jakarta.inject.Inject; import jakarta.inject.Singleton; import org.zowe.apiml.eurekaservice.client.config.Ssl; @@ -27,8 +26,11 @@ @Singleton public class SslTypeConverter implements TypeConverter, Ssl> { - @Inject - private ObjectMapper mapper; + private final ObjectMapper mapper; + + SslTypeConverter(ObjectMapper mapper) { + this.mapper = mapper; + } @Override public Optional convert(LinkedHashMap object, Class targetType, ConversionContext context) { diff --git a/onboarding-enabler-nodejs-sample-app/package-lock.json b/onboarding-enabler-nodejs-sample-app/package-lock.json index 1ba4b040b2..56dc7f9981 100644 --- a/onboarding-enabler-nodejs-sample-app/package-lock.json +++ b/onboarding-enabler-nodejs-sample-app/package-lock.json @@ -10,15 +10,16 @@ "license": "EPL-2.0", "dependencies": { "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs", - "express": "4.19.2" + "express": "4.21.1" }, "engines": { - "node": "=18.20.4", - "npm": "=9.9.3" + "node": "=20.18.0", + "npm": "=10.9.0" } }, "../onboarding-enabler-nodejs": { - "version": "3.0.31", + "name": "@zowe/apiml-onboarding-enabler-nodejs", + "version": "3.0.38", "license": "EPL-2.0", "dependencies": { "eureka-js-client": "4.5.0" @@ -27,8 +28,8 @@ "js-yaml": "4.1.0" }, "engines": { - "node": "=18.20.4", - "npm": "=9.9.3" + "node": "=20.18.0", + "npm": "=10.9.0" } }, "node_modules/@zowe/apiml-onboarding-enabler-nodejs": { @@ -53,9 +54,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -65,7 +66,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -96,6 +97,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/content-disposition": { @@ -118,9 +122,9 @@ } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "engines": { "node": ">= 0.6" } @@ -149,6 +153,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/depd": { @@ -174,9 +181,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -214,36 +221,36 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -255,12 +262,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -290,7 +297,10 @@ "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-intrinsic": { "version": "1.2.4", @@ -305,6 +315,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gopd": { @@ -313,6 +326,9 @@ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-property-descriptors": { @@ -321,6 +337,9 @@ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { @@ -329,6 +348,9 @@ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { @@ -337,6 +359,9 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hasown": { @@ -398,9 +423,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=" + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", @@ -454,9 +482,15 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.13.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/on-finished": { "version": "2.4.1", @@ -478,9 +512,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" + "version": "0.1.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -495,14 +529,17 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/range-parser": { @@ -552,9 +589,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -574,20 +611,28 @@ "node": ">= 0.8.0" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -626,6 +671,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/statuses": { diff --git a/onboarding-enabler-nodejs-sample-app/package.json b/onboarding-enabler-nodejs-sample-app/package.json index 79ed403427..dc29b6d7a1 100755 --- a/onboarding-enabler-nodejs-sample-app/package.json +++ b/onboarding-enabler-nodejs-sample-app/package.json @@ -15,13 +15,13 @@ "license": "EPL-2.0", "dependencies": { "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs", - "express": "4.19.2" + "express": "4.21.1" }, "overrides": { - "tough-cookie": "4.1.4" + "tough-cookie": "5.0.0" }, "engines": { - "npm": "=9.9.3", - "node": "=18.20.4" + "npm": "=10.9.0", + "node": "=20.18.0" } } diff --git a/onboarding-enabler-nodejs/package-lock.json b/onboarding-enabler-nodejs/package-lock.json index 37d2bf4a6e..a23a9e8af0 100644 --- a/onboarding-enabler-nodejs/package-lock.json +++ b/onboarding-enabler-nodejs/package-lock.json @@ -1,12 +1,12 @@ { "name": "@zowe/apiml-onboarding-enabler-nodejs", - "version": "3.0.32", + "version": "3.0.38", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@zowe/apiml-onboarding-enabler-nodejs", - "version": "3.0.32", + "version": "3.0.38", "license": "EPL-2.0", "dependencies": { "eureka-js-client": "4.5.0" @@ -15,8 +15,8 @@ "js-yaml": "4.1.0" }, "engines": { - "node": "=16.20.2", - "npm": "=8.19.4" + "node": "=20.18.0", + "npm": "=10.9.0" } }, "node_modules/ajv": { @@ -358,11 +358,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==" }, - "node_modules/psl": { - "version": "1.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/psl/-/psl-1.9.0.tgz", - "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-2.3.1.tgz", @@ -379,11 +374,6 @@ "node": ">=0.6" } }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" - }, "node_modules/request": { "version": "2.88.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/request/-/request-2.88.2.tgz", @@ -415,11 +405,6 @@ "node": ">= 6" } }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -459,18 +444,31 @@ "node": ">=0.10.0" } }, + "node_modules/tldts": { + "version": "6.1.50", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tldts/-/tldts-6.1.50.tgz", + "integrity": "sha512-q9GOap6q3KCsLMdOjXhWU5jVZ8/1dIib898JBRLsN+tBhENpBDcAVQbE0epADOjw11FhQQy9AcbqKGBQPUfTQA==", + "dependencies": { + "tldts-core": "^6.1.50" + }, + "bin": { + "tldts": "bin/cli.js" + } + }, + "node_modules/tldts-core": { + "version": "6.1.50", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tldts-core/-/tldts-core-6.1.50.tgz", + "integrity": "sha512-na2EcZqmdA2iV9zHV7OHQDxxdciEpxrjbkp+aHmZgnZKHzoElLajP59np5/4+sare9fQBfixgvXKx8ev1d7ytw==" + }, "node_modules/tough-cookie": { - "version": "4.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-4.1.4.tgz", - "integrity": "sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==", + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-5.0.0.tgz", + "integrity": "sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==", "dependencies": { - "psl": "^1.1.33", - "punycode": "^2.1.1", - "universalify": "^0.2.0", - "url-parse": "^1.5.3" + "tldts": "^6.1.32" }, "engines": { - "node": ">=6" + "node": ">=16" } }, "node_modules/tunnel-agent": { @@ -489,14 +487,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" }, - "node_modules/universalify": { - "version": "0.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/universalify/-/universalify-0.2.0.tgz", - "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "engines": { - "node": ">= 4.0.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uri-js/-/uri-js-4.4.1.tgz", @@ -505,15 +495,6 @@ "punycode": "^2.1.0" } }, - "node_modules/url-parse": { - "version": "1.5.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/url-parse/-/url-parse-1.5.10.tgz", - "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, "node_modules/uuid": { "version": "3.4.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-3.4.0.tgz", diff --git a/onboarding-enabler-nodejs/package.json b/onboarding-enabler-nodejs/package.json index ca9b83e857..489533c576 100644 --- a/onboarding-enabler-nodejs/package.json +++ b/onboarding-enabler-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@zowe/apiml-onboarding-enabler-nodejs", - "version": "3.0.32", + "version": "3.0.38", "description": "NodeJS enabler for Zowe API Mediation Layer", "main": "src/index.js", "scripts": { @@ -21,10 +21,10 @@ "js-yaml": "4.1.0" }, "overrides": { - "tough-cookie": "4.1.4" + "tough-cookie": "5.0.0" }, "engines": { - "npm": "=9.9.3", - "node": "=18.20.4" + "npm": "=10.9.0", + "node": "=20.18.0" } } diff --git a/package-lock.json b/package-lock.json index 5be989f0ce..506d689082 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,12 +9,12 @@ "version": "3.0.0", "license": "EPL-2.0", "devDependencies": { - "concurrently": "6.5.1" + "concurrently": "9.0.1" } }, "node_modules/ansi-regex": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { @@ -23,8 +23,8 @@ }, "node_modules/ansi-styles": { "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha1-7dgDYornHATIWuegkG7a00tkiTc=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" @@ -37,9 +37,9 @@ } }, "node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=", + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -54,8 +54,8 @@ }, "node_modules/chalk/node_modules/supports-color": { "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha1-G33NyzK4E4gBs+R4umpRyqiWSNo=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" @@ -65,20 +65,23 @@ } }, "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=", + "version": "8.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", + "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" } }, "node_modules/color-convert": { "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { "color-name": "~1.1.4" @@ -89,50 +92,45 @@ }, "node_modules/color-name": { "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, "node_modules/concurrently": { - "version": "6.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concurrently/-/concurrently-6.5.1.tgz", - "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==", + "version": "9.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concurrently/-/concurrently-9.0.1.tgz", + "integrity": "sha512-wYKvCd/f54sTXJMSfV6Ln/B8UrfLBKOYa+lzc6CHay3Qek+LorVSBdMVfyewFhRbH0Rbabsk4D+3PL/VjQ5gzg==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^4.1.0", - "date-fns": "^2.16.1", + "chalk": "^4.1.2", "lodash": "^4.17.21", - "rxjs": "^6.6.3", - "spawn-command": "^0.0.2-1", - "supports-color": "^8.1.0", + "rxjs": "^7.8.1", + "shell-quote": "^1.8.1", + "supports-color": "^8.1.1", "tree-kill": "^1.2.2", - "yargs": "^16.2.0" + "yargs": "^17.7.2" }, "bin": { - "concurrently": "bin/concurrently.js" + "conc": "dist/bin/concurrently.js", + "concurrently": "dist/bin/concurrently.js" }, "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/date-fns": { - "version": "2.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/date-fns/-/date-fns-2.19.0.tgz", - "integrity": "sha1-ZRkzSGNaKNXZFsQ+x85vvRRQWeE=", - "dev": true, - "engines": { - "node": ">=0.11" + "node": ">=18" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/date-fns" + "url": "https://github.com/open-cli-tools/concurrently?sponsor=1" } }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "version": "3.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, "engines": { "node": ">=6" @@ -140,8 +138,8 @@ }, "node_modules/get-caller-file": { "version": "2.0.5", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" @@ -158,8 +156,8 @@ }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" @@ -173,34 +171,34 @@ }, "node_modules/require-directory": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/rxjs": { - "version": "6.6.7", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha1-kKwBisq/SRv2UEQjXVhjxNq4BMk=", + "version": "7.8.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "dev": true, "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" + "tslib": "^2.1.0" } }, - "node_modules/spawn-command": { - "version": "0.0.2-1", - "resolved": "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz", - "integrity": "sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=", - "dev": true + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/string-width": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { @@ -212,15 +210,9 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", - "dev": true - }, "node_modules/strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { @@ -255,15 +247,15 @@ } }, "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=", + "version": "2.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tslib/-/tslib-2.7.0.tgz", + "integrity": "sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==", "dev": true }, "node_modules/wrap-ansi": { "version": "7.0.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha1-Z+FFz/UQpqaYS98RUpEdadLrnkM=", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", @@ -278,39 +270,39 @@ } }, "node_modules/y18n": { - "version": "5.0.5", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/y18n/-/y18n-5.0.5.tgz", - "integrity": "sha1-h2nsCNA7HqLfJQCs71YXQ7u5qxg=", + "version": "5.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha1-HIK/D2tqZur85+8w43b0mhJHf2Y=", + "version": "17.7.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^7.0.2", + "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "string-width": "^4.2.0", + "string-width": "^4.2.3", "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=10" + "node": ">=12" } }, "node_modules/yargs-parser": { - "version": "20.2.7", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/yargs-parser/-/yargs-parser-20.2.7.tgz", - "integrity": "sha1-Yd+FwRPt+1p6TjbriqYO9CPLyQo=", + "version": "21.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { - "node": ">=10" + "node": ">=12" } } } diff --git a/package.json b/package.json index 0ed1c6eb86..fddf246d9d 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,6 @@ }, "homepage": "https://github.com/zowe/api-layer#readme", "devDependencies": { - "concurrently": "6.5.1" + "concurrently": "9.0.1" } } diff --git a/platform/build.gradle b/platform/build.gradle index e098fbcdfb..5b278f4cc7 100644 --- a/platform/build.gradle +++ b/platform/build.gradle @@ -18,6 +18,8 @@ javaPlatform { dependencies { api(platform(libs.spring.boot.dependencies)) api(platform(libs.netty.bom)) + api(platform(libs.aws.bom)) + api(platform(libs.micronaut.bom)) constraints { // to define preferred version (the minimal version constraints) diff --git a/renovate-config.js b/renovate-config.js index 4e23c657fa..7d795b61ce 100644 --- a/renovate-config.js +++ b/renovate-config.js @@ -38,6 +38,7 @@ module.exports = { printConfig: true, labels: ['dependencies'], dependencyDashboardLabels: ['dependencies'], + ignoreDeps: ['history','jsdom','react-router-dom','@mui/icons-material','@mui/material','@material-ui/core','@material-ui/icons'], commitMessagePrefix: 'chore: ', prHourlyLimit: 0, // removes rate limit for PR creation per hour npmrc: 'legacy-peer-deps=true\nregistry=https://zowe.jfrog.io/artifactory/api/npm/npm-org/', //for updating lock-files diff --git a/schemas/caching-schema.json b/schemas/caching-schema.json index c03b9a8e47..9445a29a49 100644 --- a/schemas/caching-schema.json +++ b/schemas/caching-schema.json @@ -66,7 +66,7 @@ "port": { "type": "integer", "description": "TCP port number", - "default": 7600 + "default": 7098 }, "host": { "type": "string", @@ -79,7 +79,7 @@ "port": { "type": "integer", "description": "TCP port number", - "default": 7601 + "default": 7118 } } } diff --git a/schemas/gateway-schema.json b/schemas/gateway-schema.json index f5774eb6f0..2dcf5b9492 100644 --- a/schemas/gateway-schema.json +++ b/schemas/gateway-schema.json @@ -364,6 +364,57 @@ } } ] + }, + "oidc": { + "type": "object", + "description": "OIDC configuration.", + "properties": { + "enabled": { + "type": "boolean", + "description": "Enable authentication with OIDC token.", + "default": false + }, + "registry": { + "type": "string", + "description": "Registry name." + }, + "jwks": { + "type": "object", + "description": "JWKS configuration", + "properties": { + "uri": { + "type": "string", + "description": "JWK set URL for OIDC token validation." + }, + "refreshInternalHours": { + "type": "integer", + "description": "How often are JWKs renewed.", + "default": 1 + } + } + }, + "userInfo": { + "type": "object", + "description": "OIDC user info endpoint configuration", + "properties": { + "uri": { + "type": "string", + "description": "OIDC user info endpoint URL." + } + } + }, + "validationType": { + "type": "string", + "description": "How OIDC token is validated.", + "enum": ["JWK","endpoint"], + "default": "JWK" + } + } + }, + "allowtokenrefresh": { + "type": "boolean", + "description": "Allow JWT to refresh.", + "default": false } } }, diff --git a/schemas/zaas-schema.json b/schemas/zaas-schema.json index a7b114c5a3..842d9b0edb 100644 --- a/schemas/zaas-schema.json +++ b/schemas/zaas-schema.json @@ -18,7 +18,7 @@ "properties": { "port": { "$ref": "#/$defs/port", - "default": 7563 + "default": 7558 }, "debug": { "type": "boolean", diff --git a/scripts/docs/index.js b/scripts/docs/index.js index 09c27ce843..be5ca9073f 100644 --- a/scripts/docs/index.js +++ b/scripts/docs/index.js @@ -34,7 +34,7 @@ const branchHash = randomBytes(32).toString('hex'); repo: 'docs-site', title: 'Automatic update for the Error messages in API-Layer PR', head: branch, - base: 'v3-doc-branch', + base: 'master', body: 'Updated API ML error messages' }); diff --git a/scripts/docs/package.json b/scripts/docs/package.json index 0a6d2a37c5..10f0975b73 100644 --- a/scripts/docs/package.json +++ b/scripts/docs/package.json @@ -10,6 +10,6 @@ "author": "", "license": "EPL-2.0", "dependencies": { - "octokit": "3.2.1" + "octokit": "4.0.2" } } diff --git a/scripts/release_components/package.json b/scripts/release_components/package.json index eb4626f076..3ea5940aab 100644 --- a/scripts/release_components/package.json +++ b/scripts/release_components/package.json @@ -10,6 +10,6 @@ "author": "", "license": "EPL-2.0", "dependencies": { - "octokit": "3.2.1" + "octokit": "4.0.2" } } diff --git a/scripts/release_docs/package.json b/scripts/release_docs/package.json index 9185271bf2..c792afdb16 100644 --- a/scripts/release_docs/package.json +++ b/scripts/release_docs/package.json @@ -10,6 +10,6 @@ "author": "", "license": "EPL-2.0", "dependencies": { - "octokit": "3.2.1" + "octokit": "4.0.2" } } diff --git a/security-service-client-spring/build.gradle b/security-service-client-spring/build.gradle index 4fc68c4fc0..dba84ed78a 100644 --- a/security-service-client-spring/build.gradle +++ b/security-service-client-spring/build.gradle @@ -7,6 +7,7 @@ dependencies { implementation libs.apache.commons.lang3 testImplementation libs.spring.boot.starter.test + testImplementation(testFixtures(project(":apiml-common"))) compileOnly libs.lombok annotationProcessor libs.lombok diff --git a/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/handler/RestResponseHandler.java b/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/handler/RestResponseHandler.java index a99f07ee33..6c7155d418 100644 --- a/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/handler/RestResponseHandler.java +++ b/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/handler/RestResponseHandler.java @@ -11,7 +11,7 @@ package org.zowe.apiml.security.client.handler; import lombok.extern.slf4j.Slf4j; -import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; +import org.apache.hc.core5.http.HttpResponse; import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.authentication.BadCredentialsException; @@ -34,7 +34,7 @@ @Component public class RestResponseHandler { - public void handleErrorType(CloseableHttpResponse response, ErrorType errorType, Object... logParameters) { + public void handleErrorType(HttpResponse response, ErrorType errorType, Object... logParameters) { switch (response.getCode()) { case 401: if (errorType != null) { diff --git a/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/service/GatewaySecurityService.java b/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/service/GatewaySecurityService.java index e220eef620..94387046aa 100644 --- a/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/service/GatewaySecurityService.java +++ b/security-service-client-spring/src/main/java/org/zowe/apiml/security/client/service/GatewaySecurityService.java @@ -16,14 +16,12 @@ import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.ContentType; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.HttpStatus; -import org.apache.hc.core5.http.ParseException; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; import org.zowe.apiml.product.gateway.GatewayClient; import org.zowe.apiml.product.instance.ServiceAddress; @@ -72,21 +70,21 @@ public Optional login(String username, char[] password, char[] newPasswo HttpPost post = new HttpPost(uri); String json = objectMapper.writeValueAsString(loginRequest); post.setEntity(new StringEntity(json, ContentType.APPLICATION_JSON)); - CloseableHttpResponse response = closeableHttpClient.execute(post); - final int statusCode = response.getCode(); - if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_MULTIPLE_CHOICES) { - final HttpEntity responseEntity = response.getEntity(); - String responseBody = null; - if (responseEntity != null) { - responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); + return closeableHttpClient.execute(post, response -> { + if (!HttpStatus.valueOf(response.getCode()).is2xxSuccessful()) { + final HttpEntity responseEntity = response.getEntity(); + String responseBody = null; + if (responseEntity != null) { + responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); + } + ErrorType errorType = getErrorType(responseBody); + responseHandler.handleErrorType(response, errorType, + "Cannot access Gateway service. Uri '{}' returned: {}", uri); + return Optional.empty(); } - ErrorType errorType = getErrorType(responseBody); - responseHandler.handleErrorType(response, errorType, - "Cannot access Gateway service. Uri '{}' returned: {}", uri); - return Optional.empty(); - } - return extractToken(response.getFirstHeader(HttpHeaders.SET_COOKIE).getValue()); - } catch (IOException | ParseException e) { //TODO: Consider different error + return extractToken(response.getFirstHeader(HttpHeaders.SET_COOKIE).getValue()); + }); + } catch (IOException e) { responseHandler.handleException(e); } finally { // TODO: remove once fixed directly in Spring - org.springframework.security.core.CredentialsContainer#eraseCredentials @@ -107,25 +105,25 @@ public QueryResponse query(String token) { gatewayConfigProperties.getHostname(), authConfigurationProperties.getGatewayQueryEndpoint()); String cookie = String.format("%s=%s", authConfigurationProperties.getCookieProperties().getCookieName(), token); - try { HttpGet get = new HttpGet(uri); get.addHeader(HttpHeaders.COOKIE, cookie); - CloseableHttpResponse response = closeableHttpClient.execute(get); - final HttpEntity responseEntity = response.getEntity(); - String responseBody = null; - if (responseEntity != null) { - responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); - } - final int statusCode = response.getCode(); - if (statusCode < HttpStatus.SC_OK || statusCode >= HttpStatus.SC_MULTIPLE_CHOICES) { - ErrorType errorType = getErrorType(responseBody); - responseHandler.handleErrorType(response, errorType, - "Cannot access Gateway service. Uri '{}' returned: {}", uri); - return null; - } - return objectMapper.readValue(responseBody, QueryResponse.class); - } catch (IOException | ParseException e) { + + return closeableHttpClient.execute(get, response -> { + final HttpEntity responseEntity = response.getEntity(); + String responseBody = null; + if (responseEntity != null) { + responseBody = EntityUtils.toString(responseEntity, StandardCharsets.UTF_8); + } + if (!HttpStatus.valueOf(response.getCode()).is2xxSuccessful()) { + ErrorType errorType = getErrorType(responseBody); + responseHandler.handleErrorType(response, errorType, + "Cannot access Gateway service. Uri '{}' returned: {}", uri); + return null; + } + return objectMapper.readValue(responseBody, QueryResponse.class); + }); + } catch (IOException e) { responseHandler.handleException(e); } return null; diff --git a/security-service-client-spring/src/test/java/org/zowe/apiml/security/client/service/GatewaySecurityServiceTest.java b/security-service-client-spring/src/test/java/org/zowe/apiml/security/client/service/GatewaySecurityServiceTest.java index fdc8181136..2d3f69e269 100644 --- a/security-service-client-spring/src/test/java/org/zowe/apiml/security/client/service/GatewaySecurityServiceTest.java +++ b/security-service-client-spring/src/test/java/org/zowe/apiml/security/client/service/GatewaySecurityServiceTest.java @@ -14,7 +14,8 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.Header; -import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.core5.http.HttpHeaders; +import org.apache.hc.core5.http.HttpStatus; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; @@ -22,8 +23,6 @@ import org.mockito.Mock; import org.mockito.Spy; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpStatus; import org.springframework.security.authentication.BadCredentialsException; import org.zowe.apiml.product.gateway.GatewayClient; import org.zowe.apiml.product.instance.ServiceAddress; @@ -32,8 +31,8 @@ import org.zowe.apiml.security.common.error.ErrorType; import org.zowe.apiml.security.common.token.QueryResponse; import org.zowe.apiml.security.common.token.TokenNotValidException; +import org.zowe.apiml.util.HttpClientMockHelper; -import java.io.ByteArrayInputStream; import java.io.IOException; import java.util.Date; import java.util.Optional; @@ -41,7 +40,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -60,11 +58,16 @@ class GatewaySecurityServiceTest { @Mock private CloseableHttpClient closeableHttpClient; + @Mock + private Header header; + @Mock + CloseableHttpResponse response; + private ServiceAddress gatewayConfigProperties; private AuthConfigurationProperties authConfigurationProperties; private GatewaySecurityService securityService; private String cookie; - private ObjectMapper objectMapper = new ObjectMapper(); + private final ObjectMapper objectMapper = new ObjectMapper(); private static final String MESSAGE_KEY_STRING = "messageKey\":\""; @BeforeEach @@ -85,25 +88,20 @@ void setup() { cookie = String.format("%s=%s", authConfigurationProperties.getCookieProperties().getCookieName(), TOKEN); + + HttpClientMockHelper.mockExecuteWithResponse(closeableHttpClient, response); } @Nested class GivenNoContent { - @Mock - private Header header; - @Mock - CloseableHttpResponse response; - @Nested class WhenDoLogin { @BeforeEach - void setUp() throws IOException { - when(response.getCode()).thenReturn(HttpStatus.NO_CONTENT.value()); - when(closeableHttpClient.execute(any())) - .thenReturn(response); + void setUp() { + when(response.getCode()).thenReturn(HttpStatus.SC_NO_CONTENT); when(response.getFirstHeader(HttpHeaders.SET_COOKIE)).thenReturn(header); when(header.getValue()).thenReturn(cookie); } @@ -128,16 +126,6 @@ void givenValidUpdatePasswordRequest_thenGetToken() { @Nested class WhenDoQuery { - @Mock - private HttpEntity entity; - - @BeforeEach - void setUp() throws IOException { - when(response.getCode()).thenReturn(HttpStatus.NO_CONTENT.value()); - when(closeableHttpClient.execute(any())) - .thenReturn(response); - } - @Test void givenValidAuth_thenSuccessfulResponse() throws IOException { Date issued = new Date(); @@ -145,18 +133,15 @@ void givenValidAuth_thenSuccessfulResponse() throws IOException { QueryResponse expectedQueryResponse = new QueryResponse("domain", "user", issued, exp, null, null, null); String responseBody = objectMapper.writeValueAsString(expectedQueryResponse); - when(entity.getContent()).thenReturn(new ByteArrayInputStream(responseBody.getBytes())); - when(response.getEntity()).thenReturn(entity); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_NO_CONTENT, responseBody); QueryResponse query = securityService.query("token"); assertEquals(expectedQueryResponse, query); } @Test - void givenGatewayUnauthorized_thenThrowException() throws IOException { + void givenGatewayUnauthorized_thenThrowException() { String responseBody = MESSAGE_KEY_STRING + "org.zowe.apiml.security.query.invalidToken\""; - when(response.getCode()).thenReturn(HttpStatus.UNAUTHORIZED.value()); - when(entity.getContent()).thenReturn(new ByteArrayInputStream(responseBody.getBytes())); - when(response.getEntity()).thenReturn(entity); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_UNAUTHORIZED, responseBody); Exception exception = assertThrows(TokenNotValidException.class, () -> securityService.query("token")); assertEquals("Token is not valid.", exception.getMessage()); } @@ -169,52 +154,36 @@ class WhenHandleBadResponse { private static final String LOG_PARAMETER_STRING = "Cannot access Gateway service. Uri '{}' returned: {}"; - @Mock - private CloseableHttpResponse response; - @Mock - private Header header; - @Mock - private HttpEntity entity; - private String uri; @BeforeEach void setup() { uri = String.format("%s://%s%s", gatewayConfigProperties.getScheme(), gatewayConfigProperties.getHostname(), authConfigurationProperties.getGatewayLoginEndpoint()); - when(response.getCode()).thenReturn(HttpStatus.UNAUTHORIZED.value()); - when(response.getEntity()).thenReturn(entity); } @Nested class ThenHandleAuthGeneralError { @Test - void givenInvalidMessageKey() throws IOException { + void givenInvalidMessageKey() { String errorMessage = MESSAGE_KEY_STRING + "badKey\""; - when(entity.getContent()).thenReturn(new ByteArrayInputStream(errorMessage.getBytes())); - when(closeableHttpClient.execute(any())) - .thenReturn(response); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_UNAUTHORIZED, errorMessage); assertThrows(BadCredentialsException.class, () -> securityService.login(USERNAME, PASSWORD, null)); verify(responseHandler).handleErrorType(response, ErrorType.AUTH_GENERAL, LOG_PARAMETER_STRING, uri); } @Test - void givenGatewayUnauthorized_thenThrowException() throws IOException { - - when(entity.getContent()).thenReturn(new ByteArrayInputStream("message".getBytes())); - when(closeableHttpClient.execute(any())) - .thenReturn(response); + void givenGatewayUnauthorized_thenThrowException() { + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_UNAUTHORIZED, "message"); Exception exception = assertThrows(BadCredentialsException.class, () -> securityService.login(USERNAME, PASSWORD, null)); assertEquals("Invalid Credentials", exception.getMessage()); } @Test - void givenValidMessageKey_thenHandleErrorTypeForThatMessageKey() throws IOException { + void givenValidMessageKey_thenHandleErrorTypeForThatMessageKey() { String errorMessage = MESSAGE_KEY_STRING + "org.zowe.apiml.security.login.invalidCredentials\""; - when(entity.getContent()).thenReturn(new ByteArrayInputStream(errorMessage.getBytes())); - when(closeableHttpClient.execute(any())) - .thenReturn(response); + HttpClientMockHelper.mockResponse(response, HttpStatus.SC_UNAUTHORIZED, errorMessage); assertThrows(BadCredentialsException.class, () -> securityService.login(USERNAME, PASSWORD, null)); verify(responseHandler).handleErrorType(response, ErrorType.BAD_CREDENTIALS, LOG_PARAMETER_STRING, uri); } diff --git a/settings.gradle b/settings.gradle index 6f95c3f41c..b9079d3afb 100644 --- a/settings.gradle +++ b/settings.gradle @@ -55,4 +55,5 @@ include 'apiml-sample-extension' include 'apiml-sample-extension-package' include 'apiml-extension-loader' include 'zowe-cli-id-federation-plugin' +include 'client-cert-auth-sample' diff --git a/zaas-client/build.gradle b/zaas-client/build.gradle index 5c92e80e0f..3ef5e061b6 100644 --- a/zaas-client/build.gradle +++ b/zaas-client/build.gradle @@ -1,5 +1,6 @@ dependencies { - implementation libs.spring.boot.starter + compileOnly libs.spring.beans + compileOnly libs.spring.context implementation libs.jackson.databind implementation libs.http.client5 @@ -9,6 +10,7 @@ dependencies { testImplementation libs.spring.boot.starter.test testImplementation libs.jakarta.servlet.api testImplementation libs.jjwt + testImplementation(testFixtures(project(":apiml-common"))) testRuntimeOnly libs.jjwt.impl testRuntimeOnly libs.jjwt.jackson diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/exception/ZaasClientErrorCodes.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/exception/ZaasClientErrorCodes.java index 3797e817f3..9c0d537445 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/exception/ZaasClientErrorCodes.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/exception/ZaasClientErrorCodes.java @@ -20,13 +20,13 @@ public enum ZaasClientErrorCodes { EMPTY_NULL_USERNAME_PASSWORD("ZWEAS121E", "Empty or null username or password values provided", 400), EMPTY_NULL_AUTHORIZATION_HEADER("ZWEAS122E", "Empty or null authorization header provided", 400), INVALID_JWT_TOKEN("ZWEAS130E", "Invalid token provided", 400), - GENERIC_EXCEPTION("ZWEAS170E", "An exception occurred while trying to get the token", 400), + GENERIC_EXCEPTION("ZWEAS170E", "An exception occurred while trying to get the token", 500), BAD_REQUEST("ZWEAS400E", "Unable to generate PassTicket. Verify that the secured signon (PassTicket) function " + "and application ID is configured properly by referring to Using PassTickets in the guide for your security provider", 400), TOKEN_NOT_PROVIDED("ZWEAS401E", "Token is not provided", 401), - SERVICE_UNAVAILABLE("ZWEAS404E", "Gateway service is unavailable", 404), + SERVICE_UNAVAILABLE("ZWEAS404E", "Gateway service is unavailable", 503), EXPIRED_PASSWORD("ZWEAT412E", "The specified password is expired", 401), - APPLICATION_NAME_NOT_FOUND("ZWEAS417E", "The application name wasn't found", 404); + APPLICATION_NAME_NOT_FOUND("ZWEAS417E", "The application name wasn't found", 400); private final String id; private final String message; diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/ZaasClient.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/ZaasClient.java index e221775cb2..3aaa3fb669 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/ZaasClient.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/ZaasClient.java @@ -10,11 +10,10 @@ package org.zowe.apiml.zaasclient.service; +import jakarta.servlet.http.HttpServletRequest; import org.zowe.apiml.zaasclient.exception.ZaasClientException; import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; -import jakarta.servlet.http.HttpServletRequest; - /** * Get JWT tokens, PaasTickets and details about the Tokens. * Facade covering all operations related to the security API exposed via API Mediation Layer @@ -34,7 +33,7 @@ public interface ZaasClient { * * @deprecated recommended to switch to {@link #login(String, char[], char[])} to handle cleaning up of passwords in memory */ - @Deprecated + @Deprecated(forRemoval = false) String login(String userId, String password, String newPassword) throws ZaasClientException; /** @@ -48,7 +47,7 @@ public interface ZaasClient { * * @deprecated recommended to switch to {@link #login(String, char[])} to handle cleaning up of passwords in memory */ - @Deprecated + @Deprecated(forRemoval = false) String login(String userId, String password) throws ZaasClientException; /** diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/PassTicketServiceImpl.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/PassTicketServiceImpl.java index cf5b022bf3..e56e426d49 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/PassTicketServiceImpl.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/PassTicketServiceImpl.java @@ -14,42 +14,37 @@ import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.HttpHeaders; -import org.apache.hc.core5.http.ParseException; -import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.zowe.apiml.zaasclient.config.ConfigProperties; import org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes; import org.zowe.apiml.zaasclient.exception.ZaasClientException; -import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; import org.zowe.apiml.zaasclient.passticket.ZaasClientTicketRequest; import org.zowe.apiml.zaasclient.passticket.ZaasPassTicketResponse; +import org.zowe.apiml.zaasclient.util.SimpleHttpResponse; import java.io.IOException; class PassTicketServiceImpl implements PassTicketService { - private final CloseableClientProvider httpClientProvider; + private final CloseableHttpClient httpClient; private final String ticketUrl; ConfigProperties passConfigProperties; - public PassTicketServiceImpl(CloseableClientProvider client, String baseUrl, ConfigProperties configProperties) { - httpClientProvider = client; + public PassTicketServiceImpl(CloseableHttpClient client, String baseUrl, ConfigProperties configProperties) { + httpClient = client; ticketUrl = baseUrl + "/ticket"; passConfigProperties = configProperties; } @Override - public String passTicket(String jwtToken, String applicationId) throws ZaasClientException, ZaasConfigurationException { + public String passTicket(String jwtToken, String applicationId) throws ZaasClientException { try { - CloseableHttpClient closeableHttpsClient = httpClientProvider.getHttpClient(); HttpPost httpPost = getHttpPost(jwtToken, applicationId); - - var response = closeableHttpsClient.execute(httpPost); - return extractPassTicket(response); - } catch (ZaasConfigurationException e) { + var passTicketResponse = httpClient.execute(httpPost, SimpleHttpResponse::fromResponseWithBytesBodyOnSuccess); + return extractPassTicket(passTicketResponse); + } catch (ZaasClientException e) { throw e; } catch (Exception e) { throw new ZaasClientException(ZaasClientErrorCodes.SERVICE_UNAVAILABLE, e); @@ -68,15 +63,15 @@ private HttpPost getHttpPost(String jwtToken, String applicationId) throws JsonP return httpPost; } - private String extractPassTicket(ClassicHttpResponse response) throws IOException, ZaasClientException, ParseException { + private String extractPassTicket(SimpleHttpResponse response) throws IOException, ZaasClientException { int statusCode = response.getCode(); if (statusCode == 200) { ObjectMapper mapper = new ObjectMapper(); ZaasPassTicketResponse zaasPassTicketResponse = mapper - .readValue(response.getEntity().getContent(), ZaasPassTicketResponse.class); + .readValue(response.getByteBody(), ZaasPassTicketResponse.class); return zaasPassTicketResponse.getTicket(); } else { - String obtainedMessage = EntityUtils.toString(response.getEntity()); + String obtainedMessage = response.getStringBody(); if (statusCode == 401) { throw new ZaasClientException(ZaasClientErrorCodes.INVALID_AUTHENTICATION, obtainedMessage); } else if (statusCode == 400) { @@ -88,4 +83,5 @@ private String extractPassTicket(ClassicHttpResponse response) throws IOExceptio } } } + } diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/TokenService.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/TokenService.java index 1e6dd28354..f675e3951c 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/TokenService.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/TokenService.java @@ -10,12 +10,11 @@ package org.zowe.apiml.zaasclient.service.internal; +import jakarta.servlet.http.HttpServletRequest; import org.zowe.apiml.zaasclient.exception.ZaasClientException; import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; import org.zowe.apiml.zaasclient.service.ZaasToken; -import jakarta.servlet.http.HttpServletRequest; - /** * Operations related to the tokens. Mainly JWT token. */ diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImpl.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImpl.java index 9a057a68f2..97f1737c9f 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImpl.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImpl.java @@ -10,6 +10,8 @@ package org.zowe.apiml.zaasclient.service.internal; +import jakarta.servlet.http.HttpServletRequest; +import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.zowe.apiml.zaasclient.config.ConfigProperties; import org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes; import org.zowe.apiml.zaasclient.exception.ZaasClientException; @@ -18,44 +20,34 @@ import org.zowe.apiml.zaasclient.service.ZaasClient; import org.zowe.apiml.zaasclient.service.ZaasToken; -import jakarta.servlet.http.HttpServletRequest; +import java.io.Closeable; +import java.io.IOException; import java.util.Arrays; import java.util.Objects; -public class ZaasClientImpl implements ZaasClient { +public class ZaasClientImpl implements ZaasClient, Closeable { private final TokenService tokens; private final PassTicketService passTickets; + private final CloseableHttpClient httpClientWithoutCert; + private final CloseableHttpClient httpClient; public ZaasClientImpl(ConfigProperties configProperties) throws ZaasConfigurationException { if (!configProperties.isHttpOnly() && (configProperties.getKeyStorePath() == null)) { throw new ZaasConfigurationException(ZaasConfigurationErrorCodes.KEY_STORE_NOT_PROVIDED); } - CloseableClientProvider httpClientProvider = getTokenProvider(configProperties); - CloseableClientProvider httpClientProviderWithoutCert = getTokenProviderWithoutCert(configProperties, httpClientProvider); - - String baseUrl = String.format("%s://%s:%s%s", getScheme(configProperties.isHttpOnly()), configProperties.getApimlHost(), configProperties.getApimlPort(), - configProperties.getApimlBaseUrl()); - tokens = new ZaasJwtService(httpClientProviderWithoutCert, baseUrl, configProperties); - passTickets = new PassTicketServiceImpl(httpClientProvider, baseUrl, configProperties); - } - - private CloseableClientProvider getTokenProvider(ConfigProperties configProperties) throws ZaasConfigurationException { if (configProperties.isHttpOnly()) { - return new ZaasHttpClientProvider(); + httpClient = new ZaasHttpClientProvider().getHttpClient(); + httpClientWithoutCert = new ZaasHttpClientProvider().getHttpClient(); } else { - return new ZaasHttpsClientProvider(configProperties); + httpClient = new ZaasHttpsClientProvider(configProperties).getHttpClient(); + httpClientWithoutCert = new ZaasHttpsClientProvider(configProperties.withoutKeyStore()).getHttpClient(); } - } - private CloseableClientProvider getTokenProviderWithoutCert ( - ConfigProperties configProperties, - CloseableClientProvider defaultCloseableClientProvider) throws ZaasConfigurationException - { - if (configProperties.isHttpOnly()) { - return defaultCloseableClientProvider; - } - return getTokenProvider(configProperties.withoutKeyStore()); + String baseUrl = String.format("%s://%s:%s%s", getScheme(configProperties.isHttpOnly()), configProperties.getApimlHost(), configProperties.getApimlPort(), + configProperties.getApimlBaseUrl()); + tokens = new ZaasJwtService(httpClientWithoutCert, baseUrl, configProperties); + passTickets = new PassTicketServiceImpl(httpClient, baseUrl, configProperties); } private Object getScheme(boolean httpOnly) { @@ -69,6 +61,8 @@ private Object getScheme(boolean httpOnly) { ZaasClientImpl(TokenService tokens, PassTicketService passTickets) { this.tokens = tokens; this.passTickets = passTickets; + this.httpClientWithoutCert = null; + this.httpClient = null; } @Override @@ -135,7 +129,6 @@ public ZaasToken query(HttpServletRequest request) throws ZaasClientException { } @Override - @SuppressWarnings("squid:S2147") public String passTicket(String jwtToken, String applicationId) throws ZaasClientException, ZaasConfigurationException { if (Objects.isNull(applicationId) || applicationId.isEmpty()) { throw new ZaasClientException(ZaasClientErrorCodes.APPLICATION_NAME_NOT_FOUND); @@ -150,4 +143,10 @@ public String passTicket(String jwtToken, String applicationId) throws ZaasClien public void logout(String jwtToken) throws ZaasConfigurationException, ZaasClientException { tokens.logout(jwtToken); } + + @Override + public void close() throws IOException { + httpClient.close(); + httpClientWithoutCert.close(); + } } diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProvider.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProvider.java index aaa05866cf..b959bebaa5 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProvider.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProvider.java @@ -13,8 +13,6 @@ import lombok.AllArgsConstructor; import org.apache.hc.client5.http.UserTokenHandler; import org.apache.hc.client5.http.config.RequestConfig; -import org.apache.hc.client5.http.cookie.BasicCookieStore; -import org.apache.hc.client5.http.cookie.CookieStore; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.HttpClientBuilder; import org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager; @@ -54,8 +52,6 @@ class ZaasHttpsClientProvider implements CloseableClientProvider { private final String keyStoreType; private final String keyStorePath; - private final CookieStore cookieStore = new BasicCookieStore(); - private CloseableHttpClient httpsClient; public ZaasHttpsClientProvider(ConfigProperties configProperties) throws ZaasConfigurationException { @@ -86,10 +82,6 @@ static String formatKeyringUrl(String input) { return input; } - public void clearCookieStore() { - this.cookieStore.clear(); - } - @Override public synchronized CloseableHttpClient getHttpClient() throws ZaasConfigurationException { if (httpsClient == null) { diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtService.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtService.java index 2b162d19db..1e9e03c7b4 100644 --- a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtService.java +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtService.java @@ -18,28 +18,31 @@ import jakarta.servlet.http.HttpServletRequest; import lombok.AllArgsConstructor; import lombok.Data; -import lombok.NoArgsConstructor; import lombok.NonNull; import lombok.extern.slf4j.Slf4j; import org.apache.hc.client5.http.classic.methods.HttpGet; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; +import org.apache.hc.core5.http.ClassicHttpRequest; import org.apache.hc.core5.http.ClassicHttpResponse; import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.ParseException; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.zowe.apiml.zaasclient.config.ConfigProperties; import org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes; import org.zowe.apiml.zaasclient.exception.ZaasClientException; -import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; import org.zowe.apiml.zaasclient.service.ZaasToken; +import org.zowe.apiml.zaasclient.util.SimpleHttpResponse; import java.io.IOException; +import java.net.HttpCookie; import java.util.Arrays; +import java.util.List; import java.util.Optional; import java.util.function.Predicate; -import java.util.stream.Stream; +import java.util.stream.Collectors; @Slf4j class ZaasJwtService implements TokenService { @@ -49,25 +52,25 @@ class ZaasJwtService implements TokenService { private final String loginEndpoint; private final String queryEndpoint; private final String logoutEndpoint; - private final CloseableClientProvider httpClientProvider; + private final CloseableHttpClient httpClient; private final ObjectMapper objectMapper = new ObjectMapper(); - ConfigProperties zassConfigProperties; - - public ZaasJwtService(CloseableClientProvider client, String baseUrl, ConfigProperties configProperties) { - this.httpClientProvider = client; + ConfigProperties zaasConfigProperties; + public ZaasJwtService(CloseableHttpClient client, String baseUrl, ConfigProperties configProperties) { + httpClient = client; loginEndpoint = baseUrl + "/login"; queryEndpoint = baseUrl + "/query"; logoutEndpoint = baseUrl + "/logout"; - zassConfigProperties = configProperties; + zaasConfigProperties = configProperties; } @Override public String login(String userId, char[] password, char[] newPassword) throws ZaasClientException { return (String) doRequest( () -> loginWithCredentials(userId, password, newPassword), + this::processJwtTokenResponse, this::extractToken); } @@ -75,31 +78,42 @@ public String login(String userId, char[] password, char[] newPassword) throws Z public String login(String userId, char[] password) throws ZaasClientException { return (String) doRequest( () -> loginWithCredentials(userId, password, null), + this::processJwtTokenResponse, this::extractToken); } - private ClientWithResponse loginWithCredentials(String userId, char[] password, char[] newPassword) throws ZaasConfigurationException, IOException { - var client = httpClientProvider.getHttpClient(); + private ClassicHttpRequest loginWithCredentials(String userId, char[] password, char[] newPassword) throws IOException { + var httpPost = new HttpPost(loginEndpoint); String json = objectMapper.writeValueAsString(new Credentials(userId, password, newPassword)); var entity = new StringEntity(json); httpPost.setEntity(entity); httpPost.setHeader(HttpHeaders.CONTENT_TYPE, "application/json"); - return new ClientWithResponse(client, client.execute(httpPost)); + return httpPost; + } + + private SimpleHttpResponse processJwtTokenResponse(ClassicHttpResponse response) throws ParseException, IOException { + var headers = Arrays.stream(response.getHeaders(HttpHeaders.SET_COOKIE)) + .collect(Collectors.groupingBy((__) -> HttpHeaders.SET_COOKIE)); + if (response.getEntity() != null) { + return new SimpleHttpResponse(response.getCode(), EntityUtils.toString(response.getEntity()), headers); + } else { + return new SimpleHttpResponse(response.getCode(), headers); + } } @Override public String login(String authorizationHeader) throws ZaasClientException { return (String) doRequest( () -> loginWithHeader(authorizationHeader), + this::processJwtTokenResponse, this::extractToken); } - private ClientWithResponse loginWithHeader(String authorizationHeader) throws ZaasConfigurationException, IOException { - var client = httpClientProvider.getHttpClient(); + private ClassicHttpRequest loginWithHeader(String authorizationHeader) { HttpPost httpPost = new HttpPost(loginEndpoint); httpPost.setHeader(HttpHeaders.AUTHORIZATION, authorizationHeader); - return new ClientWithResponse(client, client.execute(httpPost)); + return httpPost; } @Override @@ -108,7 +122,10 @@ public ZaasToken query(String jwtToken) throws ZaasClientException { throw new ZaasClientException(ZaasClientErrorCodes.TOKEN_NOT_PROVIDED, "No token provided"); } - return (ZaasToken) doRequest(() -> queryWithJwtToken(jwtToken), this::extractZaasToken); + return (ZaasToken) doRequest( + () -> queryWithJwtToken(jwtToken), + SimpleHttpResponse::fromResponseWithBytesBodyOnSuccess, + this::extractZaasToken); } @Override @@ -119,7 +136,7 @@ public ZaasToken query(@NonNull HttpServletRequest request) throws ZaasClientExc @Override public void logout(String jwtToken) throws ZaasClientException { - doRequest(() -> logoutJwtToken(jwtToken)); + doLogoutRequest(() -> logoutJwtToken(jwtToken)); } /** @@ -142,7 +159,7 @@ private Optional getJwtTokenFromCookie(HttpServletRequest request) { Cookie[] cookies = request.getCookies(); if (cookies == null) return Optional.empty(); return Arrays.stream(cookies) - .filter(cookie -> cookie.getName().equals(zassConfigProperties.getTokenPrefix())) + .filter(cookie -> cookie.getName().equals(zaasConfigProperties.getTokenPrefix())) .filter(cookie -> !cookie.getValue().isEmpty()) .findFirst() .map(Cookie::getValue); @@ -161,59 +178,20 @@ private Optional extractJwtTokenFromAuthorizationHeader(String header) { return Optional.empty(); } - private ClientWithResponse queryWithJwtToken(String jwtToken) throws ZaasConfigurationException, IOException { - var client = httpClientProvider.getHttpClient(); + private ClassicHttpRequest queryWithJwtToken(String jwtToken) { var httpGet = new HttpGet(queryEndpoint); - httpGet.addHeader(HttpHeaders.COOKIE, zassConfigProperties.getTokenPrefix() + "=" + jwtToken); - return new ClientWithResponse(client, client.execute(httpGet)); + httpGet.addHeader(HttpHeaders.COOKIE, zaasConfigProperties.getTokenPrefix() + "=" + jwtToken); + return httpGet; } - private ClientWithResponse logoutJwtToken(String jwtToken) throws ZaasConfigurationException, IOException, ZaasClientException { - var client = httpClientProvider.getHttpClient(); - clearZaasClientCookies(); + private ClassicHttpRequest logoutJwtToken(String jwtToken) { HttpPost httpPost = new HttpPost(logoutEndpoint); if (jwtToken.startsWith(BEARER_AUTHENTICATION_PREFIX)) { httpPost.addHeader(HttpHeaders.AUTHORIZATION, jwtToken); } else { - httpPost.addHeader(HttpHeaders.COOKIE, zassConfigProperties.getTokenPrefix() + "=" + jwtToken); - } - return getClientWithResponse(client, httpPost); - } - - private void clearZaasClientCookies() { - if (httpClientProvider instanceof ZaasHttpsClientProvider) { - ((ZaasHttpsClientProvider) httpClientProvider).clearCookieStore(); - } - } - - private ClientWithResponse getClientWithResponse(CloseableHttpClient client, HttpPost httpPost) throws IOException, ZaasClientException { - ClientWithResponse clientWithResponse = new ClientWithResponse(client, client.execute(httpPost)); - int httpResponseCode = clientWithResponse.getResponse().getCode(); - if (httpResponseCode == 204) { - return clientWithResponse; - } else { - String obtainedMessage; - try { - obtainedMessage = EntityUtils.toString(clientWithResponse.getResponse().getEntity()); - } catch (ParseException e) { - throw new ZaasClientException(ZaasClientErrorCodes.GENERIC_EXCEPTION, e.getMessage()); - } - if (httpResponseCode == 401) { - throw new ZaasClientException(ZaasClientErrorCodes.EXPIRED_JWT_EXCEPTION, obtainedMessage); - } else { - throw new ZaasClientException(ZaasClientErrorCodes.INVALID_JWT_TOKEN, obtainedMessage); - } - } - } - - private void finallyClose(ClassicHttpResponse response) { - try { - if (response != null) { - response.close(); - } - } catch (IOException e) { - log.warn("It wasn't possible to close the resources. " + e.getMessage()); + httpPost.addHeader(HttpHeaders.COOKIE, zaasConfigProperties.getTokenPrefix() + "=" + jwtToken); } + return httpPost; } private void handleErrorMessage(JsonNode message, Predicate condition) throws ZaasClientException { @@ -240,10 +218,10 @@ private void handleErrorMessage(String errorMessage, Predicate v.startsWith(zassConfigProperties.getTokenPrefix())).map(v -> v.substring(v.indexOf("=") + 1)).findFirst(); + var cookies = response.getHeaders().get(HttpHeaders.SET_COOKIE).stream().map(header -> HttpCookie.parse(header.getValue())).flatMap(List::stream).toList(); + var apimlAuthCookie = cookies.stream().filter(cookie -> cookie.getName().equals(zaasConfigProperties.getTokenPrefix())).map(HttpCookie::getValue).findFirst(); if (apimlAuthCookie.isPresent()) { token = apimlAuthCookie.get(); } return token; } - String obtainedMessage; - try { - obtainedMessage = EntityUtils.toString(response.getEntity()); - } catch (ParseException e) { - throw new ZaasClientException(ZaasClientErrorCodes.GENERIC_EXCEPTION, e.getMessage()); - } if (httpResponseCode == 401) { - handleErrorMessage(obtainedMessage, ZaasClientErrorCodes.EXPIRED_PASSWORD::equals); - throw new ZaasClientException(ZaasClientErrorCodes.INVALID_AUTHENTICATION, obtainedMessage); + handleErrorMessage(response.getStringBody(), ZaasClientErrorCodes.EXPIRED_PASSWORD::equals); + throw new ZaasClientException(ZaasClientErrorCodes.INVALID_AUTHENTICATION, response.getStringBody()); } if (httpResponseCode == 400) { - throw new ZaasClientException(ZaasClientErrorCodes.EMPTY_NULL_USERNAME_PASSWORD, obtainedMessage); + throw new ZaasClientException(ZaasClientErrorCodes.EMPTY_NULL_USERNAME_PASSWORD, response.getStringBody()); } - throw new ZaasClientException(ZaasClientErrorCodes.GENERIC_EXCEPTION, obtainedMessage); + throw new ZaasClientException(ZaasClientErrorCodes.GENERIC_EXCEPTION, response.getStringBody()); } - private void doRequest(Operation request) throws ZaasClientException { - ClientWithResponse clientWithResponse = new ClientWithResponse(); - try { - clientWithResponse = request.request(); - } catch (IOException | ZaasConfigurationException e) { - throw new ZaasClientException(ZaasClientErrorCodes.SERVICE_UNAVAILABLE, e); - } finally { - finallyClose(clientWithResponse.getResponse()); + private void doLogoutRequest(OperationGenerator requestGenerator) throws ZaasClientException { + var response = getSimpleResponse(requestGenerator, SimpleHttpResponse::fromResponseWithBytesBodyOnSuccess); + + if (response.getCode() == 401) { + throw new ZaasClientException(ZaasClientErrorCodes.EXPIRED_JWT_EXCEPTION, response.getStringBody()); + } else if (!response.isSuccess()) { + throw new ZaasClientException(ZaasClientErrorCodes.INVALID_JWT_TOKEN, response.getStringBody()); } } - private Object doRequest(Operation request, Token token) throws ZaasClientException { - ClientWithResponse clientWithResponse = new ClientWithResponse(); + private Object doRequest( + OperationGenerator requestGenerator, + HttpClientResponseHandler responseHandler, + TokenExtractor token) throws ZaasClientException { try { - - clientWithResponse = request.request(); - - return token.extract(clientWithResponse.getResponse()); + return token.extract(getSimpleResponse(requestGenerator, responseHandler)); } catch (ZaasClientException e) { throw e; } catch (IOException e) { throw new ZaasClientException(ZaasClientErrorCodes.SERVICE_UNAVAILABLE, e); } catch (Exception e) { throw new ZaasClientException(ZaasClientErrorCodes.GENERIC_EXCEPTION, e); - } finally { - finallyClose(clientWithResponse.getResponse()); + + } + } + + private SimpleHttpResponse getSimpleResponse(OperationGenerator operationGenerator, HttpClientResponseHandler responseHandler) + throws ZaasClientException { + + try { + return httpClient.execute(operationGenerator.request(), responseHandler); + } catch (IOException e) { + throw new ZaasClientException(ZaasClientErrorCodes.SERVICE_UNAVAILABLE, e); } } @@ -334,19 +307,11 @@ static class Credentials { char[] newPassword; } - @Data - @AllArgsConstructor - @NoArgsConstructor - static class ClientWithResponse { - CloseableHttpClient client; - ClassicHttpResponse response; - } - - interface Token { - Object extract(ClassicHttpResponse response) throws IOException, ZaasClientException; + interface TokenExtractor { + Object extract(SimpleHttpResponse response) throws IOException, ZaasClientException; } - interface Operation { - ClientWithResponse request() throws ZaasConfigurationException, IOException, ZaasClientException; + interface OperationGenerator { + ClassicHttpRequest request() throws IOException; } } diff --git a/zaas-client/src/main/java/org/zowe/apiml/zaasclient/util/SimpleHttpResponse.java b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/util/SimpleHttpResponse.java new file mode 100644 index 0000000000..0b1f4cf8db --- /dev/null +++ b/zaas-client/src/main/java/org/zowe/apiml/zaasclient/util/SimpleHttpResponse.java @@ -0,0 +1,94 @@ +/* + * 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. + */ + +package org.zowe.apiml.zaasclient.util; + +import lombok.Data; +import lombok.RequiredArgsConstructor; +import org.apache.hc.core5.http.ClassicHttpResponse; +import org.apache.hc.core5.http.Header; +import org.apache.hc.core5.http.HttpStatus; +import org.apache.hc.core5.http.ParseException; +import org.apache.hc.core5.http.io.entity.EntityUtils; + +import java.io.IOException; +import java.util.List; +import java.util.Map; + +/** + * Simple data class to hold data extracted from {@link org.apache.hc.core5.http.ClassicHttpResponse} so the underlying + * resources can be closed and the data processed further. + * Intended to be used with {@link org.apache.http.impl.client.CloseableHttpClient} execute methods as return + * value of {@link org.apache.http.client.ResponseHandler} in case of custom exceptions needs to be thrown during response processing. + * + * @param code http status code + * @param byteBody response body as byte[] + * @param stringBody response body as String + * @param headers http response headers + */ + +@Data +@RequiredArgsConstructor +public class SimpleHttpResponse { + + private final int code; + private final byte[] byteBody; + private final String stringBody; + private final Map> headers; + + public SimpleHttpResponse(int code, byte[] byteBody) { + this(code, byteBody, null, Map.of()); + } + + public SimpleHttpResponse(int code, String stringBody) { + this(code, null, stringBody, Map.of()); + } + + public SimpleHttpResponse(int code, String stringBody, Map> headers) { + this(code, null, stringBody, headers); + } + + public SimpleHttpResponse(int code) { + this(code, null, null, Map.of()); + } + + public SimpleHttpResponse(int code, Map> headers) { + this(code, null, null, headers); + } + + /** + * Extract data from http response so the underlying resources of {@link org.apache.hc.core5.http.ClassicHttpResponse} can be closed. + * On success http status (2XX), data are fetched as byte[] into byteBody, otherwise as String into stringBody. + * + * @param response http response to fetch data from + * @return {@link SimpleHttpResponse} + * @throws IOException in case of data cannot be fetched from the response stream + * @throws ParseException in case of data cannot be converted into String + */ + public static SimpleHttpResponse fromResponseWithBytesBodyOnSuccess(ClassicHttpResponse response) throws IOException, ParseException { + if (response.getEntity() != null) { + if (isSuccessInternal(response.getCode())) { + return new SimpleHttpResponse(response.getCode(), response.getEntity().getContent().readAllBytes()); + } else { + return new SimpleHttpResponse(response.getCode(), EntityUtils.toString(response.getEntity())); + } + } else { + return new SimpleHttpResponse(response.getCode()); + } + } + + public boolean isSuccess() { + return isSuccessInternal(code); + } + + private static boolean isSuccessInternal(int code) { + return code >= HttpStatus.SC_OK && code < HttpStatus.SC_MULTIPLE_CHOICES; + } +} diff --git a/zaas-client/src/main/resources/zaas-client-log-messages.yml b/zaas-client/src/main/resources/zaas-client-log-messages.yml index 295dab7488..fe6ef21618 100644 --- a/zaas-client/src/main/resources/zaas-client-log-messages.yml +++ b/zaas-client/src/main/resources/zaas-client-log-messages.yml @@ -10,7 +10,7 @@ messages: type: ERROR text: "Token is expired for URL" reason: "The application using the token kept it for longer than the expiration time" - action: "When this error occurs it is necessary to get a new JWT token. " + action: "When this error occurs it is necessary to get a new JWT token." - key: org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes.INVALID_AUTHENTICATION number: ZWEAS120 @@ -38,7 +38,7 @@ messages: type: ERROR text: "An exception occurred while trying to get the token" reason: "General exception. There are more pieces of information in the message" - action: "Log the message from the exception and then handle the exception based on the information provided there. " + action: "Log the message from the exception and then handle the exception based on the information provided there." # HTTP,Protocol messages # 400-499 diff --git a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImplHttpsTests.java b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImplHttpsTests.java index 807932d8ff..7beebec85a 100644 --- a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImplHttpsTests.java +++ b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasClientImplHttpsTests.java @@ -14,15 +14,14 @@ import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; import org.apache.hc.client5.http.classic.methods.HttpPost; -import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.client5.http.utils.Base64; import org.apache.hc.core5.http.Header; -import org.apache.hc.core5.http.HeaderElement; import org.apache.hc.core5.http.HttpEntity; +import org.apache.hc.core5.http.HttpHeaders; import org.apache.hc.core5.http.HttpStatus; -import org.apache.hc.core5.http.message.StatusLine; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -31,26 +30,17 @@ import org.junit.jupiter.params.provider.MethodSource; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.zowe.apiml.util.HttpClientMockHelper; import org.zowe.apiml.zaasclient.config.ConfigProperties; import org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes; import org.zowe.apiml.zaasclient.exception.ZaasClientException; -import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; import org.zowe.apiml.zaasclient.passticket.ZaasPassTicketResponse; import org.zowe.apiml.zaasclient.service.ZaasToken; -import java.io.ByteArrayInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileReader; -import java.io.IOException; -import java.io.InputStream; +import java.io.*; import java.nio.charset.StandardCharsets; import java.nio.file.Paths; -import java.security.Key; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.UnrecoverableKeyException; +import java.security.*; import java.security.cert.CertificateException; import java.util.Date; import java.util.Properties; @@ -59,16 +49,9 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) class ZaasClientImplHttpsTests { @@ -78,17 +61,9 @@ class ZaasClientImplHttpsTests { private static final String CONFIG_FILE_PATH = "src/test/resources/configFile.properties"; - @Mock - private ZaasHttpsClientProvider zaasHttpsClientProvider; - @Mock - private StatusLine statusLine; - @Mock - private HeaderElement headerElement; @Mock private Header header; @Mock - private CloseableHttpResponse closeableHttpResponse; - @Mock private CloseableHttpClient closeableHttpClient; @Mock private HttpEntity httpsEntity; @@ -116,11 +91,9 @@ void setupMethod() throws Exception { expiredToken = getToken(now, expirationForExpiredToken, jwtSecretKey); invalidToken = token + "DUMMY TEXT"; - when(zaasHttpsClientProvider.getHttpClient()).thenReturn(closeableHttpClient); - String baseUrl = "/gateway/api/v1/auth"; - tokenService = new ZaasJwtService(zaasHttpsClientProvider, baseUrl, configProperties); - passTicketService = new PassTicketServiceImpl(zaasHttpsClientProvider, baseUrl, configProperties); + tokenService = new ZaasJwtService(closeableHttpClient, baseUrl, configProperties); + passTicketService = new PassTicketServiceImpl(closeableHttpClient, baseUrl, configProperties); } private String getToken(long now, long expiration, Key jwtSecretKey) { @@ -181,39 +154,28 @@ private static String getAuthHeader(String userName, char[] password) { } private CloseableHttpResponse prepareResponse(int httpResponseCode, boolean withResponseHeaders) { - try { - CloseableHttpResponse response = mock(CloseableHttpResponse.class); - doReturn(httpResponseCode).when(response).getCode(); - when(zaasHttpsClientProvider.getHttpClient()).thenReturn(closeableHttpClient); - doReturn(response).when(closeableHttpClient).execute(any(HttpUriRequestBase.class)); - if (withResponseHeaders) { - Header[] headers = new Header[]{ header }; - when(response.getHeaders("Set-Cookie")).thenReturn(headers); - when(header.getValue()).thenReturn("apimlAuthenticationToken=token"); - } - return response; - } catch (ZaasConfigurationException | IOException e) { - e.printStackTrace(); - throw new RuntimeException(e); + CloseableHttpResponse response = mock(CloseableHttpResponse.class); + doReturn(httpResponseCode).when(response).getCode(); + HttpClientMockHelper.mockExecuteWithResponse(closeableHttpClient, response); + if (withResponseHeaders) { + Header[] headers = new Header[]{header}; + when(response.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(headers); + when(header.getValue()).thenReturn("apimlAuthenticationToken=token"); } + return response; } private void prepareResponseForServerUnavailable() { - try { - when(zaasHttpsClientProvider.getHttpClient()).thenReturn(closeableHttpClient); - when(closeableHttpClient.execute(any(HttpPost.class))).thenThrow(IOException.class); - } catch (IOException | ZaasConfigurationException e) { - e.printStackTrace(); - } + HttpClientMockHelper.whenExecuteThenThrow(closeableHttpClient, new IOException("An IO Exception")); } private void prepareResponseForUnexpectedException() { try { - when(zaasHttpsClientProvider.getHttpClient()).thenReturn(closeableHttpClient); - when(closeableHttpClient.execute(any(HttpPost.class))).thenAnswer(invocation -> { - throw new Exception(); - }); - } catch (IOException | ZaasConfigurationException e) { + when(closeableHttpClient.execute(any(HttpPost.class), any(HttpClientResponseHandler.class))) + .thenAnswer(invocation -> { + throw new Exception(); + }); + } catch (IOException e) { e.printStackTrace(); } } @@ -226,13 +188,28 @@ private void assertThatExceptionContainValidCode(ZaasClientException zce, ZaasCl } @Test - void testLoginWithCredentials_ValidUserName_ValidPassword() throws ZaasClientException, IOException { + void testLoginWithCredentials_ValidUserName_ValidPassword() throws ZaasClientException { prepareResponse(HttpStatus.SC_NO_CONTENT, true); - String token = tokenService.login(VALID_USER, VALID_PASSWORD); - assertNotNull(token, "null Token obtained"); - assertNotEquals(EMPTY_STRING, token, "Empty Token obtained"); - assertEquals("token", token, "Token Mismatch"); + String authToken = tokenService.login(VALID_USER, VALID_PASSWORD); + assertNotNull(authToken, "null Token obtained"); + assertNotEquals(EMPTY_STRING, authToken, "Empty Token obtained"); + assertEquals("token", authToken, "Token Mismatch"); + } + + @Test + void testLoginWithCredentials_ValidUserName_ValidPassword_multipleResponseCookieHeaders() throws ZaasClientException { + var response = prepareResponse(HttpStatus.SC_NO_CONTENT, false); + var tokenCookieHeader = mock(Header.class); + Header[] headers = new Header[]{header, tokenCookieHeader}; + when(response.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(headers); + when(header.getValue()).thenReturn("someCookie=cookieValue"); + when(tokenCookieHeader.getValue()).thenReturn("apimlAuthenticationToken=token"); + + String authToken = tokenService.login(VALID_USER, VALID_PASSWORD); + assertNotNull(authToken, "null Token obtained"); + assertNotEquals(EMPTY_STRING, authToken, "Empty Token obtained"); + assertEquals("token", authToken, "Token Mismatch"); } private static Stream provideInvalidUsernamePassword() { @@ -250,6 +227,7 @@ void giveInvalidCredentials_whenLoginIsRequested_thenProperExceptionIsRaised(int ZaasClientErrorCodes expectedCode) { var response = prepareResponse(statusCode, false); when(response.getEntity()).thenReturn(httpsEntity); + when(response.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(new Header[0]); ZaasClientException exception = assertThrows(ZaasClientException.class, () -> tokenService.login(username, password)); @@ -277,10 +255,10 @@ void testLoginWithCredentials_UnexpectedException() { @Test void testLoginWithAuthHeader_ValidUserName_ValidPassword() throws ZaasClientException { prepareResponse(HttpStatus.SC_NO_CONTENT, true); - String token = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); - assertNotNull(token, "null Token obtained"); - assertNotEquals(EMPTY_STRING, token, "Empty Token obtained"); - assertEquals("token", token, "Token Mismatch"); + String authToken = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); + assertNotNull(authToken, "null Token obtained"); + assertNotEquals(EMPTY_STRING, authToken, "Empty Token obtained"); + assertEquals("token", authToken, "Token Mismatch"); } private static Stream provideInvalidAuthHeaders() { @@ -295,6 +273,7 @@ private static Stream provideInvalidAuthHeaders() { void doLoginWithAuthHeaderInvalidUsername(int statusCode, String authHeader, ZaasClientErrorCodes expectedCode) { var response = prepareResponse(statusCode, false); when(response.getEntity()).thenReturn(httpsEntity); + when(response.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(new Header[0]); ZaasClientException exception = assertThrows(ZaasClientException.class, () -> tokenService.login(authHeader)); @@ -349,10 +328,10 @@ void testQueryWithToken_WhenResponseCodeIs404_ZaasClientException() { } @Test - void testLoginWithToken_WhenResponseCodeIs400_ZaasClientException() throws IOException { + void testLoginWithToken_WhenResponseCodeIs400_ZaasClientException() { var response = prepareResponse(400, false); when(response.getEntity()).thenReturn(httpsEntity); - + when(response.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(new Header[0]); ZaasClientException exception = assertThrows(ZaasClientException.class, () -> tokenService.login(token)); assertTrue(exception.getMessage().contains("'ZWEAS121E', message='Empty or null username or password values provided'"), "Message was: " + exception.getMessage()); @@ -365,17 +344,16 @@ void testPassTicketWithToken_ValidToken_ValidPassTicket() throws Exception { ZaasPassTicketResponse zaasPassTicketResponse = new ZaasPassTicketResponse(); zaasPassTicketResponse.setTicket("ticket"); - when(zaasHttpsClientProvider.getHttpClient()).thenReturn(closeableHttpClient); when(httpsEntity.getContent()).thenReturn(new ByteArrayInputStream(new ObjectMapper().writeValueAsBytes(zaasPassTicketResponse))); assertEquals("ticket", passTicketService.passTicket(token, "ZOWEAPPL")); } @Test - void givenValidToken_whenLogout_thenSuccess() throws ZaasClientException, IOException { + void givenValidToken_whenLogout_thenSuccess() throws ZaasClientException { prepareResponse(HttpStatus.SC_NO_CONTENT, true); - String token = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); - assertDoesNotThrow(() -> tokenService.logout(token)); + String authToken = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); + assertDoesNotThrow(() -> tokenService.logout(authToken)); } @Test @@ -388,11 +366,11 @@ void givenInvalidToken_whenLogout_thenThrowException() { } @Test - void givenValidTokenInBearer_whenLogout_thenSuccess() throws ZaasClientException, IOException { + void givenValidTokenInBearer_whenLogout_thenSuccess() throws ZaasClientException { prepareResponse(HttpStatus.SC_NO_CONTENT, true); - String token = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); - token = "Bearer " + token; - String finalToken = token; + String authToken = tokenService.login(getAuthHeader(VALID_USER, VALID_PASSWORD)); + authToken = "Bearer " + authToken; + String finalToken = authToken; assertDoesNotThrow(() -> tokenService.logout(finalToken)); } diff --git a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProviderTests.java b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProviderTests.java index eb4d926a7f..b41ed8979f 100644 --- a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProviderTests.java +++ b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasHttpsClientProviderTests.java @@ -27,9 +27,7 @@ import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.core.Is.is; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.*; class ZaasHttpsClientProviderTests { diff --git a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtServiceTest.java b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtServiceTest.java index 3e71ff091b..aa974e2cd4 100644 --- a/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtServiceTest.java +++ b/zaas-client/src/test/java/org/zowe/apiml/zaasclient/service/internal/ZaasJwtServiceTest.java @@ -16,8 +16,10 @@ import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.ContentType; +import org.apache.hc.core5.http.Header; import org.apache.hc.core5.http.HttpEntity; import org.apache.hc.core5.http.HttpHeaders; +import org.apache.hc.core5.http.io.HttpClientResponseHandler; import org.apache.hc.core5.http.io.entity.StringEntity; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -30,22 +32,17 @@ import org.mockito.junit.jupiter.MockitoSettings; import org.mockito.quality.Strictness; import org.springframework.mock.web.MockHttpServletRequest; +import org.zowe.apiml.util.HttpClientMockHelper; import org.zowe.apiml.zaasclient.config.ConfigProperties; import org.zowe.apiml.zaasclient.exception.ZaasClientErrorCodes; import org.zowe.apiml.zaasclient.exception.ZaasClientException; -import org.zowe.apiml.zaasclient.exception.ZaasConfigurationException; import org.zowe.apiml.zaasclient.service.ZaasToken; import java.io.IOException; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.*; @ExtendWith(MockitoExtension.class) @MockitoSettings(strictness = Strictness.LENIENT) @@ -63,37 +60,34 @@ class ZaasJwtServiceTest { ArgumentCaptor requestCaptor; private static final String EXPIRED_PASSWORD_RESPONSE = - "{\n" + - " \"messages\": [\n" + - " {\n" + - " \"messageType\": \"ERROR\",\n" + - " \"messageNumber\": \"ZWEAT412E\",\n" + - " \"messageContent\": \"The password for the specified identity has expired\",\n" + - " \"messageKey\": \"org.zowe.apiml.security.platform.errno.EMVSEXPIRE\"\n" + - " }\n" + - " ]\n" + - "}"; + //language=JSON + """ + { + "messages": [ + { + "messageType": "ERROR", + "messageNumber": "ZWEAT412E", + "messageContent": "The password for the specified identity has expired", + "messageKey": "org.zowe.apiml.security.platform.errno.EMVSEXPIRE" + } + ] + }"""; @Mock private CloseableHttpClient closeableHttpClient; - @Mock - private CloseableClientProvider closeableClientProvider; - private ZaasJwtService zaasJwtService; @BeforeEach - void setUp() throws ZaasConfigurationException { - doReturn(closeableHttpClient).when(closeableClientProvider).getHttpClient(); - - zaasJwtService = new ZaasJwtService(closeableClientProvider, BASE_URL, configProperties); + void setUp() { + zaasJwtService = new ZaasJwtService(closeableHttpClient, BASE_URL, configProperties); } @Test void givenJwtToken_whenLogout_thenSetCookie() throws ZaasClientException, IOException { - mockHttpClient(204); + mockHttpClientResponse(204); zaasJwtService.logout(JWT_TOKEN); - verify(closeableHttpClient, times(1)).execute(requestCaptor.capture()); + verify(closeableHttpClient, times(1)).execute(requestCaptor.capture(), any(HttpClientResponseHandler.class)); var capturedRequest = requestCaptor.getValue(); assertTrue((capturedRequest.getHeaders(HttpHeaders.COOKIE) != null) && (capturedRequest.getHeaders(HttpHeaders.COOKIE).length == 1) && @@ -102,10 +96,10 @@ void givenJwtToken_whenLogout_thenSetCookie() throws ZaasClientException, IOExce @Test void givenAuthorizationHeaderWithJwtToken_whenLogout_thenAuthorizationHeader() throws ZaasClientException, IOException { - mockHttpClient(204); + mockHttpClientResponse(204); zaasJwtService.logout(HEADER_AUTHORIZATION); - verify(closeableHttpClient, times(1)).execute(requestCaptor.capture()); + verify(closeableHttpClient, times(1)).execute(requestCaptor.capture(), any(HttpClientResponseHandler.class)); var capturedRequest = requestCaptor.getValue(); assertTrue((capturedRequest.getHeaders(HttpHeaders.AUTHORIZATION) != null) && (capturedRequest.getHeaders(HttpHeaders.AUTHORIZATION).length == 1) && @@ -115,7 +109,7 @@ void givenAuthorizationHeaderWithJwtToken_whenLogout_thenAuthorizationHeader() t @Test void givenValidJwtToken_whenQueryToken_thenReturnToken() throws ZaasClientException, IOException { ZaasToken expectedToken = new ZaasToken(); - mockHttpClient(200, mapper.writeValueAsString(expectedToken)); + mockHttpClientResponse(200, mapper.writeValueAsString(expectedToken)); ZaasToken actualToken = zaasJwtService.query("token"); assertEquals(expectedToken, actualToken); @@ -132,8 +126,8 @@ void givenEmptyJwtToken_whenQueryToken_thenThrowException() { } @Test - void givenInvalidJwtToken_whenQueryToken_thenThrowException() throws IOException { - mockHttpClient(401); + void givenInvalidJwtToken_whenQueryToken_thenThrowException() { + mockHttpClientResponse(401); zaasClientTestAssertThrows(ZaasClientErrorCodes.INVALID_JWT_TOKEN, "Queried token is invalid or expired", () -> zaasJwtService.query("bad token")); } @@ -142,7 +136,7 @@ void givenExpiredToken_whenQueryToken_thenThrowException() throws IOException { ZaasToken expiredToken = new ZaasToken(); expiredToken.setExpired(true); - mockHttpClient(200, mapper.writeValueAsString(expiredToken)); + mockHttpClientResponse(200, mapper.writeValueAsString(expiredToken)); zaasClientTestAssertThrows(ZaasClientErrorCodes.EXPIRED_JWT_EXCEPTION, "Queried token is expired", () -> zaasJwtService.query("expired token")); } @@ -153,7 +147,7 @@ void givenJwtTokenInCookie_whenQueryRequest_thenReturnToken() throws ZaasClientE mockRequest.setCookies(cookies); ZaasToken expectedToken = new ZaasToken(); - mockHttpClient(200, mapper.writeValueAsString(expectedToken)); + mockHttpClientResponse(200, mapper.writeValueAsString(expectedToken)); ZaasToken actualToken = zaasJwtService.query(mockRequest); assertEquals(expectedToken, actualToken); @@ -165,7 +159,7 @@ void givenJwtTokenInHeader_whenQueryRequest_thenReturnToken() throws ZaasClientE mockRequest.addHeader(HttpHeaders.AUTHORIZATION, HEADER_AUTHORIZATION); ZaasToken expectedToken = new ZaasToken(); - mockHttpClient(200, mapper.writeValueAsString(expectedToken)); + mockHttpClientResponse(200, mapper.writeValueAsString(expectedToken)); ZaasToken actualToken = zaasJwtService.query(mockRequest); assertEquals(expectedToken, actualToken); @@ -195,29 +189,31 @@ void givenHeaderWithEmptyAuthorization_whenQueryRequest_thenThrowException() { } @Test - void givenExpiredPassword_whenLogin_thenThrowException() throws IOException { - mockHttpClient(401, EXPIRED_PASSWORD_RESPONSE); + void givenExpiredPassword_whenLogin_thenThrowException() { + var responseMock = mockHttpClientResponse(401, EXPIRED_PASSWORD_RESPONSE); + when(responseMock.getHeaders(HttpHeaders.SET_COOKIE)).thenReturn(new Header[0]); zaasClientTestAssertThrows(ZaasClientErrorCodes.EXPIRED_PASSWORD, "The specified password is expired", () -> zaasJwtService.login("user", "password".toCharArray())); } @Test - void givenExpiredPassword_whenQuery_thenThrowException() throws IOException { - mockHttpClient(401, EXPIRED_PASSWORD_RESPONSE); + void givenExpiredPassword_whenQuery_thenThrowException() { + mockHttpClientResponse(401, EXPIRED_PASSWORD_RESPONSE); zaasClientTestAssertThrows(ZaasClientErrorCodes.EXPIRED_PASSWORD, "The specified password is expired", () -> zaasJwtService.query("jwt")); } - private void mockHttpClient(int statusCode) throws IOException { - mockHttpClient(statusCode, "null"); + private void mockHttpClientResponse(int statusCode) { + mockHttpClientResponse(statusCode, "null"); } - private void mockHttpClient(int statusCode, String content) throws IOException { + private CloseableHttpResponse mockHttpClientResponse(int statusCode, String content) { CloseableHttpResponse response = mock(CloseableHttpResponse.class); doReturn(statusCode).when(response).getCode(); HttpEntity entity = new StringEntity(content, ContentType.TEXT_PLAIN); doReturn(entity).when(response).getEntity(); - doReturn(response).when(closeableHttpClient).execute(any(HttpUriRequestBase.class)); + HttpClientMockHelper.mockExecuteWithResponse(closeableHttpClient, response); + return response; } private void zaasClientTestAssertThrows(ZaasClientErrorCodes code, String message, Executable executable) { diff --git a/zaas-package/src/main/resources/bin/start.sh b/zaas-package/src/main/resources/bin/start.sh index 81f9fefce6..2bfe0b506d 100755 --- a/zaas-package/src/main/resources/bin/start.sh +++ b/zaas-package/src/main/resources/bin/start.sh @@ -70,6 +70,7 @@ # - ZWE_DISCOVERY_SERVICES_LIST # - ZWE_haInstance_hostname # - ZWE_zowe_network_server_tls_attls +# - ZWE_zowe_network_client_tls_attls # - ZWE_zowe_certificate_keystore_type - The default keystore type to use for SSL certificates # - ZWE_zowe_verifyCertificates - if we accept only verified certificates @@ -138,11 +139,24 @@ else ZAAS_LOADER_PATH=${COMMON_LIB} fi +# Check if the directory containing the ZAAS shared JARs was set and append it to the ZAAS loader path +if [ -n "${ZWE_ZAAS_SHARED_LIBS}" ] +then + ZAAS_LOADER_PATH=${ZWE_ZAAS_SHARED_LIBS},${ZAAS_LOADER_PATH} +fi + +echo "Setting loader path: "${ZAAS_LOADER_PATH} + ATTLS_ENABLED="false" -# ZWE_configs_spring_profiles_active for back compatibility, should be removed in v3 - enabling via Spring profile -if [ "${ZWE_zowe_network_server_tls_attls}" = "true" -o "$(echo ${ZWE_configs_spring_profiles_active:-} | awk '/^(.*,)?attls(,.*)?$/')" ]; then +ATTLS_CLIENT_ENABLED="false" + +if [ "${ZWE_zowe_network_server_tls_attls}" = "true" ]; then ATTLS_ENABLED="true" fi +if [ "${ZWE_zowe_network_client_tls_attls}" = "true" ]; then + ATTLS_CLIENT_ENABLED="true" +fi + if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_server_ssl_enabled="false" if [ -n "${ZWE_configs_spring_profiles_active}" ]; then @@ -151,10 +165,11 @@ if [ "${ATTLS_ENABLED}" = "true" ]; then ZWE_configs_spring_profiles_active="${ZWE_configs_spring_profiles_active}attls" fi -# Verify discovery service URL in case AT-TLS is enabled, assumes outgoing rules are in place +internalProtocol="https" ZWE_DISCOVERY_SERVICES_LIST=${ZWE_DISCOVERY_SERVICES_LIST:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_discovery_port:-7553}/eureka/"} -if [ "${ATTLS_ENABLED}" = "true" ]; then +if [ "${ATTLS_CLIENT_ENABLED}" = "true" ]; then ZWE_DISCOVERY_SERVICES_LIST=$(echo "${ZWE_DISCOVERY_SERVICES_LIST=}" | sed -e 's|https://|http://|g') + internalProtocol=http fi if [ "${ZWE_configs_server_ssl_enabled:-true}" = "true" -o "$ATTLS_ENABLED" = "true" ]; then @@ -163,14 +178,6 @@ else externalProtocol="http" fi -# Check if the directory containing the ZAAS shared JARs was set and append it to the ZAAS loader path -if [ -n "${ZWE_ZAAS_SHARED_LIBS}" ] -then - ZAAS_LOADER_PATH=${ZWE_ZAAS_SHARED_LIBS},${ZAAS_LOADER_PATH} -fi - -echo "Setting loader path: "${ZAAS_LOADER_PATH} - LIBPATH="$LIBPATH":"/lib" LIBPATH="$LIBPATH":"/usr/lib" LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin @@ -195,6 +202,51 @@ ADD_OPENS="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED" +get_enabled_protocol_limit() { + target=$1 + type=$2 + key_component="ZWE_configs_zowe_network_${target}_tls_${type}Tls" + value_component=$(eval echo \$$key_component) + key_gateway="ZWE_components_gateway_zowe_network_${target}_tls_${type}Tls" + value_gateway=$(eval echo \$$key_gateway) + key_zowe="ZWE_zowe_network_${target}_tls_${type}Tls" + value_zowe=$(eval echo \$$key_zowe) + enabled_protocol_limit=${value_component:-${value_gateway:-${value_zowe:-}}} +} + +extract_between() { + echo "$1" | sed -e "s/.*$2,//" -e "s/$3.*//" +} + +get_enabled_protocol() { + target=$1 + get_enabled_protocol_limit "${target}" "min" + enabled_protocols_min=${enabled_protocol_limit} + get_enabled_protocol_limit "${target}" "max" + enabled_protocols_max=${enabled_protocol_limit} + + if [ "${enabled_protocols_min:-}" = "${enabled_protocols_max:-}" ]; then + result="${enabled_protocols_max:-}" + elif [ -z "${enabled_protocols_min:-}" ]; then + result="${enabled_protocols_max:-}" + else + enabled_protocols_max=${enabled_protocols_max:-"TLSv1.3"} + enabled_protocols=,TLSv1,TLSv1.1,TLSv1.2,TLSv1.3,TLSv1.4, + # Extract protocols between min and max (inclusive) + result=$(extract_between "$enabled_protocols" "$enabled_protocols_min" "$enabled_protocols_max") + result="$enabled_protocols_min,$result$enabled_protocols_max" + fi +} + +get_enabled_protocol_limit "server" "max" +server_protocol=${enabled_protocol_limit:-"TLS"} +get_enabled_protocol "server" +server_enabled_protocols=${result:-"TLSv1.3"} +server_ciphers=${ZWE_configs_zowe_network_server_tls_ciphers:-${ZWE_components_gateway_zowe_network_server_tls_ciphers:-${ZWE_zowe_network_server_tls_ciphers:-TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,TLS_AES_128_GCM_SHA256,TLS_AES_256_GCM_SHA384}}} +get_enabled_protocol "client" +client_enabled_protocols=${ZWE_components_gateway_apiml_httpclient_ssl_enabled_protocols:-${result:-${server_enabled_protocols}}} +client_ciphers=${ZWE_configs_zowe_network_client_tls_ciphers:-${ZWE_components_gateway_zowe_network_client_tls_ciphers:-${ZWE_zowe_network_client_tls_ciphers:-${server_ciphers}}}} + keystore_type="${ZWE_configs_certificate_keystore_type:-${ZWE_zowe_certificate_keystore_type:-PKCS12}}" keystore_pass="${ZWE_configs_certificate_keystore_password:-${ZWE_zowe_certificate_keystore_password}}" key_alias="${ZWE_configs_certificate_keystore_alias:-${ZWE_zowe_certificate_keystore_alias}}" @@ -244,7 +296,7 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${ZAAS_CODE} ${JAVA_BIN_DIR}java \ -Dspring.profiles.active=${ZWE_configs_spring_profiles_active:-} \ -Dspring.profiles.include=$LOG_LEVEL \ -Dapiml.service.hostname=${ZWE_haInstance_hostname:-localhost} \ - -Dapiml.service.port=${ZWE_configs_port:-7554} \ + -Dapiml.service.port=${ZWE_configs_port:-7558} \ -Dapiml.service.discoveryServiceUrls=${ZWE_DISCOVERY_SERVICES_LIST} \ -Dapiml.connection.timeout=${ZWE_configs_apiml_connection_timeout:-60000} \ -Dapiml.connection.timeToLive=${ZWE_configs_apiml_connection_timeToLive:-60000} \ @@ -257,11 +309,14 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${ZAAS_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.security.auth.provider=${ZWE_configs_apiml_security_auth_provider:-${ZWE_components_gateway_apiml_security_auth_provider:-zosmf}} \ -Dapiml.security.auth.cookieProperties.cookieName=${cookieName:-apimlAuthenticationToken} \ -Dapiml.security.personalAccessToken.enabled=${ZWE_configs_apiml_security_personalAccessToken_enabled:-${ZWE_components_gateway_apiml_security_personalAccessToken_enabled:-false}} \ - -Dapiml.httpclient.ssl.enabled-protocols=${ZWE_configs_apiml_httpclient_ssl_enabled_protocols:-"TLSv1.2"} \ -Dapiml.zoweManifest=${ZWE_zowe_runtimeDirectory}/manifest.json \ - -Dserver.address=0.0.0.0 \ + -Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \ -Dserver.ssl.enabled=${ZWE_configs_server_ssl_enabled:-true} \ - -Dserver.ssl.protocol=${ZWE_configs_server_ssl_protocol:-"TLSv1.2"} \ + -Dapiml.httpclient.ssl.enabled-protocols=${client_enabled_protocols} \ + -Djdk.tls.client.cipherSuites=${client_ciphers} \ + -Dserver.ssl.ciphers=${server_ciphers} \ + -Dserver.ssl.protocol=${server_protocol} \ + -Dserver.ssl.enabled-protocols=${server_enabled_protocols} \ -Dserver.ssl.keyStore="${keystore_location}" \ -Dserver.ssl.keyStoreType="${keystore_type}" \ -Dserver.ssl.keyStorePassword="${keystore_pass}" \ @@ -275,24 +330,22 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${ZAAS_CODE} ${JAVA_BIN_DIR}java \ -Dapiml.security.jwtInitializerTimeout=${ZWE_configs_apiml_security_jwtInitializerTimeout:-${ZWE_components_gateway_apiml_security_jwtInitializerTimeout:-5}} \ -Dapiml.security.useInternalMapper=${ZWE_configs_apiml_security_useInternalMapper:-${ZWE_components_gateway_apiml_security_useInternalMapper:-true}} \ -Dapiml.security.x509.enabled=${ZWE_configs_apiml_security_x509_enabled:-${ZWE_components_gateway_apiml_security_x509_enabled:-false}} \ - -Dapiml.security.x509.externalMapperUrl=${ZWE_configs_apiml_security_x509_externalMapperUrl:-${ZWE_components_gateway_apiml_security_x509_externalMapperUrl:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/certificate/x509/map"}} \ + -Dapiml.security.x509.externalMapperUrl=${ZWE_configs_apiml_security_x509_externalMapperUrl:-${ZWE_components_gateway_apiml_security_x509_externalMapperUrl:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/certificate/x509/map"}} \ -Dapiml.security.x509.externalMapperUser=${ZWE_configs_apiml_security_x509_externalMapperUser:-${ZWE_components_gateway_apiml_security_x509_externalMapperUser:-${ZWE_zowe_setup_security_users_zowe:-ZWESVUSR}}} \ -Dapiml.security.x509.acceptForwardedCert=${ZWE_configs_apiml_security_x509_enabled:-${ZWE_components_gateway_apiml_security_x509_enabled:-${ZWE_components_gateway_apiml_security_x509_enabled:-true}}} \ - -Dapiml.security.x509.certificatesUrl=${ZWE_configs_apiml_security_x509_certificatesUrl:-${ZWE_components_gateway_apiml_security_x509_certificatesUrl:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/gateway/certificates"}} \ + -Dapiml.security.x509.certificatesUrl=${ZWE_configs_apiml_security_x509_certificatesUrl:-${ZWE_components_gateway_apiml_security_x509_certificatesUrl:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/gateway/certificates"}} \ -Dapiml.security.authorization.provider=${ZWE_configs_apiml_security_authorization_provider:-${ZWE_components_gateway_apiml_security_authorization_provider:-}} \ -Dapiml.security.authorization.endpoint.enabled=${ZWE_configs_apiml_security_authorization_endpoint_enabled:-${ZWE_components_gateway_apiml_security_authorization_endpoint_enabled:-false}} \ - -Dapiml.security.authorization.endpoint.url=${ZWE_configs_apiml_security_authorization_endpoint_url:-${ZWE_components_gateway_apiml_security_authorization_endpoint_url:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf-auth"}} \ + -Dapiml.security.authorization.endpoint.url=${ZWE_configs_apiml_security_authorization_endpoint_url:-${ZWE_components_gateway_apiml_security_authorization_endpoint_url:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf-auth"}} \ -Dapiml.security.saf.provider=${ZWE_configs_apiml_security_saf_provider:-${ZWE_components_gateway_apiml_security_saf_provider:-"rest"}} \ - -Dapiml.security.saf.urls.authenticate=${ZWE_configs_apiml_security_saf_urls_authenticate:-${ZWE_components_gateway_apiml_security_saf_urls_authenticate:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf/authenticate"}} \ - -Dapiml.security.saf.urls.verify=${ZWE_configs_apiml_security_saf_urls_verify:-${ZWE_components_gateway_apiml_security_saf_urls_verify:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf/verify"}} \ + -Dapiml.security.saf.urls.authenticate=${ZWE_configs_apiml_security_saf_urls_authenticate:-${ZWE_components_gateway_apiml_security_saf_urls_authenticate:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf/authenticate"}} \ + -Dapiml.security.saf.urls.verify=${ZWE_configs_apiml_security_saf_urls_verify:-${ZWE_components_gateway_apiml_security_saf_urls_verify:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/saf/verify"}} \ -Dapiml.security.authorization.resourceClass=${ZWE_configs_apiml_security_authorization_resourceClass:-${ZWE_components_gateway_apiml_security_authorization_resourceClass:-ZOWE}} \ -Dapiml.security.authorization.resourceNamePrefix=${ZWE_configs_apiml_security_authorization_resourceNamePrefix:-${ZWE_components_gateway_apiml_security_authorization_resourceNamePrefix:-APIML.}} \ -Dapiml.security.zosmf.applid=${ZWE_configs_apiml_security_zosmf_applid:-${ZWE_components_gateway_apiml_security_zosmf_applid:-IZUDFLT}} \ -Dapiml.security.oidc.enabled=${ZWE_configs_apiml_security_oidc_enabled:-${ZWE_components_gateway_apiml_security_oidc_enabled:-false}} \ - -Dapiml.security.oidc.clientId=${ZWE_configs_apiml_security_oidc_clientId:-${ZWE_components_gateway_apiml_security_oidc_clientId:-}} \ - -Dapiml.security.oidc.clientSecret=${ZWE_configs_apiml_security_oidc_clientSecret:-${ZWE_components_gateway_apiml_security_oidc_clientSecret:-}} \ -Dapiml.security.oidc.registry=${ZWE_configs_apiml_security_oidc_registry:-${ZWE_components_gateway_apiml_security_oidc_registry:-}} \ - -Dapiml.security.oidc.identityMapperUrl=${ZWE_configs_apiml_security_oidc_identityMapperUrl:-${ZWE_components_gateway_apiml_security_oidc_identityMapperUrl:-"https://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/certificate/dn"}} \ + -Dapiml.security.oidc.identityMapperUrl=${ZWE_configs_apiml_security_oidc_identityMapperUrl:-${ZWE_components_gateway_apiml_security_oidc_identityMapperUrl:-"${internalProtocol:-https}://${ZWE_haInstance_hostname:-localhost}:${ZWE_components_gateway_port:-7554}/zss/api/v1/certificate/dn"}} \ -Dapiml.security.oidc.identityMapperUser=${ZWE_configs_apiml_security_oidc_identityMapperUser:-${ZWE_components_gateway_apiml_security_oidc_identityMapperUser:-${ZWE_zowe_setup_security_users_zowe:-ZWESVUSR}}} \ -Dapiml.security.oidc.jwks.uri=${ZWE_configs_apiml_security_oidc_jwks_uri:-${ZWE_components_gateway_apiml_security_oidc_jwks_uri:-}} \ -Dapiml.security.oidc.jwks.refreshInternalHours=${ZWE_configs_apiml_security_oidc_jwks_refreshInternalHours:-${ZWE_components_gateway_apiml_security_oidc_jwks_refreshInternalHours:-1}} \ diff --git a/zaas-package/src/main/resources/manifest.yaml b/zaas-package/src/main/resources/manifest.yaml index 0a6d3e7fe9..c8ce431852 100644 --- a/zaas-package/src/main/resources/manifest.yaml +++ b/zaas-package/src/main/resources/manifest.yaml @@ -29,52 +29,12 @@ apimlServices: dynamic: - serviceId: zaas configs: - port: 7554 + port: 7558 debug: false sslDebug: "" - apimlId: - apiml: - security: - auth: - provider: zosmf - zosmf: - jwtAutoconfiguration: auto - serviceId: ibmzosmf - authorization: - endpoint: - enabled: false - # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/saf-auth - url: - provider: "" - resourceClass: ZOWE - resourceNamePrefix: "APIML." - x509: - enabled: false - # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/certificate/x509/map - externalMapperUrl: - # default value is Zowe runtime user defined in zowe.yaml "zowe.setup.security.users.zowe" - externalMapperUser: - # Enables consumption of forwarded client certificate from proxy gateway in a special request header - acceptForwardedCert: true - oidc: - enabled: false - clientId: - clientSecret: - registry: - # default value is https://${ZWE_haInstance_hostname:-localhost}:${ZWE_configs_port}/zss/api/v1/certificate/dn - identityMapperUrl: - # default value is Zowe runtime user defined in zowe.yaml "zowe.setup.security.users.zowe" - identityMapperUser: - saf: - provider: - urls: - authenticate: - verify: server: - maxConnectionsPerRoute: 100 - maxTotalConnections: 1000 ssl: enabled: true diff --git a/zaas-service/build.gradle b/zaas-service/build.gradle index e35a89ac1b..9d8598526c 100644 --- a/zaas-service/build.gradle +++ b/zaas-service/build.gradle @@ -70,6 +70,7 @@ dependencies { implementation libs.jackson.annotations implementation libs.jackson.core implementation libs.jackson.databind + implementation libs.jaxbApi implementation libs.spring.cloud.commons implementation libs.jjwt implementation libs.nimbus.jose.jwt @@ -86,12 +87,16 @@ dependencies { implementation libs.spring.webmvc implementation libs.spring.webflux - implementation libs.eh.cache + implementation(libs.eh.cache) { + exclude group: "jakarta.xml.bind", module: "jakarta.xml.bind-api" + } implementation libs.bundles.jaxb implementation libs.guava + implementation libs.caffeine + implementation libs.jjwt.impl implementation libs.jjwt.jackson @@ -111,7 +116,7 @@ dependencies { testCompileOnly libs.lombok testAnnotationProcessor libs.lombok - testImplementation(testFixtures(project(":integration-tests"))) + testImplementation(testFixtures(project(":apiml-common"))) } bootJar { diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/cache/CachingServiceClient.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/cache/CachingServiceClient.java index 818ad2247d..effa6f0fa9 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/cache/CachingServiceClient.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/cache/CachingServiceClient.java @@ -106,7 +106,7 @@ public Map> readAllMaps() throws CachingServiceClien if (response.getBody() != null && !response.getBody().isEmpty()) { //NOSONAR tests return null return response.getBody(); } - return null; + return Map.of(); } else { throw new CachingServiceClientException("Unable to read all key-value maps from cache list, caused by response from caching service is null or has no body"); } diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/config/SwaggerConfig.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/config/SwaggerConfig.java index 7ce30b358b..fbf29ce4ce 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/config/SwaggerConfig.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/config/SwaggerConfig.java @@ -35,23 +35,23 @@ void initServletEndpointDocLocation() throws IOException { @Bean public OpenApiCustomizer servletEndpoints() { - return (openApi) -> { - OpenAPI servletEndpoints = new OpenAPIV3Parser().read(servletEndpointDocLocation.toString()); - - for (var entry : servletEndpoints.getPaths().entrySet()) { - openApi.getPaths().addPathItem(entry.getKey(), entry.getValue()); - } - - openApi.getComponents().getSchemas().putAll( - servletEndpoints.getComponents().getSchemas() - ); + return this::customizeSwagger; + } - if (openApi.getTags() == null) { - openApi.setTags(new ArrayList<>()); + private void customizeSwagger(OpenAPI openApi) { + if (openApi != null) { + OpenAPI servletEndpoints = new OpenAPIV3Parser().read(servletEndpointDocLocation.toString()); + if (servletEndpoints != null) { + for (var entry : servletEndpoints.getPaths().entrySet()) { + openApi.getPaths().addPathItem(entry.getKey(), entry.getValue()); + } + openApi.getComponents().getSchemas().putAll(servletEndpoints.getComponents().getSchemas()); + if (openApi.getTags() == null) { + openApi.setTags(new ArrayList<>()); + } + openApi.getTags().addAll(servletEndpoints.getTags()); + } } - - openApi.getTags().addAll(servletEndpoints.getTags()); - }; } @Bean diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationController.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationController.java deleted file mode 100644 index 4983581ee0..0000000000 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationController.java +++ /dev/null @@ -1,54 +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. - */ - -package org.zowe.apiml.zaas.controllers; - -import io.swagger.v3.oas.annotations.Operation; -import lombok.RequiredArgsConstructor; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.security.core.Authentication; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import org.zowe.apiml.zaas.security.login.Providers; -import org.zowe.apiml.zaas.security.service.TokenCreationService; - -@RequiredArgsConstructor -@RestController -@RequestMapping(AuthConfigValidationController.CONTROLLER_PATH) -public class AuthConfigValidationController { - - public static final String CONTROLLER_PATH = "zaas/validate"; - - private final Providers providers; - private final TokenCreationService tokenCreationService; - - @GetMapping(path = "auth") - @Operation(summary = "Provides information for service conformance validation") - public ResponseEntity validateAuth(Authentication authentication) { - if (authentication != null && authentication.getPrincipal() != null) { - return ResponseEntity.ok().build(); - } - if (providers.isZosfmUsed()) { - return ResponseEntity - .status(HttpStatus.CONFLICT) - .body("apimlAuthenticationToken cookie was not provided and a PassTicket cannot be generated with the z/OSMF provider"); - } - try { - tokenCreationService.createJwtTokenWithoutCredentials("validate"); - return ResponseEntity.ok().build(); - } catch (Exception e) { - return ResponseEntity - .status(HttpStatus.CONFLICT) - .body("Failed creating a PassTicket " + e.getMessage()); - } - } -} diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/InternalServerErrorController.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/InternalServerErrorController.java index 8c77342c2a..0568bfd3e9 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/InternalServerErrorController.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/InternalServerErrorController.java @@ -17,9 +17,8 @@ import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.zowe.apiml.message.api.ApiMessageView; import org.zowe.apiml.message.core.Message; import org.zowe.apiml.message.core.MessageService; @@ -34,7 +33,7 @@ /** * Handles errors in REST API processing. */ -@Controller +@RestController @Order(Ordered.HIGHEST_PRECEDENCE) @Primary public class InternalServerErrorController implements ApimlErrorController { @@ -64,7 +63,6 @@ public String getErrorPath() { */ @SuppressWarnings("squid:S3752") @RequestMapping(value = ERROR_ENDPOINT, produces = "application/json") - @ResponseBody public ResponseEntity error(HttpServletRequest request) { final Throwable exc = (Throwable) request.getAttribute(ErrorUtils.ATTR_ERROR_EXCEPTION); diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/NotFoundErrorController.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/NotFoundErrorController.java index 453d940a26..63919e86d4 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/NotFoundErrorController.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/error/controllers/NotFoundErrorController.java @@ -16,9 +16,8 @@ import org.springframework.core.Ordered; import org.springframework.core.annotation.Order; import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import org.zowe.apiml.message.api.ApiMessageView; import org.zowe.apiml.message.core.Message; import org.zowe.apiml.message.core.MessageService; @@ -28,7 +27,7 @@ /** * Not found endpoint controller */ -@Controller +@RestController @RequiredArgsConstructor @Order(Ordered.HIGHEST_PRECEDENCE) public class NotFoundErrorController implements ApimlErrorController { @@ -48,7 +47,6 @@ public String getErrorPath() { * @return Http response entity */ @GetMapping(value = NOT_FOUND_ENDPOINT, produces = "application/json") - @ResponseBody public ResponseEntity notFound400HttpResponse(HttpServletRequest request) { Message message = messageService.createMessage("org.zowe.apiml.common.endPointNotFound", ErrorUtils.getForwardUri(request)); diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/config/CompoundAuthProvider.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/config/CompoundAuthProvider.java index 0068cea618..2596febaa5 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/config/CompoundAuthProvider.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/config/CompoundAuthProvider.java @@ -58,7 +58,10 @@ private void warnForDummyProvider(String defaultProviderName) { } private AuthenticationProvider getConfiguredLoginAuthProvider() { - String providerBeanName = loginProvider.getAuthProviderBeanName(); + String providerBeanName; + synchronized (this) { + providerBeanName = loginProvider.getAuthProviderBeanName(); + } AuthenticationProvider authenticationProvider = authProvidersMap.get(providerBeanName); if (authenticationProvider == null) { log.warn("Login provider {} is not available.", providerBeanName); diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/mapping/ExternalMapper.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/mapping/ExternalMapper.java index 31de24f599..937ad55885 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/mapping/ExternalMapper.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/mapping/ExternalMapper.java @@ -11,27 +11,25 @@ package org.zowe.apiml.zaas.security.mapping; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.validation.constraints.NotNull; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.impl.classic.CloseableHttpClient; -import org.apache.hc.client5.http.impl.classic.CloseableHttpResponse; import org.apache.hc.core5.http.HttpEntity; -import org.apache.hc.core5.http.ParseException; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.message.BasicHeader; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; -import org.zowe.apiml.zaas.security.mapping.model.MapperResponse; -import org.zowe.apiml.zaas.security.service.TokenCreationService; import org.zowe.apiml.message.log.ApimlLogger; import org.zowe.apiml.product.logging.annotations.InjectApimlLogger; import org.zowe.apiml.security.common.config.AuthConfigurationProperties; +import org.zowe.apiml.zaas.security.mapping.model.MapperResponse; +import org.zowe.apiml.zaas.security.service.TokenCreationService; -import jakarta.validation.constraints.NotNull; import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; @@ -46,7 +44,7 @@ public abstract class ExternalMapper { private final String mapperUrl; private final String mapperUser; - @Autowired + @Qualifier("secureHttpClientWithoutKeystore") private final CloseableHttpClient secureHttpClientWithoutKeystore; private final TokenCreationService tokenCreationService; @@ -74,31 +72,28 @@ MapperResponse callExternalMapper(@NotNull HttpEntity payload) { httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE); log.debug("Executing request against external identity mapper API: {}", httpPost); + var response = secureHttpClientWithoutKeystore.execute(httpPost, httpResponse -> { + final int statusCode = httpResponse.getCode(); + String responseBody = ""; + if (httpResponse.getEntity() != null) { + responseBody = EntityUtils.toString(httpResponse.getEntity(), StandardCharsets.UTF_8); + } - - CloseableHttpResponse httpResponse = secureHttpClientWithoutKeystore.execute(httpPost); - - final int statusCode = httpResponse.getCode(); - String response = ""; - if (httpResponse.getEntity() != null) { - response = EntityUtils.toString(httpResponse.getEntity(), StandardCharsets.UTF_8); - } - if (statusCode == 0) { - return null; - } - if (!org.springframework.http.HttpStatus.valueOf(statusCode).is2xxSuccessful()) { - if (org.springframework.http.HttpStatus.valueOf(statusCode).is5xxServerError()) { - apimlLog.log("org.zowe.apiml.zaas.security.unexpectedMappingResponse", statusCode, response); + log.debug("External identity mapper API returned: {}", responseBody); + if (HttpStatus.valueOf(statusCode).is2xxSuccessful()) { + return responseBody; + } else if (HttpStatus.valueOf(statusCode).is5xxServerError()) { + apimlLog.log("org.zowe.apiml.zaas.security.unexpectedMappingResponse", statusCode, httpResponse); } else { - log.debug("Unexpected response from the external identity mapper. Status: {} body: {}", statusCode, response); + log.debug("Unexpected response from the external identity mapper. Status: {} body: {}", statusCode, httpResponse); } return null; - } - log.debug("External identity mapper API returned: {}", response); + }); + if (StringUtils.isNotEmpty(response)) { return objectMapper.readValue(response, MapperResponse.class); } - } catch (IOException | ParseException e) { + } catch (IOException e) { apimlLog.log("org.zowe.apiml.zaas.security.InvalidMappingResponse", e); } catch (URISyntaxException e) { apimlLog.log("org.zowe.apiml.zaas.security.InvalidMapperUrl", e); diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/refresh/SuccessfulRefreshHandler.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/refresh/SuccessfulRefreshHandler.java index 1a34d81853..30cadee83c 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/refresh/SuccessfulRefreshHandler.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/refresh/SuccessfulRefreshHandler.java @@ -10,20 +10,20 @@ package org.zowe.apiml.zaas.security.refresh; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.http.HttpStatus; import org.springframework.security.core.Authentication; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.stereotype.Component; -import org.zowe.apiml.zaas.security.service.AuthenticationService; -import org.zowe.apiml.zaas.security.service.TokenCreationService; import org.zowe.apiml.security.common.config.AuthConfigurationProperties; import org.zowe.apiml.security.common.token.TokenAuthentication; import org.zowe.apiml.util.CookieUtil; +import org.zowe.apiml.zaas.security.service.AuthenticationService; +import org.zowe.apiml.zaas.security.service.TokenCreationService; -import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; @@ -55,7 +55,6 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo private void setCookie(String token, HttpServletResponse response) { AuthConfigurationProperties.CookieProperties cp = authConfigurationProperties.getCookieProperties(); String cookieHeader = new CookieUtil.CookieHeaderBuilder(cp.getCookieName(), token) - .comment(cp.getCookieComment()) .path(cp.getCookiePath()) .sameSite(cp.getCookieSameSite().getValue()) .maxAge(cp.getCookieMaxAge()) diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProvider.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProvider.java index 5e22398f45..9b5bf79b6b 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProvider.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProvider.java @@ -16,12 +16,12 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; -import org.zowe.apiml.zaas.cache.CachingServiceClient; -import org.zowe.apiml.zaas.cache.CachingServiceClientException; -import org.zowe.apiml.zaas.security.service.AuthenticationService; import org.zowe.apiml.models.AccessTokenContainer; import org.zowe.apiml.security.common.token.AccessTokenProvider; import org.zowe.apiml.security.common.token.QueryResponse; +import org.zowe.apiml.zaas.cache.CachingServiceClient; +import org.zowe.apiml.zaas.cache.CachingServiceClientException; +import org.zowe.apiml.zaas.security.service.AuthenticationService; import java.nio.charset.StandardCharsets; import java.security.MessageDigest; @@ -33,7 +33,6 @@ import java.util.Map; import java.util.Optional; import java.util.Set; -import java.util.stream.Collectors; @Service @RequiredArgsConstructor @@ -85,7 +84,7 @@ public boolean isInvalidated(String token) throws CachingServiceClientException QueryResponse parsedToken = authenticationService.parseJwtWithSignature(token); String hashedToken = getHash(token); String hashedUserId = getHash(parsedToken.getUserId()); - List hashedServiceIds = parsedToken.getScopes().stream().map(this::getHash).collect(Collectors.toList()); + List hashedServiceIds = parsedToken.getScopes().stream().map(this::getHash).toList(); Map> cacheMap = cachingServiceClient.readAllMaps(); if (cacheMap != null && !cacheMap.isEmpty()) { @@ -93,11 +92,11 @@ public boolean isInvalidated(String token) throws CachingServiceClientException Map invalidUsers = cacheMap.get(INVALID_USERS_KEY); Map invalidScopes = cacheMap.get(INVALID_SCOPES_KEY); Optional isInvalidated = checkInvalidToken(invalidTokens, hashedToken); - if (!isInvalidated.isPresent()) { + if (isInvalidated.isEmpty()) { isInvalidated = checkRule(invalidUsers, hashedUserId, parsedToken); } for (String hashedServiceId : hashedServiceIds) { - if (!isInvalidated.isPresent()) { + if (isInvalidated.isEmpty()) { isInvalidated = checkRule(invalidScopes, hashedServiceId, parsedToken); } else { break; @@ -150,7 +149,7 @@ public String getHash(String token) throws CachingServiceClientException { return getSecurePassword(token, getSalt()); } - private String initializeSalt() throws CachingServiceClientException { + private String initializeSalt() throws CachingServiceClientException,SecureTokenInitializationException { String localSalt; try { CachingServiceClient.KeyValue keyValue = cachingServiceClient.read("salt"); @@ -195,10 +194,13 @@ private void storeSalt(byte[] salt) throws CachingServiceClientException { } public static byte[] generateSalt() { - SecureRandom random = new SecureRandom(); byte[] salt = new byte[16]; - random.nextBytes(salt); - return salt; + try { + SecureRandom.getInstanceStrong().nextBytes(salt); + return salt; + } catch (NoSuchAlgorithmException e) { + throw new SecureTokenInitializationException(e); + } } public static String getSecurePassword(String password, byte[] salt) { diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWK.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWK.java index dd1aedd243..31e60fa203 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWK.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWK.java @@ -58,12 +58,6 @@ public class OIDCTokenProviderJWK implements OIDCProvider { @Value("${apiml.security.oidc.registry:}") String registry; - @Value("${apiml.security.oidc.clientId:}") - String clientId; - - @Value("${apiml.security.oidc.clientSecret:}") - String clientSecret; - @Value("${apiml.security.oidc.jwks.uri}") private String jwksUri; diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationException.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationException.java new file mode 100644 index 0000000000..c392d030cf --- /dev/null +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationException.java @@ -0,0 +1,18 @@ +/* + * 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. + */ + +package org.zowe.apiml.zaas.security.service.token; + +public class SecureTokenInitializationException extends RuntimeException { + + public SecureTokenInitializationException(Throwable t) { + super(t); + } +} diff --git a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/webfinger/StaticWebFingerProvider.java b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/webfinger/StaticWebFingerProvider.java index a8b0352e0d..85fa01b5d5 100644 --- a/zaas-service/src/main/java/org/zowe/apiml/zaas/security/webfinger/StaticWebFingerProvider.java +++ b/zaas-service/src/main/java/org/zowe/apiml/zaas/security/webfinger/StaticWebFingerProvider.java @@ -20,7 +20,6 @@ import java.io.IOException; import java.util.Collections; import java.util.List; -import java.util.stream.Collectors; @RequiredArgsConstructor @Service @@ -44,14 +43,14 @@ public WebFingerResponse getWebFingerConfig(String clientId) throws IOException List clientConfig = webFingerProperties.getWebFinger().stream().filter(webFingerConfig -> webFingerConfig.getClientId().equalsIgnoreCase(clientId)) - .collect(Collectors.toList()); + .toList(); // update the response with stored configuration if any if (!clientConfig.isEmpty()) { List links = clientConfig.stream().map(webFingerConfig -> new WebFingerResponse.Link(webFingerConfig.getWellKnown())) - .collect(Collectors.toList()); + .toList(); response.setLinks(links); } return response; diff --git a/zaas-service/src/main/resources/application.yml b/zaas-service/src/main/resources/application.yml index 9ba16833d7..6383df8bf0 100644 --- a/zaas-service/src/main/resources/application.yml +++ b/zaas-service/src/main/resources/application.yml @@ -1,4 +1,5 @@ logging: + config: classpath:logback-zaas.xml level: ROOT: INFO org.zowe.apiml: INFO @@ -16,6 +17,7 @@ logging: org.ehcache: WARN org.springframework.security.config.annotation.web.builders.WebSecurity: ERROR org.springframework.cloud.client.loadbalancer.reactive.[ReactorLoadBalancerClientAutoConfiguration$ReactorLoadBalancerClientRibbonWarnLogger]: ERROR + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: ERROR # New Config org.apache: WARN #org.apache.catalina, org.apache.coyote, org.apache.tomcat @@ -99,6 +101,9 @@ spring: client: hostname: ${apiml.service.hostname} ipAddress: ${apiml.service.ipAddress} + gateway: + mvc.enabled: false + enabled: false mvc: throw-exception-if-no-handler-found: false # to suppress NoHandlerFoundException: No handler found for GET /error, we already provide error handling for requests log-resolved-exception: false # Suppress useless logs from AbstractHandlerExceptionResolver @@ -110,6 +115,7 @@ spring: main: banner-mode: ${apiml.banner:"off"} allow-circular-references: true + web-application-type: servlet springdoc: writer-with-order-by-keys: true @@ -214,8 +220,10 @@ logging: ROOT: INFO org.zowe.apiml: DEBUG org.springframework: INFO + org.springframework.context.support.[PostProcessorRegistrationDelegate$BeanPostProcessorChecker]: DEBUG org.apache: INFO org.apache.http: DEBUG + org.apache.tomcat.util.net: DEBUG com.netflix: DEBUG org.hibernate: INFO org.springframework.web.servlet.PageNotFound: WARN @@ -223,7 +231,7 @@ logging: org.ehcache: DEBUG org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter: INFO com.netflix.discovery.shared.transport.decorator: DEBUG - javax.net.ssl: INFO + javax.net.ssl: ERROR --- spring.config.activate.on-profile: diag diff --git a/zaas-service/src/main/resources/logback.xml b/zaas-service/src/main/resources/logback-zaas.xml similarity index 95% rename from zaas-service/src/main/resources/logback.xml rename to zaas-service/src/main/resources/logback-zaas.xml index 41c7f59f35..cd5430a296 100644 --- a/zaas-service/src/main/resources/logback.xml +++ b/zaas-service/src/main/resources/logback-zaas.xml @@ -15,7 +15,7 @@ - + diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/cache/CachingServiceClientTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/cache/CachingServiceClientTest.java index 656025c819..9bcaa1f7d3 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/cache/CachingServiceClientTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/cache/CachingServiceClientTest.java @@ -162,7 +162,7 @@ void whenClientReturnsEmptyBody_thenReturnNull() throws CachingServiceClientExce when(response.getBody()).thenReturn(responseBody); when(response.getStatusCode()).thenReturn(HttpStatus.OK); Map> parsedResponseBody = underTest.readAllMaps(); - assertNull(parsedResponseBody); + assertTrue(parsedResponseBody.isEmpty()); } @Test @@ -176,7 +176,7 @@ void whenResponseBodyIsNull_thenReturnNull() throws CachingServiceClientExceptio when(response.getBody()).thenReturn(null); when(response.getStatusCode()).thenReturn(HttpStatus.OK); Map> parsedResponseBody = underTest.readAllMaps(); - assertNull(parsedResponseBody); + assertTrue(parsedResponseBody.isEmpty()); } } diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/config/SwaggerConfigTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/config/SwaggerConfigTest.java new file mode 100644 index 0000000000..65f67fe5a6 --- /dev/null +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/config/SwaggerConfigTest.java @@ -0,0 +1,83 @@ +/* + * 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. + */ + +package org.zowe.apiml.zaas.config; + +import io.swagger.v3.oas.models.OpenAPI; +import io.swagger.v3.parser.OpenAPIV3Parser; +import org.junit.jupiter.api.Test; +import org.springframework.test.util.ReflectionTestUtils; + +import java.io.IOException; +import java.net.URI; +import java.util.ArrayList; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +class SwaggerConfigTest { + + private final SwaggerConfig swaggerConfig = new SwaggerConfig(); + + private final String DUMMY_OPENAPI = + //language=JSON + """ + { + "openapi": "3.0.0", + "paths": {}, + "components": { + "schemas": { } + } + } + """; + + @Test + void servletEndpointsCustomizer() throws IOException { + swaggerConfig.initServletEndpointDocLocation(); + var openApi = new OpenAPIV3Parser().readContents(DUMMY_OPENAPI).getOpenAPI(); + swaggerConfig.servletEndpoints().customise(openApi); + assertFalse(openApi.getPaths().isEmpty()); + assertFalse(openApi.getComponents().getSchemas().isEmpty()); + assertNotNull(openApi.getTags()); + } + + //TODO consider create en exception in Sonar instead + @Test + void servletEndpointsCustomizer_works_tagsNotNull() throws IOException { + swaggerConfig.initServletEndpointDocLocation(); + var openApi = new OpenAPIV3Parser().readContents(DUMMY_OPENAPI).getOpenAPI(); + openApi.setTags(new ArrayList<>()); + swaggerConfig.servletEndpoints().customise(openApi); + assertFalse(openApi.getPaths().isEmpty()); + assertFalse(openApi.getComponents().getSchemas().isEmpty()); + assertNotNull(openApi.getTags()); + } + + //TODO consider create en exception in Sonar instead + @Test + void servletEndpointCustomizer_doesNotFail_whenOpenApiParserReturnsNull() { + var servletEndpointDocLocationMock = mock(URI.class); + ReflectionTestUtils.setField(swaggerConfig, "servletEndpointDocLocation", servletEndpointDocLocationMock); + when(servletEndpointDocLocationMock.toString()).thenReturn(null); + + var openApi = new OpenAPIV3Parser().readContents(DUMMY_OPENAPI).getOpenAPI(); + swaggerConfig.servletEndpoints().customise(openApi); + assertTrue(openApi.getPaths().isEmpty()); + assertTrue(openApi.getComponents().getSchemas().isEmpty()); + assertNull(openApi.getTags()); + } + + //TODO consider create en exception in Sonar instead + @Test + void doNotFailOnNullOpenApi() { + assertDoesNotThrow(() -> ReflectionTestUtils.invokeMethod(swaggerConfig, "customizeSwagger", (OpenAPI) null)); + } +} diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationControllerTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationControllerTest.java deleted file mode 100644 index 70e13dacf9..0000000000 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/AuthConfigValidationControllerTest.java +++ /dev/null @@ -1,98 +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. - */ - -package org.zowe.apiml.zaas.controllers; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.http.HttpStatusCode; -import org.springframework.http.ResponseEntity; -import org.springframework.security.core.Authentication; -import org.zowe.apiml.zaas.security.login.Providers; -import org.zowe.apiml.zaas.security.service.TokenCreationService; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.mockito.Mockito.when; - -@ExtendWith(MockitoExtension.class) -public class AuthConfigValidationControllerTest { - - @InjectMocks - private AuthConfigValidationController authConfigValidationController; - - @Mock - private TokenCreationService tokenCreationService; - - @Mock - private Providers providers; - - @Mock - private Authentication authentication; - - @Nested - class GivenRequestToValidateAuthConfig { - - @Nested - class GivenUnauthenticated { - - @BeforeEach - void setUp() { - when(authentication.getPrincipal()).thenReturn(null); - } - - @Test - void whenZosmf_thenConflict() { - when(providers.isZosfmUsed()).thenReturn(Boolean.TRUE); - ResponseEntity entity = authConfigValidationController.validateAuth(authentication); - assertEquals(HttpStatusCode.valueOf(409), entity.getStatusCode()); - assertEquals("apimlAuthenticationToken cookie was not provided and a PassTicket cannot be generated with the z/OSMF provider", entity.getBody()); - } - - @Test - void whenNotZosmf_thenTokenOk() { - when(providers.isZosfmUsed()).thenReturn(Boolean.FALSE); - when(tokenCreationService.createJwtTokenWithoutCredentials("validate")).thenReturn("token"); - ResponseEntity entity = authConfigValidationController.validateAuth(authentication); - assertEquals(HttpStatusCode.valueOf(200), entity.getStatusCode()); - } - - @Test - void whenNotZosmf_thenTokenFail() { - when(providers.isZosfmUsed()).thenReturn(Boolean.FALSE); - when(tokenCreationService.createJwtTokenWithoutCredentials("validate")).thenThrow(new RuntimeException()); - ResponseEntity entity = authConfigValidationController.validateAuth(authentication); - assertEquals(HttpStatusCode.valueOf(409), entity.getStatusCode()); - } - } - - @Nested - class GivenAuthenticated { - - @BeforeEach - void setUp() { - when(authentication.getPrincipal()).thenReturn(new Object()); - } - - @Test - void whenAuthConfigValidate_thenOk() { - ResponseEntity entity = authConfigValidationController.validateAuth(authentication); - assertEquals(HttpStatusCode.valueOf(200), entity.getStatusCode()); - } - - } - - } - -} diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/SafResourceAccessControllerTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/SafResourceAccessControllerTest.java index dd0c87719d..f14492c918 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/SafResourceAccessControllerTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/controllers/SafResourceAccessControllerTest.java @@ -36,20 +36,27 @@ class SafResourceAccessControllerTest { private MockMvc mockMvc; - private SafResourceAccessVerifying safResourceAccessVerifying = mock(SafResourceAccessVerifying.class); + private final SafResourceAccessVerifying safResourceAccessVerifying = mock(SafResourceAccessVerifying.class); MessageService messageService = new YamlMessageService("/zaas-messages.yml"); - private final String validRequestBody = "{\n" + - "\t\"resourceClass\": \"ZOWE\",\n" + - "\t\"resourceName\": \"APIML.SERVICES\",\n" + - "\t\"accessLevel\": \"READ\"\n" + - "}"; + private final String validRequestBody = + """ + { + "resourceClass": "ZOWE", + "resourceName": "APIML.SERVICES", + "accessLevel": "READ" + } + """; - private final String invalidRequestBody = "{\n" + - "\t\"resourceClass\": \"ZOWE\",\n" + - "\t\"resourceName\": \"APIML.SERVICES\",\n" + - "\t\"accessLevel\": \"WIPE\"\n" + - "}"; + private final String invalidRequestBody = + """ + { + "resourceClass": "ZOWE", + "resourceClass": "ZOWE" + "resourceName": "APIML.SERVICES" + "accessLevel": "WIPE" + } + """; @BeforeEach void setUp() { diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/ExternalMapperTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/ExternalMapperTest.java index 27ce3fd834..95471bb868 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/ExternalMapperTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/ExternalMapperTest.java @@ -23,21 +23,16 @@ import org.junit.jupiter.params.provider.NullSource; import org.junit.jupiter.params.provider.ValueSource; import org.zowe.apiml.security.common.config.AuthConfigurationProperties; +import org.zowe.apiml.util.HttpClientMockHelper; import org.zowe.apiml.zaas.security.mapping.model.MapperResponse; import org.zowe.apiml.zaas.security.service.TokenCreationService; import java.io.ByteArrayInputStream; import java.io.IOException; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.mockito.ArgumentMatchers.any; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; +import static org.mockito.Mockito.*; class ExternalMapperTest { @@ -57,11 +52,11 @@ public TestExternalMapper(String mapperUrl, String mapperUser, CloseableHttpClie @BeforeEach - void setup() throws IOException { + void setup() { closeableHttpClient = mock(CloseableHttpClient.class); httpResponse = mock(CloseableHttpResponse.class); when(httpResponse.getCode()).thenReturn(HttpStatus.SC_OK); - when(closeableHttpClient.execute(any())).thenReturn(httpResponse); + HttpClientMockHelper.mockExecuteWithResponse(closeableHttpClient, httpResponse); tokenCreationService = mock(TokenCreationService.class); when(tokenCreationService.createJwtTokenWithoutCredentials(anyString())).thenReturn("validJwtToken"); responseEntity = mock(HttpEntity.class); diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/NativeMapperTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/NativeMapperTest.java index 267a26beec..5a71cc5e03 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/NativeMapperTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/NativeMapperTest.java @@ -59,10 +59,12 @@ static class MockUserMapper extends UserMapper { public MockUserMapper() { } + @Override public CertificateResponse getUserIDForCertificate(byte[] var1) { return new CertificateResponse(MF_USER, 0, 0, 0); } + @Override public MapperResponse getUserIDForDN(String var1, String var2) { return new MapperResponse(MF_USER, 0, 0, 0, 0); } diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/OIDCExternalMapperTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/OIDCExternalMapperTest.java index 7bf00dfb7f..51843c2b94 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/OIDCExternalMapperTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/mapping/OIDCExternalMapperTest.java @@ -25,6 +25,7 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.zowe.apiml.util.HttpClientMockHelper; import org.zowe.apiml.zaas.security.service.TokenCreationService; import org.zowe.apiml.zaas.security.service.schema.source.JwtAuthSource; import org.zowe.apiml.zaas.security.service.schema.source.OIDCAuthSource; @@ -97,15 +98,15 @@ void setup() { class GivenIdentityMappingExists { @BeforeEach - void setup() throws IOException { + void setup() { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getCode()).thenReturn(HttpStatus.SC_OK); when(response.getEntity()).thenReturn(responseEntity); - when(httpClient.execute(any())).thenReturn(response); + HttpClientMockHelper.mockExecuteWithResponse(httpClient, response); } @Test - void thenZosUserIsReturned() throws Exception { + void thenZosUserIsReturned() { String userId = oidcExternalMapper.mapToMainframeUserId(authSource); assertEquals(ZOSUSER, userId); } @@ -122,7 +123,7 @@ void setup() throws IOException { CloseableHttpResponse response = mock(CloseableHttpResponse.class); when(response.getCode()).thenReturn(HttpStatus.SC_OK); when(response.getEntity()).thenReturn(responseEntity); - when(httpClient.execute(any())).thenReturn(response); + HttpClientMockHelper.mockExecuteWithResponse(httpClient, response); } @Test diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/query/SuccessfulQueryHandlerTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/query/SuccessfulQueryHandlerTest.java index 2e5972814e..00bf4bda41 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/query/SuccessfulQueryHandlerTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/query/SuccessfulQueryHandlerTest.java @@ -98,17 +98,17 @@ void setup() { authenticationService, tokenCreationService, new ArrayList<>()); - AuthenticationService authenticationService = new AuthenticationService( + AuthenticationService authService = new AuthenticationService( applicationContext, authConfigurationProperties, jwtSecurityInitializer, zosmfService, eurekaClient, restTemplate, cacheManager, new CacheUtils() ); when(jwtSecurityInitializer.getSignatureAlgorithm()).thenReturn(algorithm); when(jwtSecurityInitializer.getJwtSecret()).thenReturn(privateKey); - jwtToken = authenticationService.createJwtToken(USER, DOMAIN, LTPA); + jwtToken = authService.createJwtToken(USER, DOMAIN, LTPA); ObjectMapper mapper = new ObjectMapper(); - successfulQueryHandler = new SuccessfulQueryHandler(mapper, authenticationService); + successfulQueryHandler = new SuccessfulQueryHandler(mapper, authService); } @Test diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/JwtSecurityTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/JwtSecurityTest.java index 83c715667d..b5bff8960b 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/JwtSecurityTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/JwtSecurityTest.java @@ -35,7 +35,7 @@ @ExtendWith(SpringExtension.class) class JwtSecurityTest { - public static final String keyAlias = "localhost"; + public static final String KEY_ALIAS = "localhost"; private JwtSecurity underTest; private Providers providers; @@ -54,7 +54,7 @@ void setUp() { class WhenInitializedWithValidJWT { @BeforeEach void setUp() { - underTest = new JwtSecurity(providers, keyAlias, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); + underTest = new JwtSecurity(providers, KEY_ALIAS, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); } @Test @@ -124,7 +124,7 @@ class WhenZosmfNotOnlineAndAvailableAtStart { @BeforeEach void setUp() { - underTest = new JwtSecurity(providers, keyAlias, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); + underTest = new JwtSecurity(providers, KEY_ALIAS, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); } @Test @@ -192,7 +192,7 @@ void givenCacheRefreshedEvents_thenCheckZosmfForEach() { class GetJwkPublicKey { @BeforeEach void setUp() { - underTest = new JwtSecurity(providers, keyAlias, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); + underTest = new JwtSecurity(providers, KEY_ALIAS, "../keystore/localhost/localhost.keystore.p12", "password".toCharArray(), "password".toCharArray(), eurekaClient); when(providers.isZosfmUsed()).thenReturn(false); } diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/JwtAuthSourceServiceTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/JwtAuthSourceServiceTest.java index 5a82af24df..9e51393fe6 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/JwtAuthSourceServiceTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/JwtAuthSourceServiceTest.java @@ -10,21 +10,21 @@ package org.zowe.apiml.zaas.security.service.schema.source; +import jakarta.servlet.http.HttpServletRequest; import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.zowe.apiml.zaas.security.service.AuthenticationService; -import org.zowe.apiml.zaas.security.service.schema.source.AuthSource.Origin; -import org.zowe.apiml.zaas.security.service.schema.source.AuthSource.Parsed; import org.zowe.apiml.security.common.token.QueryResponse; import org.zowe.apiml.security.common.token.QueryResponse.Source; import org.zowe.apiml.security.common.token.TokenAuthentication; import org.zowe.apiml.security.common.token.TokenExpireException; import org.zowe.apiml.security.common.token.TokenNotValidException; +import org.zowe.apiml.zaas.security.service.AuthenticationService; +import org.zowe.apiml.zaas.security.service.schema.source.AuthSource.Origin; +import org.zowe.apiml.zaas.security.service.schema.source.AuthSource.Parsed; -import jakarta.servlet.http.HttpServletRequest; import java.util.Collections; import java.util.Date; import java.util.Optional; @@ -45,13 +45,13 @@ class JwtAuthSourceServiceTest { private JwtAuthSourceService serviceUnderTest; private final String token = "jwtToken"; - private JwtAuthSource authSource; + private JwtAuthSource jwtAuthSource; private TokenAuthentication tokenAuthentication; private Parsed expectedParsedSource; @BeforeEach public void setup() { - authSource = new JwtAuthSource("jwtToken"); + jwtAuthSource = new JwtAuthSource("jwtToken"); tokenAuthentication = TokenAuthentication.createAuthenticated("user", token); expectedParsedSource = new ParsedTokenAuthSource("user", new Date(111), new Date(222), Origin.ZOSMF); } @@ -65,7 +65,7 @@ void givenZosmfTokenInRequest_thenAuthSourceIsPresent() { verify(authenticationService, times(1)).getJwtTokenFromRequest(request); Assertions.assertTrue(authSource.isPresent()); - Assertions.assertTrue(authSource.get() instanceof JwtAuthSource); + Assertions.assertInstanceOf(JwtAuthSource.class, authSource.get()); Assertions.assertEquals(token, authSource.get().getRawSource()); } @@ -78,7 +78,7 @@ void givenZoweTokenInRequest_thenAuthSourceIsPresent() { verify(authenticationService, times(1)).getJwtTokenFromRequest(request); Assertions.assertTrue(authSource.isPresent()); - Assertions.assertTrue(authSource.get() instanceof JwtAuthSource); + Assertions.assertInstanceOf(JwtAuthSource.class, authSource.get()); Assertions.assertEquals(token, authSource.get().getRawSource()); } @@ -105,11 +105,11 @@ void givenNoTokenInRequest_thenAuthSourceIsPresent() { @Test void givenInvalidAuthSource_thenAuthSourceIsInvalid() { - TokenAuthentication tokenAuthentication = new TokenAuthentication("user"); - tokenAuthentication.setAuthenticated(false); - when(authenticationService.validateJwtToken(anyString())).thenReturn(tokenAuthentication); + TokenAuthentication tokenAuth = new TokenAuthentication("user"); + tokenAuth.setAuthenticated(false); + when(authenticationService.validateJwtToken(anyString())).thenReturn(tokenAuth); - Assertions.assertFalse(serviceUnderTest.isValid(authSource)); + Assertions.assertFalse(serviceUnderTest.isValid(jwtAuthSource)); verify(authenticationService, times(1)).validateJwtToken(token); } @@ -190,7 +190,7 @@ class GivenValidAuthSource { void thenIsValid() { when(authenticationService.validateJwtToken(anyString())).thenReturn(tokenAuthentication); - Assertions.assertTrue(serviceUnderTest.isValid(authSource)); + Assertions.assertTrue(serviceUnderTest.isValid(jwtAuthSource)); verify(authenticationService, times(1)).validateJwtToken(token); } @@ -198,7 +198,7 @@ void thenIsValid() { void thenParseCorrectly() { when(authenticationService.parseJwtToken(anyString())).thenReturn(new QueryResponse("domain", "user", new Date(111), new Date(222), "issuer", Collections.emptyList(), Source.ZOSMF)); - Parsed parsedSource = serviceUnderTest.parse(authSource); + Parsed parsedSource = serviceUnderTest.parse(jwtAuthSource); verify(authenticationService, times(1)).parseJwtToken(token); Assertions.assertNotNull(parsedSource); @@ -210,7 +210,7 @@ void thenLtpaGenerated() { String ltpa = "ltpaToken"; when(authenticationService.getLtpaTokenWithValidation(anyString())).thenReturn(ltpa); - Assertions.assertEquals(ltpa, serviceUnderTest.getLtpaToken(authSource)); + Assertions.assertEquals(ltpa, serviceUnderTest.getLtpaToken(jwtAuthSource)); verify(authenticationService, times(1)).getLtpaTokenWithValidation(token); } } @@ -223,7 +223,7 @@ class GivenTokenNotValidException { void whenIsValid_thenThrow() { when(authenticationService.validateJwtToken(anyString())).thenThrow(exception); - assertThrows(TokenNotValidException.class, () -> serviceUnderTest.isValid(authSource)); + assertThrows(TokenNotValidException.class, () -> serviceUnderTest.isValid(jwtAuthSource)); verify(authenticationService, times(1)).validateJwtToken(token); } @@ -231,7 +231,7 @@ void whenIsValid_thenThrow() { void whenParse_thenThrow() { when(authenticationService.parseJwtToken(anyString())).thenThrow(exception); - assertThrows(TokenNotValidException.class, () -> serviceUnderTest.parse(authSource)); + assertThrows(TokenNotValidException.class, () -> serviceUnderTest.parse(jwtAuthSource)); verify(authenticationService, times(1)).parseJwtToken(token); } @@ -239,7 +239,7 @@ void whenParse_thenThrow() { void whenGetLtpa_thenThrow() { when(authenticationService.getLtpaTokenWithValidation(anyString())).thenThrow(exception); - assertThrows(TokenNotValidException.class, () -> serviceUnderTest.getLtpaToken(authSource)); + assertThrows(TokenNotValidException.class, () -> serviceUnderTest.getLtpaToken(jwtAuthSource)); verify(authenticationService, times(1)).getLtpaTokenWithValidation(token); } @@ -261,7 +261,7 @@ class GivenTokenExpireException { void whenIsValid_thenThrow() { when(authenticationService.validateJwtToken(anyString())).thenThrow(exception); - assertThrows(TokenExpireException.class, () -> serviceUnderTest.isValid(authSource)); + assertThrows(TokenExpireException.class, () -> serviceUnderTest.isValid(jwtAuthSource)); verify(authenticationService, times(1)).validateJwtToken("jwtToken"); } @@ -269,7 +269,7 @@ void whenIsValid_thenThrow() { void whenParse_thenThrow() { when(authenticationService.parseJwtToken(anyString())).thenThrow(exception); - assertThrows(TokenExpireException.class, () -> serviceUnderTest.parse(authSource)); + assertThrows(TokenExpireException.class, () -> serviceUnderTest.parse(jwtAuthSource)); verify(authenticationService, times(1)).parseJwtToken(token); } @@ -277,7 +277,7 @@ void whenParse_thenThrow() { void whenGetLtpa_thenThrow() { when(authenticationService.getLtpaTokenWithValidation(anyString())).thenThrow(exception); - assertThrows(TokenExpireException.class, () -> serviceUnderTest.getLtpaToken(authSource)); + assertThrows(TokenExpireException.class, () -> serviceUnderTest.getLtpaToken(jwtAuthSource)); verify(authenticationService, times(1)).getLtpaTokenWithValidation(token); } diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/PATAuthSourceServiceTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/PATAuthSourceServiceTest.java index 8e4da12463..f4dfb878a4 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/PATAuthSourceServiceTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/schema/source/PATAuthSourceServiceTest.java @@ -55,7 +55,7 @@ void setUp() { @Test void returnPATSourceMapper() { - assertTrue(patAuthSourceService.getMapper().apply("token") instanceof PATAuthSource); + assertInstanceOf(PATAuthSource.class, patAuthSourceService.getMapper().apply("token")); } @Nested @@ -115,7 +115,6 @@ class GivenInvalidTokenTest { @Test void whenExceptionIsThrown_thenReturnTokenInvalid() { String serviceId = "service3"; - //when(context.get(SERVICE_ID_KEY)).thenReturn(serviceId); when(tokenProvider.isValidForScopes(TOKEN, serviceId)).thenThrow(new RuntimeException()); PATAuthSource authSource = new PATAuthSource(TOKEN); diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProviderTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProviderTest.java index 0ba781d62b..3ee1a4e086 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProviderTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/ApimlAccessTokenProviderTest.java @@ -19,19 +19,22 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.MethodSource; + +import org.mockito.MockedStatic; +import org.mockito.Mockito; +import org.zowe.apiml.models.AccessTokenContainer; +import org.zowe.apiml.security.common.token.QueryResponse; import org.zowe.apiml.zaas.cache.CachingServiceClient; import org.zowe.apiml.zaas.cache.CachingServiceClientException; import org.zowe.apiml.zaas.security.service.AuthenticationService; -import org.zowe.apiml.models.AccessTokenContainer; -import org.zowe.apiml.security.common.token.QueryResponse; +import java.security.NoSuchAlgorithmException; +import java.security.SecureRandom; import java.util.*; import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.*; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; class ApimlAccessTokenProviderTest { @@ -42,12 +45,12 @@ class ApimlAccessTokenProviderTest { private static String SCOPED_TOKEN; private static String TOKEN_WITHOUT_SCOPES; - Date issued = new Date(System.currentTimeMillis() - 100000L); - QueryResponse queryResponseTokenWithScopes = new QueryResponse(null, "user", issued, new Date(), "issuer", Arrays.asList("gateway", "discovery"), QueryResponse.Source.ZOWE_PAT); - QueryResponse queryResponseWithoutScopes = new QueryResponse(null, "user", issued, new Date(), "issuer", Collections.emptyList(), QueryResponse.Source.ZOWE_PAT); + Date issuedDate = new Date(System.currentTimeMillis() - 100000L); + QueryResponse queryResponseTokenWithScopes = new QueryResponse(null, "user", issuedDate, new Date(), "issuer", Arrays.asList("gateway", "discovery"), QueryResponse.Source.ZOWE_PAT); + QueryResponse queryResponseWithoutScopes = new QueryResponse(null, "user", issuedDate, new Date(), "issuer", Collections.emptyList(), QueryResponse.Source.ZOWE_PAT); @BeforeEach - void setup() throws CachingServiceClientException { + void setup() throws CachingServiceClientException,SecureTokenInitializationException { cachingServiceClient = mock(CachingServiceClient.class); as = mock(AuthenticationService.class); when(cachingServiceClient.read("salt")).thenReturn(new CachingServiceClient.KeyValue("salt", new String(ApimlAccessTokenProvider.generateSalt()))); @@ -121,6 +124,37 @@ void givenSaltNotAlreadyInCache_thenGenerateAndStoreNew() throws CachingServiceC assertNotNull(salt); } + @Test + void givenSaltIsInvalid_thenThrowException() throws RuntimeException { + + try (MockedStatic apimlAccessTokenProviderMock = Mockito.mockStatic(ApimlAccessTokenProvider.class)) { + apimlAccessTokenProviderMock.when(() -> ApimlAccessTokenProvider.generateSalt()).thenThrow(new SecureTokenInitializationException(new Throwable("cause"))); + assertThrows(SecureTokenInitializationException.class, () -> ApimlAccessTokenProvider.generateSalt()); + } + } + + @Test + void givenNominalCase_thenReturnSaltSuccessfully() throws CachingServiceClientException { + + try (MockedStatic mock = Mockito.mockStatic(ApimlAccessTokenProvider.class)) { + byte[] expectedSalt = new byte[24]; + mock.when(ApimlAccessTokenProvider::generateSalt).thenReturn(expectedSalt); + + byte[] actualSalt = ApimlAccessTokenProvider.generateSalt(); + assertNotNull(actualSalt); + assertEquals(expectedSalt.length, actualSalt.length); + } + } + @Test + void given_whenSecureRandomThrowsNoSuchAlgorithmException_thenThrowSecureTokenInitializationException() { + + try (MockedStatic mockedSecureRandom = Mockito.mockStatic(SecureRandom.class)) { + mockedSecureRandom.when(SecureRandom::getInstanceStrong).thenThrow(new NoSuchAlgorithmException()); + + assertThrows(SecureTokenInitializationException.class, () -> ApimlAccessTokenProvider.generateSalt()); + } + } + @Test void givenDifferentToken_returnNotInvalidated() throws Exception { String differentToken = "eyJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwiZG9tIjoiRHVtbXkgcHJvdmlkZXIiLCJpYXQiOjE2NTQ1MzAwMDUsImV4cCI6MTY1NDU1ODgwNSwiaXNzIjoiQVBJTUwiLCJqdGkiOiIwYTllNzAyMS1jYzY2LTQzMDMtYTc4YS0wZGQwMWM3MjYyZjkifQ.HNfmAzw_bsKVrft5a527LaF9zsBMkfZK5I95mRmdftmRtI9dQNEFQR4Eg10FiBP53asixz6vmereJGKV04uSZIJzAKOpRk-NlGrZ06UZ3cTCBaLmB1l2HYnrAGkWJ8gCaAAOxRN2Dy4LIa_2UrtT-87DfU1T0OblgUdqfgf1_WKw0JIl6uMjdsJrSKdP61GeacFuaGQGxxZBRR7r9D5mxdVLQaHAjzjK89ZqZuQP04jV1BR-0OnFNA84XsQdWG61dYbWDMDkjPcp-nFK65w5X6GLO0BKFHWn4vSIQMKLEb6A9j7ym9N7pAXdt-eXCdLRiHHGQDjYcNSh_zRHtXwwkdA"; @@ -184,6 +218,13 @@ void givenScopedToken_whenScopeIsListed_thenReturnValid() { assertTrue(accessTokenProvider.isValidForScopes(SCOPED_TOKEN, "gateway")); } + @Test + void givenNoTimestamp_thenUserSystemTimeToInvalidateAllTokensForUser() { + String userId = "user"; + accessTokenProvider.invalidateAllTokensForUser(userId, 0); + verify(cachingServiceClient, times(1)).appendList(eq(ApimlAccessTokenProvider.INVALID_USERS_KEY), any()); + } + static Stream invalidScopes() { return Stream.of("invalidService", "", null); } diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWKTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWKTest.java index 9bd164b3f2..55399ac62a 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWKTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/OIDCTokenProviderJWKTest.java @@ -19,9 +19,6 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.junit.jupiter.params.ParameterizedTest; -import org.junit.jupiter.params.provider.EmptySource; -import org.junit.jupiter.params.provider.NullSource; import org.mockito.MockedStatic; import org.mockito.Mockito; import org.mockito.junit.jupiter.MockitoExtension; @@ -59,8 +56,6 @@ void setup() throws CachingServiceClientException { oidcTokenProviderJwk = new OIDCTokenProviderJWK(new DefaultClock()); ReflectionTestUtils.setField(oidcTokenProviderJwk, "jwkRefreshInterval", 1); ReflectionTestUtils.setField(oidcTokenProviderJwk, "jwksUri", "https://jwksurl"); - oidcTokenProviderJwk.clientId = "client_id"; - oidcTokenProviderJwk.clientSecret = "client_secret"; } @Nested @@ -164,26 +159,6 @@ void whenTokenIsEmpty_thenReturnInvalid() { } } - @Nested - class GivenInvalidConfiguration { - - @ParameterizedTest - @NullSource - @EmptySource - void whenInvalidClientId_thenReturnInvalid(String id) { - oidcTokenProviderJwk.clientId = id; - assertFalse(oidcTokenProviderJwk.isValid(TOKEN)); - } - - @ParameterizedTest - @NullSource - @EmptySource - void whenInvalidClientSecret_thenReturnInvalid(String secret) { - oidcTokenProviderJwk.clientSecret = secret; - assertFalse(oidcTokenProviderJwk.isValid(TOKEN)); - } - } - @Nested class JwksUriLoad { diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationExceptionTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationExceptionTest.java new file mode 100644 index 0000000000..2279890f34 --- /dev/null +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/token/SecureTokenInitializationExceptionTest.java @@ -0,0 +1,28 @@ +/* + * 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. + */ + +package org.zowe.apiml.zaas.security.service.token; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class SecureTokenInitializationExceptionTest { + + @Nested + class GivenExceptionCause { + @Test + void thenReturnMessage() { + SecureTokenInitializationException exception = new SecureTokenInitializationException(new Throwable("cause")); + assertEquals("cause", exception.getCause().getMessage()); + } + } +} diff --git a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/zosmf/ZosmfServiceTest.java b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/zosmf/ZosmfServiceTest.java index 1edf7081cf..2b068692f6 100644 --- a/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/zosmf/ZosmfServiceTest.java +++ b/zaas-service/src/test/java/org/zowe/apiml/zaas/security/service/zosmf/ZosmfServiceTest.java @@ -16,7 +16,6 @@ import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.core.Appender; import com.fasterxml.jackson.databind.ObjectMapper; -import org.springframework.cloud.client.discovery.DiscoveryClient; import com.nimbusds.jose.jwk.JWKSet; import org.hamcrest.collection.IsMapContaining; import org.json.JSONException; @@ -26,35 +25,19 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.ArgumentCaptor; -import org.mockito.Captor; -import org.mockito.Mock; -import org.mockito.MockedStatic; -import org.mockito.Mockito; +import org.mockito.*; import org.mockito.junit.jupiter.MockitoExtension; import org.skyscreamer.jsonassert.JSONAssert; import org.slf4j.LoggerFactory; +import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.context.ApplicationContext; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.http.ResponseEntity; +import org.springframework.http.*; import org.springframework.security.authentication.AuthenticationServiceException; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; import org.springframework.test.util.ReflectionTestUtils; -import org.springframework.web.client.HttpClientErrorException; -import org.springframework.web.client.HttpServerErrorException; -import org.springframework.web.client.ResourceAccessException; -import org.springframework.web.client.RestClientException; -import org.springframework.web.client.RestTemplate; -import org.zowe.apiml.zaas.security.service.AuthenticationService; -import org.zowe.apiml.zaas.security.service.TokenCreationService; -import org.zowe.apiml.zaas.security.service.schema.source.AuthSource; -import org.zowe.apiml.zaas.security.service.schema.source.ParsedTokenAuthSource; +import org.springframework.web.client.*; import org.zowe.apiml.message.log.ApimlLogger; import org.zowe.apiml.security.common.config.AuthConfigurationProperties; import org.zowe.apiml.security.common.error.ServiceNotAccessibleException; @@ -62,6 +45,10 @@ import org.zowe.apiml.security.common.login.LoginRequest; import org.zowe.apiml.security.common.token.TokenNotValidException; import org.zowe.apiml.zaas.ZaasTokenResponse; +import org.zowe.apiml.zaas.security.service.AuthenticationService; +import org.zowe.apiml.zaas.security.service.TokenCreationService; +import org.zowe.apiml.zaas.security.service.schema.source.AuthSource; +import org.zowe.apiml.zaas.security.service.schema.source.ParsedTokenAuthSource; import javax.management.ServiceNotFoundException; import javax.net.ssl.SSLHandshakeException; @@ -69,23 +56,12 @@ import java.net.URL; import java.nio.charset.Charset; import java.text.ParseException; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.is; -import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; -import static org.junit.jupiter.api.Assertions.assertNull; -import static org.junit.jupiter.api.Assertions.assertThrows; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.Mockito.*; import static org.zowe.apiml.zaas.security.service.zosmf.ZosmfService.TokenType.JWT; import static org.zowe.apiml.zaas.security.service.zosmf.ZosmfService.TokenType.LTPA; @@ -304,12 +280,11 @@ class WhenChangingPassword { @BeforeEach void setUp() { this.zosmfService = getZosmfServiceSpy(); + when(authentication.getCredentials()).thenReturn(loginRequest); } @Test void thenChangePasswordWithSuccess() { - Authentication authentication = mock(UsernamePasswordAuthenticationToken.class); - ResponseEntity responseEntity = new ResponseEntity<>("{}", null, HttpStatus.OK); doReturn(responseEntity).when(zosmfService).issueChangePasswordRequest(any(), any(), any()); ResponseEntity response = zosmfService.changePassword(authentication); @@ -322,8 +297,6 @@ class WhenClientError { @Test void thenChangePasswordWithClientError() { - when(authentication.getCredentials()).thenReturn(loginRequest); - when(restTemplate.exchange("http://zosmf:1433/zosmf/services/authenticate", HttpMethod.PUT, new HttpEntity<>(new ChangePasswordRequest(loginRequest), requiredHeaders), @@ -335,8 +308,6 @@ void thenChangePasswordWithClientError() { @Test void thenChangePasswordWithUnsupportedZosmf() { - when(authentication.getCredentials()).thenReturn(loginRequest); - when(restTemplate.exchange("http://zosmf:1433/zosmf/services/authenticate", HttpMethod.PUT, new HttpEntity<>(new ChangePasswordRequest(loginRequest), requiredHeaders), @@ -351,8 +322,6 @@ void thenChangePasswordWithUnsupportedZosmf() { class WhenServerError { @Test void thenChangePasswordWithServerError() { - when(authentication.getCredentials()).thenReturn(loginRequest); - when(restTemplate.exchange("http://zosmf:1433/zosmf/services/authenticate", HttpMethod.PUT, new HttpEntity<>(new ChangePasswordRequest(loginRequest), requiredHeaders), @@ -364,8 +333,6 @@ void thenChangePasswordWithServerError() { @Test void thenChangePasswordWithZosmfInternalError() { - when(authentication.getCredentials()).thenReturn(loginRequest); - when(restTemplate.exchange("http://zosmf:1433/zosmf/services/authenticate", HttpMethod.PUT, new HttpEntity<>(new ChangePasswordRequest(loginRequest), requiredHeaders), @@ -377,8 +344,6 @@ void thenChangePasswordWithZosmfInternalError() { @Test void thenChangePasswordWithZosmfValidationError() { - when(authentication.getCredentials()).thenReturn(loginRequest); - when(restTemplate.exchange("http://zosmf:1433/zosmf/services/authenticate", HttpMethod.PUT, new HttpEntity<>(new ChangePasswordRequest(loginRequest), requiredHeaders), @@ -704,18 +669,21 @@ void thenTestInvalidateRuntimeException() { @Nested class WhenReadTokenFromCookie { - private static final String ZOSMF_PUBLIC_KEY_JSON = "{\n" + - " \"keys\": [\n" + - " {\n" + - " \"kty\": \"RSA\",\n" + - " \"e\": \"AQAB\",\n" + - " \"use\": \"sig\",\n" + - " \"kid\": \"ozG_ySMHRsVQFmN1mVBeS-WtCupY1r-K7ewben09IBg\",\n" + - " \"alg\": \"RS256\",\n" + - " \"n\": \"wRdwksGIAR2A4cHsoOsYcGp5AmQl5ZjF5xIPXeyjkaLHmNTMvjixdWso1ecVlVeg_6pIXzMRhmOvmjXjz1PLfI2GD3drmeqsStjISWdDfH_rIQCYc9wYbWIZ3bQ0wFRDaVpZ6iOZ2iNcIevvZQKNw9frJthKSMM52JtsgwrgN--Ub2cKWioU_d52SC2SfDzOdnChqlU7xkqXwKXSUqcGM92A35dJJXkwbZhAHnDy5FST1HqYq27MOLzBkChw1bJQHZtlSqkxcHPxphnnbFKQmwRVUvyC5kfBemX-7Mzp1wDogt5lGvBAf3Eq8rFxaevAke327rM7q2KqO_LDMN2J-Q\"\n" + - " }\n" + - " ]\n" + - "}"; + private static final String ZOSMF_PUBLIC_KEY_JSON = + """ + { + "keys": [ + { + "kty": "RSA", + "e": "AQAB", + "use": "sig", + "kid": "ozG_ySMHRsVQFmN1mVBeS-WtCupY1r-K7ewben09IBg", + "alg": "RS256", + "n": "wRdwksGIAR2A4cHsoOsYcGp5AmQl5ZjF5xIPXeyjkaLHmNTMvjixdWso1ecVlVeg_6pIXzMRhmOvmjXjz1PLfI2GD3drmeqsStjISWdDfH_rIQCYc9wYbWIZ3bQ0wFRDaVpZ6iOZ2iNcIevvZQKNw9frJthKSMM52JtsgwrgN--Ub2cKWioU_d52SC2SfDzOdnChqlU7xkqXwKXSUqcGM92A35dJJXkwbZhAHnDy5FST1HqYq27MOLzBkChw1bJQHZtlSqkxcHPxphnnbFKQmwRVUvyC5kfBemX-7Mzp1wDogt5lGvBAf3Eq8rFxaevAke327rM7q2KqO_LDMN2J-Q" + } + ] + } + """; @Test void thenSuccess() throws JSONException, ParseException { @@ -979,7 +947,7 @@ void givenZoweAuthSourceWithLtpa_thenSameLtpaTokenIsReturned() throws ServiceNot void givenZoweAuthSourceWithoutLtpa_thenNewJwtTokenIsReturned() throws ServiceNotFoundException { AuthSource.Parsed authParsedSource = new ParsedTokenAuthSource(USER, new Date(), new Date(), AuthSource.Origin.ZOWE); - Map tokens = new HashMap() {{ + Map tokens = new HashMap<>() {{ put(JWT, ZOSMF_JWT_TOKEN); }}; when(authenticationService.getLtpaToken(ZOWE_JWT_TOKEN)).thenReturn(null); @@ -995,7 +963,7 @@ void givenZoweAuthSourceWithoutLtpa_thenNewJwtTokenIsReturned() throws ServiceNo void givenOtherAuthSourceAndZosmfProducesJwt_thenNewJwtTokenIsReturned() throws ServiceNotFoundException { AuthSource.Parsed authParsedSource = new ParsedTokenAuthSource(USER, new Date(), new Date(), AuthSource.Origin.OIDC); - Map tokens = new HashMap() {{ + Map tokens = new HashMap<>() {{ put(LTPA, LTPA_TOKEN); put(JWT, ZOSMF_JWT_TOKEN); }}; @@ -1011,7 +979,7 @@ void givenOtherAuthSourceAndZosmfProducesJwt_thenNewJwtTokenIsReturned() throws void givenOtherAuthSourceAndZosmfProducesOnlyLtpa_thenNewLtpaTokenIsReturned() throws ServiceNotFoundException { AuthSource.Parsed authParsedSource = new ParsedTokenAuthSource(USER, new Date(), new Date(), AuthSource.Origin.OIDC); - Map tokens = new HashMap() {{ + Map tokens = new HashMap<>() {{ put(LTPA, LTPA_TOKEN); }}; when(tokenCreationService.createZosmfTokensWithoutCredentials(USER)).thenReturn(tokens); diff --git a/zowe-cli-id-federation-plugin/.eslintrc.js b/zowe-cli-id-federation-plugin/.eslintrc.js deleted file mode 100644 index 917fdb79b8..0000000000 --- a/zowe-cli-id-federation-plugin/.eslintrc.js +++ /dev/null @@ -1,71 +0,0 @@ -module.exports = { - "root": true, - "env": { - "es2021": true, - "node": true - }, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended" - ], - "ignorePatterns": [ - "**/*.js", - "**/*.d.ts" - ], - "overrides": [ - { - "extends": [ - "plugin:jest/recommended" - ], - "files": [ - "**/__tests__/**/*.ts" - ], - "rules": { - "@typescript-eslint/no-magic-numbers": "off", - "jest/expect-expect": ["warn", { - "assertFunctionNames": ["expect*", "**.*expect*"] - }], - "jest/no-conditional-expect": "off", - "jest/no-standalone-expect": "off", - "jest/no-try-expect": "off", - "unused-imports/no-unused-vars": "off" - } - } - ], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": 12, - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint", - "jest", - "license-header", - "unused-imports" - ], - "rules": { - "license-header/header": [ "error", "LICENSE_HEADER" ], - "max-len": ["warn", 150], - "no-console": "error", - "no-multiple-empty-lines": "warn", - "no-trailing-spaces": "warn", - "@typescript-eslint/ban-types": "off", - "@typescript-eslint/comma-dangle": ["warn", "only-multiline"], - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/indent": ["warn", 4], - "@typescript-eslint/no-explicit-any": "off", - "@typescript-eslint/no-inferrable-types": "off", - "@typescript-eslint/no-magic-numbers": ["warn", { - "ignore": [-1, 0, 1, 2], - "ignoreDefaultValues": true, - "ignoreReadonlyClassProperties": true - }], - "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/semi": "warn", - "unused-imports/no-unused-imports": "warn", - "unused-imports/no-unused-vars": ["warn", { - "args": "none" - }] - } -}; diff --git a/zowe-cli-id-federation-plugin/.npmrc b/zowe-cli-id-federation-plugin/.npmrc deleted file mode 100644 index 7465e6b5b8..0000000000 --- a/zowe-cli-id-federation-plugin/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -registry=https://zowe.jfrog.io/artifactory/api/npm/npm-org/ -@zowe:registry=https://zowe.jfrog.io/zowe/api/npm/npm-release/ diff --git a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__scripts__/map_old_profiles.sh b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__scripts__/map_old_profiles.sh deleted file mode 100755 index 30b8ac4f1e..0000000000 --- a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__scripts__/map_old_profiles.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -set -e # fail the script if we get a non zero exit code - -CSV=$1 - -# create old school profiles -cd ../../../../ -zowe profiles create id-federation my_idf --esm ACF2 --system TST1 --registry ldap://zowe.org > /dev/null - -zowe idf map "${CSV}" diff --git a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.integration.test.ts.snap b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.integration.test.ts.snap index 6c80f0c16e..e68d5abff0 100644 --- a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.integration.test.ts.snap +++ b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.integration.test.ts.snap @@ -1,14 +1,18 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`id-federation map command integration tests should fail when arguments are not valid 1`] = ` -"Command Error: +"Unable to perform this operation due to the following problem. Unknown argument: invalidarg Command failed due to improper syntax Did you mean: plugins validate? Command entered: "idf invalidarg" Use "zowe idf --help" to view groups, commands, and options. -Error Details: + +Response From Service +Error: Unknown argument: invalidarg + +Diagnostic Information Unknown argument: invalidarg " `; @@ -38,11 +42,6 @@ Use "zowe idf map --help" to view command description, usage, and options. exports[`id-federation map command integration tests should fail when options are not passed 2`] = `""`; -exports[`id-federation map command integration tests should print the successful creation message from old school profile and other sources 1`] = ` -"'idf_ACF2_TST1.jcl' was created. Review and submit this JCL on the system TST1. -" -`; - exports[`id-federation map command integration tests should print the successful creation message with passed args for ACF2 1`] = ` "'idf_ACF2_TST1.jcl' was created. Review and submit this JCL on the system TST1. " diff --git a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.team.integration.test.ts.snap b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.team.integration.test.ts.snap index 17f5c2c57c..07c80971f3 100644 --- a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.team.integration.test.ts.snap +++ b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/__snapshots__/cli.map.team.integration.test.ts.snap @@ -6,7 +6,7 @@ exports[`id-federation map command integration tests should print the successful `; exports[`id-federation map command integration tests should return command error in case of csv config not found 1`] = ` -"Command Error: +"Unable to perform this operation due to the following problem. The input CSV file does not exist. " `; @@ -17,7 +17,7 @@ exports[`id-federation map command integration tests should return command error "The user name 'Too looooooooooooooooooooooooooooong name' has exceeded maximum length of 32 characters. Identity mapping for the user 'Too looooooooooooooooooooooooooooong name' has not been created. The distributed user ID 'Dist naaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaame' has exceeded maximum length of 246 characters. Identity mapping for the user 'Name' has not been created. The mainframe user ID 'mf_too_long' has exceeded maximum length of 8 characters. Identity mapping for the user 'Name' has not been created. -Command Error: +Unable to perform this operation due to the following problem. Error when trying to create the identity mapping. " `; @@ -37,7 +37,7 @@ exports[`id-federation map command integration tests should return command error `; exports[`id-federation map command integration tests should return command error in case of invalid format csv config 1`] = ` -"Command Error: +"Unable to perform this operation due to the following problem. Invalid CSV format: Invalid Record Length: columns length is 3, got 1 on line 1 " `; diff --git a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/cli.map.integration.test.ts b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/cli.map.integration.test.ts index 19c651a26d..f19b84660b 100644 --- a/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/cli.map.integration.test.ts +++ b/zowe-cli-id-federation-plugin/__tests__/__integration__/cli/map/cli.map.integration.test.ts @@ -10,7 +10,7 @@ import * as fs from "fs"; import * as path from "path"; -import {ITestEnvironment, runCliScript, stripProfileDeprecationMessages, TestEnvironment} from "@zowe/cli-test-utils"; +import {ITestEnvironment, runCliScript, TestEnvironment} from "@zowe/cli-test-utils"; import {ITestPropertiesSchema} from "../../../__src__/environment/doc/ITestPropertiesSchema"; import {Constants} from "../../../../src/api/Constants"; import {expect, describe, it, beforeAll, afterAll} from '@jest/globals'; @@ -56,15 +56,6 @@ describe("id-federation map command integration tests", () => { expect(response.stdout.toString()).toMatchSnapshot(); }); - it("should print the successful creation message from old school profile and other sources", () => { - const response = runCliScript(__dirname + "/__scripts__/map_old_profiles.sh", TEST_ENVIRONMENT, [csv]); - - expect(stripProfileDeprecationMessages(response.stderr)).toBe(""); - expect(response.status).toBe(Constants.OKAY_CODE); - expect(response.stdout.toString()).toContain("idf_ACF2_TST1.jcl' was created. Review and submit this JCL on the system TST1."); - expect(response.stdout.toString()).toMatchSnapshot(); - }); - it("should print the successful creation message with passed args for RACF", () => { const response = runCliScript(__dirname + "/__scripts__/map_with_passed_args.sh", TEST_ENVIRONMENT, [`${TEST_ENVIRONMENT.workingDir}/users.csv`, "RACF", "TST1", "ldap://12.34.56.78:910"]); diff --git a/zowe-cli-id-federation-plugin/__tests__/__system__/cli/map/__snapshots__/cli.map.system.test.ts.snap b/zowe-cli-id-federation-plugin/__tests__/__system__/cli/map/__snapshots__/cli.map.system.test.ts.snap index 2a13d1e8c9..7738098ed1 100644 --- a/zowe-cli-id-federation-plugin/__tests__/__system__/cli/map/__snapshots__/cli.map.system.test.ts.snap +++ b/zowe-cli-id-federation-plugin/__tests__/__system__/cli/map/__snapshots__/cli.map.system.test.ts.snap @@ -91,7 +91,10 @@ exports[`id-federation map system test should display the help 1`] = ` --cert-file (local file path) - The file path to a certificate file to use for authentication + The file path to a certificate file to use for authentication. + + Note: The CLI does not support certificate files that require a password. For + more information, search Troubleshooting PEM Certificates in Zowe Docs. --cert-key-file (local file path) diff --git a/zowe-cli-id-federation-plugin/__tests__/cli/map/Map.handler.test.ts b/zowe-cli-id-federation-plugin/__tests__/cli/map/Map.handler.test.ts index 2ac043aa6b..5338ec4347 100644 --- a/zowe-cli-id-federation-plugin/__tests__/cli/map/Map.handler.test.ts +++ b/zowe-cli-id-federation-plugin/__tests__/cli/map/Map.handler.test.ts @@ -12,7 +12,7 @@ import {ResponseMock} from "../../__src__/ResponseMock"; import {Constants} from "../../../src/api/Constants"; import {expect, jest, describe, it} from '@jest/globals'; // Require the handler and create a new instance -const handlerReq = require("../../../src/cli/map/Map.handler"); +import * as handlerReq from "../../../src/cli/map/Map.handler"; describe("map handler unit tests", () => { @@ -27,6 +27,11 @@ describe("map handler unit tests", () => { try { // Invoke the handler with a full set of mocked arguments and response functions await handler.process({ + definition: undefined, + fullDefinition: undefined, + positionals: [], + profiles: undefined, + stdin: undefined, arguments: { $0: "fake", _: ["fake"], @@ -35,10 +40,12 @@ describe("map handler unit tests", () => { registry: "ldap://host:1234" }, response: { + // @ts-expect-error to suppress the eslint console: { - log: jest.fn((logArgs) => { + log: jest.fn((logArgs: string | Buffer) => { logMessage += " " + logArgs; - }) + return ""; // Ensure the mock returns a string + }) as unknown as (message: string | Buffer, ...values: any[]) => string } } }); @@ -51,12 +58,13 @@ describe("map handler unit tests", () => { }); it("throw an error when file does not exist", async () => { - const handlerReq = require("../../../src/cli/map/Map.handler"); + // const handlerReq = require("../../../src/cli/map/Map.handler"); const handler = new handlerReq.default(); let error; const response = new ResponseMock(); try { + // @ts-expect-error to suppress the eslint await handler.process({ arguments: { $0: "fake", diff --git a/zowe-cli-id-federation-plugin/__tests__/imperative.test.ts b/zowe-cli-id-federation-plugin/__tests__/imperative.test.ts index e3bcb7d69c..7b39b2be18 100644 --- a/zowe-cli-id-federation-plugin/__tests__/imperative.test.ts +++ b/zowe-cli-id-federation-plugin/__tests__/imperative.test.ts @@ -9,15 +9,15 @@ */ import {expect, describe, it} from '@jest/globals'; - +import * as config from "../src/imperative"; describe("imperative config", () => { // Will fail if imperative config object is changed. This is a sanity/protection check to ensure that any // changes to the configuration document are intended. // Removed snapshot due to pluginHealthCheck path varies from machine to machine. it("config should match expected values", () => { - const config = require("../src/imperative"); expect(config.name).toBe("id-federation"); + // @ts-expect-error to disable ESLINT expect(config.pluginHealthCheck).toContain("healthCheck.Handler"); expect(config.pluginSummary).toBe("Zowe CLI Identity Federation plug-in"); expect(config.productDisplayName).toBe("Zowe CLI Identity Federation Plug-in"); diff --git a/zowe-cli-id-federation-plugin/build.gradle b/zowe-cli-id-federation-plugin/build.gradle index dc35892842..534cc826df 100644 --- a/zowe-cli-id-federation-plugin/build.gradle +++ b/zowe-cli-id-federation-plugin/build.gradle @@ -14,6 +14,7 @@ node { nodeProjectDir = file("${project.projectDir}") } +npmInstall.args = ['--registry', 'https://zowe.jfrog.io/artifactory/api/npm/npm-org'] // ================================================= // // Please manage all task dependencies in here and @@ -47,7 +48,7 @@ task npmBuild(type: NpmTask) { description = "Executes npm build" inputs.dir('src').withPathSensitivity(PathSensitivity.RELATIVE) - inputs.file('.eslintrc.js').withPathSensitivity(PathSensitivity.RELATIVE) + inputs.file('eslint.config.mjs').withPathSensitivity(PathSensitivity.RELATIVE) inputs.file('package.json').withPathSensitivity(PathSensitivity.RELATIVE) outputs.dir('lib') diff --git a/zowe-cli-id-federation-plugin/eslint.config.mjs b/zowe-cli-id-federation-plugin/eslint.config.mjs new file mode 100644 index 0000000000..3fe7f62e6a --- /dev/null +++ b/zowe-cli-id-federation-plugin/eslint.config.mjs @@ -0,0 +1,96 @@ +/** + * This program and the accompanying materials are made available and may be used, at your option, under either: + * * Eclipse Public License v2.0, available at https://www.eclipse.org/legal/epl-v20.html, OR + * * Apache License, version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: EPL-2.0 OR Apache-2.0 + * + * Copyright Contributors to the Zowe Project. + */ + +import typescriptEslint from "@typescript-eslint/eslint-plugin"; +import jest from "eslint-plugin-jest"; +import licenseHeader from "eslint-plugin-license-header"; +import unusedImports from "eslint-plugin-unused-imports"; +import globals from "globals"; +import tsParser from "@typescript-eslint/parser"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; +import js from "@eslint/js"; +import { FlatCompat } from "@eslint/eslintrc"; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); +const compat = new FlatCompat({ + baseDirectory: __dirname, + recommendedConfig: js.configs.recommended, + allConfig: js.configs.all +}); + +export default [{ + ignores: ["**/*.js", "**/*.d.ts"], +}, ...compat.extends("eslint:recommended", "plugin:@typescript-eslint/recommended"), { + plugins: { + "@typescript-eslint": typescriptEslint, + jest, + "license-header": licenseHeader, + "unused-imports": unusedImports, + }, + + languageOptions: { + globals: { + ...globals.node, + }, + + parser: tsParser, + ecmaVersion: 12, + sourceType: "module", + }, + + rules: { + "license-header/header": ["error", "LICENSE_HEADER"], + "max-len": ["warn", 150], + "no-console": "error", + "no-multiple-empty-lines": "warn", + "no-trailing-spaces": "warn", + "@typescript-eslint/ban-types": "off", + "comma-dangle": ["warn", "only-multiline"], + "@typescript-eslint/explicit-module-boundary-types": "off", + "indent": ["warn", 4], + "@typescript-eslint/no-explicit-any": "off", + "@typescript-eslint/no-inferrable-types": "off", + + "@typescript-eslint/no-magic-numbers": ["warn", { + ignore: [-1, 0, 1, 2], + ignoreDefaultValues: true, + ignoreReadonlyClassProperties: true, + }], + + "@typescript-eslint/no-unused-vars": "off", + "@typescript-eslint/no-var-requires": "off", + "semi": "warn", + "unused-imports/no-unused-imports": "warn", + + "unused-imports/no-unused-vars": ["warn", { + args: "none", + }], + }, +}, ...compat.extends("plugin:jest/recommended").map(config => ({ + ...config, + files: ["**/__tests__/**/*.ts"], +})), { + files: ["**/__tests__/**/*.ts"], + + rules: { + "@typescript-eslint/no-magic-numbers": "off", + + "jest/expect-expect": ["warn", { + assertFunctionNames: ["expect*", "**.*expect*"], + }], + + "jest/no-conditional-expect": "off", + "jest/no-standalone-expect": "off", + "jest/no-try-expect": "off", + "unused-imports/no-unused-vars": "off", + }, +}]; diff --git a/zowe-cli-id-federation-plugin/npm-shrinkwrap.json b/zowe-cli-id-federation-plugin/package-lock.json similarity index 71% rename from zowe-cli-id-federation-plugin/npm-shrinkwrap.json rename to zowe-cli-id-federation-plugin/package-lock.json index 03a9ad8b15..8a0790796a 100644 --- a/zowe-cli-id-federation-plugin/npm-shrinkwrap.json +++ b/zowe-cli-id-federation-plugin/package-lock.json @@ -12,35 +12,41 @@ "csv-parse": "5.5.6" }, "devDependencies": { - "@types/jest": "29.5.12", - "@types/node": "18.19.48", - "@typescript-eslint/eslint-plugin": "5.62.0", - "@typescript-eslint/parser": "5.62.0", - "@zowe/cli": "7.19.0", - "@zowe/cli-test-utils": "7.29.0", - "@zowe/imperative": "5.27.0", + "@eslint/js": "9.12.0", + "@types/jest": "29.5.13", + "@types/node": "20.16.11", + "@typescript-eslint/eslint-plugin": "8.9.0", + "@typescript-eslint/parser": "8.9.0", + "@zowe/cli": "8.3.0", + "@zowe/cli-test-utils": "8.2.0", + "@zowe/imperative": "8.2.0", "copyfiles": "2.4.1", "env-cmd": "10.1.0", - "eslint": "8.57.0", - "eslint-plugin-jest": "27.9.0", + "eslint": "9.12.0", + "eslint-plugin-jest": "28.8.3", "eslint-plugin-license-header": "0.6.1", - "eslint-plugin-unused-imports": "2.0.0", - "husky": "8.0.3", + "eslint-plugin-unused-imports": "4.1.4", + "globals": "15.11.0", + "husky": "9.1.6", "jest": "29.7.0", "jest-cli": "29.7.0", "jest-environment-node": "29.7.0", "jest-environment-node-debug": "2.0.0", "jest-html-reporter": "3.10.2", - "jest-junit": "15.0.0", + "jest-junit": "16.0.0", "jest-stare": "2.5.2", - "madge": "6.1.0", + "madge": "8.0.0", "ts-jest": "29.2.5", "ts-node": "10.9.2", - "typedoc": "0.26.6", - "typescript": "4.9.5" + "typedoc": "0.26.10", + "typescript": "5.6.3" + }, + "engines": { + "node": "=20.18.0", + "npm": "=10.9.0" }, "peerDependencies": { - "@zowe/imperative": "5.27.0" + "@zowe/imperative": "8.2.0" } }, "node_modules/@ampproject/remapping": { @@ -58,12 +64,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/code-frame/-/code-frame-7.24.7.tgz", - "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/code-frame/-/code-frame-7.25.7.tgz", + "integrity": "sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.24.7", + "@babel/highlight": "^7.25.7", "picocolors": "^1.0.0" }, "engines": { @@ -122,16 +129,16 @@ } }, "node_modules/@babel/generator": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/generator/-/generator-7.25.6.tgz", - "integrity": "sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/generator/-/generator-7.25.7.tgz", + "integrity": "sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6", + "@babel/types": "^7.25.7", "@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/trace-mapping": "^0.3.25", - "jsesc": "^2.5.1" + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" @@ -221,9 +228,9 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.24.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz", - "integrity": "sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", + "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", "dev": true, "license": "MIT", "engines": { @@ -231,10 +238,11 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", - "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", + "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } @@ -264,12 +272,13 @@ } }, "node_modules/@babel/highlight": { - "version": "7.24.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/highlight/-/highlight-7.24.7.tgz", - "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/highlight/-/highlight-7.25.7.tgz", + "integrity": "sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-validator-identifier": "^7.25.7", "chalk": "^2.4.2", "js-tokens": "^4.0.0", "picocolors": "^1.0.0" @@ -279,13 +288,13 @@ } }, "node_modules/@babel/parser": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/parser/-/parser-7.25.6.tgz", - "integrity": "sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/parser/-/parser-7.25.7.tgz", + "integrity": "sha512-aZn7ETtQsjjGG5HruveUK06cU3Hljuhd9Iojm4M8WWv3wLE6OkE5PWbDUkItmMgegmccaITudyuW5RPYrYlgWw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.25.6" + "@babel/types": "^7.25.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -521,32 +530,32 @@ } }, "node_modules/@babel/template": { - "version": "7.25.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/template/-/template-7.25.0.tgz", - "integrity": "sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/template/-/template-7.25.7.tgz", + "integrity": "sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/parser": "^7.25.0", - "@babel/types": "^7.25.0" + "@babel/code-frame": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/types": "^7.25.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/traverse/-/traverse-7.25.6.tgz", - "integrity": "sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/traverse/-/traverse-7.25.7.tgz", + "integrity": "sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.24.7", - "@babel/generator": "^7.25.6", - "@babel/parser": "^7.25.6", - "@babel/template": "^7.25.0", - "@babel/types": "^7.25.6", + "@babel/code-frame": "^7.25.7", + "@babel/generator": "^7.25.7", + "@babel/parser": "^7.25.7", + "@babel/template": "^7.25.7", + "@babel/types": "^7.25.7", "debug": "^4.3.1", "globals": "^11.1.0" }, @@ -565,14 +574,14 @@ } }, "node_modules/@babel/types": { - "version": "7.25.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/types/-/types-7.25.6.tgz", - "integrity": "sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw==", + "version": "7.25.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@babel/types/-/types-7.25.7.tgz", + "integrity": "sha512-vwIVdXG+j+FOpkwqHRcBgHLYNL7XMkufrlaFvL9o6Ai9sJn9+PdyIL5qa0XzTZw084c+u9LOls53eoZWP/W5WQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.24.8", - "@babel/helper-validator-identifier": "^7.24.7", + "@babel/helper-string-parser": "^7.25.7", + "@babel/helper-validator-identifier": "^7.25.7", "to-fast-properties": "^2.0.0" }, "engines": { @@ -617,10 +626,23 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@dependents/detective-less": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@dependents/detective-less/-/detective-less-5.0.0.tgz", + "integrity": "sha512-D/9dozteKcutI5OdxJd8rU+fL6XgaaRg60sPPJWkT33OCiRfkCu5wO5B/yXTaaL2e6EB0lcCBGe5E0XscZCvvQ==", + "dev": true, + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" + }, + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint-community/eslint-utils/-/eslint-utils-4.3.0.tgz", - "integrity": "sha512-v3oplH6FYCULtFuCeqyuTd9D2WKO937Dxdq+GmHOLL72TTRriLxz2VLlNfkZRsvj6PKnOPAtuT6dwrs/pA5DvA==", + "version": "4.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", "dev": true, "dependencies": { "eslint-visitor-keys": "^3.3.0" @@ -642,17 +664,39 @@ "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "dev": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/core/-/core-0.6.0.tgz", + "integrity": "sha512-8I2Q8ykA4J0x0o7cg67FPVnehcqWTBehu/lmY+bolPFHGjh49YzGBMXTvpqVgEbBdvNCSxj6iFgiIyHzf03lzg==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", "dev": true, - "license": "MIT", "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.0", @@ -660,42 +704,74 @@ "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" } }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "version": "9.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/js/-/js-9.12.0.tgz", + "integrity": "sha512-eohesHH8WFRUprDNyEREgqP6beG6htMeUYeCpkEgBCieCMme5r9zFWjzAJp//9S+Kub4rqE+jXe9Cp1a7IYIIA==", "dev": true, - "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@gar/promisify": { - "version": "1.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@gar/promisify/-/promisify-1.1.3.tgz", - "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", - "dev": true + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@eslint/plugin-kit": { + "version": "0.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@eslint/plugin-kit/-/plugin-kit-0.2.0.tgz", + "integrity": "sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "levn": "^0.4.1" }, "engines": { - "node": ">=10.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanfs/core/-/core-0.19.0.tgz", + "integrity": "sha512-2cbWIHbZVEweE853g8jymffCA+NCMiuqeECeBBLm8dg2oFdjuGJhgN4UAbI+6v0CKbbhvtXA4qV8YR5Ji86nmw==", + "dev": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanfs/node/-/node-0.16.5.tgz", + "integrity": "sha512-KSPA4umqSG4LHYRodq31VDwKAvaTF4xmVlzM8Aeh4PlU1JQ3IG0wiA8C25d3RQ9nJyM3mBHyI53K06VVL/oFFg==", + "dev": true, + "dependencies": { + "@humanfs/core": "^0.19.0", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -707,20 +783,24 @@ "node": ">=12.22" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", "dev": true, - "license": "BSD-3-Clause" + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dev": true, - "license": "ISC", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", @@ -734,11 +814,10 @@ } }, "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -751,7 +830,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "dev": true, - "license": "MIT", "engines": { "node": ">=12" }, @@ -763,15 +841,13 @@ "version": "9.2.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/@isaacs/cliui/node_modules/string-width": { "version": "5.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, - "license": "MIT", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", @@ -789,7 +865,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" }, @@ -805,7 +880,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", @@ -1495,15 +1569,6 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@jest/types/node_modules/@types/yargs": { - "version": "17.0.22", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/yargs/-/yargs-17.0.22.tgz", - "integrity": "sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==", - "dev": true, - "dependencies": { - "@types/yargs-parser": "*" - } - }, "node_modules/@jest/types/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", @@ -1603,9 +1668,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "version": "1.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -1664,7 +1729,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/agent/-/agent-2.2.2.tgz", "integrity": "sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==", "dev": true, - "license": "ISC", "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", @@ -1676,190 +1740,73 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, "node_modules/@npmcli/agent/node_modules/lru-cache": { "version": "10.4.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { - "version": "8.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", - "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "agent-base": "^7.1.1", - "debug": "^4.3.4", - "socks": "^2.8.3" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@npmcli/ci-detect": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/ci-detect/-/ci-detect-1.4.0.tgz", - "integrity": "sha512-3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==", "dev": true }, "node_modules/@npmcli/fs": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-1.1.1.tgz", - "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", + "version": "3.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-3.1.1.tgz", + "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", "dev": true, "dependencies": { - "@gar/promisify": "^1.0.1", "semver": "^7.3.5" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/git": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/git/-/git-2.1.0.tgz", - "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==", + "version": "5.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/git/-/git-5.0.8.tgz", + "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", "dev": true, "dependencies": { - "@npmcli/promise-spawn": "^1.3.2", - "lru-cache": "^6.0.0", - "mkdirp": "^1.0.4", - "npm-pick-manifest": "^6.1.1", + "@npmcli/promise-spawn": "^7.0.0", + "ini": "^4.1.3", + "lru-cache": "^10.0.1", + "npm-pick-manifest": "^9.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", - "which": "^2.0.2" - } - }, - "node_modules/@npmcli/git/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true - }, - "node_modules/@npmcli/git/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/git/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", - "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "which": "^4.0.0" }, "engines": { - "node": ">=10" - } - }, - "node_modules/@npmcli/git/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", - "dev": true, - "engines": { - "node": ">= 4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/which": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/@npmcli/git/node_modules/ini": { + "version": "4.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ini/-/ini-4.1.3.tgz", + "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, "engines": { - "node": ">= 8" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/git/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/@npmcli/git/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "dev": true }, "node_modules/@npmcli/installed-package-contents": { - "version": "1.0.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", - "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" + "npm-bundled": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "index.js" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@npmcli/move-file": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/move-file/-/move-file-1.1.2.tgz", - "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", - "deprecated": "This functionality has been moved to @npmcli/fs", - "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "rimraf": "^3.0.2" + "installed-package-contents": "bin/index.js" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/node-gyp": { @@ -1867,17 +1814,15 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, - "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/package-json": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/package-json/-/package-json-5.2.0.tgz", - "integrity": "sha512-qe/kiqqkW0AGtvBjL8TJKZk/eBBSpnJkUWvHdQ9jM2lKHXRYYJuyNpJPlJw3c8QjC2ow6NZYiLExhUaeJelbxQ==", + "version": "5.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/package-json/-/package-json-5.2.1.tgz", + "integrity": "sha512-f7zYC6kQautXHvNbLEWgD/uGu1+xCn9izgqBfgItWSx22U0ZDekxN08A1vM8cTxj/cRVe0Q94Ode+tdoYmIOOQ==", "dev": true, - "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "glob": "^10.2.2", @@ -1891,63 +1836,20 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "node_modules/@npmcli/package-json/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, "node_modules/@npmcli/package-json/node_modules/glob": { "version": "10.4.5", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^3.1.2", @@ -1963,62 +1865,20 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@npmcli/package-json/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/ini": { - "version": "4.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@npmcli/package-json/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16" - } - }, "node_modules/@npmcli/package-json/node_modules/json-parse-even-better-errors": { "version": "3.0.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", "dev": true, - "license": "MIT", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, "node_modules/@npmcli/package-json/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" }, @@ -2034,664 +1894,684 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { "node": ">=16 || 14 >=14.17" } }, - "node_modules/@npmcli/package-json/node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/@npmcli/promise-spawn": { + "version": "7.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", + "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "semver": "^7.1.1" + "which": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "node_modules/@npmcli/redact": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/redact/-/redact-2.0.1.tgz", + "integrity": "sha512-YgsR5jCQZhVmTJvjduTOIHph0L73pK8xwMVaDY0PatySqVM9AZj93jpoXYSJqfHFxFkN9dmqTw6OiqExsS3LPw==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/@npmcli/run-script": { + "version": "8.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/run-script/-/run-script-8.1.0.tgz", + "integrity": "sha512-y7efHHwghQfk28G2z3tlZ67pLG0XdfYbcVG26r7YIXALRsrVQcTq4/tdenSmdOrEsNahIYA/eh8aEVROWGFUDg==", "dev": true, - "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", + "@npmcli/node-gyp": "^3.0.0", + "@npmcli/package-json": "^5.0.0", + "@npmcli/promise-spawn": "^7.0.0", + "node-gyp": "^10.0.0", "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "which": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/package-json/node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" - }, + "optional": true, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=14" } }, - "node_modules/@npmcli/package-json/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/@popperjs/core": { + "version": "2.11.8", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", + "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" } }, - "node_modules/@npmcli/package-json/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/@shikijs/core": { + "version": "1.17.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/core/-/core-1.17.0.tgz", + "integrity": "sha512-Mkk4Mp4bNnW1kytU8I7S5PK5teNSe0iKlfqxPss4sdwnlcU8a2N62Z3te2gVmZfU9t1HF6L3wyWuM43IvEeEsg==", "dev": true, - "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" + "@shikijs/engine-javascript": "1.17.0", + "@shikijs/engine-oniguruma": "1.17.0", + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.2" } }, - "node_modules/@npmcli/package-json/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/@shikijs/engine-javascript": { + "version": "1.17.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/engine-javascript/-/engine-javascript-1.17.0.tgz", + "integrity": "sha512-EiBVlxmzJZdC2ypzn8k+vxLngbBNgHLS4RilwrFOABGRc72kUZubbD/6Chrq2RcVtD3yq1GtiiIdFMGd9BTX3Q==", "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "@shikijs/types": "1.17.0", + "oniguruma-to-js": "0.3.3", + "regex": "4.3.2" } }, - "node_modules/@npmcli/package-json/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.17.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.17.0.tgz", + "integrity": "sha512-nsXzJGLQ0fhKmA4Gwt1cF7vC8VuZ1HSDrTRuj48h/qDeX/TzmOlTDXQ3uPtyuhyg/2rbZRzNhN8UFU4fSnQfXg==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" + "dependencies": { + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2" } }, - "node_modules/@npmcli/package-json/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "node_modules/@shikijs/types": { + "version": "1.17.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/types/-/types-1.17.0.tgz", + "integrity": "sha512-Tvu2pA69lbpXB+MmgIaROP1tio8y0uYvKb5Foh3q0TJBTAJuaoa5eDEtS/0LquyveacsiVrYF4uEZILju+7Ybg==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" } }, - "node_modules/@npmcli/package-json/node_modules/which": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@shikijs/vscode-textmate": { + "version": "9.2.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.2.tgz", + "integrity": "sha512-TMp15K+GGYrWlZM8+Lnj9EaHEFmOen0WJBrfa17hF7taDOYthuPPV0GWzfd/9iMij0akS/8Yw2ikquH7uVi/fg==", + "dev": true + }, + "node_modules/@sigstore/bundle": { + "version": "2.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/bundle/-/bundle-2.3.2.tgz", + "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" + "@sigstore/protobuf-specs": "^0.3.2" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/promise-spawn": { - "version": "1.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz", - "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==", + "node_modules/@sigstore/core": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/core/-/core-1.1.0.tgz", + "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", "dev": true, - "dependencies": { - "infer-owner": "^1.0.4" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/redact": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/redact/-/redact-1.1.0.tgz", - "integrity": "sha512-PfnWuOkQgu7gCbnSsAisaX7hKOdZ4wSAhAzH3/ph5dSGau52kCRrMMGbiSQLwyTZpgldkZ49b0brkOr1AzGBHQ==", + "node_modules/@sigstore/protobuf-specs": { + "version": "0.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", + "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", "dev": true, - "license": "ISC", "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/run-script": { - "version": "7.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/run-script/-/run-script-7.0.4.tgz", - "integrity": "sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg==", + "node_modules/@sigstore/sign": { + "version": "2.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/sign/-/sign-2.3.2.tgz", + "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", - "@npmcli/promise-spawn": "^7.0.0", - "node-gyp": "^10.0.0", - "which": "^4.0.0" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "make-fetch-happen": "^13.0.1", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/run-script/node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "node_modules/@sigstore/tuf": { + "version": "2.3.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/tuf/-/tuf-2.3.4.tgz", + "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", "dev": true, - "license": "ISC", "dependencies": { - "which": "^4.0.0" + "@sigstore/protobuf-specs": "^0.3.2", + "tuf-js": "^2.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/run-script/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/@sigstore/verify": { + "version": "1.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/verify/-/verify-1.2.1.tgz", + "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", "dev": true, - "license": "ISC", + "dependencies": { + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.1.0", + "@sigstore/protobuf-specs": "^0.3.2" + }, "engines": { - "node": ">=16" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@npmcli/run-script/node_modules/which": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/@sinclair/typebox": { + "version": "0.27.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinclair/typebox/-/typebox-0.27.8.tgz", + "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/@pkgjs/parseargs": { - "version": "0.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", - "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "node_modules/@sinonjs/commons": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=14" + "license": "BSD-3-Clause", + "dependencies": { + "type-detect": "4.0.8" } }, - "node_modules/@popperjs/core": { - "version": "2.11.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@popperjs/core/-/core-2.11.8.tgz", - "integrity": "sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==", - "dev": true, - "peer": true - }, - "node_modules/@shikijs/core": { - "version": "1.16.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/core/-/core-1.16.1.tgz", - "integrity": "sha512-aI0hBtw+a6KsJp2jcD4YuQqKpeCbURMZbhHVozDknJpm+KJqeMRkEnfBC8BaKE/5XC+uofPgCLsa/TkTk0Ba0w==", + "node_modules/@sinonjs/fake-timers": { + "version": "10.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", + "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@shikijs/vscode-textmate": "^9.2.0", - "@types/hast": "^3.0.4" + "@sinonjs/commons": "^3.0.0" } }, - "node_modules/@shikijs/vscode-textmate": { - "version": "9.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@shikijs/vscode-textmate/-/vscode-textmate-9.2.0.tgz", - "integrity": "sha512-5FinaOp6Vdh/dl4/yaOTh0ZeKch+rYS8DUb38V3GMKYVkdqzxw53lViRKUYkVILRiVQT7dcPC7VvAKOR73zVtQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/@sigstore/bundle": { - "version": "2.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/bundle/-/bundle-2.3.2.tgz", - "integrity": "sha512-wueKWDk70QixNLB363yHc2D2ItTgYiMTdPwK8D9dKQMR3ZQ0c35IxP5xnwQ8cNLoCgCRcHf14kE+CLIvNX1zmA==", + "node_modules/@ts-graphviz/adapter": { + "version": "2.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ts-graphviz/adapter/-/adapter-2.0.5.tgz", + "integrity": "sha512-K/xd2SJskbSLcUz9uYW9IDy26I3Oyutj/LREjJgcuLMxT3um4sZfy9LiUhGErHjxLRaNcaDVGSsmWeiNuhidXg==", "dev": true, - "license": "Apache-2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2" + "@ts-graphviz/common": "^2.1.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@sigstore/core": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/core/-/core-1.1.0.tgz", - "integrity": "sha512-JzBqdVIyqm2FRQCulY6nbQzMpJJpSiJ8XXWMhtOX9eKgaXXpfNOF53lzQEjIydlStnd/eFtuC1dW4VYdD93oRg==", + "node_modules/@ts-graphviz/ast": { + "version": "2.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ts-graphviz/ast/-/ast-2.0.5.tgz", + "integrity": "sha512-HVT+Bn/smDzmKNJFccwgrpJaEUMPzXQ8d84JcNugzTHNUVgxAIe2Vbf4ug351YJpowivQp6/N7XCluQMjtgi5w==", "dev": true, - "license": "Apache-2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], + "dependencies": { + "@ts-graphviz/common": "^2.1.4" + }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@sigstore/protobuf-specs": { - "version": "0.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/protobuf-specs/-/protobuf-specs-0.3.2.tgz", - "integrity": "sha512-c6B0ehIWxMI8wiS/bj6rHMPqeFvngFV7cDU/MY+B16P9Z3Mp9k8L93eYZ7BYzSickzuqAQqAq0V956b3Ju6mLw==", + "node_modules/@ts-graphviz/common": { + "version": "2.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ts-graphviz/common/-/common-2.1.4.tgz", + "integrity": "sha512-PNEzOgE4vgvorp/a4Ev26jVNtiX200yODoyPa8r6GfpPZbxWKW6bdXF6xWqzMkQoO1CnJOYJx2VANDbGqCqCCw==", "dev": true, - "license": "Apache-2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/@sigstore/sign": { - "version": "2.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/sign/-/sign-2.3.2.tgz", - "integrity": "sha512-5Vz5dPVuunIIvC5vBb0APwo7qKA4G9yM48kPWJT+OEERs40md5GoUR1yedwpekWZ4m0Hhw44m6zU+ObsON+iDA==", + "node_modules/@ts-graphviz/core": { + "version": "2.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ts-graphviz/core/-/core-2.0.5.tgz", + "integrity": "sha512-YwaCGAG3Hs0nhxl+2lVuwuTTAK3GO2XHqOGvGIwXQB16nV858rrR5w2YmWCw9nhd11uLTStxLsCAhI9koWBqDA==", "dev": true, - "license": "Apache-2.0", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "make-fetch-happen": "^13.0.1", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1" + "@ts-graphviz/ast": "^2.0.5", + "@ts-graphviz/common": "^2.1.4" }, + "engines": { + "node": ">=18" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", + "dev": true + }, + "node_modules/@tufjs/canonical-json": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", + "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", + "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/@tufjs/models": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tufjs/models/-/models-2.0.1.tgz", + "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", "dev": true, - "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "@tufjs/canonical-json": "2.0.0", + "minimatch": "^9.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sigstore/sign/node_modules/brace-expansion": { + "node_modules/@tufjs/models/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { "balanced-match": "^1.0.0" } }, - "node_modules/@sigstore/sign/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "node_modules/@tufjs/models/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@sigstore/sign/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } }, - "node_modules/@sigstore/sign/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@babel/types": "^7.0.0" } }, - "node_modules/@sigstore/sign/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, - "node_modules/@sigstore/sign/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", "dev": true, - "license": "ISC" + "license": "MIT", + "dependencies": { + "@babel/types": "^7.20.7" + } }, - "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", + "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "@types/node": "*" } }, - "node_modules/@sigstore/sign/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "@types/unist": "*" } }, - "node_modules/@sigstore/sign/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", + "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "dev": true + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" + "dependencies": { + "@types/istanbul-lib-coverage": "*" } }, - "node_modules/@sigstore/sign/node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": ">=16 || 14 >=14.17" + "@types/istanbul-lib-report": "*" } }, - "node_modules/@sigstore/sign/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/@types/jest": { + "version": "29.5.13", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/jest/-/jest-29.5.13.tgz", + "integrity": "sha512-wd+MVEZCHt23V0/L642O5APvspWply/rGY5BcW4SUETo2UzPU3Z26qr8jC2qxpimI2jjx9h7+2cj2FwIr01bXg==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "expect": "^29.0.0", + "pretty-format": "^29.0.0" } }, - "node_modules/@sigstore/sign/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true }, - "node_modules/@sigstore/sign/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", "dev": true, - "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, - "engines": { - "node": ">=10" + "@types/unist": "*" } }, - "node_modules/@sigstore/sign/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/@types/node": { + "version": "20.16.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/node/-/node-20.16.11.tgz", + "integrity": "sha512-y+cTCACu92FyA5fgQSAI8A1H429g7aSK2HsO7K4XYUWc4dY5IUz55JSDIYT6/VsOLfGy8vmvQYC2hfb0iF16Uw==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 4" + "dependencies": { + "undici-types": "~6.19.2" } }, - "node_modules/@sigstore/sign/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/@types/stack-utils": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/stack-utils/-/stack-utils-2.0.1.tgz", + "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true + }, + "node_modules/@types/yargs": { + "version": "17.0.33", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "@types/yargs-parser": "*" } }, - "node_modules/@sigstore/sign/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "node_modules/@types/yargs-parser": { + "version": "21.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", + "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.9.0.tgz", + "integrity": "sha512-Y1n621OCy4m7/vTXNlCbMVp87zSd7NH0L9cXD8aIpOaNlzeWxIK4+Q19A68gSmTNRZn92UjocVUWDthGxtqHFg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "unique-slug": "^4.0.0" + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.9.0", + "@typescript-eslint/type-utils": "8.9.0", + "@typescript-eslint/utils": "8.9.0", + "@typescript-eslint/visitor-keys": "8.9.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sigstore/sign/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/@typescript-eslint/parser": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/parser/-/parser-8.9.0.tgz", + "integrity": "sha512-U+BLn2rqTTHnc4FL3FJjxaXptTxmf9sNftJK62XLz4+GxG3hLHm/SUNaaXP5Y4uTiuYoL5YLy4JBCJe3+t8awQ==", "dev": true, - "license": "ISC", + "license": "BSD-2-Clause", "dependencies": { - "imurmurhash": "^0.1.4" + "@typescript-eslint/scope-manager": "8.9.0", + "@typescript-eslint/types": "8.9.0", + "@typescript-eslint/typescript-estree": "8.9.0", + "@typescript-eslint/visitor-keys": "8.9.0", + "debug": "^4.3.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sigstore/tuf": { - "version": "2.3.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/tuf/-/tuf-2.3.4.tgz", - "integrity": "sha512-44vtsveTPUpqhm9NCrbU8CWLe3Vck2HO1PNLw7RIajbB7xhtn5RBPm1VNSCMwqGYHhDsBJG8gDF0q4lgydsJvw==", + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/scope-manager/-/scope-manager-8.9.0.tgz", + "integrity": "sha512-bZu9bUud9ym1cabmOYH9S6TnbWRzpklVmwqICeOulTCZ9ue2/pczWzQvt/cGj2r2o1RdKoZbuEMalJJSYw3pHQ==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/protobuf-specs": "^0.3.2", - "tuf-js": "^2.2.1" + "@typescript-eslint/types": "8.9.0", + "@typescript-eslint/visitor-keys": "8.9.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@sigstore/verify": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sigstore/verify/-/verify-1.2.1.tgz", - "integrity": "sha512-8iKx79/F73DKbGfRf7+t4dqrc0bRr0thdPrxAtCKWRm/F0tG71i6O1rvlnScncJLLBZHn3h8M3c1BSUAb9yu8g==", + "node_modules/@typescript-eslint/type-utils": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/type-utils/-/type-utils-8.9.0.tgz", + "integrity": "sha512-JD+/pCqlKqAk5961vxCluK+clkppHY07IbV3vett97KOV+8C6l+CPEPwpUuiMwgbOz/qrN3Ke4zzjqbT+ls+1Q==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.1.0", - "@sigstore/protobuf-specs": "^0.3.2" + "@typescript-eslint/typescript-estree": "8.9.0", + "@typescript-eslint/utils": "8.9.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "node_modules/@typescript-eslint/types": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/types/-/types-8.9.0.tgz", + "integrity": "sha512-SjgkvdYyt1FAPhU9c6FiYCXrldwYYlIQLkuc+LfAhCna6ggp96ACncdtlbn8FmnG72tUkXclrDExOpEYf1nfJQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } }, - "node_modules/@sinonjs/commons": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinonjs/commons/-/commons-3.0.1.tgz", - "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/typescript-estree/-/typescript-estree-8.9.0.tgz", + "integrity": "sha512-9iJYTgKLDG6+iqegehc5+EqE6sqaee7kb8vWpmHZ86EqwDjmlqNNHeqDVqb9duh+BY6WCNHfIGvuVU3Tf9Db0g==", "dev": true, - "license": "BSD-3-Clause", + "license": "BSD-2-Clause", "dependencies": { - "type-detect": "4.0.8" + "@typescript-eslint/types": "8.9.0", + "@typescript-eslint/visitor-keys": "8.9.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@sinonjs/commons": "^3.0.0" - } - }, - "node_modules/@tootallnate/once": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tootallnate/once/-/once-1.1.2.tgz", - "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", - "dev": true - }, - "node_modules/@tufjs/canonical-json": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", - "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@tufjs/models/-/models-2.0.1.tgz", - "integrity": "sha512-92F7/SFyufn4DXsha9+QfKnN03JGqtMFMXgSHbZOo8JG59WkTni7UzAouNQDf7AuP9OAMxVOPQcqG3sB7w+kkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/canonical-json": "2.0.0", - "minimatch": "^9.0.4" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@tufjs/models/node_modules/brace-expansion": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", @@ -2701,7 +2581,7 @@ "balanced-match": "^1.0.0" } }, - "node_modules/@tufjs/models/node_modules/minimatch": { + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { "version": "9.0.5", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", @@ -2717,2529 +2597,2436 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@types/babel__core": { - "version": "7.20.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__core/-/babel__core-7.20.5.tgz", - "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "node_modules/@typescript-eslint/utils": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/utils/-/utils-8.9.0.tgz", + "integrity": "sha512-PKgMmaSo/Yg/F7kIZvrgrWa1+Vwn036CdNUvYFEkYbPwOH4i8xvkaRlu148W3vtheWK9ckKRIz7PBP5oUlkrvQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7", - "@types/babel__generator": "*", - "@types/babel__template": "*", - "@types/babel__traverse": "*" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.9.0", + "@typescript-eslint/types": "8.9.0", + "@typescript-eslint/typescript-estree": "8.9.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" } }, - "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/visitor-keys/-/visitor-keys-8.9.0.tgz", + "integrity": "sha512-Ht4y38ubk4L5/U8xKUBfKNYGmvKvA1CANoxiTRMM+tOLk3lbF3DvzZCxJCRSE+2GdCMSh6zq9VZJc3asc1XuAA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.0.0" + "@typescript-eslint/types": "8.9.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@types/babel__template": { - "version": "7.4.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__template/-/babel__template-7.4.4.tgz", - "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@vue/compiler-core/-/compiler-core-3.5.11.tgz", + "integrity": "sha512-PwAdxs7/9Hc3ieBO12tXzmTD+Ln4qhT/56S+8DvrrZ4kLDn4Z/AMUr8tXJD0axiJBS0RKIoNaR0yMuQB9v9Udg==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/parser": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/parser": "^7.25.3", + "@vue/shared": "3.5.11", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" } }, - "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "node_modules/@vue/compiler-dom": { + "version": "3.5.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@vue/compiler-dom/-/compiler-dom-3.5.11.tgz", + "integrity": "sha512-pyGf8zdbDDRkBrEzf8p7BQlMKNNF5Fk/Cf/fQ6PiUz9at4OaUfyXW0dGJTo2Vl1f5U9jSLCNf0EZJEogLXoeew==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@vue/compiler-core": "3.5.11", + "@vue/shared": "3.5.11" } }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", + "node_modules/@vue/compiler-sfc": { + "version": "3.5.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@vue/compiler-sfc/-/compiler-sfc-3.5.11.tgz", + "integrity": "sha512-gsbBtT4N9ANXXepprle+X9YLg2htQk1sqH/qGJ/EApl+dgpUBdTv3yP7YlR535uHZY3n6XaR0/bKo0BgwwDniw==", "dev": true, - "license": "MIT", "dependencies": { - "@types/node": "*" + "@babel/parser": "^7.25.3", + "@vue/compiler-core": "3.5.11", + "@vue/compiler-dom": "3.5.11", + "@vue/compiler-ssr": "3.5.11", + "@vue/shared": "3.5.11", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.11", + "postcss": "^8.4.47", + "source-map-js": "^1.2.0" } }, - "node_modules/@types/hast": { - "version": "3.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/hast/-/hast-3.0.4.tgz", - "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "node_modules/@vue/compiler-ssr": { + "version": "3.5.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@vue/compiler-ssr/-/compiler-ssr-3.5.11.tgz", + "integrity": "sha512-P4+GPjOuC2aFTk1Z4WANvEhyOykcvEd5bIj2KVNGKGfM745LaXGr++5njpdBTzVz5pZifdlR1kpYSJJpIlSePA==", "dev": true, - "license": "MIT", "dependencies": { - "@types/unist": "*" + "@vue/compiler-dom": "3.5.11", + "@vue/shared": "3.5.11" } }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", + "node_modules/@vue/shared": { + "version": "3.5.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@vue/shared/-/shared-3.5.11.tgz", + "integrity": "sha512-W8GgysJVnFo81FthhzurdRAWP/byq3q2qIw70e0JWblzVhjgOMiC2GyovXrZTFQJnFVryYaKGP3Tc9vYzYm6PQ==", "dev": true }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "node_modules/@zowe/cli": { + "version": "8.3.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/cli/-/@zowe/cli-8.3.0.tgz", + "integrity": "sha512-W++tiOqwJ1CuP18T0xf3lAAv2u11vlke5hY/GhgbgbjfXUnSogWziRqqy32jhTLtkE6Yhi6N1Cl4/uETib4C2A==", "dev": true, + "hasInstallScript": true, + "license": "EPL-2.0", "dependencies": { - "@types/istanbul-lib-coverage": "*" + "@zowe/core-for-zowe-sdk": "8.2.0", + "@zowe/imperative": "8.2.0", + "@zowe/provisioning-for-zowe-sdk": "8.2.0", + "@zowe/zos-console-for-zowe-sdk": "8.2.0", + "@zowe/zos-files-for-zowe-sdk": "8.2.0", + "@zowe/zos-jobs-for-zowe-sdk": "8.2.0", + "@zowe/zos-logs-for-zowe-sdk": "8.2.0", + "@zowe/zos-tso-for-zowe-sdk": "8.2.0", + "@zowe/zos-uss-for-zowe-sdk": "8.2.0", + "@zowe/zos-workflows-for-zowe-sdk": "8.2.0", + "@zowe/zosmf-for-zowe-sdk": "8.2.0", + "find-process": "1.4.7", + "lodash": "4.17.21", + "minimatch": "9.0.5", + "tar": "6.2.1" + }, + "bin": { + "zowe": "lib/main.js" + }, + "engines": { + "node": ">=18.12.0" + }, + "optionalDependencies": { + "@zowe/secrets-for-zowe-sdk": "8.1.2" } }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "node_modules/@zowe/cli-test-utils": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/cli-test-utils/-/@zowe/cli-test-utils-8.2.0.tgz", + "integrity": "sha512-g3upj4FvIHsKCjG5eULCmKTtKK4XZih8gjmjTvwMfTdcf4ZnNyLFEGfbiygENOZ8xWCe0KRyVflLxaVFtkVikw==", "dev": true, + "license": "EPL-2.0", "dependencies": { - "@types/istanbul-lib-report": "*" + "find-up": "^5.0.0", + "js-yaml": "^4.0.0", + "rimraf": "^5.0.0", + "uuid": "^10.0.0" + }, + "peerDependencies": { + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "node_modules/@zowe/cli-test-utils/node_modules/uuid": { + "version": "10.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-10.0.0.tgz", + "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==", "dev": true, - "license": "MIT", - "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" } }, - "node_modules/@types/json-schema": { - "version": "7.0.11", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/json-schema/-/json-schema-7.0.11.tgz", - "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", - "dev": true - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.19.48", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/node/-/node-18.19.48.tgz", - "integrity": "sha512-7WevbG4ekUcRQSZzOwxWgi5dZmTak7FaxXDoW7xVxPBmKx1rTzfmRLkeCgJzcbBnOV2dkhAPc8cCeT6agocpjg==", + "node_modules/@zowe/cli/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "balanced-match": "^1.0.0" } }, - "node_modules/@types/semver": { - "version": "7.3.13", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/semver/-/semver-7.3.13.tgz", - "integrity": "sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==", - "dev": true - }, - "node_modules/@types/stack-utils": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/stack-utils/-/stack-utils-2.0.1.tgz", - "integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==", - "dev": true - }, - "node_modules/@types/unist": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/unist/-/unist-3.0.3.tgz", - "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/yargs": { - "version": "13.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/yargs/-/yargs-13.0.4.tgz", - "integrity": "sha512-Ke1WmBbIkVM8bpvsNEcGgQM70XcEh/nbpxQhW7FhrsbCsXSY9BmLB1+LHtD7r9zrsOcFlLiF+a/UeJsdfw3C5A==", + "node_modules/@zowe/cli/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, + "license": "ISC", "dependencies": { - "@types/yargs-parser": "*" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==", - "dev": true - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "node_modules/@zowe/core-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/core-for-zowe-sdk/-/@zowe/core-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-a9IsUhqZpPSgv/yjCZGrjdATbSXYyKSdQlBs7ngVgCxH5xYK8gaECw4ShNff/XN17bpHSvbPUsFcC5OTyiivjA==", "dev": true, - "license": "MIT", + "license": "EPL-2.0", "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "comment-json": "~4.2.3", + "string-width": "^4.2.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=18.12.0" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@zowe/imperative": "^8.0.0" + } + }, + "node_modules/@zowe/imperative": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/imperative/-/@zowe/imperative-8.2.0.tgz", + "integrity": "sha512-7jqM+DAwWOKDXR4xvVedIZ7aqilUzMP6WRRXe7WaGaUKAAFg+1UhdbfbpV91xAvPcdARqfP/phWTPgWvyybA3w==", + "dev": true, + "license": "EPL-2.0", + "dependencies": { + "@types/yargs": "^17.0.32", + "chalk": "^4.1.2", + "cli-table3": "^0.6.3", + "comment-json": "~4.2.3", + "cross-spawn": "^7.0.3", + "dataobject-parser": "^1.2.25", + "deepmerge": "^4.3.1", + "diff": "^5.2.0", + "diff2html": "3.4.20-usewontache.1.60e7a2e", + "fast-glob": "^3.3.2", + "fastest-levenshtein": "^1.0.16", + "find-up": "^5.0.0", + "fs-extra": "^11.0.0", + "http-proxy-agent": "7.0.2", + "https-proxy-agent": "7.0.4", + "jest-diff": "^29.0.0", + "js-yaml": "^4.1.0", + "jsonfile": "^6.0.0", + "jsonschema": "^1.4.1", + "lodash": "^4.17.21", + "lodash-deep": "^2.0.0", + "log4js": "^6.9.1", + "markdown-it": "^14.1.0", + "mustache": "^4.2.0", + "npm-package-arg": "^11.0.1", + "opener": "^1.5.2", + "pacote": "^18.0.6", + "prettyjson": "^1.2.5", + "progress": "^2.0.3", + "read": "^3.0.1", + "semver": "^7.5.2", + "stack-trace": "^0.0.10", + "strip-ansi": "^6.0.1", + "which": "^4.0.0", + "wrap-ansi": "^7.0.0", + "yargs": "^17.7.2" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": ">=18.12.0" } }, - "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "node_modules/@zowe/imperative/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "debug": "^4.3.4" + "color-convert": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=8" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "node_modules/@zowe/imperative/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=10" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "node_modules/@zowe/imperative/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", - "tsutils": "^3.21.0" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=7.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "node_modules/@zowe/imperative/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/@zowe/imperative/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=0.3.1" } }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "node_modules/@zowe/imperative/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=8" } }, - "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/@zowe/imperative/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "has-flag": "^4.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "node": ">=8" } }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/@zowe/provisioning-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/provisioning-for-zowe-sdk/-/@zowe/provisioning-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-p31l7twTJPUDWcUVOtMiwIGSgJHN8y7NvLjvsEIEap2nHtXMWCJSgp2DaKwelciJiTT7Po/EdlcneROlYWmqRg==", "dev": true, - "license": "MIT", + "license": "EPL-2.0", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "js-yaml": "^4.1.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=18.12.0" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@zowe/cli": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/cli/-/@zowe/cli-7.19.0.tgz", - "integrity": "sha512-h/lXBprJFpDq2ZthM+P5oLksnzeUy7oUisRl1DwTqNktw9tYaOhHXR5x92Zmq5ptOd2uRBfvZ1+BPHYa7dQCZA==", + "node_modules/@zowe/secrets-for-zowe-sdk": { + "version": "8.1.2", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/secrets-for-zowe-sdk/-/@zowe/secrets-for-zowe-sdk-8.1.2.tgz", + "integrity": "sha512-LRi8iQJMhknJxjqkwKEUI76wK4oJMLevJ1ait4rEdfOEpgCY2zKwcG3W+aXjWzSI5OgCX1SCTHdoeGDLbSfgDA==", "dev": true, "hasInstallScript": true, - "dependencies": { - "@zowe/core-for-zowe-sdk": "7.19.0", - "@zowe/imperative": "5.19.0", - "@zowe/provisioning-for-zowe-sdk": "7.19.0", - "@zowe/zos-console-for-zowe-sdk": "7.19.0", - "@zowe/zos-files-for-zowe-sdk": "7.19.0", - "@zowe/zos-jobs-for-zowe-sdk": "7.19.0", - "@zowe/zos-logs-for-zowe-sdk": "7.19.0", - "@zowe/zos-tso-for-zowe-sdk": "7.19.0", - "@zowe/zos-uss-for-zowe-sdk": "7.19.0", - "@zowe/zos-workflows-for-zowe-sdk": "7.19.0", - "@zowe/zosmf-for-zowe-sdk": "7.19.0", - "find-process": "1.4.7", - "get-stream": "6.0.1", - "lodash": "4.17.21", - "minimatch": "5.0.1", - "tar": "6.1.14" - }, - "bin": { - "bright": "lib/main.js", - "zowe": "lib/main.js" - }, + "license": "EPL-2.0", + "optional": true, "engines": { - "node": ">=14.0.0" - }, - "optionalDependencies": { - "@zowe/secrets-for-zowe-sdk": "7.18.6" + "node": ">=14" } }, - "node_modules/@zowe/cli-test-utils": { - "version": "7.29.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/cli-test-utils/-/@zowe/cli-test-utils-7.29.0.tgz", - "integrity": "sha512-kLVVMeNbVO/9itBII+ceOtYIdoYHR4cYwuVp8X+ppUOUs/hD6xtfLdomloiLTCf2xYOsmtT87qzs57PPc3BClg==", + "node_modules/@zowe/zos-console-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-console-for-zowe-sdk/-/@zowe/zos-console-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-bPPB2uSrsaE5Vam88NRqLyn2qod1Et18cY5gDKVOXltX4AgVLiXRbBWoKkGzSqGF3XGYWjAEQ/7tGAI04YH5Ag==", "dev": true, "license": "EPL-2.0", - "dependencies": { - "find-up": "^5.0.0", - "js-yaml": "^4.0.0", - "rimraf": "^3.0.2", - "uuid": "^8.3.2" + "engines": { + "node": ">=18.12.0" }, "peerDependencies": { - "@zowe/imperative": "^5.0.0" + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative": { - "version": "5.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/imperative/-/@zowe/imperative-5.19.0.tgz", - "integrity": "sha512-C7hF7y0ufy2azbEvekQUWtqhLSwRdi2XJJe4lsTad/LTwYxsnHREhyzgbLPnqjnf14vxds38nRoMmwwfnJJ9Jg==", + "node_modules/@zowe/zos-files-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-files-for-zowe-sdk/-/@zowe/zos-files-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-5mIInJtO+hTRx7e+DzXwbxRRzcz7B7qEt823Es7PBha98IPvGqL7vrYU13K1VYLPl5MW0TQ+c426KxJPjShFWQ==", "dev": true, "license": "EPL-2.0", "dependencies": { - "@types/yargs": "13.0.4", - "chalk": "2.4.2", - "cli-table3": "0.6.2", - "comment-json": "4.1.1", - "cross-spawn": "7.0.3", - "dataobject-parser": "1.2.1", - "deepmerge": "4.2.2", - "diff": "5.1.0", - "diff2html": "3.4.20-usewontache.1.60e7a2e", - "fast-glob": "3.2.7", - "fastest-levenshtein": "1.0.12", - "find-up": "4.1.0", - "fs-extra": "8.1.0", - "jest-diff": "27.0.6", - "js-yaml": "4.1.0", - "jsonfile": "4.0.0", - "jsonschema": "1.1.1", - "lodash": "4.17.21", - "lodash-deep": "2.0.0", - "log4js": "6.4.6", - "markdown-it": "12.3.2", - "mustache": "2.3.0", - "npm-package-arg": "9.1.0", - "opener": "1.5.2", - "pacote": "11.1.4", - "prettyjson": "1.2.2", - "progress": "2.0.3", - "read": "1.0.7", - "readline-sync": "1.4.10", - "semver": "7.5.2", - "stack-trace": "0.0.10", - "strip-ansi": "6.0.1", - "which": "3.0.0", - "wrap-ansi": "7.0.0", - "yamljs": "0.3.0", - "yargs": "15.3.1" + "lodash": "^4.17.21", + "minimatch": "^9.0.5" }, "engines": { - "node": ">=14.0.0" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@zowe/zos-files-for-zowe-sdk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "balanced-match": "^1.0.0" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@zowe/zos-files-for-zowe-sdk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", + "license": "ISC", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=4" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@zowe/zos-jobs-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-jobs-for-zowe-sdk/-/@zowe/zos-jobs-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-g8FlpJwiw/4BFVYmNFMRXkV6HIBdXK1Ae7XbRi8kc0bZpNIqgwvv57jhuV6Qa28GoOTo581+ZVpXD4t5AW3e4A==", "dev": true, - "license": "MIT", + "license": "EPL-2.0", "dependencies": { - "color-name": "1.1.3" + "@zowe/zos-files-for-zowe-sdk": "8.2.0" + }, + "engines": { + "node": ">=18.12.0" + }, + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@zowe/zos-logs-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-logs-for-zowe-sdk/-/@zowe/zos-logs-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-XQ2vQH8RgQYoVYYVZext4yFxTiS227sCtvXWcqEto7VjwVA1byAUFyMRGVW68dOoKsCyilPTfa3RrGkAwrAsiQ==", "dev": true, - "license": "MIT", + "license": "EPL-2.0", "engines": { - "node": ">=4" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/@zowe/imperative/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@zowe/zos-tso-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-tso-for-zowe-sdk/-/@zowe/zos-tso-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-iF0qTub6aVSpKPZ6GTnaGFs8iY8FKpo6fKCJaTzHhGRyMSNMZ+S8OgFHSScmBdMTRuG0hwrKXJU94rjFmZ+IcQ==", "dev": true, - "license": "MIT", + "license": "EPL-2.0", "dependencies": { - "has-flag": "^3.0.0" + "@zowe/zosmf-for-zowe-sdk": "8.2.0" }, "engines": { - "node": ">=4" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/@zowe/zos-uss-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-uss-for-zowe-sdk/-/@zowe/zos-uss-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-EiMi7Py3FCjgFYdhxTSOOAQwlRRb/DFbuEAJKvvbRlIYp4Migv/z+SMO80GtXrdYIK1RWLWzvl9jEjzO1uAbyw==", "dev": true, + "license": "EPL-2.0", "dependencies": { - "color-convert": "^2.0.1" + "ssh2": "^1.15.0" }, "engines": { - "node": ">=8" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@zowe/cli/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0" + "peerDependencies": { + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/@zowe/zos-workflows-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-workflows-for-zowe-sdk/-/@zowe/zos-workflows-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-gB1KOcbqD/JVsyW/7rEMn/sYW0fQSSjzWysVEFa0h0//5zzSeD+mPm1c6cOEd5Vcqrzc3k3XVJ2+RMHlswIcqA==", "dev": true, + "license": "EPL-2.0", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@zowe/zos-files-for-zowe-sdk": "8.2.0" }, "engines": { - "node": ">=10" + "node": ">=18.12.0" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/@zowe/zosmf-for-zowe-sdk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zosmf-for-zowe-sdk/-/@zowe/zosmf-for-zowe-sdk-8.2.0.tgz", + "integrity": "sha512-5G/1Ne1ahc7BURldDY5VPNqWj+8VZqqNGNMTDoF1gCcrITCYnPIk3HtY40TcyluBzRwCmDh27Ms8raoiVxrk0w==", "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, + "license": "EPL-2.0", "engines": { - "node": ">=7.0.0" + "node": ">=18.12.0" + }, + "peerDependencies": { + "@zowe/core-for-zowe-sdk": "^8.0.0", + "@zowe/imperative": "^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true }, - "node_modules/@zowe/cli/node_modules/commander": { - "version": "5.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "node_modules/acorn": { + "version": "8.12.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", + "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, "engines": { - "node": ">= 6" + "node": ">=0.4.0" } }, - "node_modules/@zowe/cli/node_modules/find-process": { - "version": "1.4.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-process/-/find-process-1.4.7.tgz", - "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, - "dependencies": { - "chalk": "^4.0.0", - "commander": "^5.1.0", - "debug": "^4.1.1" - }, - "bin": { - "find-process": "bin/find-process.js" + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, - "node_modules/@zowe/cli/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=0.4.0" } }, - "node_modules/@zowe/cli/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, + "dependencies": { + "debug": "^4.3.4" + }, "engines": { - "node": ">=8" + "node": ">= 14" } }, - "node_modules/@zowe/cli/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/aggregate-error": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, - "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/@zowe/cli/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "node_modules/@zowe/cli/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "license": "MIT", "dependencies": { - "p-try": "^2.0.0" + "type-fest": "^0.21.3" }, "engines": { - "node": ">=6" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@zowe/cli/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.2.0" - }, + "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=8" - } - }, - "node_modules/@zowe/cli/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" + "node": ">=10" }, - "engines": { - "node": ">=8" + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@zowe/core-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/core-for-zowe-sdk/-/@zowe/core-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-R0aKt5jlrNI3NvmDs9J3uQRhrhoMLX+tAA9wPZhQfCTtDc2ykz5ICG4RzoZsTl3ikkTHxYNrXtSN6AQ/OqrdGA==", - "dev": true, - "dependencies": { - "comment-json": "4.1.1", - "string-width": "4.2.3" - }, - "peerDependencies": { - "@zowe/imperative": "^5.0.0" - } + "node_modules/ansi-parser": { + "version": "3.2.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-parser/-/ansi-parser-3.2.10.tgz", + "integrity": "sha512-CGKGIbd678lm15IXJXI1cTyOVAnMQw0jES+klW/yIc+GzYccsYanLMhczPIIj2hE64B79g75QfiuWrEWd6nJdg==", + "dev": true }, - "node_modules/@zowe/imperative": { - "version": "5.27.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/imperative/-/@zowe/imperative-5.27.0.tgz", - "integrity": "sha512-BP/xCoahjSwBUms0+3CU8/UNJOg1CQNgI+porbqyGjPOOAWT9qwkt+61kFcaabjJrdsusnLUW60IUlJtweo1Vw==", + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, - "license": "EPL-2.0", - "dependencies": { - "@types/yargs": "13.0.4", - "chalk": "2.4.2", - "cli-table3": "0.6.2", - "comment-json": "4.1.1", - "cross-spawn": "7.0.3", - "dataobject-parser": "1.2.1", - "deepmerge": "4.2.2", - "diff": "5.1.0", - "diff2html": "3.4.20-usewontache.1.60e7a2e", - "fast-glob": "3.2.7", - "fastest-levenshtein": "1.0.12", - "find-up": "4.1.0", - "fs-extra": "8.1.0", - "http-proxy-agent": "7.0.2", - "https-proxy-agent": "7.0.4", - "jest-diff": "27.0.6", - "js-yaml": "4.1.0", - "jsonfile": "4.0.0", - "jsonschema": "1.4.1", - "lodash": "4.17.21", - "lodash-deep": "2.0.0", - "log4js": "6.4.6", - "markdown-it": "14.1.0", - "mustache": "4.2.0", - "npm-package-arg": "9.1.0", - "opener": "1.5.2", - "pacote": "17.0.6", - "prettyjson": "1.2.2", - "progress": "2.0.3", - "read": "1.0.7", - "readline-sync": "1.4.10", - "semver": "7.5.4", - "stack-trace": "0.0.10", - "strip-ansi": "6.0.1", - "which": "4.0.0", - "wrap-ansi": "7.0.0", - "yamljs": "0.3.0", - "yargs": "15.3.1" - }, "engines": { - "node": ">=14.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "color-convert": "^1.9.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/@zowe/imperative/node_modules/@npmcli/git": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/git/-/git-5.0.8.tgz", - "integrity": "sha512-liASfw5cqhjNW9UFd+ruwwdEf/lbOAQjLL2XY2dFW/bkJheXDYZgOyul/4gVvEV4BWkTXjYGmDqMw9uegdbJNQ==", + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", "dependencies": { - "@npmcli/promise-spawn": "^7.0.0", - "ini": "^4.1.3", - "lru-cache": "^10.0.1", - "npm-pick-manifest": "^9.0.0", - "proc-log": "^4.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^2.0.1", - "semver": "^7.3.5", - "which": "^4.0.0" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/@zowe/imperative/node_modules/@npmcli/git/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "node_modules/app-module-path": { + "version": "2.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/app-module-path/-/app-module-path-2.2.0.tgz", + "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", + "dev": true + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-timsort": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-timsort/-/array-timsort-1.0.3.tgz", + "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", + "dev": true }, - "node_modules/@zowe/imperative/node_modules/@npmcli/installed-package-contents": { + "node_modules/array-union": { "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", - "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-bundled": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "bin": { - "installed-package-contents": "bin/index.js" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/@npmcli/promise-spawn": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/promise-spawn/-/promise-spawn-7.0.2.tgz", - "integrity": "sha512-xhfYPXoV5Dy4UkY0D+v2KkwvnDfiA/8Mt3sWCGI/hM03NsYIH8ZaG6QzS9x7pje5vHZBZJ2v6VRFVTWACnqcmQ==", + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "which": "^4.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "safer-buffer": "~2.1.0" } }, - "node_modules/@zowe/imperative/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "node_modules/ast-module-types": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ast-module-types/-/ast-module-types-6.0.0.tgz", + "integrity": "sha512-LFRg7178Fw5R4FAEwZxVqiRI8IxSM+Ay2UBrHoCerXNme+kMMMfz7T3xDGV/c2fer87hcrtgJGsnSOfUrPK6ng==", "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { - "node": ">= 14" + "node": ">=18" } }, - "node_modules/@zowe/imperative/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } + "license": "MIT" }, - "node_modules/@zowe/imperative/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "node_modules/babel-jest": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-jest/-/babel-jest-29.7.0.tgz", + "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "@jest/transform": "^29.7.0", + "@types/babel__core": "^7.1.14", + "babel-plugin-istanbul": "^6.1.1", + "babel-preset-jest": "^29.6.3", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "slash": "^3.0.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/@zowe/imperative/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "peerDependencies": { + "@babel/core": "^7.8.0" } }, - "node_modules/@zowe/imperative/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zowe/imperative/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "node_modules/babel-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" + "color-convert": "^2.0.1" }, "engines": { "node": ">=8" - } - }, - "node_modules/@zowe/imperative/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", - "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@zowe/imperative/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/babel-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "bin": { - "glob": "dist/esm/bin.mjs" + "engines": { + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@zowe/imperative/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "node_modules/babel-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "lru-cache": "^10.0.1" + "color-name": "~1.1.4" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=7.0.0" } }, - "node_modules/@zowe/imperative/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "node_modules/babel-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/babel-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "node_modules/babel-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 14" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/ignore-walk": { - "version": "6.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore-walk/-/ignore-walk-6.0.5.tgz", - "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", + "node_modules/babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, - "license": "ISC", + "license": "BSD-3-Clause", "dependencies": { - "minimatch": "^9.0.0" + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/ini": { - "version": "4.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ini/-/ini-4.1.3.tgz", - "integrity": "sha512-X7rqawQBvfdjS10YU1y1YVreA3SsLrW9dX2CewP2EbBJM4ypVNLDkO5y04gejPwKIY9lR+7r9gn3rFPt/kmWFg==", + "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { + "version": "5.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", + "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", "dev": true, - "license": "ISC", + "license": "BSD-3-Clause", + "dependencies": { + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" + }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/babel-plugin-istanbul/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", - "engines": { - "node": ">=16" - } - }, - "node_modules/@zowe/imperative/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/@zowe/imperative/node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "node_modules/babel-plugin-jest-hoist": { + "version": "29.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", + "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.1.14", + "@types/babel__traverse": "^7.0.6" + }, "engines": { - "node": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@zowe/imperative/node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "node_modules/babel-preset-current-node-syntax": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", + "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", "dev": true, "license": "MIT", "dependencies": { - "uc.micro": "^2.0.0" + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@zowe/imperative/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "node_modules/babel-preset-jest": { + "version": "29.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", + "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", "dev": true, "license": "MIT", "dependencies": { - "p-locate": "^4.1.0" + "babel-plugin-jest-hoist": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@zowe/imperative/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true }, - "node_modules/@zowe/imperative/node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", "dev": true, - "license": "ISC", + "license": "BSD-3-Clause", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "tweetnacl": "^0.14.3" } }, - "node_modules/@zowe/imperative/node_modules/make-fetch-happen/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" } }, - "node_modules/@zowe/imperative/node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/bootstrap": { + "version": "5.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bootstrap/-/bootstrap-5.2.3.tgz", + "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" - }, - "bin": { - "markdown-it": "bin/markdown-it.mjs" + "peerDependencies": { + "@popperjs/core": "^2.11.6" } }, - "node_modules/@zowe/imperative/node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, - "license": "MIT" + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } }, - "node_modules/@zowe/imperative/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "fill-range": "^7.1.1" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/browserslist": { + "version": "4.23.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/browserslist/-/browserslist-4.23.3.tgz", + "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", "dev": true, - "license": "ISC", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "caniuse-lite": "^1.0.30001646", + "electron-to-chromium": "^1.5.4", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.0" + }, + "bin": { + "browserslist": "cli.js" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/@zowe/imperative/node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/bs-logger": { + "version": "0.2.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "fast-json-stable-stringify": "2.x" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">= 6" } }, - "node_modules/@zowe/imperative/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node-int64": "^0.4.0" } }, - "node_modules/@zowe/imperative/node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", "dev": true, - "license": "MIT", - "bin": { - "mustache": "bin/mustache" + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" } }, - "node_modules/@zowe/imperative/node_modules/npm-bundled": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-bundled/-/npm-bundled-3.0.1.tgz", - "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, - "license": "ISC", - "dependencies": { - "npm-normalize-package-bin": "^3.0.0" - }, + "license": "MIT" + }, + "node_modules/buildcheck": { + "version": "0.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buildcheck/-/buildcheck-0.0.6.tgz", + "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "dev": true, + "optional": true, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10.0.0" } }, - "node_modules/@zowe/imperative/node_modules/npm-install-checks": { - "version": "6.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", - "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", + "node_modules/cacache": { + "version": "18.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-18.0.4.tgz", + "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "semver": "^7.1.1" + "@npmcli/fs": "^3.1.0", + "fs-minipass": "^3.0.0", + "glob": "^10.2.2", + "lru-cache": "^10.0.1", + "minipass": "^7.0.3", + "minipass-collect": "^2.0.1", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "p-map": "^4.0.0", + "ssri": "^10.0.0", + "tar": "^6.1.11", + "unique-filename": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@zowe/imperative/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "node_modules/cacache/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/@zowe/imperative/node_modules/npm-packlist": { - "version": "8.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-packlist/-/npm-packlist-8.0.2.tgz", - "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", + "node_modules/cacache/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, - "license": "ISC", "dependencies": { - "ignore-walk": "^6.0.4" + "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@zowe/imperative/node_modules/npm-pick-manifest": { - "version": "9.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", - "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", + "node_modules/cacache/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { - "npm-install-checks": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0", - "npm-package-arg": "^11.0.0", - "semver": "^7.3.5" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "^16.14.0 || >=18.0.0" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@zowe/imperative/node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/cacache/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/cacache/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/@zowe/imperative/node_modules/npm-pick-manifest/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/cacache/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/@zowe/imperative/node_modules/npm-registry-fetch": { - "version": "16.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-registry-fetch/-/npm-registry-fetch-16.2.1.tgz", - "integrity": "sha512-8l+7jxhim55S85fjiDGJ1rZXBWGtRLi1OSb4Z3BPLObPuIaeKRlPRiYMSHU4/81ck3t71Z+UwDDl47gcpmfQQA==", + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/redact": "^1.1.0", - "make-fetch-happen": "^13.0.0", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.1.2", - "npm-package-arg": "^11.0.0", - "proc-log": "^4.0.0" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/@zowe/imperative/node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, - "license": "ISC", - "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/@zowe/imperative/node_modules/npm-registry-fetch/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/caniuse-lite": { + "version": "1.0.30001655", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", + "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "CC-BY-4.0" }, - "node_modules/@zowe/imperative/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@zowe/imperative/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "dev": true, - "license": "MIT", "dependencies": { - "p-limit": "^2.2.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/@zowe/imperative/node_modules/pacote": { - "version": "17.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pacote/-/pacote-17.0.6.tgz", - "integrity": "sha512-cJKrW21VRE8vVTRskJo78c/RCvwJCn1f4qgfxL4w77SOWrTCRcmfkYHlHtS0gqpgjv3zhXflRtgsrUCX5xwNnQ==", + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/git": "^5.0.0", - "@npmcli/installed-package-contents": "^2.0.1", - "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", - "cacache": "^18.0.0", - "fs-minipass": "^3.0.0", - "minipass": "^7.0.2", - "npm-package-arg": "^11.0.0", - "npm-packlist": "^8.0.0", - "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", - "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", - "sigstore": "^2.2.0", - "ssri": "^10.0.0", - "tar": "^6.1.11" - }, - "bin": { - "pacote": "lib/bin.js" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/@zowe/imperative/node_modules/pacote/node_modules/npm-package-arg": { - "version": "11.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", - "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chart.js": { + "version": "4.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chart.js/-/chart.js-4.2.1.tgz", + "integrity": "sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==", "dev": true, - "license": "ISC", "dependencies": { - "hosted-git-info": "^7.0.0", - "proc-log": "^4.0.0", - "semver": "^7.3.5", - "validate-npm-package-name": "^5.0.0" + "@kurkle/color": "^0.3.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "pnpm": "^7.0.0" } }, - "node_modules/@zowe/imperative/node_modules/pacote/node_modules/npm-package-arg/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/ci-info": { + "version": "3.8.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ci-info/-/ci-info-3.8.0.tgz", + "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/proc-log": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-3.0.0.tgz", - "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "node_modules/cjs-module-lexer": { + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", + "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } + "license": "MIT" }, - "node_modules/@zowe/imperative/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, - "license": "MIT", - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/@zowe/imperative/node_modules/read-package-json-fast": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", - "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, - "license": "ISC", "dependencies": { - "json-parse-even-better-errors": "^3.0.0", - "npm-normalize-package-bin": "^3.0.0" + "restore-cursor": "^3.1.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/@zowe/imperative/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/cli-spinners": { + "version": "2.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-spinners/-/cli-spinners-2.7.0.tgz", + "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 4" + "node": ">=6" } }, - "node_modules/@zowe/imperative/node_modules/semver": { - "version": "7.5.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "node_modules/cli-table3": { + "version": "0.6.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-table3/-/cli-table3-0.6.5.tgz", + "integrity": "sha512-+W/5efTR7y5HRD7gACw9yQjqMVvEMLBHmboM/kPWam+H+Hmyrgjh6YncVKK122YZkXrLudzTuAukUw9FnMf7IQ==", "dev": true, - "license": "ISC", "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" + "string-width": "^4.2.0" }, "engines": { - "node": ">=10" + "node": "10.* || >= 12.*" + }, + "optionalDependencies": { + "@colors/colors": "1.5.0" } }, - "node_modules/@zowe/imperative/node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, - "license": "ISC", "dependencies": { - "yallist": "^4.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=12" } }, - "node_modules/@zowe/imperative/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.8" } }, - "node_modules/@zowe/imperative/node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@zowe/imperative/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/co/-/co-4.6.0.tgz", + "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" } }, - "node_modules/@zowe/imperative/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", + "dev": true + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "color-name": "1.1.3" } }, - "node_modules/@zowe/imperative/node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=0.1.90" } }, - "node_modules/@zowe/imperative/node_modules/which": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" - }, - "engines": { - "node": "^16.13.0 || >=18.0.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/@zowe/imperative/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", "dev": true, - "license": "ISC" + "engines": { + "node": ">= 6" + } }, - "node_modules/@zowe/provisioning-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/provisioning-for-zowe-sdk/-/@zowe/provisioning-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-3yZjd/dVvxirvBMsjXFeCLeNVXcMJgat4iNtSHmR5ed6somoRU6YCS2eG0QD/C9f1MEl+qAI2JQ6UsJNIDdB6w==", + "node_modules/comment-json": { + "version": "4.2.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/comment-json/-/comment-json-4.2.5.tgz", + "integrity": "sha512-bKw/r35jR3HGt5PEPm1ljsQQGyCrR8sFGNiN5L+ykDHdpO8Smxkrkla9Yi6NkQyUrb8V54PGhfMs6NrIwtxtdw==", "dev": true, "dependencies": { - "js-yaml": "4.1.0" + "array-timsort": "^1.0.3", + "core-util-is": "^1.0.3", + "esprima": "^4.0.1", + "has-own-prop": "^2.0.0", + "repeat-string": "^1.6.1" }, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" - } - }, - "node_modules/@zowe/secrets-for-zowe-sdk": { - "version": "7.18.6", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/secrets-for-zowe-sdk/-/@zowe/secrets-for-zowe-sdk-7.18.6.tgz", - "integrity": "sha512-3ElVUd5VYWUxVjXRCeM/jmXh9u1rnWtxobQEpgEZ2iNt+PTt3QajIxUH9MxriELVCp7u39AeAG4lfxs3wnrGzA==", - "dev": true, - "hasInstallScript": true, - "optional": true, "engines": { - "node": ">= 14" + "node": ">= 6" } }, - "node_modules/@zowe/zos-console-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-console-for-zowe-sdk/-/@zowe/zos-console-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-kV44eRPmn1T9ZpO7tmNZfYZRTFKe6wJjBik8qCXeMoMGKW8yV0hI3xd1c7aCZzGMu59x1uS/ctXgnJi2j45/Kw==", + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" - } + "license": "MIT" }, - "node_modules/@zowe/zos-files-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-files-for-zowe-sdk/-/@zowe/zos-files-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-z63DhrFtfEwAvWGRlRFCHcfNvMVTBKSSrLwMFq0ajzHYYVNtQglaNhehce3TrqMIH9KYINnlQyLskwPrx7ys6A==", + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", "dev": true, "dependencies": { - "get-stream": "6.0.1", - "minimatch": "5.0.1" + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" }, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" } }, - "node_modules/@zowe/zos-files-for-zowe-sdk/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/copyfiles/node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" } }, - "node_modules/@zowe/zos-files-for-zowe-sdk/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "node_modules/copyfiles/node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", "dev": true, "dependencies": { - "brace-expansion": "^2.0.1" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" }, "engines": { "node": ">=10" } }, - "node_modules/@zowe/zos-jobs-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-jobs-for-zowe-sdk/-/@zowe/zos-jobs-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-okLN5rAmuVgKV8VuR4gpMFGs4LWscVuCp71ekELwkhcXCzw9EscbMaA+34vNz2PVsVfjGbtIMU3yzLtZp3W2Pg==", + "node_modules/copyfiles/node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cpu-features": { + "version": "0.0.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cpu-features/-/cpu-features-0.0.10.tgz", + "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==", "dev": true, + "hasInstallScript": true, + "optional": true, "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.19.0" + "buildcheck": "~0.0.6", + "nan": "^2.19.0" }, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" + "engines": { + "node": ">=10.0.0" } }, - "node_modules/@zowe/zos-logs-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-logs-for-zowe-sdk/-/@zowe/zos-logs-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-f4SoWYTcg0Sk/3NJ6ZPIU+wMreivss24ZTmg+gk+6Cy4bG++VB9EH6mmYDf80ZY/oOUFqPicfAXNwNXfkLEcVQ==", + "node_modules/create-jest": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/create-jest/-/create-jest-29.7.0.tgz", + "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", "dev": true, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" + "license": "MIT", + "dependencies": { + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.9", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "prompts": "^2.0.1" + }, + "bin": { + "create-jest": "bin/create-jest.js" + }, + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/@zowe/zos-tso-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-tso-for-zowe-sdk/-/@zowe/zos-tso-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-ghb1o7atF5mfaIrZkDcBYABtLgjJUJ+7M31UAYKjENidXhTn8Zy2808kDhRpK+fYKDCdUueDfz1B746wFbYYzA==", + "node_modules/create-jest/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "@zowe/zosmf-for-zowe-sdk": "7.19.0" + "color-convert": "^2.0.1" }, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/@zowe/zos-uss-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-uss-for-zowe-sdk/-/@zowe/zos-uss-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-0y+iEfl0LFsi/csNGu467dLuIiRxvPl9iAaPFwWG3gfcRU+5xxXCCoT0ZnqorGy9YtQIz8p8O0iw87vazmo1Og==", + "node_modules/create-jest/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ssh2": "1.11.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, - "peerDependencies": { - "@zowe/imperative": "^5.2.0" + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@zowe/zos-workflows-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zos-workflows-for-zowe-sdk/-/@zowe/zos-workflows-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-V2PBvgvjKFG2nmX063gnz2Joy4eSmv3Uu/mIhLGG+mBpzkb/r+UvzzoKJrhjpII+diEvCBxCajYDrfCpg954Hw==", + "node_modules/create-jest/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "@zowe/zos-files-for-zowe-sdk": "7.19.0" + "color-name": "~1.1.4" }, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" + "engines": { + "node": ">=7.0.0" } }, - "node_modules/@zowe/zosmf-for-zowe-sdk": { - "version": "7.19.0", - "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@zowe/zosmf-for-zowe-sdk/-/@zowe/zosmf-for-zowe-sdk-7.19.0.tgz", - "integrity": "sha512-OP8G6lr3l0SDoRpZWLytIuDdpyUqQzbAu71zhtAuqHm18iomEFGD70fuW9Y7aGAQRkTlMls1CkRPXmFW91npjg==", + "node_modules/create-jest/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "peerDependencies": { - "@zowe/core-for-zowe-sdk": "^7.0.0", - "@zowe/imperative": "^5.0.0" - } - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true + "license": "MIT" }, - "node_modules/acorn": { - "version": "8.12.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn/-/acorn-8.12.1.tgz", - "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", + "node_modules/create-jest/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, "engines": { - "node": ">=0.4.0" + "node": ">=8" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "node_modules/create-jest/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, "engines": { - "node": ">=0.4.0" + "node": ">= 8" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "node_modules/cross-spawn/node_modules/which": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "dependencies": { - "debug": "4" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">= 6.0.0" + "node": ">= 8" } }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "node_modules/csv-parse": { + "version": "5.5.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/csv-parse/-/csv-parse-5.5.6.tgz", + "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", + "license": "MIT" + }, + "node_modules/dataobject-parser": { + "version": "1.2.25", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dataobject-parser/-/dataobject-parser-1.2.25.tgz", + "integrity": "sha512-BmHeQBJsyWNKrBtwAzdZYrbnToPJb2zDfB4l/rwXp7bzMY596cGkrZ3qiIhuK+PeWopVKdKMp6nG/CtKKr8wHg==", "dev": true, - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, "engines": { - "node": ">= 8.0.0" + "node": ">= 0.8.0" } }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "node_modules/date-format": { + "version": "4.0.14", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/date-format/-/date-format-4.0.14.tgz", + "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4.0" } }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "node_modules/dateformat": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dateformat/-/dateformat-3.0.2.tgz", + "integrity": "sha512-EelsCzH0gMC2YmXuMeaZ3c6md1sUJQxyb1XXc4xaisi/K6qKukqZhKPrEQyRkdNIncgYyLoDTReq0nNyuKerTg==", "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "engines": { + "node": "*" } }, - "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, - "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "ms": "2.1.2" }, "engines": { - "node": ">=8" + "node": ">=6.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } } }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "node_modules/dedent": { + "version": "1.5.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dedent/-/dedent-1.5.3.tgz", + "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "license": "MIT", + "peerDependencies": { + "babel-plugin-macros": "^3.1.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "peerDependenciesMeta": { + "babel-plugin-macros": { + "optional": true + } } }, - "node_modules/ansi-parser": { - "version": "3.2.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-parser/-/ansi-parser-3.2.10.tgz", - "integrity": "sha512-CGKGIbd678lm15IXJXI1cTyOVAnMQw0jES+klW/yIc+GzYccsYanLMhczPIIj2hE64B79g75QfiuWrEWd6nJdg==", + "node_modules/deep-extend": { + "version": "0.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", "dev": true, "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" + "clone": "^1.0.2" } }, - "node_modules/any-promise": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/any-promise/-/any-promise-1.3.0.tgz", - "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "node_modules/dependency-tree": { + "version": "11.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dependency-tree/-/dependency-tree-11.0.1.tgz", + "integrity": "sha512-eCt7HSKIC9NxgIykG2DRq3Aewn9UhVS14MB3rEn6l/AsEI1FBg6ZGSlCU0SZ6Tjm2kkhj6/8c2pViinuyKELhg==", "dev": true, - "license": "ISC", "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" + "commander": "^12.0.0", + "filing-cabinet": "^5.0.1", + "precinct": "^12.0.2", + "typescript": "^5.4.5" + }, + "bin": { + "dependency-tree": "bin/cli.js" }, "engines": { - "node": ">= 8" + "node": ">=18" } }, - "node_modules/app-module-path": { - "version": "2.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/app-module-path/-/app-module-path-2.2.0.tgz", - "integrity": "sha512-gkco+qxENJV+8vFcDiiFhuoSvRXb2a/QPqpSoWhVz829VNJfOTnELbBmPmNKFxf3xdNnw4DWCkzkDaavcX/1YQ==", - "dev": true - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - }, - "node_modules/array-timsort": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-timsort/-/array-timsort-1.0.3.tgz", - "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "node_modules/dependency-tree/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/asn1": { - "version": "0.2.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/asn1/-/asn1-0.2.6.tgz", - "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" + "engines": { + "node": ">=6" } }, - "node_modules/ast-module-types": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ast-module-types/-/ast-module-types-3.0.0.tgz", - "integrity": "sha512-CMxMCOCS+4D+DkOQfuZf+vLrSEmY/7xtORwdxs4wtcC1wVgvk2MqFFTwQCFhvWsI4KPU9lcWXPI8DgRiz+xetQ==", + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=8" } }, - "node_modules/async": { - "version": "3.2.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/async/-/async-3.2.6.tgz", - "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "node_modules/detective-amd": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-amd/-/detective-amd-6.0.0.tgz", + "integrity": "sha512-NTqfYfwNsW7AQltKSEaWR66hGkTeD52Kz3eRQ+nfkA9ZFZt3iifRCWh+yZ/m6t3H42JFwVFTrml/D64R2PAIOA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "slash": "^3.0.0" + "ast-module-types": "^6.0.0", + "escodegen": "^2.1.0", + "get-amd-module-type": "^6.0.0", + "node-source-walk": "^7.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "detective-amd": "bin/cli.js" }, - "peerDependencies": { - "@babel/core": "^7.8.0" + "engines": { + "node": ">=18" } }, - "node_modules/babel-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/detective-cjs": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-cjs/-/detective-cjs-6.0.0.tgz", + "integrity": "sha512-R55jTS6Kkmy6ukdrbzY4x+I7KkXiuDPpFzUViFV/tm2PBGtTCjkh9ZmTuJc1SaziMHJOe636dtiZLEuzBL9drg==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=18" } }, - "node_modules/babel-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/detective-es6": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-es6/-/detective-es6-5.0.0.tgz", + "integrity": "sha512-NGTnzjvgeMW1khUSEXCzPDoraLenWbUjCFjwxReH+Ir+P6LGjYtaBbAvITWn2H0VSC+eM7/9LFOTAkrta6hNYg==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=18" } }, - "node_modules/babel-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/detective-postcss": { + "version": "7.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-postcss/-/detective-postcss-7.0.0.tgz", + "integrity": "sha512-pSXA6dyqmBPBuERpoOKKTUUjQCZwZPLRbd1VdsTbt6W+m/+6ROl4BbE87yQBUtLoK7yX8pvXHdKyM/xNIW9F7A==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "is-url": "^1.2.4", + "postcss-values-parser": "^6.0.2" }, "engines": { - "node": ">=7.0.0" + "node": "^14.0.0 || >=16.0.0" + }, + "peerDependencies": { + "postcss": "^8.4.38" } }, - "node_modules/babel-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/babel-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/detective-sass": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-sass/-/detective-sass-6.0.0.tgz", + "integrity": "sha512-h5GCfFMkPm4ZUUfGHVPKNHKT8jV7cSmgK+s4dgQH4/dIUNh9/huR1fjEQrblOQNDalSU7k7g+tiW9LJ+nVEUhg==", "dev": true, - "license": "MIT", + "dependencies": { + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/babel-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/detective-scss": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-scss/-/detective-scss-5.0.0.tgz", + "integrity": "sha512-Y64HyMqntdsCh1qAH7ci95dk0nnpA29g319w/5d/oYcHolcGUVJbIhOirOFjfN1KnMAXAFm5FIkZ4l2EKFGgxg==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "gonzales-pe": "^4.3.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "node_modules/detective-stylus": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-stylus/-/detective-stylus-5.0.0.tgz", + "integrity": "sha512-KMHOsPY6aq3196WteVhkY5FF+6Nnc/r7q741E+Gq+Ax9mhE2iwj8Hlw8pl+749hPDRDBHZ2WlgOjP+twIG61vQ==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", - "test-exclude": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", + "node_modules/detective-typescript": { + "version": "13.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-typescript/-/detective-typescript-13.0.0.tgz", + "integrity": "sha512-tcMYfiFWoUejSbvSblw90NDt76/4mNftYCX0SMnVRYzSXv8Fvo06hi4JOPdNvVNxRtCAKg3MJ3cBJh+ygEMH+A==", "dev": true, - "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" + "@typescript-eslint/typescript-estree": "^7.6.0", + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": ">=8" + "node": "^14.14.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "^5.4.4" } }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/detective-typescript/node_modules/@typescript-eslint/types": { + "version": "7.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/types/-/types-7.18.0.tgz", + "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": "^18.18.0 || >=20.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "node_modules/detective-typescript/node_modules/@typescript-eslint/typescript-estree": { + "version": "7.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", + "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "@typescript-eslint/types": "7.18.0", + "@typescript-eslint/visitor-keys": "7.18.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/babel-preset-current-node-syntax": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.1.0.tgz", - "integrity": "sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-import-attributes": "^7.24.7", - "@babel/plugin-syntax-import-meta": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5" + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "node_modules/detective-typescript/node_modules/@typescript-eslint/visitor-keys": { + "version": "7.18.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", + "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", "dev": true, - "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "@typescript-eslint/types": "7.18.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, - "peerDependencies": { - "@babel/core": "^7.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "node_modules/detective-typescript/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "dependencies": { - "tweetnacl": "^0.14.3" + "balanced-match": "^1.0.0" } }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "node_modules/detective-typescript/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/bootstrap": { - "version": "5.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bootstrap/-/bootstrap-5.2.3.tgz", - "integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==", + "node_modules/detective-vue2": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-vue2/-/detective-vue2-2.0.3.tgz", + "integrity": "sha512-AgWdSfVnft8uPGnUkdvE1EDadEENDCzoSRMt2xZfpxsjqVO617zGWXbB8TGIxHaqHz/nHa6lOSgAB8/dt0yEug==", "dev": true, + "dependencies": { + "@vue/compiler-sfc": "^3.4.27", + "detective-es6": "^5.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0" + }, + "engines": { + "node": ">=18" + }, "peerDependencies": { - "@popperjs/core": "^2.11.6" + "typescript": "^5.4.4" } }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", "dev": true, "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, "engines": { - "node": ">=8" + "node": ">=0.3.1" } }, - "node_modules/browserslist": { - "version": "4.23.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/browserslist/-/browserslist-4.23.3.tgz", - "integrity": "sha512-btwCFJVjI4YWDNfau8RhZ+B1Q/VLoUITrm3RlP6y1tYGWIOa+InuYiRGXUBXo8nA1qKmHMyLB/iVQg5TT4eFoA==", + "node_modules/diff-sequences": { + "version": "29.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff-sequences/-/diff-sequences-29.6.3.tgz", + "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "caniuse-lite": "^1.0.30001646", - "electron-to-chromium": "^1.5.4", - "node-releases": "^2.0.18", - "update-browserslist-db": "^1.1.0" - }, - "bin": { - "browserslist": "cli.js" - }, "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "node_modules/diff2html": { + "version": "3.4.20-usewontache.1.60e7a2e", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", + "integrity": "sha512-0ge1jQpRv9Eg6USdIgnDIzAnuhhlgFPmhglCUBNhSVU772biWWbSu/palu0uK+PbgidjkjkajztZGVAZnD56pw==", "dev": true, "dependencies": { - "fast-json-stable-stringify": "2.x" + "diff": "5.1.0", + "wontache": "0.1.0" }, "engines": { - "node": ">= 6" + "node": ">=12" + }, + "optionalDependencies": { + "highlight.js": "11.6.0" } }, - "node_modules/bser": { - "version": "2.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bser/-/bser-2.1.1.tgz", - "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "node-int64": "^0.4.0" + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" } }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "node_modules/electron-to-chromium": { + "version": "1.5.13", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", + "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", "dev": true, - "license": "MIT" + "license": "ISC" }, - "node_modules/buildcheck": { - "version": "0.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/buildcheck/-/buildcheck-0.0.6.tgz", - "integrity": "sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==", + "node_modules/emittery": { + "version": "0.13.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emittery/-/emittery-0.13.1.tgz", + "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, - "optional": true, + "license": "MIT", "engines": { - "node": ">=10.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" } }, - "node_modules/builtins": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/builtins/-/builtins-5.0.1.tgz", - "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encoding": { + "version": "0.1.13", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "optional": true, "dependencies": { - "semver": "^7.0.0" + "iconv-lite": "^0.6.2" } }, - "node_modules/cacache": { - "version": "15.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-15.3.0.tgz", - "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "node_modules/enhanced-resolve": { + "version": "5.17.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", "dev": true, "dependencies": { - "@npmcli/fs": "^1.0.0", - "@npmcli/move-file": "^1.0.1", - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "infer-owner": "^1.0.4", - "lru-cache": "^6.0.0", - "minipass": "^3.1.1", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^1.0.3", - "p-map": "^4.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^3.0.2", - "ssri": "^8.0.1", - "tar": "^6.0.2", - "unique-filename": "^1.1.1" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" }, "engines": { - "node": ">= 10" + "node": ">=10.13.0" } }, - "node_modules/cacache/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, + "license": "BSD-2-Clause", "engines": { - "node": ">=10" + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/cacache/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/env-cmd": { + "version": "10.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" }, "engines": { - "node": ">=10" + "node": ">=8.0.0" } }, - "node_modules/cacache/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "node_modules/env-paths": { + "version": "2.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/env-paths/-/env-paths-2.2.1.tgz", + "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { "node": ">=6" } }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } + "node_modules/err-code": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true }, - "node_modules/caniuse-lite": { - "version": "1.0.30001655", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caniuse-lite/-/caniuse-lite-1.0.30001655.tgz", - "integrity": "sha512-jRGVy3iSGO5Uutn2owlb5gR6qsGngTw9ZTb4ali9f3glshcNmJ2noam4Mo9zia5P9Dk3jNNydy7vQjuE5dQmfg==", + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "CC-BY-4.0" + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=6" } }, - "node_modules/char-regex": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/char-regex/-/char-regex-1.0.2.tgz", - "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", "dev": true, "engines": { - "node": ">=10" + "node": ">=0.8.0" } }, - "node_modules/chart.js": { - "version": "4.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chart.js/-/chart.js-4.2.1.tgz", - "integrity": "sha512-6YbpQ0nt3NovAgOzbkSSeeAQu/3za1319dPUQTXn9WcOpywM8rGKxJHrhS8V8xEkAlk8YhEfjbuAPfUyp6jIsw==", + "node_modules/escodegen": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escodegen/-/escodegen-2.1.0.tgz", + "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", "dev": true, "dependencies": { - "@kurkle/color": "^0.3.0" + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" }, "engines": { - "pnpm": "^7.0.0" + "node": ">=6.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" } }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/ci-info": { - "version": "3.8.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ci-info/-/ci-info-3.8.0.tgz", - "integrity": "sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==", + "node_modules/eslint": { + "version": "9.12.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint/-/eslint-9.12.0.tgz", + "integrity": "sha512-UVIOlTEWxwIopRL1wgSQYdnVDcEvs2wyaO6DGo5mXqe3r16IoCNWkR29iHhyaP4cICWjbgbmFUGAhh0GJRuGZw==", "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.11.0", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.6.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.12.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.5", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.3.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.1.0", + "eslint-visitor-keys": "^4.1.0", + "espree": "^10.2.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, "engines": { - "node": ">=8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, - "node_modules/cjs-module-lexer": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cjs-module-lexer/-/cjs-module-lexer-1.4.0.tgz", - "integrity": "sha512-N1NGmowPlGBLsOZLPvm48StN04V4YvQRL0i6b7ctrVY3epjP/ct7hFLOItz6pDIvRjwpfPxi52a2UWV2ziir8g==", - "dev": true, - "license": "MIT" - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", + "node_modules/eslint-plugin-jest": { + "version": "28.8.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz", + "integrity": "sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ==", "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, "engines": { - "node": ">=6" + "node": "^16.10.0 || ^18.12.0 || >=20.0.0" + }, + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^6.0.0 || ^7.0.0 || ^8.0.0", + "eslint": "^7.0.0 || ^8.0.0 || ^9.0.0", + "jest": "*" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + }, + "jest": { + "optional": true + } } }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "node_modules/eslint-plugin-license-header": { + "version": "0.6.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-license-header/-/eslint-plugin-license-header-0.6.1.tgz", + "integrity": "sha512-9aIz8q3OaMr1/uQmCGCWySjTs5nEXUJexNegz/8lluNcZbEl82Ag1Vyr1Hu3oIveRW1NbXDPs6nu4zu9mbrmWA==", "dev": true, + "license": "MIT", "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" + "requireindex": "^1.2.0" } }, - "node_modules/cli-spinners": { - "version": "2.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-spinners/-/cli-spinners-2.7.0.tgz", - "integrity": "sha512-qu3pN8Y3qHNgE2AFweciB1IfMnmZ/fsNTEE+NOFjmGB2F/7rLhnhzppvpCnN4FovtP26k8lHyy9ptEbNwWFLzw==", + "node_modules/eslint-plugin-unused-imports": { + "version": "4.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-4.1.4.tgz", + "integrity": "sha512-YptD6IzQjDardkl0POxnnRBhU1OEePMV0nd6siHaRBbd+lyh6NAhFEobiznKU7kTsSsDeSD62Pe7kAM1b7dAZQ==", "dev": true, - "engines": { - "node": ">=6" + "peerDependencies": { + "@typescript-eslint/eslint-plugin": "^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0", + "eslint": "^9.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "@typescript-eslint/eslint-plugin": { + "optional": true + } } }, - "node_modules/cli-table3": { - "version": "0.6.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cli-table3/-/cli-table3-0.6.2.tgz", - "integrity": "sha512-QyavHCaIC80cMivimWu4aWHilIpiDpfm3hGmqAmXVL1UsnbLuBSMd21hTX6VY4ZSDSM73ESLeF8TOYId3rBTbw==", + "node_modules/eslint-scope": { + "version": "8.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-scope/-/eslint-scope-8.1.0.tgz", + "integrity": "sha512-14dSvlhaVhKKsa9Fx1l8A17s7ah7Ef7wCakJ10LYk6+GYmP9yDti2oq2SEwcyndt6knfcZyhyxwY3i9yL78EQw==", "dev": true, "dependencies": { - "string-width": "^4.2.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": "10.* || >= 12.*" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, - "optionalDependencies": { - "@colors/colors": "1.5.0" + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cliui": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-6.0.0.tgz", - "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^6.2.0" + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/cliui/node_modules/ansi-styles": { + "node_modules/eslint/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/cliui/node_modules/color-convert": { + "node_modules/eslint/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -5247,2361 +5034,2204 @@ "node": ">=7.0.0" } }, - "node_modules/cliui/node_modules/color-name": { + "node_modules/eslint/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "6.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", - "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/clone": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/clone/-/clone-1.0.4.tgz", - "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, "engines": { - "node": ">=0.8" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/co": { - "version": "4.6.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/co/-/co-4.6.0.tgz", - "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" + "node": ">=8" } }, - "node_modules/collect-v8-coverage": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", - "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==", - "dev": true - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "node_modules/espree": { + "version": "10.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/espree/-/espree-10.2.0.tgz", + "integrity": "sha512-upbkBJbckcCNBDBDXEbuhjbP68n+scUd3k/U2EkyM9nw+I/jPiL4cLF/Al06CF96wRltFda16sxDFrxsI1v0/g==", "dev": true, + "dependencies": { + "acorn": "^8.12.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.1.0" + }, "engines": { - "node": ">=0.1.90" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/commander": { - "version": "4.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-4.1.0.tgz", + "integrity": "sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==", "dev": true, "engines": { - "node": ">= 6" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/comment-json": { - "version": "4.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/comment-json/-/comment-json-4.1.1.tgz", - "integrity": "sha512-v8gmtPvxhBlhdRBLwdHSjGy9BgA23t9H1FctdQKyUrErPjSrJcdDMqBq9B4Irtm7w3TNYLQJNH6ARKnpyag1sA==", + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, - "dependencies": { - "array-timsort": "^1.0.3", - "core-util-is": "^1.0.2", - "esprima": "^4.0.1", - "has-own-prop": "^2.0.0", - "repeat-string": "^1.6.1" + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" }, "engines": { - "node": ">= 6" + "node": ">=4" } }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/convert-source-map": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/convert-source-map/-/convert-source-map-2.0.0.tgz", - "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", - "dev": true, - "license": "MIT" - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" + "estraverse": "^5.1.0" }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/copyfiles/node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/copyfiles/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { - "node": ">=10" + "node": ">=0.10" } }, - "node_modules/copyfiles/node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/copyfiles/node_modules/yargs-parser": { - "version": "20.2.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, "engines": { - "node": ">=10" + "node": ">=4.0" } }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", "dev": true }, - "node_modules/cpu-features": { - "version": "0.0.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cpu-features/-/cpu-features-0.0.9.tgz", - "integrity": "sha512-AKjgn2rP2yJyfbepsmLfiYcmtNn/2eUvocUyM/09yB0YDiz39HteK/5/T4Onf0pmdYDMgkBoGvRLvEguzyL7wQ==", + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "buildcheck": "~0.0.6", - "nan": "^2.17.0" - }, "engines": { - "node": ">=10.0.0" + "node": ">=0.10.0" } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", + "node_modules/execa": { + "version": "5.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, - "bin": { - "create-jest": "bin/create-jest.js" + "engines": { + "node": ">=10" }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "dev": true, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 0.8.0" } }, - "node_modules/create-jest/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/expect": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/expect/-/expect-29.7.0.tgz", + "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "@jest/expect-utils": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/create-jest/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/exponential-backoff": { + "version": "3.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", + "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", + "dev": true + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@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": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": ">=8.6.0" } }, - "node_modules/create-jest/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">= 6" } }, - "node_modules/create-jest/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true }, - "node_modules/create-jest/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 4.9.1" } }, - "node_modules/create-jest/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/fastq": { + "version": "1.15.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fastq/-/fastq-1.15.0.tgz", + "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "reusify": "^1.0.4" } }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "node_modules/fb-watchman": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, + "license": "Apache-2.0", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" + "bser": "2.1.1" } }, - "node_modules/cross-spawn/node_modules/which": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">= 8" + "node": ">=16.0.0" } }, - "node_modules/csv-parse": { - "version": "5.5.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/csv-parse/-/csv-parse-5.5.6.tgz", - "integrity": "sha512-uNpm30m/AGSkLxxy7d9yRXpJQFrZzVWLFBkS+6ngPcZkw/5k3L/jjFuj7tVnEpRn+QgmiXr21nDlhCiUK4ij2A==", - "license": "MIT" - }, - "node_modules/dataobject-parser": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dataobject-parser/-/dataobject-parser-1.2.1.tgz", - "integrity": "sha512-1XMF0e8Dkfano8WY9TOCWLUQqosXI/Hf6GQrPESCnIn+NbYwy5kVUto0l2L6EVOIRflq8D820QnfQgVapckmTQ==", + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", "dev": true, - "engines": { - "node": ">= 0.8.0" + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" } }, - "node_modules/date-format": { - "version": "4.0.14", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/date-format/-/date-format-4.0.14.tgz", - "integrity": "sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==", + "node_modules/filelist/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "engines": { - "node": ">=4.0" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/dateformat": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dateformat/-/dateformat-3.0.2.tgz", - "integrity": "sha512-EelsCzH0gMC2YmXuMeaZ3c6md1sUJQxyb1XXc4xaisi/K6qKukqZhKPrEQyRkdNIncgYyLoDTReq0nNyuKerTg==", + "node_modules/filelist/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, "engines": { - "node": "*" + "node": ">=10" } }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "node_modules/filing-cabinet": { + "version": "5.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/filing-cabinet/-/filing-cabinet-5.0.2.tgz", + "integrity": "sha512-RZlFj8lzyu6jqtFBeXNqUjjNG6xm+gwXue3T70pRxw1W40kJwlgq0PSWAmh0nAnn5DHuBIecLXk9+1VKS9ICXA==", "dev": true, "dependencies": { - "ms": "2.1.2" + "app-module-path": "^2.2.0", + "commander": "^12.0.0", + "enhanced-resolve": "^5.16.0", + "module-definition": "^6.0.0", + "module-lookup-amd": "^9.0.1", + "resolve": "^1.22.8", + "resolve-dependency-path": "^4.0.0", + "sass-lookup": "^6.0.1", + "stylus-lookup": "^6.0.0", + "tsconfig-paths": "^4.2.0", + "typescript": "^5.4.4" }, - "engines": { - "node": ">=6.0" + "bin": { + "filing-cabinet": "bin/cli.js" }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", - "dev": true, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/dedent": { - "version": "1.5.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dedent/-/dedent-1.5.3.tgz", - "integrity": "sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "babel-plugin-macros": "^3.1.0" - }, - "peerDependenciesMeta": { - "babel-plugin-macros": { - "optional": true - } + "node": ">=18" } }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "node_modules/filing-cabinet/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=4.0.0" + "node": ">=18" } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true - }, - "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/defaults": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/defaults/-/defaults-1.0.4.tgz", - "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "node_modules/find-process": { + "version": "1.4.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-process/-/find-process-1.4.7.tgz", + "integrity": "sha512-/U4CYp1214Xrp3u3Fqr9yNynUrr5Le4y0SsJh2lMDDSbpwYSz3M2SMWQC+wqcx79cN8PQtHQIL8KnuY9M66fdg==", "dev": true, + "license": "MIT", "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" + "chalk": "^4.0.0", + "commander": "^5.1.0", + "debug": "^4.1.1" + }, + "bin": { + "find-process": "bin/find-process.js" } }, - "node_modules/dependency-tree": { - "version": "9.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dependency-tree/-/dependency-tree-9.0.0.tgz", - "integrity": "sha512-osYHZJ1fBSon3lNLw70amAXsQ+RGzXsPvk9HbBgTLbp/bQBmpH5mOmsUvqXU+YEWVU0ZLewsmzOET/8jWswjDQ==", + "node_modules/find-process/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.1", - "filing-cabinet": "^3.0.1", - "precinct": "^9.0.0", - "typescript": "^4.0.0" - }, - "bin": { - "dependency-tree": "bin/cli.js" + "color-convert": "^2.0.1" }, "engines": { - "node": "^10.13 || ^12 || >=14" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/dependency-tree/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/dependency-tree/node_modules/module-definition": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/module-definition/-/module-definition-4.0.0.tgz", - "integrity": "sha512-wntiAHV4lDn24BQn2kX6LKq0y85phHLHiv3aOPDF+lIs06kVjEMTe/ZTdrbVLnQV5FQsjik21taknvMhKY1Cug==", + "node_modules/find-process/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^5.0.0" - }, - "bin": { - "module-definition": "bin/cli.js" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/dependency-tree/node_modules/precinct": { - "version": "9.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/precinct/-/precinct-9.0.1.tgz", - "integrity": "sha512-hVNS6JvfvlZ64B3ezKeGAcVhIuOvuAiSVzagHX/+KjVPkYWoCNkfyMgCl1bjDtAFQSlzi95NcS9ykUWrl1L1vA==", + "node_modules/find-process/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "commander": "^9.1.0", - "detective-amd": "^4.0.1", - "detective-cjs": "^4.0.0", - "detective-es6": "^3.0.0", - "detective-less": "^1.0.2", - "detective-postcss": "^6.0.1", - "detective-sass": "^4.0.1", - "detective-scss": "^3.0.0", - "detective-stylus": "^2.0.0", - "detective-typescript": "^9.0.0", - "module-definition": "^4.0.0", - "node-source-walk": "^5.0.0" - }, - "bin": { - "precinct": "bin/cli.js" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + "node": ">=7.0.0" } }, - "node_modules/dependency-tree/node_modules/precinct/node_modules/commander": { - "version": "9.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-9.5.0.tgz", - "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "node_modules/find-process/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/find-process/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">= 6" } }, - "node_modules/detect-newline": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detect-newline/-/detect-newline-3.1.0.tgz", - "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "node_modules/find-process/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/detective-amd": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-amd/-/detective-amd-4.0.1.tgz", - "integrity": "sha512-bDo22IYbJ8yzALB0Ow5CQLtyhU1BpDksLB9dsWHI9Eh0N3OQR6aQqhjPsNDd69ncYwRfL1sTo7OA9T3VRVSe2Q==", + "node_modules/find-process/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "ast-module-types": "^3.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^4.0.0", - "node-source-walk": "^5.0.0" - }, - "bin": { - "detective-amd": "bin/cli.js" + "has-flag": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/detective-cjs": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-cjs/-/detective-cjs-4.0.0.tgz", - "integrity": "sha512-VsD6Yo1+1xgxJWoeDRyut7eqZ8EWaJI70C5eanSAPcBHzenHZx0uhjxaaEfIm0cHII7dBiwU98Orh44bwXN2jg==", + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^5.0.0" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" } }, - "node_modules/detective-es6": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-es6/-/detective-es6-3.0.0.tgz", - "integrity": "sha512-Uv2b5Uih7vorYlqGzCX+nTPUb4CMzUAn3VPHTV5p5lBkAN4cAApLGgUz4mZE2sXlBfv4/LMmeP7qzxHV/ZcfWA==", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "dependencies": { - "node-source-walk": "^5.0.0" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">=12" + "node": ">=16" } }, - "node_modules/detective-less": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-less/-/detective-less-1.0.2.tgz", - "integrity": "sha512-Rps1xDkEEBSq3kLdsdnHZL1x2S4NGDcbrjmd4q+PykK5aJwDdP5MBgrJw1Xo+kyUHuv3JEzPqxr+Dj9ryeDRTA==", + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", "dev": true, "dependencies": { - "debug": "^4.0.0", - "gonzales-pe": "^4.2.3", - "node-source-walk": "^4.0.0" + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" }, "engines": { - "node": ">= 6.0" + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/detective-less/node_modules/node-source-walk": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "dependencies": { - "@babel/parser": "^7.0.0" - }, "engines": { - "node": ">=6.0" - } + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } }, - "node_modules/detective-postcss": { - "version": "6.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-postcss/-/detective-postcss-6.1.0.tgz", - "integrity": "sha512-ZFZnEmUrL2XHAC0j/4D1fdwZbo/anAcK84soJh7qc7xfx2Kc8gFO5Bk5I9jU7NLC/OAF1Yho1GLxEDnmQnRH2A==", + "node_modules/fs-extra": { + "version": "11.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { - "is-url": "^1.2.4", - "postcss": "^8.4.12", - "postcss-values-parser": "^6.0.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=14.14" } }, - "node_modules/detective-sass": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-sass/-/detective-sass-4.1.0.tgz", - "integrity": "sha512-GOeW+0uM7XH2PGu12Te0ZxSrg0OyPULSv7HhGVcYmj3JzULuSGkTpEZWE/7nIn0bY+o2oQzDkPpIQho/57HnLA==", + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^5.0.0" + "minipass": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">= 8" } }, - "node_modules/detective-scss": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-scss/-/detective-scss-3.0.0.tgz", - "integrity": "sha512-37MB/mhJyS45ngqfzd6eTbuLMoDgdZnH03ZOMW2m9WqJ/Rlbuc8kZAr0Ypovaf1DJiTRzy5mmxzOTja85jbzlA==", + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^5.0.0" - }, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], "engines": { - "node": ">=12" + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, - "node_modules/detective-stylus": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-stylus/-/detective-stylus-2.0.1.tgz", - "integrity": "sha512-/Tvs1pWLg8eYwwV6kZQY5IslGaYqc/GACxjcaGudiNtN5nKCH6o2WnJK3j0gA3huCnoQcbv8X7oz/c1lnvE3zQ==", + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=6.0" + "node": ">=6.9.0" } }, - "node_modules/detective-typescript": { - "version": "9.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-typescript/-/detective-typescript-9.0.0.tgz", - "integrity": "sha512-lR78AugfUSBojwlSRZBeEqQ1l8LI7rbxOl1qTUnGLcjZQDjZmrZCb7R46rK8U8B5WzFvJrxa7fEBA8FoD/n5fA==", + "node_modules/get-amd-module-type": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-amd-module-type/-/get-amd-module-type-6.0.0.tgz", + "integrity": "sha512-hFM7oivtlgJ3d6XWD6G47l8Wyh/C6vFw5G24Kk1Tbq85yh5gcM8Fne5/lFhiuxB+RT6+SI7I1ThB9lG4FBh3jw==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "^5.13.0", - "ast-module-types": "^3.0.0", - "node-source-walk": "^5.0.0", - "typescript": "^4.5.5" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" }, "engines": { - "node": "^12.20.0 || ^14.14.0 || >=16.0.0" + "node": ">=18" } }, - "node_modules/diff": { - "version": "5.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff/-/diff-5.1.0.tgz", - "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { - "node": ">=0.3.1" + "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/diff-sequences": { - "version": "27.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff-sequences/-/diff-sequences-27.5.1.tgz", - "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, + "license": "MIT", "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": ">=8.0.0" } }, - "node_modules/diff2html": { - "version": "3.4.20-usewontache.1.60e7a2e", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff2html/-/diff2html-3.4.20-usewontache.1.60e7a2e.tgz", - "integrity": "sha512-0ge1jQpRv9Eg6USdIgnDIzAnuhhlgFPmhglCUBNhSVU772biWWbSu/palu0uK+PbgidjkjkajztZGVAZnD56pw==", + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, - "dependencies": { - "diff": "5.1.0", - "wontache": "0.1.0" - }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "highlight.js": "11.6.0" + "node": ">=10" } }, - "node_modules/dir-glob": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { - "path-type": "^4.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "dev": true, "dependencies": { - "esutils": "^2.0.2" + "is-glob": "^4.0.3" }, "engines": { - "node": ">=6.0.0" + "node": ">=10.13.0" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "node_modules/globals": { + "version": "15.11.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-15.11.0.tgz", + "integrity": "sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/ejs": { - "version": "3.1.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ejs/-/ejs-3.1.10.tgz", - "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "jake": "^10.8.5" + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/gonzales-pe": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", + "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" }, "bin": { - "ejs": "bin/cli.js" + "gonzales": "bin/gonzales.js" }, "engines": { - "node": ">=0.10.0" + "node": ">=0.6.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.5.13", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/electron-to-chromium/-/electron-to-chromium-1.5.13.tgz", - "integrity": "sha512-lbBcvtIJ4J6sS4tb5TLp1b4LyfCdMkwStzXPyAgVgTRAsep4bvrAGaBOP7ZJtQMNJpSQ9SqG4brWOroNaQtm7Q==", + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", "dev": true, - "license": "ISC" + "license": "MIT" }, - "node_modules/emittery": { - "version": "0.13.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emittery/-/emittery-0.13.1.tgz", - "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + "node": ">=4" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "node_modules/has-own-prop": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-own-prop/-/has-own-prop-2.0.0.tgz", + "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true, - "optional": true, - "dependencies": { - "iconv-lite": "^0.6.2" + "engines": { + "node": ">=8" } }, - "node_modules/enhanced-resolve": { - "version": "5.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", - "integrity": "sha512-QHTXI/sZQmko1cbDoNAa3mJ5qhWUUNAq3vR0/YiD379fWQrcfuoX1+HW2S0MTt7XmoPLapdaDKUtelUSPic7hQ==", + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dev": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "function-bind": "^1.1.2" }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" } }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "node_modules/env-cmd": { - "version": "10.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/env-cmd/-/env-cmd-10.1.0.tgz", - "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "node_modules/hast-util-to-html": { + "version": "9.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hast-util-to-html/-/hast-util-to-html-9.0.2.tgz", + "integrity": "sha512-RP5wNpj5nm1Z8cloDv4Sl4RS8jH5HYa0v93YB6Wb4poEzgMo/dAAL0KcT4974dCjcNG5pkLqTImeFHHCwwfY3g==", "dev": true, "dependencies": { - "commander": "^4.0.0", - "cross-spawn": "^7.0.0" - }, - "bin": { - "env-cmd": "bin/env-cmd.js" + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" }, - "engines": { - "node": ">=8.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha512-CJAN+O0/yA1CKfRn9SXOGctSpEM7DCon/r/5r2eXFMY2zCCJBasFhcM5I+1kh3Ap11FsQCX+vGHceNPvpWKhoA==", - "dev": true - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "license": "MIT", "dependencies": { - "is-arrayish": "^0.2.1" + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, - "node_modules/escalade": { - "version": "3.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escalade/-/escalade-3.2.0.tgz", - "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "node_modules/highlight.js": { + "version": "11.6.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", "dev": true, - "license": "MIT", + "optional": true, "engines": { - "node": ">=6" + "node": ">=12.0.0" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "node_modules/hogan.js": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hogan.js/-/hogan.js-3.0.2.tgz", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", + "dev": true, + "dependencies": { + "mkdirp": "0.3.0", + "nopt": "1.0.10" + }, + "bin": { + "hulk": "bin/hulk" + } + }, + "node_modules/hogan.js/node_modules/mkdirp": { + "version": "0.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", "dev": true, "engines": { - "node": ">=0.8.0" + "node": "*" } }, - "node_modules/escodegen": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escodegen/-/escodegen-2.0.0.tgz", - "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "node_modules/holderjs": { + "version": "2.9.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/holderjs/-/holderjs-2.9.9.tgz", + "integrity": "sha512-ceWPz1MrR3dxOoZXiom+G48+l1VPG3TcjBw9fq5iwCiZAMvYX8Aia13GOxT7DoV/AcSyTH7Vvr11ygjZP9qn4w==", + "dev": true + }, + "node_modules/hosted-git-info": { + "version": "7.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", + "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", "dev": true, "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^5.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1" - }, - "bin": { - "escodegen": "bin/escodegen.js", - "esgenerate": "bin/esgenerate.js" + "lru-cache": "^10.0.1" }, "engines": { - "node": ">=6.0" - }, - "optionalDependencies": { - "source-map": "~0.6.1" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/hosted-git-info/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", "dev": true, - "engines": { - "node": ">=4.0" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/escodegen/node_modules/levn": { - "version": "0.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/levn/-/levn-0.3.0.tgz", - "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", + "node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" + "agent-base": "^7.1.0", + "debug": "^4.3.4" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 14" } }, - "node_modules/escodegen/node_modules/optionator": { - "version": "0.8.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/optionator/-/optionator-0.8.3.tgz", - "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", "dev": true, "dependencies": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.6", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "word-wrap": "~1.2.3" + "agent-base": "^7.0.2", + "debug": "4" }, "engines": { - "node": ">= 0.8.0" + "node": ">= 14" } }, - "node_modules/escodegen/node_modules/prelude-ls": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, + "license": "Apache-2.0", "engines": { - "node": ">= 0.8.0" + "node": ">=10.17.0" } }, - "node_modules/escodegen/node_modules/type-check": { - "version": "0.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-check/-/type-check-0.3.2.tgz", - "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", + "node_modules/husky": { + "version": "9.1.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/husky/-/husky-9.1.6.tgz", + "integrity": "sha512-sqbjZKK7kf44hfdE94EoX8MZNk0n7HeW37O4YrVGCF4wzgQjp+akPAkfUK5LZ6KuR/6sqeAVuXHji+RzQgOn5A==", "dev": true, - "dependencies": { - "prelude-ls": "~1.1.2" + "bin": { + "husky": "bin.js" }, "engines": { - "node": ">= 0.8.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/typicode" } }, - "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, - "license": "MIT", + "optional": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", - "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.3.2", - "doctrine": "^3.0.0", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" - }, - "bin": { - "eslint": "bin/eslint.js" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "node_modules/ignore": { + "version": "5.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "6.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore-walk/-/ignore-walk-6.0.5.tgz", + "integrity": "sha512-VuuG0wCnjhnylG1ABXT3dAuIpTNDs/G8jlpmwXY03fXoXy/8ZK8/T+hMzt8L4WnrLCJgdybqgPagnF/f97cg3A==", "dev": true, - "license": "MIT", "dependencies": { - "@typescript-eslint/utils": "^5.10.0" + "minimatch": "^9.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/eslint-plugin-license-header": { - "version": "0.6.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-license-header/-/eslint-plugin-license-header-0.6.1.tgz", - "integrity": "sha512-9aIz8q3OaMr1/uQmCGCWySjTs5nEXUJexNegz/8lluNcZbEl82Ag1Vyr1Hu3oIveRW1NbXDPs6nu4zu9mbrmWA==", + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { - "requireindex": "^1.2.0" + "balanced-match": "^1.0.0" } }, - "node_modules/eslint-plugin-unused-imports": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz", - "integrity": "sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==", + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { - "eslint-rule-composer": "^0.3.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0", - "eslint": "^8.0.0" + "node": ">=16 || 14 >=14.17" }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/eslint-rule-composer": { - "version": "0.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz", - "integrity": "sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==", + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, "engines": { - "node": ">=4.0.0" + "node": ">=6" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/import-local": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/import-local/-/import-local-3.1.0.tgz", + "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", "dev": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" }, "engines": { - "node": ">=8.0.0" + "node": ">=8" } }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, - "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.8.19" } }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/ip-address": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "jsbn": "1.1.0", + "sprintf-js": "^1.1.3" }, "engines": { - "node": ">=7.0.0" + "node": ">= 12" } }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "node_modules/ip-address/node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true }, - "node_modules/eslint/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "node_modules/is-core-module": { + "version": "2.15.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-core-module/-/is-core-module-2.15.1.tgz", + "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" + "hasown": "^2.0.2" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">= 0.4" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, - "license": "BSD-2-Clause", "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, - "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "is-extglob": "^2.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "node_modules/is-lambda": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, - "dependencies": { - "estraverse": "^5.1.0" - }, "engines": { - "node": ">=0.10" + "node": ">=0.12.0" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, "engines": { - "node": ">=4.0" + "node": ">=0.10.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true, "engines": { - "node": ">=4.0" + "node": ">=10" } }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "node_modules/is-url-superb": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-url-superb/-/is-url-superb-4.0.0.tgz", + "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/execa": { - "version": "5.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/execa/-/execa-5.1.1.tgz", - "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.0", - "human-signals": "^2.1.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^4.0.1", - "onetime": "^5.1.2", - "signal-exit": "^3.0.3", - "strip-final-newline": "^2.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "dev": true }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "node_modules/istanbul-lib-instrument": { + "version": "6.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^7.5.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/exponential-backoff": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", - "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-glob": { - "version": "3.2.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-glob/-/fast-glob-3.2.7.tgz", - "integrity": "sha512-rYGMRwip6lUMvYD3BTScMwT1HtAs2d71SMv66Vrxs0IekGZEjhM0pcMfjQPnknBt2zeCwQMEupiN02ZP4DiT1Q==", + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "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" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=8" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/istanbul-lib-report/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "is-glob": "^4.0.1" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "node_modules/fastest-levenshtein": { - "version": "1.0.12", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", - "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", - "dev": true - }, - "node_modules/fastq": { - "version": "1.15.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", + "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", "dev": true, "dependencies": { - "reusify": "^1.0.4" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=10" } }, - "node_modules/fb-watchman": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fb-watchman/-/fb-watchman-2.0.2.tgz", - "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", + "node_modules/istanbul-reports": { + "version": "3.1.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", + "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", "dev": true, - "license": "Apache-2.0", "dependencies": { - "bser": "2.1.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "dependencies": { - "flat-cache": "^3.0.4" + "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": "^10.12.0 || >=12.0.0" + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "node_modules/filelist": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "node_modules/jake": { + "version": "10.9.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jake/-/jake-10.9.2.tgz", + "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "minimatch": "^5.0.1" + "async": "^3.2.3", + "chalk": "^4.0.2", + "filelist": "^1.0.4", + "minimatch": "^3.1.2" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" } }, - "node_modules/filelist/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/jake/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "node_modules/jake/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^2.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/filing-cabinet": { - "version": "3.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/filing-cabinet/-/filing-cabinet-3.3.1.tgz", - "integrity": "sha512-renEK4Hh6DUl9Vl22Y3cxBq1yh8oNvbAdXnhih0wVpmea+uyKjC9K4QeRjUaybIiIewdzfum+Fg15ZqJ/GyCaA==", + "node_modules/jake/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "app-module-path": "^2.2.0", - "commander": "^2.20.3", - "debug": "^4.3.3", - "enhanced-resolve": "^5.8.3", - "is-relative-path": "^1.0.2", - "module-definition": "^3.3.1", - "module-lookup-amd": "^7.0.1", - "resolve": "^1.21.0", - "resolve-dependency-path": "^2.0.0", - "sass-lookup": "^3.0.0", - "stylus-lookup": "^3.0.1", - "tsconfig-paths": "^3.10.1", - "typescript": "^3.9.7" - }, - "bin": { - "filing-cabinet": "bin/cli.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=10.13.0" + "node": ">=7.0.0" } }, - "node_modules/filing-cabinet/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "node_modules/jake/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, - "node_modules/filing-cabinet/node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", + "node_modules/jake/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, + "license": "MIT", "engines": { - "node": ">=4.2.0" + "node": ">=8" } }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "node_modules/jake/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "node_modules/jest": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest/-/jest-29.7.0.tgz", + "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", "dev": true, + "license": "MIT", "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" + "@jest/core": "^29.7.0", + "@jest/types": "^29.6.3", + "import-local": "^3.0.2", + "jest-cli": "^29.7.0" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "node_modules/jest-changed-files": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", + "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" + "execa": "^5.0.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/flatten": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/flatten/-/flatten-1.0.3.tgz", - "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", - "deprecated": "flatten is deprecated in favor of utility frameworks such as lodash.", - "dev": true - }, - "node_modules/foreground-child": { - "version": "3.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/foreground-child/-/foreground-child-3.3.0.tgz", - "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "node_modules/jest-circus": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-circus/-/jest-circus-29.7.0.tgz", + "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.0", - "signal-exit": "^4.0.1" + "@jest/environment": "^29.7.0", + "@jest/expect": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "dedent": "^1.0.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^29.7.0", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-runtime": "^29.7.0", + "jest-snapshot": "^29.7.0", + "jest-util": "^29.7.0", + "p-limit": "^3.1.0", + "pretty-format": "^29.7.0", + "pure-rand": "^6.0.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/foreground-child/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/jest-circus/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "ISC", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": ">=14" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "node_modules/jest-circus/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6 <7 || >=8" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "node_modules/jest-circus/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">= 8" + "node": ">=7.0.0" } }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true + "node_modules/jest-circus/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "node_modules/jest-circus/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "hasInstallScript": true, "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + "node": ">=8" } }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/gensync": { - "version": "1.0.0-beta.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "node_modules/jest-circus/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { - "node": ">=6.9.0" + "node": ">=8" } }, - "node_modules/get-amd-module-type": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-amd-module-type/-/get-amd-module-type-4.0.0.tgz", - "integrity": "sha512-GbBawUCuA2tY8ztiMiVo3e3P95gc2TVrfYFfpUHdHQA8WyxMCckK29bQsVKhYX8SUf+w6JLhL2LG8tSC0ANt9Q==", + "node_modules/jest-cli": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-cli/-/jest-cli-29.7.0.tgz", + "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", "dev": true, + "license": "MIT", "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^5.0.0" + "@jest/core": "^29.7.0", + "@jest/test-result": "^29.7.0", + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "create-jest": "^29.7.0", + "exit": "^0.1.2", + "import-local": "^3.0.2", + "jest-config": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "yargs": "^17.3.1" + }, + "bin": { + "jest": "bin/jest.js" }, "engines": { - "node": ">=12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } } }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "node_modules/jest-cli/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "6.* || 8.* || >= 10.*" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/get-own-enumerable-property-symbols": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", - "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", - "dev": true - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "node_modules/jest-cli/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=8.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "node_modules/jest-cli/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, "engines": { - "node": ">=10" + "node": ">=7.0.0" } }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "node_modules/jest-cli/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } + "license": "MIT" }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "node_modules/jest-cli/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, + "license": "MIT", "engines": { - "node": ">=10.13.0" + "node": ">=8" } }, - "node_modules/globals": { - "version": "13.20.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "node_modules/jest-cli/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "type-fest": "^0.20.2" + "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/globby": { - "version": "11.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/globby/-/globby-11.1.0.tgz", - "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "node_modules/jest-config": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-config/-/jest-config-29.7.0.tgz", + "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", "dev": true, + "license": "MIT", "dependencies": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.9", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^3.0.0" + "@babel/core": "^7.11.6", + "@jest/test-sequencer": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-jest": "^29.7.0", + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.9", + "jest-circus": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-regex-util": "^29.6.3", + "jest-resolve": "^29.7.0", + "jest-runner": "^29.7.0", + "jest-util": "^29.7.0", + "jest-validate": "^29.7.0", + "micromatch": "^4.0.4", + "parse-json": "^5.2.0", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "strip-json-comments": "^3.1.1" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "peerDependencies": { + "@types/node": "*", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "ts-node": { + "optional": true + } } }, - "node_modules/globby/node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "node_modules/jest-config/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "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" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=8.6.0" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/globby/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "node_modules/jest-config/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "is-glob": "^4.0.1" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">= 6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/gonzales-pe": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gonzales-pe/-/gonzales-pe-4.3.0.tgz", - "integrity": "sha512-otgSPpUmdWJ43VXyiNgEYE4luzHCL2pz4wQ0OnDluC6Eg4Ko3Vexy/SrSynglw/eR+OhkzmqFCZa/OFa/RgAOQ==", + "node_modules/jest-config/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "gonzales": "bin/gonzales.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=0.6.0" + "node": ">=7.0.0" } }, - "node_modules/graceful-fs": { - "version": "4.2.11", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "node_modules/jest-config/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/jest-config/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/has-own-prop": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-own-prop/-/has-own-prop-2.0.0.tgz", - "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", + "node_modules/jest-config/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, "engines": { "node": ">=8" } }, - "node_modules/highlight.js": { - "version": "11.6.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/highlight.js/-/highlight.js-11.6.0.tgz", - "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "node_modules/jest-diff": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-diff/-/jest-diff-29.7.0.tgz", + "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", "dev": true, - "optional": true, + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^29.6.3", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=12.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/hogan.js": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hogan.js/-/hogan.js-3.0.2.tgz", - "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", + "node_modules/jest-diff/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { - "mkdirp": "0.3.0", - "nopt": "1.0.10" + "color-convert": "^2.0.1" }, - "bin": { - "hulk": "bin/hulk" + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/hogan.js/node_modules/mkdirp": { - "version": "0.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mkdirp/-/mkdirp-0.3.0.tgz", - "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", - "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "node_modules/jest-diff/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": "*" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/holderjs": { - "version": "2.9.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/holderjs/-/holderjs-2.9.9.tgz", - "integrity": "sha512-ceWPz1MrR3dxOoZXiom+G48+l1VPG3TcjBw9fq5iwCiZAMvYX8Aia13GOxT7DoV/AcSyTH7Vvr11ygjZP9qn4w==", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "5.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-5.2.1.tgz", - "integrity": "sha512-xIcQYMnhcx2Nr4JTjsFmwwnr9vldugPy9uVm0o87bjqqWMv9GaqsTeT+i99wTl0mk1uLxJtHxLb8kymqTENQsw==", + "node_modules/jest-diff/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "dependencies": { - "lru-cache": "^7.5.1" + "color-name": "~1.1.4" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=7.0.0" } }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "node_modules/jest-diff/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/http-proxy-agent": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", - "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "node_modules/jest-diff/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "@tootallnate/once": "1", - "agent-base": "6", - "debug": "4" - }, "engines": { - "node": ">= 6" + "node": ">=8" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "node_modules/jest-diff/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { - "agent-base": "6", - "debug": "4" + "has-flag": "^4.0.0" }, "engines": { - "node": ">= 6" - } - }, - "node_modules/human-signals": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/human-signals/-/human-signals-2.1.0.tgz", - "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=10.17.0" + "node": ">=8" } }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "node_modules/jest-docblock": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-docblock/-/jest-docblock-29.7.0.tgz", + "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", "dev": true, + "license": "MIT", "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", - "dev": true, - "bin": { - "husky": "lib/bin.js" + "detect-newline": "^3.0.0" }, "engines": { - "node": ">=14" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/jest-each": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-each/-/jest-each-29.7.0.tgz", + "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", "dev": true, - "optional": true, + "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" + "@jest/types": "^29.6.3", + "chalk": "^4.0.0", + "jest-get-type": "^29.6.3", + "jest-util": "^29.7.0", + "pretty-format": "^29.7.0" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", - "dev": true, - "engines": { - "node": ">= 4" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ignore-walk": { - "version": "3.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ignore-walk/-/ignore-walk-3.0.4.tgz", - "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==", + "node_modules/jest-each/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "minimatch": "^3.0.4" + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "node_modules/jest-each/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "node_modules/jest-each/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "node_modules/jest-each/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, - "engines": { - "node": ">=0.8.19" - } + "license": "MIT" }, - "node_modules/indent-string": { + "node_modules/jest-each/node_modules/has-flag": { "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha512-bup+4tap3Hympa+JBJUG7XuOsdNQ6fxt0MHyXMKuLBKn0OqsTfvUxkUrroEX1+B2VsSHvCjiIcZVxRtYa4nllA==", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "node_modules/jest-each/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { - "once": "^1.3.0", - "wrappy": "1" + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "dev": true - }, - "node_modules/ip-address": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ip-address/-/ip-address-9.0.5.tgz", - "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", + "node_modules/jest-environment-node": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", + "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", "dev": true, "license": "MIT", "dependencies": { - "jsbn": "1.1.0", - "sprintf-js": "^1.1.3" + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/types": "^29.6.3", + "@types/node": "*", + "jest-mock": "^29.7.0", + "jest-util": "^29.7.0" }, "engines": { - "node": ">= 12" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ip-address/node_modules/sprintf-js": { - "version": "1.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sprintf-js/-/sprintf-js-1.1.3.tgz", - "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true, - "license": "MIT" - }, - "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } + "node_modules/jest-environment-node-debug": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-environment-node-debug/-/jest-environment-node-debug-2.0.0.tgz", + "integrity": "sha512-qiYRQBCwf/x+E88VsJbkBiyX95N3i5PaqABDiRPkeBjfU4yEVoZvDdg+V8qglV2+aDq6cE0JDBtPv16SWTRDLw==", + "dev": true }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "node_modules/jest-get-type": { + "version": "29.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-get-type/-/jest-get-type-29.6.3.tgz", + "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", "dev": true, + "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-generator-fn": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", - "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "node_modules/jest-haste-map": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", + "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, "dependencies": { - "is-extglob": "^2.1.1" + "@jest/types": "^29.6.3", + "@types/graceful-fs": "^4.1.3", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.9", + "jest-regex-util": "^29.6.3", + "jest-util": "^29.7.0", + "jest-worker": "^29.7.0", + "micromatch": "^4.0.4", + "walker": "^1.0.8" }, "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + }, + "optionalDependencies": { + "fsevents": "^2.3.2" } }, - "node_modules/is-lambda": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-lambda/-/is-lambda-1.0.1.tgz", - "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", - "dev": true - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "node_modules/jest-html-reporter": { + "version": "3.10.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-html-reporter/-/jest-html-reporter-3.10.2.tgz", + "integrity": "sha512-XRBa5ylHPUQoo8aJXEEdKsTruieTdlPbRktMx9WG9evMTxzJEKGFMaw5x+sQxJuClWdNR72GGwbOaz+6HIlksA==", "dev": true, + "license": "MIT", + "dependencies": { + "@jest/test-result": "^29.0.2", + "@jest/types": "^29.0.2", + "dateformat": "3.0.2", + "mkdirp": "^1.0.3", + "strip-ansi": "6.0.1", + "xmlbuilder": "15.0.0" + }, "engines": { - "node": ">=0.12.0" + "node": ">=4.8.3" + }, + "peerDependencies": { + "jest": "19.x - 29.x", + "typescript": "^3.7.x || ^4.3.x || ^5.x" } }, - "node_modules/is-obj": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-obj/-/is-obj-1.0.1.tgz", - "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==", + "node_modules/jest-junit": { + "version": "16.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-junit/-/jest-junit-16.0.0.tgz", + "integrity": "sha512-A94mmw6NfJab4Fg/BlvVOUXzXgF0XIH6EmTgJ5NDPp4xoKq0Kr7sErb+4Xs9nZvu58pJojz5RFGpqnZYJTrRfQ==", "dev": true, + "dependencies": { + "mkdirp": "^1.0.4", + "strip-ansi": "^6.0.1", + "uuid": "^8.3.2", + "xml": "^1.0.1" + }, "engines": { - "node": ">=0.10.0" + "node": ">=10.12.0" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "node_modules/jest-leak-detector": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", + "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=8" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-regexp": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-regexp/-/is-regexp-1.0.0.tgz", - "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==", + "node_modules/jest-matcher-utils": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", + "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", "dev": true, + "license": "MIT", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "pretty-format": "^29.7.0" + }, "engines": { - "node": ">=0.10.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/is-relative-path": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-relative-path/-/is-relative-path-1.0.2.tgz", - "integrity": "sha512-i1h+y50g+0hRbBD+dbnInl3JlJ702aar58snAeX+MxBAPvzXGej7sYoPMhlnykabt0ZzCJNBEyzMlekuQZN7fA==", - "dev": true - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-url-superb": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-url-superb/-/is-url-superb-4.0.0.tgz", - "integrity": "sha512-GI+WjezhPPcbM+tqE9LnmsY5qqjwHzTvjJ36wxYX5ujNXefSUJ/T17r5bqDV8yLhcgB59KTPNOc9O9cmHTPWsA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "dev": true - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", - "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", - "dev": true, - "engines": { - "node": ">=8" + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/istanbul-lib-instrument": { - "version": "6.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", - "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", + "node_modules/jest-matcher-utils/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "dependencies": { - "@babel/core": "^7.23.9", - "@babel/parser": "^7.23.9", - "@istanbuljs/schema": "^0.1.3", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^7.5.4" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { "node": ">=10" - } - }, - "node_modules/istanbul-lib-instrument/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" }, - "engines": { - "node": ">=10" + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "node_modules/jest-matcher-utils/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { - "istanbul-lib-coverage": "^3.0.0", - "make-dir": "^3.0.0", - "supports-color": "^7.1.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=8" + "node": ">=7.0.0" } }, - "node_modules/istanbul-lib-report/node_modules/has-flag": { + "node_modules/jest-matcher-utils/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/jest-matcher-utils/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { + "node_modules/jest-matcher-utils/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7609,107 +7239,57 @@ "node": ">=8" } }, - "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "node_modules/jest-message-util": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-message-util/-/jest-message-util-29.7.0.tgz", + "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", "dev": true, + "license": "MIT", "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "@babel/code-frame": "^7.12.13", + "@jest/types": "^29.6.3", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "micromatch": "^4.0.4", + "pretty-format": "^29.7.0", + "slash": "^3.0.0", + "stack-utils": "^2.0.3" }, "engines": { - "node": ">=10" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/istanbul-reports": { - "version": "3.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/istanbul-reports/-/istanbul-reports-3.1.5.tgz", - "integrity": "sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0", - "istanbul-lib-report": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/jake": { - "version": "10.9.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jake/-/jake-10.9.2.tgz", - "integrity": "sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.4", - "minimatch": "^3.1.2" - }, - "bin": { - "jake": "bin/cli.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/jake/node_modules/ansi-styles": { + "node_modules/jest-message-util/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jake/node_modules/chalk": { + "node_modules/jest-message-util/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jake/node_modules/color-convert": { + "node_modules/jest-message-util/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -7717,29 +7297,26 @@ "node": ">=7.0.0" } }, - "node_modules/jake/node_modules/color-name": { + "node_modules/jest-message-util/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, - "node_modules/jake/node_modules/has-flag": { + "node_modules/jest-message-util/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jake/node_modules/supports-color": { + "node_modules/jest-message-util/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -7747,81 +7324,85 @@ "node": ">=8" } }, - "node_modules/jest": { + "node_modules/jest-mock": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-mock/-/jest-mock-29.7.0.tgz", + "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" - }, - "bin": { - "jest": "bin/jest.js" + "@types/node": "*", + "jest-util": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" }, "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + "jest-resolve": "*" }, "peerDependenciesMeta": { - "node-notifier": { + "jest-resolve": { "optional": true } } }, - "node_modules/jest-changed-files": { + "node_modules/jest-regex-util": { + "version": "29.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", + "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + } + }, + "node_modules/jest-resolve": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-resolve/-/jest-resolve-29.7.0.tgz", + "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.9", + "jest-haste-map": "^29.7.0", + "jest-pnp-resolver": "^1.2.2", "jest-util": "^29.7.0", - "p-limit": "^3.1.0" + "jest-validate": "^29.7.0", + "resolve": "^1.20.0", + "resolve.exports": "^2.0.0", + "slash": "^3.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus": { + "node_modules/jest-resolve-dependencies": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", + "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "jest-regex-util": "^29.6.3", + "jest-snapshot": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-circus/node_modules/ansi-styles": { + "node_modules/jest-resolve/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7837,7 +7418,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-circus/node_modules/chalk": { + "node_modules/jest-resolve/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7854,7 +7435,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-circus/node_modules/color-convert": { + "node_modules/jest-resolve/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7867,14 +7448,14 @@ "node": ">=7.0.0" } }, - "node_modules/jest-circus/node_modules/color-name": { + "node_modules/jest-resolve/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-circus/node_modules/has-flag": { + "node_modules/jest-resolve/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -7884,7 +7465,7 @@ "node": ">=8" } }, - "node_modules/jest-circus/node_modules/supports-color": { + "node_modules/jest-resolve/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -7897,41 +7478,40 @@ "node": ">=8" } }, - "node_modules/jest-cli": { + "node_modules/jest-runner": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-runner/-/jest-runner-29.7.0.tgz", + "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", + "@jest/console": "^29.7.0", + "@jest/environment": "^29.7.0", "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", + "@types/node": "*", "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", + "emittery": "^0.13.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^29.7.0", + "jest-environment-node": "^29.7.0", + "jest-haste-map": "^29.7.0", + "jest-leak-detector": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-resolve": "^29.7.0", + "jest-runtime": "^29.7.0", "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" - }, - "bin": { - "jest": "bin/jest.js" + "jest-watcher": "^29.7.0", + "jest-worker": "^29.7.0", + "p-limit": "^3.1.0", + "source-map-support": "0.5.13" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } } }, - "node_modules/jest-cli/node_modules/ansi-styles": { + "node_modules/jest-runner/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -7947,7 +7527,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-cli/node_modules/chalk": { + "node_modules/jest-runner/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -7964,22 +7544,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-cli/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-cli/node_modules/color-convert": { + "node_modules/jest-runner/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -7992,14 +7557,14 @@ "node": ">=7.0.0" } }, - "node_modules/jest-cli/node_modules/color-name": { + "node_modules/jest-runner/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-cli/node_modules/has-flag": { + "node_modules/jest-runner/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -8009,7 +7574,7 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/supports-color": { + "node_modules/jest-runner/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -8022,82 +7587,41 @@ "node": ">=8" } }, - "node_modules/jest-cli/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-cli/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/jest-runtime": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-runtime/-/jest-runtime-29.7.0.tgz", + "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", "dev": true, "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", + "@jest/environment": "^29.7.0", + "@jest/fake-timers": "^29.7.0", + "@jest/globals": "^29.7.0", + "@jest/source-map": "^29.6.3", + "@jest/test-result": "^29.7.0", + "@jest/transform": "^29.7.0", "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", + "@types/node": "*", "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", + "cjs-module-lexer": "^1.0.0", + "collect-v8-coverage": "^1.0.0", "glob": "^7.1.3", "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", + "jest-haste-map": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-mock": "^29.7.0", "jest-regex-util": "^29.6.3", "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", + "jest-snapshot": "^29.7.0", "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", - "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", "slash": "^3.0.0", - "strip-json-comments": "^3.1.1" + "strip-bom": "^4.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@types/node": "*", - "ts-node": ">=9.0.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "ts-node": { - "optional": true - } } }, - "node_modules/jest-config/node_modules/ansi-styles": { + "node_modules/jest-runtime/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -8113,7 +7637,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-config/node_modules/chalk": { + "node_modules/jest-runtime/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -8130,7 +7654,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-config/node_modules/color-convert": { + "node_modules/jest-runtime/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -8143,14 +7667,14 @@ "node": ">=7.0.0" } }, - "node_modules/jest-config/node_modules/color-name": { + "node_modules/jest-runtime/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-config/node_modules/has-flag": { + "node_modules/jest-runtime/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -8160,7 +7684,7 @@ "node": ">=8" } }, - "node_modules/jest-config/node_modules/supports-color": { + "node_modules/jest-runtime/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -8173,51 +7697,77 @@ "node": ">=8" } }, - "node_modules/jest-diff": { - "version": "27.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-diff/-/jest-diff-27.0.6.tgz", - "integrity": "sha512-Z1mqgkTCSYaFgwTlP/NUiRzdqgxmmhzHY1Tq17zL94morOHfHu3K4bgSgl+CR4GLhpV8VxkuOYuIWnQ9LnFqmg==", + "node_modules/jest-snapshot": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", + "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", "dev": true, + "license": "MIT", "dependencies": { + "@babel/core": "^7.11.6", + "@babel/generator": "^7.7.2", + "@babel/plugin-syntax-jsx": "^7.7.2", + "@babel/plugin-syntax-typescript": "^7.7.2", + "@babel/types": "^7.3.3", + "@jest/expect-utils": "^29.7.0", + "@jest/transform": "^29.7.0", + "@jest/types": "^29.6.3", + "babel-preset-current-node-syntax": "^1.0.0", "chalk": "^4.0.0", - "diff-sequences": "^27.0.6", - "jest-get-type": "^27.0.6", - "pretty-format": "^27.0.6" + "expect": "^29.7.0", + "graceful-fs": "^4.2.9", + "jest-diff": "^29.7.0", + "jest-get-type": "^29.6.3", + "jest-matcher-utils": "^29.7.0", + "jest-message-util": "^29.7.0", + "jest-util": "^29.7.0", + "natural-compare": "^1.4.0", + "pretty-format": "^29.7.0", + "semver": "^7.5.3" }, "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-diff/node_modules/ansi-styles": { + "node_modules/jest-snapshot/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-diff/node_modules/chalk": { + "node_modules/jest-snapshot/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-diff/node_modules/color-convert": { + "node_modules/jest-snapshot/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8225,64 +7775,29 @@ "node": ">=7.0.0" } }, - "node_modules/jest-diff/node_modules/color-name": { + "node_modules/jest-snapshot/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/jest-diff/node_modules/has-flag": { + "node_modules/jest-snapshot/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-diff/node_modules/jest-get-type": { - "version": "27.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-get-type/-/jest-get-type-27.5.1.tgz", - "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==", - "dev": true, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-diff/node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-diff/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "dev": true - }, - "node_modules/jest-diff/node_modules/supports-color": { + "node_modules/jest-snapshot/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8290,37 +7805,38 @@ "node": ">=8" } }, - "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "node_modules/jest-stare": { + "version": "2.5.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-stare/-/jest-stare-2.5.2.tgz", + "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", "dev": true, "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "@jest/reporters": "^29.0.0", + "@jest/test-result": "^29.0.0", + "@jest/types": "^29.0.0", + "@types/jest": "^29.0.0", + "ansi-parser": "^3.2.10", + "bootstrap": "^5.0.0", + "chalk": "^4.1.0", + "chart.js": "^4.1.2", + "diff2html": "^3.4.40", + "holderjs": "^2.9.7", + "jquery": "^3.5.1", + "moment": "^2.27.0", + "mustache": "^4.0.0", + "pkg-up": "^3.0.0", + "popper.js": "^1.16.1", + "yargs": "^17.0.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "bin": { + "jest-stare": "lib/jest-stare.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=6.0.0" } }, - "node_modules/jest-each/node_modules/ansi-styles": { + "node_modules/jest-stare/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -8336,7 +7852,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-each/node_modules/chalk": { + "node_modules/jest-stare/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -8353,7 +7869,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-each/node_modules/color-convert": { + "node_modules/jest-stare/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -8366,14 +7882,31 @@ "node": ">=7.0.0" } }, - "node_modules/jest-each/node_modules/color-name": { + "node_modules/jest-stare/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-each/node_modules/has-flag": { + "node_modules/jest-stare/node_modules/diff2html": { + "version": "3.4.48", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff2html/-/diff2html-3.4.48.tgz", + "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", + "dev": true, + "license": "MIT", + "dependencies": { + "diff": "5.1.0", + "hogan.js": "3.0.2" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "highlight.js": "11.9.0" + } + }, + "node_modules/jest-stare/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -8383,7 +7916,18 @@ "node": ">=8" } }, - "node_modules/jest-each/node_modules/supports-color": { + "node_modules/jest-stare/node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "dev": true, + "license": "BSD-3-Clause", + "optional": true, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/jest-stare/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -8396,134 +7940,107 @@ "node": ">=8" } }, - "node_modules/jest-environment-node": { + "node_modules/jest-util": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-util/-/jest-util-29.7.0.tgz", + "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", "@jest/types": "^29.6.3", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "chalk": "^4.0.0", + "ci-info": "^3.2.0", + "graceful-fs": "^4.2.9", + "picomatch": "^2.2.3" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-environment-node-debug": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-environment-node-debug/-/jest-environment-node-debug-2.0.0.tgz", - "integrity": "sha512-qiYRQBCwf/x+E88VsJbkBiyX95N3i5PaqABDiRPkeBjfU4yEVoZvDdg+V8qglV2+aDq6cE0JDBtPv16SWTRDLw==", - "dev": true - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", + "node_modules/jest-util/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "node_modules/jest-util/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", - "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", - "walker": "^1.0.8" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "optionalDependencies": { - "fsevents": "^2.3.2" + "node": ">=10" } }, - "node_modules/jest-html-reporter": { - "version": "3.10.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-html-reporter/-/jest-html-reporter-3.10.2.tgz", - "integrity": "sha512-XRBa5ylHPUQoo8aJXEEdKsTruieTdlPbRktMx9WG9evMTxzJEKGFMaw5x+sQxJuClWdNR72GGwbOaz+6HIlksA==", + "node_modules/jest-util/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/test-result": "^29.0.2", - "@jest/types": "^29.0.2", - "dateformat": "3.0.2", - "mkdirp": "^1.0.3", - "strip-ansi": "6.0.1", - "xmlbuilder": "15.0.0" + "color-name": "~1.1.4" }, "engines": { - "node": ">=4.8.3" - }, - "peerDependencies": { - "jest": "19.x - 29.x", - "typescript": "^3.7.x || ^4.3.x || ^5.x" + "node": ">=7.0.0" } }, - "node_modules/jest-junit": { - "version": "15.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-junit/-/jest-junit-15.0.0.tgz", - "integrity": "sha512-Z5sVX0Ag3HZdMUnD5DFlG+1gciIFSy7yIVPhOdGUi8YJaI9iLvvBb530gtQL2CHmv0JJeiwRZenr0VrSR7frvg==", + "node_modules/jest-util/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/jest-util/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "dependencies": { - "mkdirp": "^1.0.4", - "strip-ansi": "^6.0.1", - "uuid": "^8.3.2", - "xml": "^1.0.1" - }, "engines": { - "node": ">=10.12.0" + "node": ">=8" } }, - "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "node_modules/jest-util/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-matcher-utils": { + "node_modules/jest-validate": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-validate/-/jest-validate-29.7.0.tgz", + "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", "dev": true, "license": "MIT", "dependencies": { + "@jest/types": "^29.6.3", + "camelcase": "^6.2.0", "chalk": "^4.0.0", - "jest-diff": "^29.7.0", "jest-get-type": "^29.6.3", + "leven": "^3.1.0", "pretty-format": "^29.7.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/ansi-styles": { + "node_modules/jest-validate/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -8539,7 +8056,20 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/chalk": { + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/jest-validate/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -8556,7 +8086,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-matcher-utils/node_modules/color-convert": { + "node_modules/jest-validate/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -8569,24 +8099,14 @@ "node": ">=7.0.0" } }, - "node_modules/jest-matcher-utils/node_modules/color-name": { + "node_modules/jest-validate/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-matcher-utils/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/has-flag": { + "node_modules/jest-validate/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -8596,23 +8116,7 @@ "node": ">=8" } }, - "node_modules/jest-matcher-utils/node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-matcher-utils/node_modules/supports-color": { + "node_modules/jest-validate/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -8625,57 +8129,65 @@ "node": ">=8" } }, - "node_modules/jest-message-util": { + "node_modules/jest-watcher": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-watcher/-/jest-watcher-29.7.0.tgz", + "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", + "@jest/test-result": "^29.7.0", "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", + "@types/node": "*", + "ansi-escapes": "^4.2.1", "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "emittery": "^0.13.1", + "jest-util": "^29.7.0", + "string-length": "^4.0.1" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-message-util/node_modules/ansi-styles": { + "node_modules/jest-watcher/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/chalk": { + "node_modules/jest-watcher/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-message-util/node_modules/color-convert": { + "node_modules/jest-watcher/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, + "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8683,26 +8195,29 @@ "node": ">=7.0.0" } }, - "node_modules/jest-message-util/node_modules/color-name": { + "node_modules/jest-watcher/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "dev": true, + "license": "MIT" }, - "node_modules/jest-message-util/node_modules/has-flag": { + "node_modules/jest-watcher/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-message-util/node_modules/supports-color": { + "node_modules/jest-watcher/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, + "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8710,232 +8225,302 @@ "node": ">=8" } }, - "node_modules/jest-mock": { + "node_modules/jest-worker": { "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-worker/-/jest-worker-29.7.0.tgz", + "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", "@types/node": "*", - "jest-util": "^29.7.0" + "jest-util": "^29.7.0", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "engines": { "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/jest-pnp-resolver": { - "version": "1.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", - "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - }, - "peerDependencies": { - "jest-resolve": "*" - }, - "peerDependenciesMeta": { - "jest-resolve": { - "optional": true - } - } - }, - "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "node_modules/jest-worker/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "has-flag": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "node_modules/jquery": { + "version": "3.6.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jquery/-/jquery-3.6.4.tgz", + "integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jest-resolve/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/jsbn": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsbn/-/jsbn-1.1.0.tgz", + "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "dev": true + }, + "node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "jsesc": "bin/jsesc" }, "engines": { - "node": ">=8" + "node": ">=6" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "engines": { + "node": ">=6" } }, - "node_modules/jest-resolve/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "universalify": "^2.0.0" }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "*" } }, - "node_modules/jest-resolve/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, "dependencies": { - "color-name": "~1.1.4" + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" }, "engines": { - "node": ">=7.0.0" + "node": ">= 0.8.0" } }, - "node_modules/jest-resolve/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true, "license": "MIT" }, - "node_modules/jest-resolve/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, "license": "MIT", + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/jest-resolve/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash-deep": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash-deep/-/lodash-deep-2.0.0.tgz", + "integrity": "sha512-+Yxj+pYo4tc9+n52qyIF7lySncvCYXRBF0jE0jkRxORpnvEHm6eO/DeUvZlH9zSCCUg4HQY+mzqZqhXmMyLuPw==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "lodash": ">=3.7.0" }, "engines": { - "node": ">=8" + "node": ">=0.8.0", + "npm": ">=1.2.10" } }, - "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", - "p-limit": "^3.1.0", - "source-map-support": "0.5.13" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/jest-runner/node_modules/ansi-styles": { + "node_modules/log-symbols/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runner/node_modules/chalk": { + "node_modules/log-symbols/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runner/node_modules/color-convert": { + "node_modules/log-symbols/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -8943,29 +8528,26 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runner/node_modules/color-name": { + "node_modules/log-symbols/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, - "node_modules/jest-runner/node_modules/has-flag": { + "node_modules/log-symbols/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, - "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/jest-runner/node_modules/supports-color": { + "node_modules/log-symbols/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "license": "MIT", "dependencies": { "has-flag": "^4.0.0" }, @@ -8973,41 +8555,76 @@ "node": ">=8" } }, - "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "node_modules/log4js": { + "version": "6.9.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/log4js/-/log4js-6.9.1.tgz", + "integrity": "sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "slash": "^3.0.0", - "strip-bom": "^4.0.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "flatted": "^3.2.7", + "rfdc": "^1.3.0", + "streamroller": "^3.1.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=8.0" } }, - "node_modules/jest-runtime/node_modules/ansi-styles": { + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/lunr": { + "version": "2.3.9", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lunr/-/lunr-2.3.9.tgz", + "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", + "dev": true + }, + "node_modules/madge": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/madge/-/madge-8.0.0.tgz", + "integrity": "sha512-9sSsi3TBPhmkTCIpVQF0SPiChj1L7Rq9kU2KDG1o6v2XH9cCw086MopjVCD+vuoL5v8S77DTbVopTO8OUiQpIw==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "commander": "^7.2.0", + "commondir": "^1.0.1", + "debug": "^4.3.4", + "dependency-tree": "^11.0.0", + "ora": "^5.4.1", + "pluralize": "^8.0.0", + "pretty-ms": "^7.0.1", + "rc": "^1.2.8", + "stream-to-array": "^2.3.0", + "ts-graphviz": "^2.1.2", + "walkdir": "^0.4.1" + }, + "bin": { + "madge": "bin/cli.js" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "type": "individual", + "url": "https://www.paypal.me/pahen" + }, + "peerDependencies": { + "typescript": "^5.4.4" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/madge/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9023,7 +8640,7 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/chalk": { + "node_modules/madge/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -9040,7 +8657,7 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/jest-runtime/node_modules/color-convert": { + "node_modules/madge/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9053,14 +8670,24 @@ "node": ">=7.0.0" } }, - "node_modules/jest-runtime/node_modules/color-name": { + "node_modules/madge/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true, "license": "MIT" }, - "node_modules/jest-runtime/node_modules/has-flag": { + "node_modules/madge/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/madge/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -9070,7 +8697,7 @@ "node": ">=8" } }, - "node_modules/jest-runtime/node_modules/supports-color": { + "node_modules/madge/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -9083,875 +8710,913 @@ "node": ">=8" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/magic-string": { + "version": "0.30.11", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, - "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, - "node_modules/jest-snapshot/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "semver": "^6.0.0" }, "engines": { "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/jest-snapshot/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/make-dir/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "bin": { + "semver": "bin/semver.js" } }, - "node_modules/jest-snapshot/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/make-fetch-happen": { + "version": "13.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", + "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "@npmcli/agent": "^2.0.0", + "cacache": "^18.0.0", + "http-cache-semantics": "^4.1.1", + "is-lambda": "^1.0.1", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "proc-log": "^4.2.0", + "promise-retry": "^2.0.1", + "ssri": "^10.0.0" }, "engines": { - "node": ">=7.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/jest-snapshot/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/jest-snapshot/node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", + "node_modules/make-fetch-happen/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/jest-snapshot/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/makeerror": { + "version": "1.0.12", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/makeerror/-/makeerror-1.0.12.tgz", + "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" + "license": "BSD-3-Clause", + "dependencies": { + "tmpl": "1.0.5" } }, - "node_modules/jest-snapshot/node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "markdown-it": "bin/markdown-it.mjs" } }, - "node_modules/jest-snapshot/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, "engines": { - "node": ">=10" + "node": ">= 8" } }, - "node_modules/jest-snapshot/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" } }, - "node_modules/jest-stare": { - "version": "2.5.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-stare/-/jest-stare-2.5.2.tgz", - "integrity": "sha512-dvxHXOsiJlvBi0n2dK9pz6RWFTdPB6njc2ZoMpyjmWI+aIL+X1W8OW5mTm1pkv/quy2ocKO/G+GsTe7Bv07xkQ==", + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", "dev": true, - "license": "MIT", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], "dependencies": { - "@jest/reporters": "^29.0.0", - "@jest/test-result": "^29.0.0", - "@jest/types": "^29.0.0", - "@types/jest": "^29.0.0", - "ansi-parser": "^3.2.10", - "bootstrap": "^5.0.0", - "chalk": "^4.1.0", - "chart.js": "^4.1.2", - "diff2html": "^3.4.40", - "holderjs": "^2.9.7", - "jquery": "^3.5.1", - "moment": "^2.27.0", - "mustache": "^4.0.0", - "pkg-up": "^3.0.0", - "popper.js": "^1.16.1", - "yargs": "^17.0.0" - }, - "bin": { - "jest-stare": "lib/jest-stare.js" - }, - "engines": { - "node": ">=6.0.0" + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" } }, - "node_modules/jest-stare/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=8.6" } }, - "node_modules/jest-stare/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "node": "*" } }, - "node_modules/jest-stare/node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, - "license": "ISC", "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" + "yallist": "^4.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/jest-stare/node_modules/color-convert": { + "node_modules/minipass-collect": { "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-2.0.1.tgz", + "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "minipass": "^7.0.3" }, "engines": { - "node": ">=7.0.0" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/jest-stare/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/minipass-collect/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=16 || 14 >=14.17" + } }, - "node_modules/jest-stare/node_modules/diff2html": { - "version": "3.4.48", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff2html/-/diff2html-3.4.48.tgz", - "integrity": "sha512-1lzNSg0G0VPKZPTyi4knzV2nAWTXBy/QaWCKzDto6iEIlcuOJEG0li4bElJfpHNz+pBqPu4AcC1i9ZCo9KMUOg==", + "node_modules/minipass-fetch": { + "version": "3.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", + "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", "dev": true, - "license": "MIT", "dependencies": { - "diff": "5.1.0", - "hogan.js": "3.0.2" + "minipass": "^7.0.3", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" }, "engines": { - "node": ">=12" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { - "highlight.js": "11.9.0" + "encoding": "^0.1.13" } }, - "node_modules/jest-stare/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/minipass-fetch/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/jest-stare/node_modules/highlight.js": { - "version": "11.9.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, - "license": "BSD-3-Clause", - "optional": true, + "dependencies": { + "minipass": "^3.0.0" + }, "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/jest-stare/node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true, - "license": "MIT", - "bin": { - "mustache": "bin/mustache" + "node": ">= 8" } }, - "node_modules/jest-stare/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/jest-stare/node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10" - } - }, - "node_modules/jest-stare/node_modules/yargs": { - "version": "17.7.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", - "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "node_modules/minipass-sized": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, - "license": "MIT", "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" + "minipass": "^3.0.0" }, "engines": { - "node": ">=12" + "node": ">=8" } }, - "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/minizlib": { + "version": "2.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, - "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "minipass": "^3.0.0", + "yallist": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": ">= 8" } }, - "node_modules/jest-util/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/minizlib/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, - "dependencies": { - "color-convert": "^2.0.1" + "bin": { + "mkdirp": "bin/cmd.js" }, "engines": { - "node": ">=8" + "node": ">=10" } }, - "node_modules/jest-util/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/module-definition": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/module-definition/-/module-definition-6.0.0.tgz", + "integrity": "sha512-sEGP5nKEXU7fGSZUML/coJbrO+yQtxcppDAYWRE9ovWsTbFoUHB2qDUx564WUzDaBHXsD46JBbIK5WVTwCyu3w==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "ast-module-types": "^6.0.0", + "node-source-walk": "^7.0.0" + }, + "bin": { + "module-definition": "bin/cli.js" }, "engines": { - "node": ">=10" + "node": ">=18" } }, - "node_modules/jest-util/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/module-lookup-amd": { + "version": "9.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/module-lookup-amd/-/module-lookup-amd-9.0.2.tgz", + "integrity": "sha512-p7PzSVEWiW9fHRX9oM+V4aV5B2nCVddVNv4DZ/JB6t9GsXY4E+ZVhPpnwUX7bbJyGeeVZqhS8q/JZ/H77IqPFA==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "commander": "^12.1.0", + "glob": "^7.2.3", + "requirejs": "^2.3.7", + "requirejs-config-file": "^4.0.0" + }, + "bin": { + "lookup-amd": "bin/cli.js" }, "engines": { - "node": ">=7.0.0" + "node": ">=18" } }, - "node_modules/jest-util/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/jest-util/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/module-lookup-amd/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/jest-util/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "leven": "^3.1.0", - "pretty-format": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "node_modules/jest-validate/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", "dev": true, "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "bin": { + "mustache": "bin/mustache" } }, - "node_modules/jest-validate/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "node_modules/mute-stream": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mute-stream/-/mute-stream-1.0.0.tgz", + "integrity": "sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==", "dev": true, - "license": "MIT", "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jest-validate/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/nan": { + "version": "2.22.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nan/-/nan-2.22.0.tgz", + "integrity": "sha512-nbajikzWTMwsW+eSsNm3QwlOs7het9gGJU5dDZzRTQGk03vyBOauxgI4VakDzE0PtsGTmXPsXTbbjVhRwR5mpw==", "dev": true, "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } + "optional": true }, - "node_modules/jest-validate/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" }, "engines": { - "node": ">=7.0.0" + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, - "node_modules/jest-validate/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true }, - "node_modules/jest-validate/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, - "license": "MIT", "engines": { - "node": ">=8" + "node": ">= 0.6" } }, - "node_modules/jest-validate/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/node-gyp": { + "version": "10.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-gyp/-/node-gyp-10.2.0.tgz", + "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "env-paths": "^2.2.0", + "exponential-backoff": "^3.1.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^13.0.0", + "nopt": "^7.0.0", + "proc-log": "^4.1.0", + "semver": "^7.3.5", + "tar": "^6.2.1", + "which": "^4.0.0" + }, + "bin": { + "node-gyp": "bin/node-gyp.js" }, "engines": { - "node": ">=8" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "node_modules/node-gyp/node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" - }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/node-gyp/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT", "dependencies": { - "color-convert": "^2.0.1" + "balanced-match": "^1.0.0" + } + }, + "node_modules/node-gyp/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": ">=8" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-watcher/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/node-gyp/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "brace-expansion": "^2.0.1" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/jest-watcher/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/node-gyp/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/node-gyp/node_modules/nopt": { + "version": "7.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nopt/-/nopt-7.2.1.tgz", + "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=7.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jest-watcher/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, - "node_modules/jest-watcher/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/node-releases": { + "version": "2.0.18", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/node-source-walk": { + "version": "7.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-source-walk/-/node-source-walk-7.0.0.tgz", + "integrity": "sha512-1uiY543L+N7Og4yswvlm5NCKgPKDEXd9AUR9Jh3gen6oOeBsesr6LqhXom1er3eRzSUcVRWXzhv8tSNrIfGHKw==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.4" + }, "engines": { - "node": ">=8" + "node": ">=18" } }, - "node_modules/jest-watcher/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "dev": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" }, "engines": { - "node": ">=8" + "node": "*" } }, - "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "node_modules/normalize-package-data": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", + "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", "dev": true, - "license": "MIT", "dependencies": { - "@types/node": "*", - "jest-util": "^29.7.0", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "hosted-git-info": "^7.0.0", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", "engines": { - "node": ">=8" + "node": ">=0.10.0" } }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "node_modules/npm-bundled": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-bundled/-/npm-bundled-3.0.1.tgz", + "integrity": "sha512-+AvaheE/ww1JEwRHOrn4WHNzOxGtVp+adrg2AeZS/7KuxGUYFuBta98wYpfHBbJp6Tg6j1NKSEVHNcfZzJHQwQ==", "dev": true, - "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "npm-normalize-package-bin": "^3.0.0" }, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jquery": { - "version": "3.6.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jquery/-/jquery-3.6.4.tgz", - "integrity": "sha512-v28EW9DWDFpzcD9O5iyJXg3R3+q+mET5JhnjJzQUZMHOv67bpSIHq81GEYpPNZHG+XXHsfSme3nxp/hndKEcsQ==", - "dev": true - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/npm-install-checks": { + "version": "6.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", + "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, "dependencies": { - "argparse": "^2.0.1" + "semver": "^7.1.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jsbn": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsbn/-/jsbn-1.1.0.tgz", - "integrity": "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==", + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, - "license": "MIT" + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "node_modules/npm-package-arg": { + "version": "11.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-11.0.3.tgz", + "integrity": "sha512-sHGJy8sOC1YraBywpzQlIKBE4pBbGbiF95U6Auspzyem956E0+FtDtsx1ZxlOJkQCZ1AFXAY/yuvtFYrOxF+Bw==", "dev": true, - "license": "MIT", - "bin": { - "jsesc": "bin/jsesc" + "dependencies": { + "hosted-git-info": "^7.0.0", + "proc-log": "^4.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^5.0.0" }, "engines": { - "node": ">=4" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true - }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "node_modules/npm-packlist": { + "version": "8.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-packlist/-/npm-packlist-8.0.2.tgz", + "integrity": "sha512-shYrPFIS/JLP4oQmAwDyk5HcyysKW8/JLTEA32S0Z5TzvpaeeX2yMFfoK1fjEBnCBvVyIB/Jj/GBFdm0wsgzbA==", "dev": true, - "bin": { - "json5": "lib/cli.js" + "dependencies": { + "ignore-walk": "^6.0.4" }, "engines": { - "node": ">=6" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/jsonschema": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonschema/-/jsonschema-1.1.1.tgz", - "integrity": "sha512-kHyDK+K6ehb+0LmJYzsQSd3QkRPDEPoG/59uhNzFTLVb92J9jYPaonLkzJe+Z4angkIhDeurMmvhtmjAVrz9eA==", + "node_modules/npm-pick-manifest": { + "version": "9.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-pick-manifest/-/npm-pick-manifest-9.1.0.tgz", + "integrity": "sha512-nkc+3pIIhqHVQr085X9d2JzPzLyjzQS96zbruppqC9aZRm/x8xx6xhI98gHtsfELP2bE+loHq8ZaHFHhe+NauA==", "dev": true, + "dependencies": { + "npm-install-checks": "^6.0.0", + "npm-normalize-package-bin": "^3.0.0", + "npm-package-arg": "^11.0.0", + "semver": "^7.3.5" + }, "engines": { - "node": "*" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "node_modules/npm-registry-fetch": { + "version": "17.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-registry-fetch/-/npm-registry-fetch-17.1.0.tgz", + "integrity": "sha512-5+bKQRH0J1xG1uZ1zMNvxW0VEyoNWgJpY9UDuluPFLKDfJ9u2JmmjmTJV1srBGQOROfdBMiVvnH2Zvpbm+xkVA==", "dev": true, + "dependencies": { + "@npmcli/redact": "^2.0.0", + "jsonparse": "^1.3.1", + "make-fetch-happen": "^13.0.0", + "minipass": "^7.0.2", + "minipass-fetch": "^3.0.0", + "minizlib": "^2.1.2", + "npm-package-arg": "^11.0.0", + "proc-log": "^4.0.0" + }, "engines": { - "node": ">=6" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "node_modules/npm-registry-fetch/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT", "engines": { - "node": ">=6" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, + "license": "MIT", "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" + "path-key": "^3.0.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=8" } }, - "node_modules/lines-and-columns": { - "version": "1.2.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", - "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", - "dev": true, - "license": "MIT" - }, - "node_modules/linkify-it": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/linkify-it/-/linkify-it-3.0.3.tgz", - "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { - "uc.micro": "^1.0.1" + "wrappy": "1" } }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { - "p-locate": "^5.0.0" + "mimic-fn": "^2.1.0" }, "engines": { - "node": ">=10" + "node": ">=6" } }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true + "node_modules/oniguruma-to-js": { + "version": "0.3.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/oniguruma-to-js/-/oniguruma-to-js-0.3.3.tgz", + "integrity": "sha512-m90/WEhgs8g4BxG37+Nu3YrMfJDs2YXtYtIllhsEPR+wP3+K4EZk6dDUvy2v2K4MNFDDOYKL4/yqYPXDqyozTQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/antfu" + } }, - "node_modules/lodash-deep": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash-deep/-/lodash-deep-2.0.0.tgz", - "integrity": "sha512-+Yxj+pYo4tc9+n52qyIF7lySncvCYXRBF0jE0jkRxORpnvEHm6eO/DeUvZlH9zSCCUg4HQY+mzqZqhXmMyLuPw==", + "node_modules/opener": { + "version": "1.5.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/opener/-/opener-1.5.2.tgz", + "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, + "license": "MIT", "dependencies": { - "lodash": ">=3.7.0" + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { - "node": ">=0.8.0", - "npm": ">=1.2.10" + "node": ">= 0.8.0" } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "dependencies": { + "bl": "^4.1.0", "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "engines": { "node": ">=10" } }, - "node_modules/log-symbols/node_modules/ansi-styles": { + "node_modules/ora/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", @@ -9963,7 +9628,7 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/chalk": { + "node_modules/ora/node_modules/chalk": { "version": "4.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", @@ -9976,7 +9641,7 @@ "node": ">=10" } }, - "node_modules/log-symbols/node_modules/color-convert": { + "node_modules/ora/node_modules/color-convert": { "version": "2.0.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", @@ -9988,13 +9653,13 @@ "node": ">=7.0.0" } }, - "node_modules/log-symbols/node_modules/color-name": { + "node_modules/ora/node_modules/color-name": { "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "node_modules/log-symbols/node_modules/has-flag": { + "node_modules/ora/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", @@ -10003,7 +9668,7 @@ "node": ">=8" } }, - "node_modules/log-symbols/node_modules/supports-color": { + "node_modules/ora/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", @@ -10015,3835 +9680,1838 @@ "node": ">=8" } }, - "node_modules/log4js": { - "version": "6.4.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/log4js/-/log4js-6.4.6.tgz", - "integrity": "sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw==", + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { - "date-format": "^4.0.9", - "debug": "^4.3.4", - "flatted": "^3.2.5", - "rfdc": "^1.3.0", - "streamroller": "^3.0.8" + "yocto-queue": "^0.1.0" }, "engines": { - "node": ">=8.0" + "node": ">=10" } }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { - "yallist": "^3.0.2" + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" } }, - "node_modules/lunr": { - "version": "2.3.9", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "node_modules/madge": { - "version": "6.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/madge/-/madge-6.1.0.tgz", - "integrity": "sha512-irWhT5RpFOc6lkzGHKLihonCVgM0YtfNUh4IrFeW3EqHpnt/JHUG3z26j8PeJEktCGB4tmGOOOJi1Rl/ACWucQ==", + "node_modules/p-map": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, - "license": "MIT", "dependencies": { - "chalk": "^4.1.1", - "commander": "^7.2.0", - "commondir": "^1.0.1", - "debug": "^4.3.1", - "dependency-tree": "^9.0.0", - "detective-amd": "^4.0.1", - "detective-cjs": "^4.0.0", - "detective-es6": "^3.0.0", - "detective-less": "^1.0.2", - "detective-postcss": "^6.1.0", - "detective-sass": "^4.0.1", - "detective-scss": "^3.0.0", - "detective-stylus": "^2.0.1", - "detective-typescript": "^9.0.0", - "ora": "^5.4.1", - "pluralize": "^8.0.0", - "precinct": "^8.1.0", - "pretty-ms": "^7.0.1", - "rc": "^1.2.7", - "stream-to-array": "^2.3.0", - "ts-graphviz": "^1.5.0", - "walkdir": "^0.4.1" - }, - "bin": { - "madge": "bin/cli.js" + "aggregate-error": "^3.0.0" }, "engines": { - "node": ">=14" + "node": ">=10" }, "funding": { - "type": "individual", - "url": "https://www.paypal.me/pahen" - }, - "peerDependencies": { - "typescript": "^3.9.5 || ^4.9.5 || ^5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/madge/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "node": ">=6" } }, - "node_modules/madge/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true + }, + "node_modules/pacote": { + "version": "18.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pacote/-/pacote-18.0.6.tgz", + "integrity": "sha512-+eK3G27SMwsB8kLIuj4h1FUhHtwiEUo21Tw8wNjmvdlpOEr613edv+8FUsTj/4F/VN5ywGE19X18N7CC2EJk6A==", "dev": true, - "license": "MIT", "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "@npmcli/git": "^5.0.0", + "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", + "@npmcli/promise-spawn": "^7.0.0", + "@npmcli/run-script": "^8.0.0", + "cacache": "^18.0.0", + "fs-minipass": "^3.0.0", + "minipass": "^7.0.2", + "npm-package-arg": "^11.0.0", + "npm-packlist": "^8.0.0", + "npm-pick-manifest": "^9.0.0", + "npm-registry-fetch": "^17.0.0", + "proc-log": "^4.0.0", + "promise-retry": "^2.0.1", + "sigstore": "^2.2.0", + "ssri": "^10.0.0", + "tar": "^6.1.11" }, - "engines": { - "node": ">=10" + "bin": { + "pacote": "bin/index.js" }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "engines": { + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/madge/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/pacote/node_modules/fs-minipass": { + "version": "3.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", + "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, - "license": "MIT", "dependencies": { - "color-name": "~1.1.4" + "minipass": "^7.0.3" }, "engines": { - "node": ">=7.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/madge/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/madge/node_modules/commander": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "node_modules/pacote/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 10" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/madge/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, - "license": "MIT", + "dependencies": { + "callsites": "^3.0.0" + }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/madge/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^4.0.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" }, "engines": { "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "node_modules/parse-ms": { + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse-ms/-/parse-ms-2.1.0.tgz", + "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, "engines": { - "node": ">=8" + "node": ">=6" } }, - "node_modules/make-dir/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, - "bin": { - "semver": "bin/semver.js" + "engines": { + "node": ">=8" } }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, - "node_modules/make-fetch-happen": { - "version": "8.0.14", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-8.0.14.tgz", - "integrity": "sha512-EsS89h6l4vbfJEtBZnENTOFk8mCRpY5ru36Xe5bcX1KYIli2mkSHqoFsp5O1wMDvTJJzxe/4THpCTtygjeeGWQ==", + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, - "dependencies": { - "agentkeepalive": "^4.1.3", - "cacache": "^15.0.5", - "http-cache-semantics": "^4.1.0", - "http-proxy-agent": "^4.0.1", - "https-proxy-agent": "^5.0.0", - "is-lambda": "^1.0.1", - "lru-cache": "^6.0.0", - "minipass": "^3.1.3", - "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "promise-retry": "^2.0.1", - "socks-proxy-agent": "^5.0.0", - "ssri": "^8.0.0" - }, "engines": { - "node": ">= 10" + "node": ">=8" } }, - "node_modules/make-fetch-happen/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, - "node_modules/make-fetch-happen/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { - "yallist": "^4.0.0" + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/make-fetch-happen/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" - }, "engines": { - "node": ">=10" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/make-fetch-happen/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, "engines": { - "node": ">= 4" + "node": ">=8" } }, - "node_modules/make-fetch-happen/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/picocolors": { + "version": "1.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/picocolors/-/picocolors-1.1.0.tgz", + "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", + "dev": true, + "license": "ISC" }, - "node_modules/makeerror": { - "version": "1.0.12", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/makeerror/-/makeerror-1.0.12.tgz", - "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tmpl": "1.0.5" + "engines": { + "node": ">=8.6" } }, - "node_modules/markdown-it": { - "version": "12.3.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/markdown-it/-/markdown-it-12.3.2.tgz", - "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, - "dependencies": { - "argparse": "^2.0.1", - "entities": "~2.1.0", - "linkify-it": "^3.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "bin": { - "markdown-it": "bin/markdown-it.js" + "license": "MIT", + "engines": { + "node": ">= 6" } }, - "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, - "license": "MIT" + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, "engines": { - "node": ">= 8" + "node": ">=8" } }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" + "p-locate": "^4.1.0" }, "engines": { - "node": ">=8.6" + "node": ">=8" } }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, "engines": { "node": ">=6" } }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "dependencies": { - "brace-expansion": "^1.1.7" + "p-limit": "^2.2.0" }, "engines": { - "node": "*" + "node": ">=8" } }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.3.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "node_modules/pkg-up": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pkg-up/-/pkg-up-3.1.0.tgz", + "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" + "find-up": "^3.0.0" }, "engines": { "node": ">=8" } }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", + "node_modules/pkg-up/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "locate-path": "^3.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6" } }, - "node_modules/minipass-fetch": { - "version": "1.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", - "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", + "node_modules/pkg-up/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.1.0", - "minipass-sized": "^1.0.3", - "minizlib": "^2.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" }, "engines": { - "node": ">=8" - }, - "optionalDependencies": { - "encoding": "^0.1.12" + "node": ">=6" } }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", + "node_modules/pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, + "license": "MIT", "dependencies": { - "minipass": "^3.0.0" + "p-try": "^2.0.0" }, "engines": { - "node": ">= 8" + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/minipass-json-stream": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", - "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", + "node_modules/pkg-up/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "dev": true, + "license": "MIT", "dependencies": { - "jsonparse": "^1.3.1", - "minipass": "^3.0.0" + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" } }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", + "node_modules/pkg-up/node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/minipass-sized": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-sized/-/minipass-sized-1.0.3.tgz", - "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, "engines": { - "node": ">=8" + "node": ">=4" } }, - "node_modules/minipass/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/popper.js/-/popper.js-1.16.1.tgz", + "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", "dev": true }, - "node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "node_modules/postcss": { + "version": "8.4.47", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss/-/postcss-8.4.47.tgz", + "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" + "nanoid": "^3.3.7", + "picocolors": "^1.1.0", + "source-map-js": "^1.2.1" }, "engines": { - "node": ">= 8" + "node": "^10 || ^12 || >=14" } }, - "node_modules/minizlib/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "node_modules/postcss-values-parser": { + "version": "6.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", + "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", "dev": true, - "bin": { - "mkdirp": "bin/cmd.js" + "dependencies": { + "color-name": "^1.1.4", + "is-url-superb": "^4.0.0", + "quote-unquote": "^1.0.0" }, "engines": { "node": ">=10" + }, + "peerDependencies": { + "postcss": "^8.2.9" } }, - "node_modules/module-definition": { - "version": "3.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/module-definition/-/module-definition-3.4.0.tgz", - "integrity": "sha512-XxJ88R1v458pifaSkPNLUTdSPNVGMP2SXVncVmApGO+gAfrLANiYe6JofymCzVceGOMwQE2xogxBSc8uB7XegA==", - "dev": true, - "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" + "node_modules/postcss-values-parser/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/precinct": { + "version": "12.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/precinct/-/precinct-12.1.2.tgz", + "integrity": "sha512-x2qVN3oSOp3D05ihCd8XdkIPuEQsyte7PSxzLqiRgktu79S5Dr1I75/S+zAup8/0cwjoiJTQztE9h0/sWp9bJQ==", + "dev": true, + "dependencies": { + "@dependents/detective-less": "^5.0.0", + "commander": "^12.1.0", + "detective-amd": "^6.0.0", + "detective-cjs": "^6.0.0", + "detective-es6": "^5.0.0", + "detective-postcss": "^7.0.0", + "detective-sass": "^6.0.0", + "detective-scss": "^5.0.0", + "detective-stylus": "^5.0.0", + "detective-typescript": "^13.0.0", + "detective-vue2": "^2.0.3", + "module-definition": "^6.0.0", + "node-source-walk": "^7.0.0", + "postcss": "^8.4.40", + "typescript": "^5.5.4" }, "bin": { - "module-definition": "bin/cli.js" + "precinct": "bin/cli.js" }, "engines": { - "node": ">=6.0" + "node": ">=18" } }, - "node_modules/module-definition/node_modules/node-source-walk": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", + "node_modules/precinct/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, - "dependencies": { - "@babel/parser": "^7.0.0" - }, "engines": { - "node": ">=6.0" + "node": ">=18" } }, - "node_modules/module-lookup-amd": { - "version": "7.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/module-lookup-amd/-/module-lookup-amd-7.0.1.tgz", - "integrity": "sha512-w9mCNlj0S8qviuHzpakaLVc+/7q50jl9a/kmJ/n8bmXQZgDPkQHnPBb8MUOYh3WpAYkXuNc2c+khsozhIp/amQ==", + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "dev": true, - "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0", - "glob": "^7.1.6", - "requirejs": "^2.3.5", - "requirejs-config-file": "^4.0.0" - }, - "bin": { - "lookup-amd": "bin/cli.js" - }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.8.0" } }, - "node_modules/module-lookup-amd/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/moment": { - "version": "2.29.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/moment/-/moment-2.29.4.tgz", - "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", - "dev": true, + "node_modules/pretty-format": { + "version": "29.7.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pretty-format/-/pretty-format-29.7.0.tgz", + "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/schemas": "^29.6.3", + "ansi-styles": "^5.0.0", + "react-is": "^18.0.0" + }, "engines": { - "node": "*" + "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "5.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", + "dev": true, + "engines": { + "node": ">=10" + } }, - "node_modules/mustache": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mustache/-/mustache-2.3.0.tgz", - "integrity": "sha512-IgZ/cCHtDG1ft0vdDV9wrlNz20SvbUu2ECoDF6dhk2ZtedLNy1Kehy4oFlzmHPxcUQmVZuXYS2j+d0NkaEjTXQ==", + "node_modules/pretty-ms": { + "version": "7.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pretty-ms/-/pretty-ms-7.0.1.tgz", + "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", "dev": true, - "bin": { - "mustache": "bin/mustache" + "dependencies": { + "parse-ms": "^2.1.0" }, "engines": { - "npm": ">=1.4.0" + "node": ">=10" } }, - "node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/nan": { - "version": "2.18.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nan/-/nan-2.18.0.tgz", - "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "node_modules/prettyjson": { + "version": "1.2.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prettyjson/-/prettyjson-1.2.5.tgz", + "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==", "dev": true, - "optional": true + "dependencies": { + "colors": "1.4.0", + "minimist": "^1.2.0" + }, + "bin": { + "prettyjson": "bin/prettyjson" + } }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "node_modules/proc-log": { + "version": "4.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "dev": true, - "license": "MIT", "engines": { - "node": ">= 0.6" + "node": ">=0.4.0" } }, - "node_modules/node-gyp": { - "version": "10.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-gyp/-/node-gyp-10.2.0.tgz", - "integrity": "sha512-sp3FonBAaFe4aYTcFdZUn2NYkbP7xroPGYvQmP4Nl5PxamznItBnNCgjrVTKrEfQynInMsJvZrdmqUnysCJ8rw==", + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", + "dev": true + }, + "node_modules/promise-retry": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, - "license": "MIT", "dependencies": { - "env-paths": "^2.2.0", - "exponential-backoff": "^3.1.1", - "glob": "^10.3.10", - "graceful-fs": "^4.2.6", - "make-fetch-happen": "^13.0.0", - "nopt": "^7.0.0", - "proc-log": "^4.1.0", - "semver": "^7.3.5", - "tar": "^6.2.1", - "which": "^4.0.0" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/node-gyp/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "dev": true, - "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">= 6" } }, - "node_modules/node-gyp/node_modules/abbrev": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/abbrev/-/abbrev-2.0.0.tgz", - "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/node-gyp/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">=6" } }, - "node_modules/node-gyp/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "node_modules/pure-rand": { + "version": "6.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pure-rand/-/pure-rand-6.1.0.tgz", + "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ], + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "node_modules/quote-unquote": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/quote-unquote/-/quote-unquote-1.0.0.tgz", + "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", + "dev": true + }, + "node_modules/rc": { + "version": "1.2.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, + "bin": { + "rc": "cli.js" + } + }, + "node_modules/rc/node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", + "dev": true, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=0.10.0" } }, - "node_modules/node-gyp/node_modules/cacache/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/react-is": { + "version": "18.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-is/-/react-is-18.2.0.tgz", + "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "dev": true + }, + "node_modules/read": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read/-/read-3.0.1.tgz", + "integrity": "sha512-SLBrDU/Srs/9EoWhU5GdbAoxG1GzpQHo/6qiGItaoLJ1thmYpcNIM1qISEUvyHBzfGlWIyd6p2DNi1oV1VmAuw==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "mute-stream": "^1.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/node-gyp/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, - "license": "ISC", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, "engines": { - "node": ">=10" + "node": ">= 6" } }, - "node_modules/node-gyp/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "node_modules/regex": { + "version": "4.3.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/regex/-/regex-4.3.2.tgz", + "integrity": "sha512-kK/AA3A9K6q2js89+VMymcboLOlF5lZRCYJv3gzszXFHBr6kO6qLGzbm+UIugBEV8SMMKCTR59txoY6ctRHYVw==", + "dev": true + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", "dev": true, - "license": "MIT" + "engines": { + "node": ">=0.10" + } }, - "node_modules/node-gyp/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=0.10.0" } }, - "node_modules/node-gyp/node_modules/isexe": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-3.1.1.tgz", - "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "node_modules/requireindex": { + "version": "1.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requireindex/-/requireindex-1.2.0.tgz", + "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", "dev": true, - "license": "ISC", "engines": { - "node": ">=16" + "node": ">=0.10.5" } }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/requirejs": { + "version": "2.3.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requirejs/-/requirejs-2.3.7.tgz", + "integrity": "sha512-DouTG8T1WanGok6Qjg2SXuCMzszOo0eHeH9hDZ5Y4x8Je+9JB38HdTLT4/VA8OaUhBa0JPVHJ0pyBkM1z+pDsw==", "dev": true, - "license": "ISC" + "bin": { + "r_js": "bin/r.js", + "r.js": "bin/r.js" + }, + "engines": { + "node": ">=0.4.0" + } }, - "node_modules/node-gyp/node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/requirejs-config-file": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", + "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" + "esprima": "^4.0.0", + "stringify-object": "^3.2.1" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10.13.0" } }, - "node_modules/node-gyp/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" }, - "engines": { - "node": ">=16 || 14 >=14.17" + "bin": { + "resolve": "bin/resolve" }, "funding": { - "url": "https://github.com/sponsors/isaacs" + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/node-gyp/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, - "license": "ISC", + "dependencies": { + "resolve-from": "^5.0.0" + }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/resolve-dependency-path": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-dependency-path/-/resolve-dependency-path-4.0.0.tgz", + "integrity": "sha512-hlY1SybBGm5aYN3PC4rp15MzsJLM1w+MEA/4KU3UBPfz4S0lL3FL6mgv7JgaA8a+ZTeEQAiF1a1BuN2nkqiIlg==", "dev": true, - "license": "MIT", - "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - }, - "optionalDependencies": { - "encoding": "^0.1.13" + "node": ">=18" } }, - "node_modules/node-gyp/node_modules/nopt": { - "version": "7.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nopt/-/nopt-7.2.1.tgz", - "integrity": "sha512-taM24ViiimT/XntxbPyJQzCG+p4EKOpgD3mxFwW38mGjVUrfERQOeY4EDHjdnptttfHuHQXFx+lTP08Q+mLa/w==", + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "license": "ISC", - "dependencies": { - "abbrev": "^2.0.0" - }, - "bin": { - "nopt": "bin/nopt.js" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/node-gyp/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", + "node_modules/resolve.exports": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve.exports/-/resolve.exports-2.0.2.tgz", + "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", "dev": true, - "license": "ISC", + "license": "MIT", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/node-gyp/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", "dev": true, - "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/node-gyp/node_modules/retry": { + "node_modules/retry": { "version": "0.12.0", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, - "license": "MIT", "engines": { "node": ">= 4" } }, - "node_modules/node-gyp/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "dev": true, - "license": "ISC", - "dependencies": { - "minipass": "^7.0.3" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/node-gyp/node_modules/tar": { - "version": "6.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tar/-/tar-6.2.1.tgz", - "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", + "node_modules/rfdc": { + "version": "1.4.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "5.0.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-5.0.10.tgz", + "integrity": "sha512-l0OE8wL34P4nJH/H2ffoaniAokM2qSmrtXHmlpvYr5AVVX8msAyW0l8NVJFDxlSK4u3Uh/f41cQheDVdnYijwQ==", "dev": true, - "license": "ISC", "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" + "glob": "^10.3.7" }, - "engines": { - "node": ">=10" + "bin": { + "rimraf": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=8" + "dependencies": { + "balanced-match": "^1.0.0" } }, - "node_modules/node-gyp/node_modules/unique-filename": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "node_modules/rimraf/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, - "license": "ISC", "dependencies": { - "unique-slug": "^4.0.0" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "imurmurhash": "^0.1.4" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-4.0.0.tgz", - "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, - "license": "ISC", "dependencies": { - "isexe": "^3.1.1" - }, - "bin": { - "node-which": "bin/which.js" + "brace-expansion": "^2.0.1" }, "engines": { - "node": "^16.13.0 || >=18.0.0" + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/node-gyp/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true, - "license": "ISC" - }, - "node_modules/node-int64": { - "version": "0.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-int64/-/node-int64-0.4.0.tgz", - "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", - "dev": true, - "license": "MIT" - }, - "node_modules/node-source-walk": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-source-walk/-/node-source-walk-5.0.0.tgz", - "integrity": "sha512-58APXoMXpmmU+oVBJFajhTCoD8d/OGtngnVAWzIo2A8yn0IXwBzvIVIsTzoie/SrA37u+1hnpNz2HMWx/VIqlw==", + "node_modules/rimraf/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "@babel/parser": "^7.0.0" - }, "engines": { - "node": ">=12" + "node": ">=16 || 14 >=14.17" } }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" + "queue-microtask": "^1.2.2" } }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true }, - "node_modules/nopt": { - "version": "1.0.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/nopt/-/nopt-1.0.10.tgz", - "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "node_modules/sass-lookup": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sass-lookup/-/sass-lookup-6.0.1.tgz", + "integrity": "sha512-nl9Wxbj9RjEJA5SSV0hSDoU2zYGtE+ANaDS4OFUR7nYrquvBFvPKZZtQHe3lvnxCcylEDV00KUijjdMTUElcVQ==", "dev": true, "dependencies": { - "abbrev": "1" + "commander": "^12.0.0" }, "bin": { - "nopt": "bin/nopt.js" + "sass-lookup": "bin/cli.js" }, "engines": { - "node": "*" + "node": ">=18" } }, - "node_modules/normalize-package-data": { - "version": "6.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", - "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", + "node_modules/sass-lookup/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "hosted-git-info": "^7.0.0", - "semver": "^7.3.5", - "validate-npm-package-license": "^3.0.4" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=18" } }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", - "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", + "node_modules/semver": { + "version": "7.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, - "license": "ISC", - "dependencies": { - "lru-cache": "^10.0.1" + "bin": { + "semver": "bin/semver.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/normalize-package-data/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, - "license": "ISC" + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } }, - "node_modules/normalize-path": { + "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, - "license": "MIT", "engines": { - "node": ">=0.10.0" + "node": ">=8" } }, - "node_modules/npm-bundled": { - "version": "1.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-bundled/-/npm-bundled-1.1.2.tgz", - "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", + "node_modules/shiki": { + "version": "1.17.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shiki/-/shiki-1.17.0.tgz", + "integrity": "sha512-VZf8cPShRwfzPcaswv81+YP7qJEoFwRT+Ehy6bizim7M0zG9bk8Egug550C+xS9g7rKIOPhzAlp2uEyuCxbk/A==", "dev": true, "dependencies": { - "npm-normalize-package-bin": "^1.0.1" + "@shikijs/core": "1.17.0", + "@shikijs/types": "1.17.0", + "@shikijs/vscode-textmate": "^9.2.2", + "@types/hast": "^3.0.4" } }, - "node_modules/npm-install-checks": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-install-checks/-/npm-install-checks-4.0.0.tgz", - "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/sigstore": { + "version": "2.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sigstore/-/sigstore-2.3.1.tgz", + "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", "dev": true, "dependencies": { - "semver": "^7.1.1" + "@sigstore/bundle": "^2.3.2", + "@sigstore/core": "^1.0.0", + "@sigstore/protobuf-specs": "^0.3.2", + "@sigstore/sign": "^2.3.2", + "@sigstore/tuf": "^2.3.4", + "@sigstore/verify": "^1.2.1" }, "engines": { - "node": ">=10" + "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", "dev": true }, - "node_modules/npm-package-arg": { - "version": "9.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-9.1.0.tgz", - "integrity": "sha512-4J0GL+u2Nh6OnhvUKXRr2ZMG4lR8qtLp+kv7UiV00Y+nGiSxtttCyIRHCt5L5BNkXQld/RceYItau3MDOoGiBw==", + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", "dev": true, - "dependencies": { - "hosted-git-info": "^5.0.0", - "proc-log": "^2.0.1", - "semver": "^7.3.5", - "validate-npm-package-name": "^4.0.0" - }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": ">=8" } }, - "node_modules/npm-packlist": { - "version": "2.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-packlist/-/npm-packlist-2.2.2.tgz", - "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==", + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, - "dependencies": { - "glob": "^7.1.6", - "ignore-walk": "^3.0.3", - "npm-bundled": "^1.1.1", - "npm-normalize-package-bin": "^1.0.1" - }, - "bin": { - "npm-packlist": "bin/index.js" - }, "engines": { - "node": ">=10" + "node": ">= 6.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/npm-pick-manifest": { - "version": "6.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz", - "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==", + "node_modules/socks": { + "version": "2.8.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/socks/-/socks-2.8.3.tgz", + "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", "dev": true, "dependencies": { - "npm-install-checks": "^4.0.0", - "npm-normalize-package-bin": "^1.0.1", - "npm-package-arg": "^8.1.2", - "semver": "^7.3.4" + "ip-address": "^9.0.5", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.0.0", + "npm": ">= 3.0.0" } }, - "node_modules/npm-pick-manifest/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/npm-pick-manifest/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/socks-proxy-agent": { + "version": "8.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/socks-proxy-agent/-/socks-proxy-agent-8.0.4.tgz", + "integrity": "sha512-GNAq/eg8Udq2x0eNiFkr9gRg5bA7PXEWagQdeRX4cPSG+X/8V38v637gim9bjFptMk1QWsCTr0ttrJEiXbNnRw==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" + "agent-base": "^7.1.1", + "debug": "^4.3.4", + "socks": "^2.8.3" }, "engines": { - "node": ">=10" + "node": ">= 14" } }, - "node_modules/npm-pick-manifest/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/npm-pick-manifest/node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, "engines": { - "node": ">=10" + "node": ">=0.10.0" } }, - "node_modules/npm-pick-manifest/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "node_modules/source-map-support": { + "version": "0.5.13", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, + "license": "MIT", "dependencies": { - "builtins": "^1.0.3" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, - "node_modules/npm-pick-manifest/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/npm-registry-fetch": { - "version": "8.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-registry-fetch/-/npm-registry-fetch-8.1.5.tgz", - "integrity": "sha512-yZPNoJK9clx1jhSXU54kU6Aj1SV2p7mXUs1W/6OjQvek3wb1RrjDCrt4iY1+VX9eBQvvSGEpzNmYkRUaTL8rqg==", + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { - "@npmcli/ci-detect": "^1.0.0", - "lru-cache": "^6.0.0", - "make-fetch-happen": "^8.0.9", - "minipass": "^3.1.3", - "minipass-fetch": "^1.3.0", - "minipass-json-stream": "^1.0.1", - "minizlib": "^2.0.0", - "npm-package-arg": "^8.0.0" - }, - "engines": { - "node": ">=10" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, - "node_modules/npm-registry-fetch/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "node_modules/spdx-license-ids": { + "version": "3.0.20", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", + "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/ssh2": { + "version": "1.16.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssh2/-/ssh2-1.16.0.tgz", + "integrity": "sha512-r1X4KsBGedJqo7h8F5c4Ybpcr5RjyP+aWIG007uBPRjmdQWfEiVLzSK71Zji1B9sKxwaCvD8y8cwSkYrlLiRRg==", "dev": true, + "hasInstallScript": true, "dependencies": { - "yallist": "^4.0.0" + "asn1": "^0.2.6", + "bcrypt-pbkdf": "^1.0.2" }, "engines": { - "node": ">=10" + "node": ">=10.16.0" + }, + "optionalDependencies": { + "cpu-features": "~0.0.10", + "nan": "^2.20.0" } }, - "node_modules/npm-registry-fetch/node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", + "node_modules/ssri": { + "version": "10.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-10.0.6.tgz", + "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", "dev": true, "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" + "minipass": "^7.0.3" }, "engines": { - "node": ">=10" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/npm-registry-fetch/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "node_modules/ssri/node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, - "dependencies": { - "builtins": "^1.0.3" + "engines": { + "node": ">=16 || 14 >=14.17" } }, - "node_modules/npm-registry-fetch/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } }, - "node_modules/npm-run-path": { - "version": "4.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-run-path/-/npm-run-path-4.0.1.tgz", - "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "node_modules/stack-utils": { + "version": "2.0.6", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stack-utils/-/stack-utils-2.0.6.tgz", + "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, - "license": "MIT", "dependencies": { - "path-key": "^3.0.0" + "escape-string-regexp": "^2.0.0" }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, "engines": { "node": ">=8" } }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "node_modules/stream-to-array": { + "version": "2.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stream-to-array/-/stream-to-array-2.3.0.tgz", + "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", "dev": true, "dependencies": { - "wrappy": "1" + "any-promise": "^1.1.0" } }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "node_modules/streamroller": { + "version": "3.1.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/streamroller/-/streamroller-3.1.5.tgz", + "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", "dev": true, "dependencies": { - "mimic-fn": "^2.1.0" + "date-format": "^4.0.14", + "debug": "^4.3.4", + "fs-extra": "^8.1.0" }, "engines": { - "node": ">=6" - } - }, - "node_modules/opener": { - "version": "1.5.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/opener/-/opener-1.5.2.tgz", - "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", - "dev": true, - "bin": { - "opener": "bin/opener-bin.js" + "node": ">=8.0" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "node_modules/streamroller/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "dev": true, - "license": "MIT", "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" }, "engines": { - "node": ">= 0.8.0" + "node": ">=6 <7 || >=8" } }, - "node_modules/ora": { - "version": "5.4.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ora/-/ora-5.4.1.tgz", - "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "node_modules/streamroller/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/streamroller/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true, - "dependencies": { - "bl": "^4.1.0", - "chalk": "^4.1.0", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.5.0", - "is-interactive": "^1.0.0", - "is-unicode-supported": "^0.1.0", - "log-symbols": "^4.1.0", - "strip-ansi": "^6.0.0", - "wcwidth": "^1.0.1" - }, "engines": { - "node": ">=10" + "node": ">= 4.0.0" } }, - "node_modules/ora/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" + "safe-buffer": "~5.2.0" } }, - "node_modules/ora/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/ora/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { - "color-name": "~1.1.4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" }, "engines": { - "node": ">=7.0.0" + "node": ">=8" } }, - "node_modules/ora/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ora/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, - "node_modules/ora/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", "dev": true, "dependencies": { - "has-flag": "^4.0.0" + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" }, - "engines": { - "node": ">=8" + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "dev": true, "dependencies": { - "yocto-queue": "^0.1.0" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-map": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-map/-/p-map-4.0.0.tgz", - "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json-from-dist": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", - "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", - "dev": true, - "license": "BlueOak-1.0.0" - }, - "node_modules/pacote": { - "version": "11.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pacote/-/pacote-11.1.4.tgz", - "integrity": "sha512-eUGJvSSpWFZKn3z8gig/HgnBmUl6gIWByIIaHzSyEr3tOWX0w8tFEADXtpu8HGv5E0ShCeTP6enRq8iHKCHSvw==", - "dev": true, - "dependencies": { - "@npmcli/git": "^2.0.1", - "@npmcli/installed-package-contents": "^1.0.5", - "@npmcli/promise-spawn": "^1.1.0", - "cacache": "^15.0.0", - "chownr": "^1.1.4", - "fs-minipass": "^2.1.0", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.1", - "minipass-fetch": "^1.2.1", - "mkdirp": "^1.0.3", - "npm-package-arg": "^8.0.1", - "npm-packlist": "^2.1.0", - "npm-pick-manifest": "^6.0.0", - "npm-registry-fetch": "^8.0.0", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "read-package-json-fast": "^1.1.3", - "rimraf": "^2.7.1", - "semver": "^7.1.3", - "ssri": "^8.0.0", - "tar": "^6.0.1", - "which": "^2.0.2" - }, - "bin": { - "pacote": "lib/bin.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", - "dev": true - }, - "node_modules/pacote/node_modules/hosted-git-info": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", - "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/npm-package-arg": { - "version": "8.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-package-arg/-/npm-package-arg-8.1.5.tgz", - "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==", - "dev": true, - "dependencies": { - "hosted-git-info": "^4.0.1", - "semver": "^7.3.4", - "validate-npm-package-name": "^3.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/pacote/node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/pacote/node_modules/which": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/pacote/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/parse-json": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse-json/-/parse-json-5.2.0.tgz", - "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/code-frame": "^7.0.0", - "error-ex": "^1.3.1", - "json-parse-even-better-errors": "^2.3.0", - "lines-and-columns": "^1.1.6" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-ms": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parse-ms/-/parse-ms-2.1.0.tgz", - "integrity": "sha512-kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/path-scurry/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/picocolors/-/picocolors-1.1.0.tgz", - "integrity": "sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 6" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "dev": true, - "license": "MIT", - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-up/node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-up/node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/pkg-up/node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/pluralize": { - "version": "8.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pluralize/-/pluralize-8.0.0.tgz", - "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/popper.js": { - "version": "1.16.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/popper.js/-/popper.js-1.16.1.tgz", - "integrity": "sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==", - "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", - "dev": true - }, - "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-values-parser": { - "version": "6.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss-values-parser/-/postcss-values-parser-6.0.2.tgz", - "integrity": "sha512-YLJpK0N1brcNJrs9WatuJFtHaV9q5aAOj+S4DI5S7jgHlRfm0PIbDCAFRYMQD5SHq7Fy6xsDhyutgS0QOAs0qw==", - "dev": true, - "dependencies": { - "color-name": "^1.1.4", - "is-url-superb": "^4.0.0", - "quote-unquote": "^1.0.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "postcss": "^8.2.9" - } - }, - "node_modules/postcss-values-parser/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/precinct": { - "version": "8.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/precinct/-/precinct-8.3.1.tgz", - "integrity": "sha512-pVppfMWLp2wF68rwHqBIpPBYY8Kd12lDhk8LVQzOwqllifVR15qNFyod43YLyFpurKRZQKnE7E4pofAagDOm2Q==", - "dev": true, - "dependencies": { - "commander": "^2.20.3", - "debug": "^4.3.3", - "detective-amd": "^3.1.0", - "detective-cjs": "^3.1.1", - "detective-es6": "^2.2.1", - "detective-less": "^1.0.2", - "detective-postcss": "^4.0.0", - "detective-sass": "^3.0.1", - "detective-scss": "^2.0.1", - "detective-stylus": "^1.0.0", - "detective-typescript": "^7.0.0", - "module-definition": "^3.3.1", - "node-source-walk": "^4.2.0" - }, - "bin": { - "precinct": "bin/cli.js" - }, - "engines": { - "node": "^10.13 || ^12 || >=14" - } - }, - "node_modules/precinct/node_modules/@typescript-eslint/types": { - "version": "4.33.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/types/-/types-4.33.0.tgz", - "integrity": "sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==", - "dev": true, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/precinct/node_modules/@typescript-eslint/typescript-estree": { - "version": "4.33.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/typescript-estree/-/typescript-estree-4.33.0.tgz", - "integrity": "sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "@typescript-eslint/visitor-keys": "4.33.0", - "debug": "^4.3.1", - "globby": "^11.0.3", - "is-glob": "^4.0.1", - "semver": "^7.3.5", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/precinct/node_modules/@typescript-eslint/visitor-keys": { - "version": "4.33.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@typescript-eslint/visitor-keys/-/visitor-keys-4.33.0.tgz", - "integrity": "sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==", - "dev": true, - "dependencies": { - "@typescript-eslint/types": "4.33.0", - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^8.10.0 || ^10.13.0 || >=11.10.1" - } - }, - "node_modules/precinct/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/precinct/node_modules/detective-amd": { - "version": "3.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-amd/-/detective-amd-3.1.2.tgz", - "integrity": "sha512-jffU26dyqJ37JHR/o44La6CxtrDf3Rt9tvd2IbImJYxWKTMdBjctp37qoZ6ZcY80RHg+kzWz4bXn39e4P7cctQ==", - "dev": true, - "dependencies": { - "ast-module-types": "^3.0.0", - "escodegen": "^2.0.0", - "get-amd-module-type": "^3.0.0", - "node-source-walk": "^4.2.0" - }, - "bin": { - "detective-amd": "bin/cli.js" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/detective-cjs": { - "version": "3.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-cjs/-/detective-cjs-3.1.3.tgz", - "integrity": "sha512-ljs7P0Yj9MK64B7G0eNl0ThWSYjhAaSYy+fQcpzaKalYl/UoQBOzOeLCSFEY1qEBhziZ3w7l46KG/nH+s+L7BQ==", - "dev": true, - "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/detective-es6": { - "version": "2.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-es6/-/detective-es6-2.2.2.tgz", - "integrity": "sha512-eZUKCUsbHm8xoeoCM0z6JFwvDfJ5Ww5HANo+jPR7AzkFpW9Mun3t/TqIF2jjeWa2TFbAiGaWESykf2OQp3oeMw==", - "dev": true, - "dependencies": { - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/detective-postcss": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-postcss/-/detective-postcss-4.0.0.tgz", - "integrity": "sha512-Fwc/g9VcrowODIAeKRWZfVA/EufxYL7XfuqJQFroBKGikKX83d2G7NFw6kDlSYGG3LNQIyVa+eWv1mqre+v4+A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "is-url": "^1.2.4", - "postcss": "^8.1.7", - "postcss-values-parser": "^2.0.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/precinct/node_modules/detective-sass": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-sass/-/detective-sass-3.0.2.tgz", - "integrity": "sha512-DNVYbaSlmti/eztFGSfBw4nZvwsTaVXEQ4NsT/uFckxhJrNRFUh24d76KzoCC3aarvpZP9m8sC2L1XbLej4F7g==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/detective-scss": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-scss/-/detective-scss-2.0.2.tgz", - "integrity": "sha512-hDWnWh/l0tht/7JQltumpVea/inmkBaanJUcXRB9kEEXVwVUMuZd6z7eusQ6GcBFrfifu3pX/XPyD7StjbAiBg==", - "dev": true, - "dependencies": { - "gonzales-pe": "^4.3.0", - "node-source-walk": "^4.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/detective-stylus": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-stylus/-/detective-stylus-1.0.3.tgz", - "integrity": "sha512-4/bfIU5kqjwugymoxLXXLltzQNeQfxGoLm2eIaqtnkWxqbhap9puDVpJPVDx96hnptdERzS5Cy6p9N8/08A69Q==", - "dev": true - }, - "node_modules/precinct/node_modules/detective-typescript": { - "version": "7.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/detective-typescript/-/detective-typescript-7.0.2.tgz", - "integrity": "sha512-unqovnhxzvkCz3m1/W4QW4qGsvXCU06aU2BAm8tkza+xLnp9SOFnob2QsTxUv5PdnQKfDvWcv9YeOeFckWejwA==", - "dev": true, - "dependencies": { - "@typescript-eslint/typescript-estree": "^4.33.0", - "ast-module-types": "^2.7.1", - "node-source-walk": "^4.2.0", - "typescript": "^3.9.10" - }, - "engines": { - "node": "^10.13 || >=12.0.0" - } - }, - "node_modules/precinct/node_modules/detective-typescript/node_modules/ast-module-types": { - "version": "2.7.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ast-module-types/-/ast-module-types-2.7.1.tgz", - "integrity": "sha512-Rnnx/4Dus6fn7fTqdeLEAn5vUll5w7/vts0RN608yFa6si/rDOUonlIIiwugHBFWjylHjxm9owoSZn71KwG4gw==", - "dev": true - }, - "node_modules/precinct/node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/precinct/node_modules/get-amd-module-type": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-amd-module-type/-/get-amd-module-type-3.0.2.tgz", - "integrity": "sha512-PcuKwB8ouJnKuAPn6Hk3UtdfKoUV3zXRqVEvj8XGIXqjWfgd1j7QGdXy5Z9OdQfzVt1Sk29HVe/P+X74ccOuqw==", - "dev": true, - "dependencies": { - "ast-module-types": "^3.0.0", - "node-source-walk": "^4.2.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/node-source-walk": { - "version": "4.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/node-source-walk/-/node-source-walk-4.3.0.tgz", - "integrity": "sha512-8Q1hXew6ETzqKRAs3jjLioSxNfT1cx74ooiF8RlAONwVMcfq+UdzLC2eB5qcPldUxaE5w3ytLkrmV1TGddhZTA==", - "dev": true, - "dependencies": { - "@babel/parser": "^7.0.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/precinct/node_modules/postcss-values-parser": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", - "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", - "dev": true, - "dependencies": { - "flatten": "^1.0.2", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=6.14.4" - } - }, - "node_modules/precinct/node_modules/typescript": { - "version": "3.9.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/typescript/-/typescript-3.9.10.tgz", - "integrity": "sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/pretty-format/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/pretty-ms": { - "version": "7.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pretty-ms/-/pretty-ms-7.0.1.tgz", - "integrity": "sha512-973driJZvxiGOQ5ONsFhOF/DtzPMOMtgC11kCpUrPGMTgqp2q/1gwzCquocrN33is0VZ5GFHXZYMM9l6h67v2Q==", - "dev": true, - "dependencies": { - "parse-ms": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/prettyjson": { - "version": "1.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prettyjson/-/prettyjson-1.2.2.tgz", - "integrity": "sha512-hDso231aQslRQPJjuSMIyUTN5CmW78AwEHlvigOs9E9IO+blW1AJTCJC6pQ8FArBSFsp5ZUdZsWXCUfXiD2D0w==", - "dev": true, - "dependencies": { - "colors": "1.4.0", - "minimist": "^1.2.0" - }, - "bin": { - "prettyjson": "bin/prettyjson" - } - }, - "node_modules/proc-log": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-2.0.1.tgz", - "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", - "dev": true, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", - "dev": true - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha512-StEy2osPr28o17bIW776GtwO6+Q+M9zPiZkYfosciUUMYqjhU/ffwRAH0zN2+uvGyUsn8/YICIHRzLbPacpZGw==", - "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", - "dev": true, - "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/punycode.js": { - "version": "2.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode.js/-/punycode.js-2.3.1.tgz", - "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/pure-rand": { - "version": "6.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/pure-rand/-/pure-rand-6.1.0.tgz", - "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/dubzzz" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fast-check" - } - ], - "license": "MIT" - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "node_modules/quote-unquote": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/quote-unquote/-/quote-unquote-1.0.0.tgz", - "integrity": "sha512-twwRO/ilhlG/FIgYeKGFqyHhoEhqgnKVkcmqMKi2r524gz3ZbDTcyFt38E9xjJI2vT+KbRNHVbnJ/e0I25Azwg==", - "dev": true - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/rc/node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", - "dev": true - }, - "node_modules/read": { - "version": "1.0.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read/-/read-1.0.7.tgz", - "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==", - "dev": true, - "dependencies": { - "mute-stream": "~0.0.4" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/read-package-json": { - "version": "7.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read-package-json/-/read-package-json-7.0.1.tgz", - "integrity": "sha512-8PcDiZ8DXUjLf687Ol4BR8Bpm2umR7vhoZOzNRt+uxD9GpBh/K+CAAALVIiYFknmvlmyg7hM7BSNUXPaCCqd0Q==", - "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", - "dev": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/read-package-json-fast": { - "version": "1.2.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/read-package-json-fast/-/read-package-json-fast-1.2.2.tgz", - "integrity": "sha512-39DbPJjkltEzfXJXB6D8/Ir3GFOU2YbSKa2HaB/Y3nKrc/zY+0XrALpID6/13ezWyzqvOHrBbR4t4cjQuTdBVQ==", - "dev": true, - "dependencies": { - "json-parse-even-better-errors": "^2.3.0", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/read-package-json/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/read-package-json/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/read-package-json/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/read-package-json/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=16 || 14 >=14.17" - } - }, - "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", - "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", - "dev": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readline-sync": { - "version": "1.4.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readline-sync/-/readline-sync-1.4.10.tgz", - "integrity": "sha512-gNva8/6UAe8QYepIQH/jQ2qn91Qj0B9sYjMBBs3QOB8F2CXcKgLxQaJRP76sWVRQt+QU+8fAkCbCvjjMFu7Ycw==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/requireindex": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requireindex/-/requireindex-1.2.0.tgz", - "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==", - "dev": true, - "engines": { - "node": ">=0.10.5" - } - }, - "node_modules/requirejs": { - "version": "2.3.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requirejs/-/requirejs-2.3.6.tgz", - "integrity": "sha512-ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==", - "dev": true, - "bin": { - "r_js": "bin/r.js", - "r.js": "bin/r.js" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/requirejs-config-file": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/requirejs-config-file/-/requirejs-config-file-4.0.0.tgz", - "integrity": "sha512-jnIre8cbWOyvr8a5F2KuqBnY+SDA4NXr/hzEZJG79Mxm2WiFQz2dzhC8ibtPJS7zkmBEl1mxSwp5HhC1W4qpxw==", - "dev": true, - "dependencies": { - "esprima": "^4.0.0", - "stringify-object": "^3.2.1" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - } - }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-dependency-path": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz", - "integrity": "sha512-DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/retry": { - "version": "0.10.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.10.1.tgz", - "integrity": "sha512-ZXUSQYTHdl3uS7IuCehYfMzKyIDBNoAuUblvy5oGO5UJSUTmStUUVPXbA9Qxd173Bgre53yCQczQuHgRWAdvJQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/reusify": { - "version": "1.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true, - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass-lookup": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sass-lookup/-/sass-lookup-3.0.0.tgz", - "integrity": "sha512-TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==", - "dev": true, - "dependencies": { - "commander": "^2.16.0" - }, - "bin": { - "sass-lookup": "bin/cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/sass-lookup/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/semver": { - "version": "7.5.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.5.2.tgz", - "integrity": "sha512-SoftuTROv/cRjCze/scjGyiDtcUyxw1rgYQSZY7XTmtR5hX+dm76iDbTH8TkLPHCQmlbQVSSbNZCPM2hb0knnQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", - "dev": true - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shiki": { - "version": "1.16.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/shiki/-/shiki-1.16.1.tgz", - "integrity": "sha512-tCJIMaxDVB1mEIJ5TvfZU7kCPB5eo9fli5+21Olc/bmyv+w8kye3JOp+LZRmGkAyT71hrkefQhTiY+o9mBikRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@shikijs/core": "1.16.1", - "@shikijs/vscode-textmate": "^9.2.0", - "@types/hast": "^3.0.4" - } - }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true - }, - "node_modules/sigstore": { - "version": "2.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sigstore/-/sigstore-2.3.1.tgz", - "integrity": "sha512-8G+/XDU8wNsJOQS5ysDVO0Etg9/2uA5gR9l4ZwijjlwxBcrU6RPfwi2+jJmbP+Ap1Hlp/nVAaEO4Fj22/SL2gQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@sigstore/bundle": "^2.3.2", - "@sigstore/core": "^1.0.0", - "@sigstore/protobuf-specs": "^0.3.2", - "@sigstore/sign": "^2.3.2", - "@sigstore/tuf": "^2.3.4", - "@sigstore/verify": "^1.2.1" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", - "dev": true - }, - "node_modules/slash": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/slash/-/slash-3.0.0.tgz", - "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks": { - "version": "2.8.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/socks/-/socks-2.8.3.tgz", - "integrity": "sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ip-address": "^9.0.5", - "smart-buffer": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/socks-proxy-agent/-/socks-proxy-agent-5.0.1.tgz", - "integrity": "sha512-vZdmnjb9a2Tz6WEQVIurybSwElwPxMZaIc7PzqbJTrezcKNznv6giT7J7tZDZ1BojVaa1jvO/UiUdhDVB0ACoQ==", - "dev": true, - "dependencies": { - "agent-base": "^6.0.2", - "debug": "4", - "socks": "^2.3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.13", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", - "dev": true, - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/spdx-correct": { - "version": "3.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-correct/-/spdx-correct-3.2.0.tgz", - "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", - "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, - "license": "CC-BY-3.0" - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.20", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", - "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, - "license": "CC0-1.0" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/ssh2": { - "version": "1.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssh2/-/ssh2-1.11.0.tgz", - "integrity": "sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==", - "dev": true, - "hasInstallScript": true, - "dependencies": { - "asn1": "^0.2.4", - "bcrypt-pbkdf": "^1.0.2" - }, - "engines": { - "node": ">=10.16.0" - }, - "optionalDependencies": { - "cpu-features": "~0.0.4", - "nan": "^2.16.0" - } - }, - "node_modules/ssri": { - "version": "8.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "dependencies": { - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/stack-utils": { - "version": "2.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stack-utils/-/stack-utils-2.0.6.tgz", - "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^2.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/stack-utils/node_modules/escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stream-to-array": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stream-to-array/-/stream-to-array-2.3.0.tgz", - "integrity": "sha512-UsZtOYEn4tWU2RGLOXr/o/xjRBftZRlG3dEWoaHr8j4GuypJ3isitGbVyjQKAuMu+xbiop8q224TjiZWc4XTZA==", - "dev": true, - "dependencies": { - "any-promise": "^1.1.0" - } - }, - "node_modules/streamroller": { - "version": "3.1.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/streamroller/-/streamroller-3.1.5.tgz", - "integrity": "sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==", - "dev": true, - "dependencies": { - "date-format": "^4.0.14", - "debug": "^4.3.4", - "fs-extra": "^8.1.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-length": { - "version": "4.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-length/-/string-length-4.0.2.tgz", - "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", - "dev": true, - "dependencies": { - "char-regex": "^1.0.2", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stringify-object": { - "version": "3.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stringify-object/-/stringify-object-3.3.0.tgz", - "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", - "dev": true, - "dependencies": { - "get-own-enumerable-property-symbols": "^3.0.0", - "is-obj": "^1.0.1", - "is-regexp": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-bom/-/strip-bom-4.0.0.tgz", - "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-final-newline": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", - "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylus-lookup": { - "version": "3.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stylus-lookup/-/stylus-lookup-3.0.2.tgz", - "integrity": "sha512-oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==", - "dev": true, - "dependencies": { - "commander": "^2.8.1", - "debug": "^4.1.0" - }, - "bin": { - "stylus-lookup": "bin/cli.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/stylus-lookup/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-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/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/tapable": { - "version": "2.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tapable/-/tapable-2.2.1.tgz", - "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "6.1.14", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tar/-/tar-6.1.14.tgz", - "integrity": "sha512-piERznXu0U7/pW7cdSn7hjqySIVTYT6F76icmFk7ptU7dDYlXTm5r9A6K04R2vU3olYgoKeo1Cg3eeu5nhftAw==", - "dev": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^5.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-5.0.0.tgz", - "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "node_modules/test-exclude": { - "version": "6.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/test-exclude/-/test-exclude-6.0.0.tgz", - "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", - "dev": true, - "license": "ISC", - "dependencies": { - "@istanbuljs/schema": "^0.1.2", - "glob": "^7.1.4", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "dev": true - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, "engines": { "node": ">=4" } }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-graphviz": { - "version": "1.5.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-graphviz/-/ts-graphviz-1.5.5.tgz", - "integrity": "sha512-abon0Tlcgvxcqr8x+p8QH1fTbR2R4cEXKGZfT4OJONZWah2YfqkmERb6hrr82omAc1IHwk5PlF8g4BS/ECYvwQ==", - "dev": true, - "engines": { - "node": ">=14.16" - } - }, - "node_modules/ts-jest": { - "version": "29.2.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-jest/-/ts-jest-29.2.5.tgz", - "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, - "license": "MIT", "dependencies": { - "bs-logger": "^0.2.6", - "ejs": "^3.1.10", - "fast-json-stable-stringify": "^2.1.0", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "^4.1.2", - "make-error": "^1.3.6", - "semver": "^7.6.3", - "yargs-parser": "^21.1.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/transform": "^29.0.0", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/transform": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, - "node_modules/ts-jest/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "ansi-regex": "^5.0.1" }, "engines": { - "node": ">=10" + "node": ">=8" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" } }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, - "license": "BSD-3-Clause", + "license": "MIT", "engines": { - "node": ">=0.3.1" + "node": ">=8" } }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" + "license": "MIT", + "engines": { + "node": ">=6" } }, - "node_modules/tsconfig-paths/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/stylus-lookup": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/stylus-lookup/-/stylus-lookup-6.0.0.tgz", + "integrity": "sha512-RaWKxAvPnIXrdby+UWCr1WRfa+lrPMSJPySte4Q6a+rWyjeJyFOLJxr5GrAVfcMCsfVlCuzTAJ/ysYT8p8do7Q==", "dev": true, "dependencies": { - "minimist": "^1.2.0" + "commander": "^12.0.0" }, "bin": { - "json5": "lib/cli.js" + "stylus-lookup": "bin/cli.js" + }, + "engines": { + "node": ">=18" } }, - "node_modules/tsconfig-paths/node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "node_modules/stylus-lookup/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, "engines": { - "node": ">=4" + "node": ">=18" } }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, "dependencies": { - "tslib": "^1.8.1" + "has-flag": "^3.0.0" }, "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + "node": ">=4" } }, - "node_modules/tuf-js": { + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/tapable": { "version": "2.2.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tuf-js/-/tuf-js-2.2.1.tgz", - "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true, - "license": "MIT", - "dependencies": { - "@tufjs/models": "2.0.1", - "debug": "^4.3.4", - "make-fetch-happen": "^13.0.1" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/tuf-js/node_modules/@npmcli/fs": { - "version": "3.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/@npmcli/fs/-/fs-3.1.1.tgz", - "integrity": "sha512-q9CRWjpHCMIh5sVyefoD1cA7PkvILqCZsnSOEUUivORLjxCO/Irmue2DprETiNgEqktDBZaM1Bi+jrarx1XdCg==", + "node_modules/tar": { + "version": "6.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tar/-/tar-6.2.1.tgz", + "integrity": "sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==", "dev": true, - "license": "ISC", "dependencies": { - "semver": "^7.3.5" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^5.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=10" } }, - "node_modules/tuf-js/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "node_modules/tar/node_modules/chownr": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">=10" } }, - "node_modules/tuf-js/node_modules/cacache": { - "version": "18.0.4", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cacache/-/cacache-18.0.4.tgz", - "integrity": "sha512-B+L5iIa9mgcjLbliir2th36yEwPftrzteHYujzsx3dFP/31GCHcIeS8f5MGd80odLOjaOvSpU3EEAmRQptkxLQ==", + "node_modules/tar/node_modules/minipass": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-5.0.0.tgz", + "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, - "license": "ISC", - "dependencies": { - "@npmcli/fs": "^3.1.0", - "fs-minipass": "^3.0.0", - "glob": "^10.2.2", - "lru-cache": "^10.0.1", - "minipass": "^7.0.3", - "minipass-collect": "^2.0.1", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "p-map": "^4.0.0", - "ssri": "^10.0.0", - "tar": "^6.1.11", - "unique-filename": "^3.0.0" - }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/tuf-js/node_modules/err-code": { - "version": "2.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/err-code/-/err-code-2.0.3.tgz", - "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", - "dev": true, - "license": "MIT" + "node_modules/tar/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true }, - "node_modules/tuf-js/node_modules/fs-minipass": { - "version": "3.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fs-minipass/-/fs-minipass-3.0.3.tgz", - "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=8" } }, - "node_modules/tuf-js/node_modules/glob": { - "version": "10.4.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, - "license": "ISC", "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } }, - "node_modules/tuf-js/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, - "license": "ISC" + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "node_modules/tuf-js/node_modules/make-fetch-happen": { - "version": "13.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/make-fetch-happen/-/make-fetch-happen-13.0.1.tgz", - "integrity": "sha512-cKTUFc/rbKUd/9meOvgrpJ2WrNzymt6jfRDdwg5UCnVzv9dTpEj9JS5m3wtziXVCjluIXyL8pcaukYqezIzZQA==", + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, - "license": "ISC", "dependencies": { - "@npmcli/agent": "^2.0.0", - "cacache": "^18.0.0", - "http-cache-semantics": "^4.1.1", - "is-lambda": "^1.0.1", - "minipass": "^7.0.2", - "minipass-fetch": "^3.0.0", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.4", - "negotiator": "^0.6.3", - "proc-log": "^4.2.0", - "promise-retry": "^2.0.1", - "ssri": "^10.0.0" - }, + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/tuf-js/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, - "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "is-number": "^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, + "node": ">=8.0" + } + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "dev": true, "funding": { - "url": "https://github.com/sponsors/isaacs" + "type": "github", + "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/tuf-js/node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "license": "ISC", "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" } }, - "node_modules/tuf-js/node_modules/minipass-collect": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-collect/-/minipass-collect-2.0.1.tgz", - "integrity": "sha512-D7V8PO9oaz7PWGLbCACuI1qEOsq7UKfLotx/C0Aet43fCUB/wfQ7DYeq2oR/svFJGYDHPr38SHATeaj/ZoKHKw==", + "node_modules/ts-graphviz": { + "version": "2.1.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-graphviz/-/ts-graphviz-2.1.4.tgz", + "integrity": "sha512-0g465/ES70H0h5rcLUqaenKqNYekQaR9W0m0xUGy3FxueGujpGr+0GN2YWlgLIYSE2Xg0W7Uq1Qqnn7Cg+Af2w==", "dev": true, - "license": "ISC", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ts-graphviz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/ts-graphviz" + } + ], "dependencies": { - "minipass": "^7.0.3" + "@ts-graphviz/adapter": "^2.0.5", + "@ts-graphviz/ast": "^2.0.5", + "@ts-graphviz/common": "^2.1.4", + "@ts-graphviz/core": "^2.0.5" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=18" } }, - "node_modules/tuf-js/node_modules/minipass-fetch": { - "version": "3.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minipass-fetch/-/minipass-fetch-3.0.5.tgz", - "integrity": "sha512-2N8elDQAtSnFV0Dk7gt15KHsS0Fyz6CbYZ360h0WTYV1Ty46li3rAXVOQj1THMNLdmrD9Vt5pBPtWtVkpwGBqg==", + "node_modules/ts-jest": { + "version": "29.2.5", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-jest/-/ts-jest-29.2.5.tgz", + "integrity": "sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==", "dev": true, "license": "MIT", "dependencies": { - "minipass": "^7.0.3", - "minipass-sized": "^1.0.3", - "minizlib": "^2.1.2" + "bs-logger": "^0.2.6", + "ejs": "^3.1.10", + "fast-json-stable-stringify": "^2.1.0", + "jest-util": "^29.0.0", + "json5": "^2.2.3", + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.6.3", + "yargs-parser": "^21.1.1" }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "bin": { + "ts-jest": "cli.js" }, - "optionalDependencies": { - "encoding": "^0.1.13" - } - }, - "node_modules/tuf-js/node_modules/proc-log": { - "version": "4.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proc-log/-/proc-log-4.2.0.tgz", - "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", - "dev": true, - "license": "ISC", "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "@babel/core": ">=7.0.0-beta.0 <8", + "@jest/transform": "^29.0.0", + "@jest/types": "^29.0.0", + "babel-jest": "^29.0.0", + "jest": "^29.0.0", + "typescript": ">=4.3 <6" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "@jest/transform": { + "optional": true + }, + "@jest/types": { + "optional": true + }, + "babel-jest": { + "optional": true + }, + "esbuild": { + "optional": true + } } }, - "node_modules/tuf-js/node_modules/promise-retry": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/promise-retry/-/promise-retry-2.0.1.tgz", - "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", "dev": true, "license": "MIT", "dependencies": { - "err-code": "^2.0.2", - "retry": "^0.12.0" + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" }, - "engines": { - "node": ">=10" + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } } }, - "node_modules/tuf-js/node_modules/retry": { - "version": "0.12.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/retry/-/retry-0.12.0.tgz", - "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, - "license": "MIT", + "license": "BSD-3-Clause", "engines": { - "node": ">= 4" + "node": ">=0.3.1" } }, - "node_modules/tuf-js/node_modules/ssri": { - "version": "10.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ssri/-/ssri-10.0.6.tgz", - "integrity": "sha512-MGrFH9Z4NP9Iyhqn16sDtBpRRNJ0Y2hNa6D65h736fVSaPCHr4DM4sWUNvVaSuC+0OBGhwsrydQwmgfg5LncqQ==", + "node_modules/tsconfig-paths": { + "version": "4.2.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tsconfig-paths/-/tsconfig-paths-4.2.0.tgz", + "integrity": "sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==", "dev": true, - "license": "ISC", "dependencies": { - "minipass": "^7.0.3" + "json5": "^2.2.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=6" } }, - "node_modules/tuf-js/node_modules/unique-filename": { + "node_modules/tsconfig-paths/node_modules/strip-bom": { "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-3.0.0.tgz", - "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "dev": true, - "license": "ISC", - "dependencies": { - "unique-slug": "^4.0.0" - }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": ">=4" } }, - "node_modules/tuf-js/node_modules/unique-slug": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-4.0.0.tgz", - "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", + "node_modules/tuf-js": { + "version": "2.2.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tuf-js/-/tuf-js-2.2.1.tgz", + "integrity": "sha512-GwIJau9XaA8nLVbUXsN3IlFi7WmQ48gBUrl3FTkkL/XLu/POhBzfmX9hd33FNMX1qAsfl6ozO1iMmW9NC8YniA==", "dev": true, - "license": "ISC", "dependencies": { - "imurmurhash": "^0.1.4" + "@tufjs/models": "2.0.1", + "debug": "^4.3.4", + "make-fetch-happen": "^13.0.1" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.14.0 || >=18.0.0" } }, "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==", - "dev": true + "dev": true, + "license": "Unlicense" }, "node_modules/type-check": { "version": "0.4.0", @@ -13860,105 +11528,48 @@ "node_modules/type-detect": { "version": "4.0.8", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/typedoc": { - "version": "0.26.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/typedoc/-/typedoc-0.26.6.tgz", - "integrity": "sha512-SfEU3SH3wHNaxhFPjaZE2kNl/NFtLNW5c1oHsg7mti7GjmUj1Roq6osBQeMd+F4kL0BoRBBr8gQAuqBlfFu8LA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "shiki": "^1.9.1", - "yaml": "^2.4.5" - }, - "bin": { - "typedoc": "bin/typedoc" - }, - "engines": { - "node": ">= 18" - }, - "peerDependencies": { - "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x" - } - }, - "node_modules/typedoc/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/typedoc/node_modules/entities": { - "version": "4.5.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/typedoc/node_modules/linkify-it": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/linkify-it/-/linkify-it-5.0.0.tgz", - "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "uc.micro": "^2.0.0" + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "dev": true, + "engines": { + "node": ">=4" } }, - "node_modules/typedoc/node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "node_modules/typedoc": { + "version": "0.26.10", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.26.10.tgz", + "integrity": "sha512-xLmVKJ8S21t+JeuQLNueebEuTVphx6IrP06CdV7+0WVflUSW3SPmR+h1fnWVdAR/FQePEgsSWCUHXqKKjzuUAw==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "argparse": "^2.0.1", - "entities": "^4.4.0", - "linkify-it": "^5.0.0", - "mdurl": "^2.0.0", - "punycode.js": "^2.3.1", - "uc.micro": "^2.1.0" + "lunr": "^2.3.9", + "markdown-it": "^14.1.0", + "minimatch": "^9.0.5", + "shiki": "^1.16.2", + "yaml": "^2.5.1" }, "bin": { - "markdown-it": "bin/markdown-it.mjs" + "typedoc": "bin/typedoc" + }, + "engines": { + "node": ">= 18" + }, + "peerDependencies": { + "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x" } }, - "node_modules/typedoc/node_modules/mdurl": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mdurl/-/mdurl-2.0.0.tgz", - "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } }, "node_modules/typedoc/node_modules/minimatch": { "version": "9.0.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/minimatch/-/minimatch-9.0.5.tgz", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", @@ -13972,76 +11583,139 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/typedoc/node_modules/uc.micro": { - "version": "2.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uc.micro/-/uc.micro-2.1.0.tgz", - "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", - "dev": true, - "license": "MIT" - }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.6.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", "dev": true, + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true + "version": "2.1.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "license": "MIT" }, "node_modules/underscore": { - "version": "1.13.6", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/underscore/-/underscore-1.13.6.tgz", - "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==", + "version": "1.13.7", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/underscore/-/underscore-1.13.7.tgz", + "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==", "dev": true }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.19.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", "dev": true, "license": "MIT" }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha512-Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==", - "dev": true - }, "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "version": "3.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-filename/-/unique-filename-3.0.0.tgz", + "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, "dependencies": { - "unique-slug": "^2.0.0" + "unique-slug": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unique-slug/-/unique-slug-4.0.0.tgz", + "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "version": "2.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { - "node": ">= 4.0.0" + "node": ">= 10.0.0" } }, "node_modules/untildify": { @@ -14139,22 +11813,46 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, - "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/validate-npm-package-name": { - "version": "4.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", - "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "version": "5.0.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", + "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", "dev": true, "dependencies": { - "builtins": "^5.0.0" + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" }, - "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" } }, "node_modules/walkdir": { @@ -14186,25 +11884,28 @@ } }, "node_modules/which": { - "version": "3.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-3.0.0.tgz", - "integrity": "sha512-nla//68K9NU6yRiwDY/Q8aU6siKlSs64aEC7+IV56QoAuyQT2ovsJcgGYGyqMOmI/CGN1BOR6mM5EN0FBO+zyQ==", + "version": "4.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which/-/which-4.0.0.tgz", + "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { - "isexe": "^2.0.0" + "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + "node": "^16.13.0 || >=18.0.0" } }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==", - "dev": true + "node_modules/which/node_modules/isexe": { + "version": "3.1.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isexe/-/isexe-3.1.1.tgz", + "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", + "dev": true, + "engines": { + "node": ">=16" + } }, "node_modules/wontache": { "version": "0.1.0", @@ -14244,7 +11945,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, - "license": "MIT", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -14262,7 +11962,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, - "license": "MIT", "dependencies": { "color-convert": "^2.0.1" }, @@ -14278,7 +11977,6 @@ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, - "license": "MIT", "dependencies": { "color-name": "~1.1.4" }, @@ -14290,8 +11988,7 @@ "version": "1.1.4", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" + "dev": true }, "node_modules/wrap-ansi/node_modules/ansi-styles": { "version": "4.3.0", @@ -14368,10 +12065,13 @@ } }, "node_modules/y18n": { - "version": "4.0.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-4.0.3.tgz", - "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", - "dev": true + "version": "5.0.8", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } }, "node_modules/yallist": { "version": "3.1.1", @@ -14392,49 +12092,22 @@ "node": ">= 14" } }, - "node_modules/yamljs": { - "version": "0.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yamljs/-/yamljs-0.3.0.tgz", - "integrity": "sha512-C/FsVVhht4iPQYXOInoxUM/1ELSf9EsgKH34FofQOp6hwCPrW4vG4w5++TED3xRUo8gD7l0P1J1dLlDYzODsTQ==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "glob": "^7.0.5" - }, - "bin": { - "json2yaml": "bin/json2yaml", - "yaml2json": "bin/yaml2json" - } - }, - "node_modules/yamljs/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/yargs": { - "version": "15.3.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-15.3.1.tgz", - "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "version": "17.7.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { - "cliui": "^6.0.0", - "decamelize": "^1.2.0", - "find-up": "^4.1.0", - "get-caller-file": "^2.0.1", + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^4.2.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^18.1.1" + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" }, "engines": { - "node": ">=8" + "node": ">=12" } }, "node_modules/yargs-parser": { @@ -14446,68 +12119,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/yargs/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/yargs/node_modules/yargs-parser": { - "version": "18.1.3", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yargs-parser/-/yargs-parser-18.1.3.tgz", - "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/yn": { "version": "3.1.1", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/yn/-/yn-3.1.1.tgz", @@ -14525,6 +12136,16 @@ "engines": { "node": ">=10" } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/zowe-cli-id-federation-plugin/package.json b/zowe-cli-id-federation-plugin/package.json index e2bbee78a7..b332f3ff9c 100644 --- a/zowe-cli-id-federation-plugin/package.json +++ b/zowe-cli-id-federation-plugin/package.json @@ -49,39 +49,45 @@ "csv-parse": "5.5.6" }, "devDependencies": { - "@types/jest": "29.5.12", - "@types/node": "18.19.48", - "@typescript-eslint/eslint-plugin": "5.62.0", - "@typescript-eslint/parser": "5.62.0", - "@zowe/cli": "7.19.0", - "@zowe/cli-test-utils": "7.29.0", - "@zowe/imperative": "5.27.0", + "@eslint/js": "9.12.0", + "@types/jest": "29.5.13", + "@types/node": "20.16.11", + "@typescript-eslint/eslint-plugin": "8.9.0", + "@typescript-eslint/parser": "8.9.0", + "@zowe/cli": "8.3.0", + "@zowe/cli-test-utils": "8.2.0", + "@zowe/imperative": "8.2.0", "copyfiles": "2.4.1", "env-cmd": "10.1.0", - "eslint": "8.57.0", - "eslint-plugin-jest": "27.9.0", + "eslint": "9.12.0", + "eslint-plugin-jest": "28.8.3", "eslint-plugin-license-header": "0.6.1", - "eslint-plugin-unused-imports": "2.0.0", - "husky": "8.0.3", + "eslint-plugin-unused-imports": "4.1.4", + "globals": "15.11.0", + "husky": "9.1.6", "jest": "29.7.0", "jest-cli": "29.7.0", "jest-environment-node": "29.7.0", "jest-environment-node-debug": "2.0.0", "jest-html-reporter": "3.10.2", - "jest-junit": "15.0.0", + "jest-junit": "16.0.0", "jest-stare": "2.5.2", - "madge": "6.1.0", + "madge": "8.0.0", "ts-jest": "29.2.5", "ts-node": "10.9.2", - "typedoc": "0.26.6", - "typescript": "4.9.5" + "typedoc": "0.26.10", + "typescript": "5.6.3" }, "overrides": { - "@babel/traverse": "7.25.6" + "@babel/traverse": "7.25.7" }, "peerDependencies": { - "@zowe/imperative": "5.27.0" + "@zowe/imperative": "8.2.0" }, + "engines": { + "npm": "=10.9.0", + "node": "=20.18.0" + }, "jest": { "modulePathIgnorePatterns": [ "__tests__/__snapshots__/" diff --git a/zowe-cli-id-federation-plugin/src/api/Mapper.ts b/zowe-cli-id-federation-plugin/src/api/Mapper.ts index 567d8e3f26..3c27ed01eb 100644 --- a/zowe-cli-id-federation-plugin/src/api/Mapper.ts +++ b/zowe-cli-id-federation-plugin/src/api/Mapper.ts @@ -54,19 +54,16 @@ export class Mapper { } createSafCommands(identities: IIdentity[]): string[] { - let commandProcessor; + switch (this.esm.toLowerCase()) { case "racf": { - commandProcessor = new RacfCommands(this.registry, identities, this.response); - break; + return new RacfCommands(this.registry, identities, this.response).getCommands(); } case "tss": { - commandProcessor = new TssCommands(this.registry, identities, this.response); - break; + return new TssCommands(this.registry, identities, this.response).getCommands(); } case "acf2": { - commandProcessor = new Acf2Commands(this.registry, identities, this.response); - break; + return new Acf2Commands(this.registry, identities, this.response).getCommands(); } default: { this.response.data.setExitCode(Constants.FATAL_CODE); @@ -75,9 +72,5 @@ export class Mapper { throw new ImperativeError({msg}); } } - - return commandProcessor ? commandProcessor.getCommands() : []; } - - } diff --git a/zowe-cli-id-federation-plugin/src/imperative.ts b/zowe-cli-id-federation-plugin/src/imperative.ts index 72424fafea..8b812ab0f6 100644 --- a/zowe-cli-id-federation-plugin/src/imperative.ts +++ b/zowe-cli-id-federation-plugin/src/imperative.ts @@ -13,6 +13,7 @@ import {ProfileConstants} from "./api/ProfileConstants"; const config: IImperativeConfig = { commandModuleGlobs: ["**/cli/*/*.definition!(.d).*s"], + // @ts-expect-error to disable ESLINT pluginHealthCheck: __dirname + "/healthCheck.Handler", pluginSummary: "Zowe CLI Identity Federation plug-in", pluginAliases: ["idf"], diff --git a/zss-sample-service/package-lock.json b/zss-sample-service/package-lock.json index 5d0bcee98e..e0965e0941 100644 --- a/zss-sample-service/package-lock.json +++ b/zss-sample-service/package-lock.json @@ -8,7 +8,7 @@ "name": "zss-sample-service", "version": "0.0.0", "dependencies": { - "express": "4.19.2" + "express": "4.21.1" } }, "node_modules/accepts": { @@ -29,9 +29,9 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/body-parser": { - "version": "1.20.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.2.tgz", - "integrity": "sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==", + "version": "1.20.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/body-parser/-/body-parser-1.20.3.tgz", + "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.5", @@ -41,7 +41,7 @@ "http-errors": "2.0.0", "iconv-lite": "0.4.24", "on-finished": "2.4.1", - "qs": "6.11.0", + "qs": "6.13.0", "raw-body": "2.5.2", "type-is": "~1.6.18", "unpipe": "1.0.0" @@ -72,6 +72,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/content-disposition": { @@ -94,9 +97,10 @@ } }, "node_modules/cookie": { - "version": "0.6.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie/-/cookie-0.6.0.tgz", - "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "version": "0.7.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie/-/cookie-0.7.1.tgz", + "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "license": "MIT", "engines": { "node": ">= 0.6" } @@ -125,6 +129,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/depd": { @@ -150,9 +157,9 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "version": "2.0.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "engines": { "node": ">= 0.8" } @@ -190,36 +197,37 @@ } }, "node_modules/express": { - "version": "4.19.2", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.19.2.tgz", - "integrity": "sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==", + "version": "4.21.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/express/-/express-4.21.1.tgz", + "integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==", + "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.2", + "body-parser": "1.20.3", "content-disposition": "0.5.4", "content-type": "~1.0.4", - "cookie": "0.6.0", + "cookie": "0.7.1", "cookie-signature": "1.0.6", "debug": "2.6.9", "depd": "2.0.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.2.0", + "finalhandler": "1.3.1", "fresh": "0.5.2", "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", + "merge-descriptors": "1.0.3", "methods": "~1.1.2", "on-finished": "2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", + "path-to-regexp": "0.1.10", "proxy-addr": "~2.0.7", - "qs": "6.11.0", + "qs": "6.13.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", + "send": "0.19.0", + "serve-static": "1.16.2", "setprototypeof": "1.2.0", "statuses": "2.0.1", "type-is": "~1.6.18", @@ -231,12 +239,12 @@ } }, "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "version": "1.3.1", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/finalhandler/-/finalhandler-1.3.1.tgz", + "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dependencies": { "debug": "2.6.9", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "on-finished": "2.4.1", "parseurl": "~1.3.3", @@ -266,7 +274,10 @@ "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/function-bind/-/function-bind-1.1.2.tgz", - "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-intrinsic": { "version": "1.2.4", @@ -281,6 +292,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/gopd": { @@ -289,6 +303,9 @@ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-property-descriptors": { @@ -297,6 +314,9 @@ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dependencies": { "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { @@ -305,6 +325,9 @@ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-symbols": { @@ -313,6 +336,9 @@ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/hasown": { @@ -374,9 +400,12 @@ } }, "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" + "version": "1.0.3", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/merge-descriptors/-/merge-descriptors-1.0.3.tgz", + "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, "node_modules/methods": { "version": "1.1.2", @@ -430,9 +459,15 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==" + "version": "1.13.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/object-inspect/-/object-inspect-1.13.2.tgz", + "integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/on-finished": { "version": "2.4.1", @@ -454,9 +489,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" + "version": "0.1.10", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/path-to-regexp/-/path-to-regexp-0.1.10.tgz", + "integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==" }, "node_modules/proxy-addr": { "version": "2.0.7", @@ -471,14 +506,17 @@ } }, "node_modules/qs": { - "version": "6.11.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "version": "6.13.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.13.0.tgz", + "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", "dependencies": { - "side-channel": "^1.0.4" + "side-channel": "^1.0.6" }, "engines": { "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/range-parser": { @@ -514,9 +552,9 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/send": { - "version": "0.18.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "version": "0.19.0", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -536,20 +574,28 @@ "node": ">= 0.8.0" } }, + "node_modules/send/node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "version": "1.16.2", + "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dependencies": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "parseurl": "~1.3.3", - "send": "0.18.0" + "send": "0.19.0" }, "engines": { "node": ">= 0.8.0" @@ -588,6 +634,9 @@ }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/statuses": { diff --git a/zss-sample-service/package.json b/zss-sample-service/package.json index c1db623719..096df94e1f 100644 --- a/zss-sample-service/package.json +++ b/zss-sample-service/package.json @@ -6,6 +6,6 @@ "start": "node server.js" }, "dependencies": { - "express": "4.19.2" + "express": "4.21.1" } }