') {
+ tab.textContent = `My Query ${index + 1}`;
+ }
+ });
+ };
+ updateTabText();
+
+ /**
+ * Observer to detect changes in the GraphiQL tab list and update tab text accordingly.
+ *
+ * @function
+ * @param {MutationRecord[]} mutationsList - List of mutations observed.
+ */
+ const observer = new MutationObserver((mutationsList) => {
+ mutationsList.forEach((mutation) => {
+ if (mutation.type === 'childList') {
+ updateTabText();
+ }
+ });
+ });
+ if (graphiqlRef.current) {
+ observer.observe(graphiqlRef.current, {
+ childList: true,
+ subtree: true,
+ });
+ }
+ return () => {
+ observer.disconnect();
+ };
+ }, [graphiqlRef]);
+
+ return (
+
+
+
+
+
+ );
+}
diff --git a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApimlContainer.jsx b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApimlContainer.jsx
new file mode 100644
index 0000000000..c6a74d54cb
--- /dev/null
+++ b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIApimlContainer.jsx
@@ -0,0 +1,20 @@
+/*
+ * This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v2.0 which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v20.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Copyright Contributors to the Zowe Project.
+ */
+import { connect } from 'react-redux';
+import GraphQLUIApiml from './GraphQLUIApiml';
+
+const mapStateToProps = (state) => ({
+ selectedService: state.selectedServiceReducer.selectedService,
+ tiles: state.tilesReducer.tiles,
+});
+
+const mapDispatchToProps = {};
+
+export default connect(mapStateToProps, mapDispatchToProps)(GraphQLUIApiml);
diff --git a/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIContainer.test.jsx b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIContainer.test.jsx
new file mode 100644
index 0000000000..4f3de5820b
--- /dev/null
+++ b/api-catalog-ui/frontend/src/components/GraphQL/GraphQLUIContainer.test.jsx
@@ -0,0 +1,55 @@
+/*
+ * This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v2.0 which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v20.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Copyright Contributors to the Zowe Project.
+ */
+import { render } from '@testing-library/react';
+import '@testing-library/jest-dom';
+import { Provider } from 'react-redux';
+import configureStore from 'redux-mock-store';
+import GraphQLContainer from './GraphQLUIApimlContainer';
+
+const mockStore = configureStore();
+
+describe('GraphQL Container', () => {
+ let store;
+ let container;
+
+ // mock codemirror getBoundingClientRect()
+ document.createRange = () => {
+ const range = new Range();
+ range.getBoundingClientRect = jest.fn();
+ range.getClientRects = jest.fn(() => ({
+ item: () => null,
+ length: 0,
+ }));
+ return range;
+ };
+
+ beforeEach(() => {
+ store = mockStore({
+ selectedServiceReducer: {
+ selectedService: {
+ apis: [],
+ serviceId: 'service',
+ },
+ },
+ tilesReducer: {
+ tiles: [{}],
+ },
+ });
+ container = render(
+
+
+
+ );
+ });
+
+ it('should render the container', () => {
+ expect(container).not.toBeNull();
+ });
+});
diff --git a/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx b/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx
index e6e0d9a620..402f3bb9dc 100644
--- a/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx
+++ b/api-catalog-ui/frontend/src/components/ServiceTab/ServiceTab.jsx
@@ -12,6 +12,7 @@ import { Component } from 'react';
import PropTypes from 'prop-types';
import Shield from '../ErrorBoundary/Shield/Shield';
import SwaggerContainer from '../Swagger/SwaggerContainer';
+import GraphQLContainer from '../GraphQL/GraphQLUIApimlContainer';
import ServiceVersionDiffContainer from '../ServiceVersionDiff/ServiceVersionDiffContainer';
export default class ServiceTab extends Component {
@@ -137,6 +138,14 @@ export default class ServiceTab extends Component {
this.setState({ isDialogOpen: false, selectedVersion: null });
};
+ getGraphqlUrl = (apis) => {
+ if (!apis || typeof apis !== 'object') {
+ return null;
+ }
+ const apiKey = Object.keys(apis).find((key) => apis[key] && apis[key].graphqlUrl);
+ return apiKey ? apis[apiKey].graphqlUrl : null;
+ };
+
render() {
const {
match: {
@@ -154,6 +163,9 @@ export default class ServiceTab extends Component {
const { hasHomepage } = this;
const { apiVersions } = this;
const { containsVersion } = this;
+ const graphqlUrl = this.getGraphqlUrl(this.props.selectedService.apis);
+ const title = graphqlUrl ? 'GraphQL' : 'Swagger';
+ const showVersionDiv = !graphqlUrl;
const message = 'The API documentation was retrieved but could not be displayed.';
const sso = selectedService.ssoAllInstances ? 'supported' : 'not supported';
return (
@@ -237,22 +249,24 @@ export default class ServiceTab extends Component {
- Swagger
+ {title}
-
- {containsVersion && currentService && (
-
- Service ID and Version:
-
- )}
- {currentService && apiVersions?.length === 1 && apiVersions[0]?.key && (
-
- {apiVersions[0].key}
-
- )}
-
+ {showVersionDiv && (
+
+ {containsVersion && currentService && (
+
+ Service ID and Version:
+
+ )}
+ {currentService && apiVersions?.length === 1 && apiVersions[0]?.key && (
+
+ {apiVersions[0].key}
+
+ )}
+
+ )}
- {currentService && apiVersions?.length > 1 && (
+ {showVersionDiv && currentService && apiVersions?.length > 1 && (
)}
- {selectedVersion !== 'diff' && }
- {selectedVersion === 'diff' && isDialogOpen && containsVersion && (
+ {graphqlUrl !== null && }
+ {graphqlUrl === null && selectedVersion !== 'diff' && (
+
+ )}
+ {graphqlUrl === null && selectedVersion === 'diff' && isDialogOpen && containsVersion && (
();
}
@@ -64,6 +65,7 @@ public ApiInfo(String apiId, String gatewayUrl, String version, String swaggerUr
private String gatewayUrl;
private String version;
private String swaggerUrl;
+ private String graphqlUrl;
private String documentationUrl;
@Builder.Default
diff --git a/common-service-core/src/main/java/org/zowe/apiml/constants/EurekaMetadataDefinition.java b/common-service-core/src/main/java/org/zowe/apiml/constants/EurekaMetadataDefinition.java
index e2459369d6..23f002d9e9 100644
--- a/common-service-core/src/main/java/org/zowe/apiml/constants/EurekaMetadataDefinition.java
+++ b/common-service-core/src/main/java/org/zowe/apiml/constants/EurekaMetadataDefinition.java
@@ -41,6 +41,7 @@ private EurekaMetadataDefinition() {
public static final String API_INFO_GATEWAY_URL = "gatewayUrl";
public static final String API_INFO_VERSION = "version";
public static final String API_INFO_SWAGGER_URL = "swaggerUrl";
+ public static final String API_INFO_GRAPHQL_URL = "graphqlUrl";
public static final String API_INFO_DOCUMENTATION_URL = "documentationUrl";
public static final String API_INFO_IS_DEFAULT = "defaultApi";
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 c554eae2ea..93cdf175d2 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
@@ -211,6 +211,14 @@ public static Map generateMetadata(String serviceId, ApiInfo api
metadata.put(String.format(THREE_STRING_MERGE_FORMAT, API_INFO, encodedGatewayUrl, API_INFO_SWAGGER_URL), apiInfo.getSwaggerUrl());
}
+ if (apiInfo.getGraphqlUrl() != null) {
+ validateUrl(apiInfo.getGraphqlUrl(),
+ () -> String.format("The GraphQL URL \"%s\" for service %s is not valid", apiInfo.getGraphqlUrl(), serviceId)
+ );
+
+ metadata.put(String.format(THREE_STRING_MERGE_FORMAT, API_INFO, encodedGatewayUrl, API_INFO_GRAPHQL_URL), apiInfo.getGraphqlUrl());
+ }
+
if (apiInfo.getDocumentationUrl() != null) {
validateUrl(apiInfo.getDocumentationUrl(),
() -> String.format("The documentation URL \"%s\" for service %s is not valid", apiInfo.getDocumentationUrl(), serviceId)
diff --git a/common-service-core/src/test/java/org/zowe/apiml/config/ApiInfoTest.java b/common-service-core/src/test/java/org/zowe/apiml/config/ApiInfoTest.java
index b0cd581b3a..cd9dcc340a 100644
--- a/common-service-core/src/test/java/org/zowe/apiml/config/ApiInfoTest.java
+++ b/common-service-core/src/test/java/org/zowe/apiml/config/ApiInfoTest.java
@@ -18,14 +18,14 @@
class ApiInfoTest {
@Test
void whenThereIsNoVersionReturnMinusOne() {
- ApiInfo underTest = new ApiInfo("org.zowe", "api/v1", null, "swaggerUrl", "documentationUrl");
+ ApiInfo underTest = new ApiInfo("org.zowe", "api/v1", null, "swaggerUrl", null, "documentationUrl");
assertThat(underTest.getMajorVersion(), is(-1));
}
@Test
void whenThereIsMajorVersionReturnIt() {
- ApiInfo underTest = new ApiInfo("org.zowe", "api/v1", "1.0.0", "swaggerUrl", "documentationUrl");
+ ApiInfo underTest = new ApiInfo("org.zowe", "api/v1", "1.0.0", "swaggerUrl", null, "documentationUrl");
assertThat(underTest.getMajorVersion(), is(1));
}
diff --git a/common-service-core/src/test/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParserTest.java b/common-service-core/src/test/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParserTest.java
index 4ab366735a..bf639d9ba8 100644
--- a/common-service-core/src/test/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParserTest.java
+++ b/common-service-core/src/test/java/org/zowe/apiml/eurekaservice/client/util/EurekaMetadataParserTest.java
@@ -163,7 +163,7 @@ void generateFullMetadata() {
String documentationUrl = "https://www.zowe.org";
String metadataPrefix = API_INFO + ".api-v1.";
- ApiInfo apiInfo = new ApiInfo(apiId, gatewayUrl, version, swaggerUrl, documentationUrl);
+ ApiInfo apiInfo = new ApiInfo(apiId, gatewayUrl, version, swaggerUrl, null, documentationUrl);
Map metadata = EurekaMetadataParser.generateMetadata(serviceId, apiInfo);
String metaApiId = metadata.get(metadataPrefix + API_INFO_API_ID);
@@ -192,7 +192,7 @@ void generateMetadataWithCodeSnippets() {
String language2 = "java2";
String metadataPrefix = API_INFO + ".api-v1.";
- ApiInfo apiInfo = new ApiInfo("zowe.apiml.test", "api/v1", "1.0.0", "https://service/api-doc", "https://www.zowe.org");
+ ApiInfo apiInfo = new ApiInfo("zowe.apiml.test", "api/v1", "1.0.0", "https://service/api-doc", null, "https://www.zowe.org");
apiInfo.addCodeSnippet(new CodeSnippet(endpoint1, codeBlock1, language1));
apiInfo.addCodeSnippet(new CodeSnippet(endpoint2, codeBlock2, language2));
Map metadata = EurekaMetadataParser.generateMetadata("test service", apiInfo);
@@ -219,7 +219,7 @@ void generateMetadataWithNoGatewayUrl() {
String serviceId = "test service";
String version = "1.0.0";
- ApiInfo apiInfo = new ApiInfo(null, null, version, null, null); // isDefaultApi defaults to false
+ ApiInfo apiInfo = new ApiInfo(null, null, version, null, null, null); // isDefaultApi defaults to false
Map metadata = EurekaMetadataParser.generateMetadata(serviceId, apiInfo);
assertEquals(2, metadata.size());
@@ -241,7 +241,7 @@ void generateMetadataWithIncorrectSwaggerUrl() {
String gatewayUrl = "api/v1";
String swaggerUrl = "www.badAddress";
- ApiInfo apiInfo = new ApiInfo(null, gatewayUrl, null, swaggerUrl, null);
+ ApiInfo apiInfo = new ApiInfo(null, gatewayUrl, null, swaggerUrl, null, null);
Exception exception = assertThrows(MetadataValidationException.class, () -> {
EurekaMetadataParser.generateMetadata(serviceId, apiInfo);
});
@@ -254,7 +254,7 @@ void generateMetadataWithIncorrectDocumentationUrl() {
String gatewayUrl = "api/v1";
String documentationUrl = "www.badAddress";
- ApiInfo apiInfo = new ApiInfo(null, gatewayUrl, null, null, documentationUrl);
+ ApiInfo apiInfo = new ApiInfo(null, gatewayUrl, null, null, null, documentationUrl);
Exception exception = assertThrows(MetadataValidationException.class, () -> {
EurekaMetadataParser.generateMetadata(serviceId, apiInfo);
});
diff --git a/config/docker/api-defs/staticclient.yml b/config/docker/api-defs/staticclient.yml
index 5a29004c64..563a202660 100644
--- a/config/docker/api-defs/staticclient.yml
+++ b/config/docker/api-defs/staticclient.yml
@@ -97,6 +97,26 @@ services:
gatewayUrl: api/v1
version: 1.0.0
+ - serviceId: graphqlclient # unique lowercase ID of the service
+ catalogUiTileId: static # ID of the API Catalog UI tile (visual grouping of the services)
+ title: Discoverable client with GraphQL # Title of the service in the API catalog
+ description: Sample for data demonstration using GraphiQL Playround.
+ instanceBaseUrls: # list of base URLs for each instance
+ - https://discoverable-client:10012/discoverableclient # scheme://hostname:port/contextPath
+ homePageRelativeUrl: /api/v1 # Normally used for informational purposes for other services to use it as a landing page
+ statusPageRelativeUrl: /application/info # Appended to the instanceBaseUrl
+ healthCheckRelativeUrl: /application/health # Appended to the instanceBaseUrl
+ routes:
+ - gatewayUrl: api/v3 # [api/ui/ws]/v{majorVersion}
+ serviceRelativeUrl: /api/v3 # relativePath that is added to baseUrl of an instance
+ authentication:
+ scheme: httpBasicPassTicket
+ apiInfo:
+ - apiId: zowe.apiml.discoverableclient
+ gatewayUrl: api/v3
+ version: 1.0.0
+ graphqlUrl: https://discoverable-client:10012/discoverableclient/api/v3/graphql
+
- serviceId: dcpassticket # unique lowercase ID of the service
catalogUiTileId: static # ID of the API Catalog UI tile (visual grouping of the services)
title: Discoverable client with passTicket authentication scheme # Title of the service in the API catalog
diff --git a/config/local/api-defs/staticclient.yml b/config/local/api-defs/staticclient.yml
index 1a01bc94ae..5b92ed228a 100644
--- a/config/local/api-defs/staticclient.yml
+++ b/config/local/api-defs/staticclient.yml
@@ -97,6 +97,27 @@ services:
gatewayUrl: api/v1
version: 1.0.0
+ - serviceId: graphqlclient # unique lowercase ID of the service
+ catalogUiTileId: static # ID of the API Catalog UI tile (visual grouping of the services)
+ title: Discoverable client with GraphQL # Title of the service in the API catalog
+ description: Sample for data demonstration using GraphiQL Playround.
+ instanceBaseUrls: # list of base URLs for each instance
+ - https://localhost:10012/discoverableclient # scheme://hostname:port/contextPath
+ homePageRelativeUrl: /api/v1 # Normally used for informational purposes for other services to use it as a landing page
+ statusPageRelativeUrl: /application/info # Appended to the instanceBaseUrl
+ healthCheckRelativeUrl: /application/health # Appended to the instanceBaseUrl
+ routes:
+ - gatewayUrl: api/v3 # [api/ui/ws]/v{majorVersion}
+ serviceRelativeUrl: /api/v3 # relativePath that is added to baseUrl of an instance
+ authentication:
+ scheme: httpBasicPassTicket
+ apiInfo:
+ - apiId: zowe.apiml.discoverableclient
+ gatewayUrl: api/v3
+ version: 1.0.0
+ graphqlUrl: https://localhost:10012/discoverableclient/api/v3/graphql
+
+
- serviceId: dcpassticket # unique lowercase ID of the service
catalogUiTileId: static # ID of the API Catalog UI tile (visual grouping of the services)
title: Discoverable client with passTicket authentication scheme # Title of the service in the API catalog
diff --git a/cypress.config.js b/cypress.config.js
new file mode 100644
index 0000000000..97f47c4127
--- /dev/null
+++ b/cypress.config.js
@@ -0,0 +1,9 @@
+const { defineConfig } = require("cypress");
+
+module.exports = defineConfig({
+ e2e: {
+ setupNodeEvents(on, config) {
+ // implement node event listeners here
+ },
+ },
+});
diff --git a/cypress/support/commands.js b/cypress/support/commands.js
new file mode 100644
index 0000000000..66ea16ef0e
--- /dev/null
+++ b/cypress/support/commands.js
@@ -0,0 +1,25 @@
+// ***********************************************
+// This example commands.js shows you how to
+// create various custom commands and overwrite
+// existing commands.
+//
+// For more comprehensive examples of custom
+// commands please read more here:
+// https://on.cypress.io/custom-commands
+// ***********************************************
+//
+//
+// -- This is a parent command --
+// Cypress.Commands.add('login', (email, password) => { ... })
+//
+//
+// -- This is a child command --
+// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
+//
+//
+// -- This is a dual command --
+// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
+//
+//
+// -- This will overwrite an existing command --
+// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
\ No newline at end of file
diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js
new file mode 100644
index 0000000000..0e7290a13d
--- /dev/null
+++ b/cypress/support/e2e.js
@@ -0,0 +1,20 @@
+// ***********************************************************
+// This example support/e2e.js is processed and
+// loaded automatically before your test files.
+//
+// This is a great place to put global configuration and
+// behavior that modifies Cypress.
+//
+// You can change the location of this file or turn off
+// automatically serving support files with the
+// 'supportFile' configuration option.
+//
+// You can read more here:
+// https://on.cypress.io/configuration
+// ***********************************************************
+
+// Import commands.js using ES2015 syntax:
+import './commands'
+
+// Alternatively you can use CommonJS syntax:
+// require('./commands')
\ No newline at end of file
diff --git a/discoverable-client/build.gradle b/discoverable-client/build.gradle
index 283d495aa7..189040493a 100644
--- a/discoverable-client/build.gradle
+++ b/discoverable-client/build.gradle
@@ -75,6 +75,7 @@ dependencies {
implementation libs.spring.boot.starter.websocket
implementation libs.spring.boot.starter.actuator
implementation libs.spring.doc
+ implementation libs.spring.boot.starter.graphql
testImplementation libs.spring.boot.starter.test
diff --git a/discoverable-client/graphql.config.yml b/discoverable-client/graphql.config.yml
new file mode 100644
index 0000000000..1ccd330f87
--- /dev/null
+++ b/discoverable-client/graphql.config.yml
@@ -0,0 +1,2 @@
+schema: schema.graphql
+documents: '**/*.graphql'
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/BookController.java b/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/BookController.java
new file mode 100644
index 0000000000..2f823af1b2
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/BookController.java
@@ -0,0 +1,68 @@
+/*
+ * 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.client.api.graphql;
+
+import org.springframework.graphql.data.method.annotation.Argument;
+import org.springframework.graphql.data.method.annotation.MutationMapping;
+import org.springframework.graphql.data.method.annotation.QueryMapping;
+import org.springframework.graphql.data.method.annotation.SchemaMapping;
+import org.springframework.security.access.annotation.Secured;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.zowe.apiml.client.model.graphql.Author;
+import org.zowe.apiml.client.model.graphql.Book;
+
+import java.util.List;
+
+@Controller
+@RequestMapping("/api/v3/graphql")
+public class BookController {
+
+ @QueryMapping
+ public Book bookById(@Argument String id) {
+ return Book.getById(id);
+ }
+
+ @SchemaMapping
+ public Author author(Book book) {
+ return Author.getById(book.authorId());
+ }
+
+ @QueryMapping
+ public List getAllBooks() {
+ return Book.getAllBooks();
+ }
+
+ @Secured("ROLE_USER")
+ @QueryMapping
+ public Book getBookById(@Argument String bookId) {
+ return Book.getById(bookId);
+ }
+
+ @Secured("ROLE_ADMIN")
+ @MutationMapping
+ public Book addBook(@Argument String name, @Argument Integer pageCount, @Argument String authorId) {
+ return Book.addBook(name, pageCount, authorId);
+ }
+
+ @Secured("ROLE_ADMIN")
+ @MutationMapping
+ public static Book updateBook(@Argument String bookId, @Argument String name, @Argument Integer pageCount, @Argument String authorId) {
+ return Book.updateBook(bookId, name, pageCount, authorId);
+ }
+
+ @Secured("ROLE_ADMIN")
+ @MutationMapping
+ public Book deleteBook(@Argument String bookId) {
+ return Book.deleteBook(bookId);
+ }
+
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolver.java b/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolver.java
new file mode 100644
index 0000000000..5afe276fb1
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolver.java
@@ -0,0 +1,43 @@
+/*
+ * 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.client.api.graphql;
+
+import graphql.GraphQLError;
+import graphql.GraphqlErrorBuilder;
+import graphql.schema.DataFetchingEnvironment;
+import org.springframework.graphql.execution.DataFetcherExceptionResolverAdapter;
+import org.springframework.graphql.execution.ErrorType;
+import org.springframework.stereotype.Component;
+import org.zowe.apiml.client.exception.BookAlreadyExistsException;
+import org.zowe.apiml.client.exception.BookNotFoundException;
+
+@Component
+public class GraphQLExceptionResolver extends DataFetcherExceptionResolverAdapter {
+
+ @Override
+ protected GraphQLError resolveToSingleError(Throwable ex, DataFetchingEnvironment env) {
+ if (ex instanceof BookAlreadyExistsException || ex instanceof BookNotFoundException) {
+ return GraphqlErrorBuilder.newError()
+ .errorType(ErrorType.BAD_REQUEST)
+ .message(ex.getMessage())
+ .path(env.getExecutionStepInfo().getPath())
+ .location(env.getField().getSourceLocation())
+ .build();
+ } else {
+ return GraphqlErrorBuilder.newError()
+ .errorType(ErrorType.INTERNAL_ERROR)
+ .message("An unexpected error occurred: " + ex.getMessage())
+ .path(env.getExecutionStepInfo().getPath())
+ .location(env.getField().getSourceLocation())
+ .build();
+ }
+ }
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/configuration/SecurityConfiguration.java b/discoverable-client/src/main/java/org/zowe/apiml/client/configuration/SecurityConfiguration.java
index 5b093a1a76..2f778e55df 100644
--- a/discoverable-client/src/main/java/org/zowe/apiml/client/configuration/SecurityConfiguration.java
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/configuration/SecurityConfiguration.java
@@ -13,6 +13,7 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
@@ -29,6 +30,7 @@
@Configuration
@EnableWebSecurity
+@EnableMethodSecurity
public class SecurityConfiguration {
@Value("${server.attls.enabled:false}")
@@ -38,6 +40,7 @@ public class SecurityConfiguration {
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
HttpSecurity newConf = http.csrf(AbstractHttpConfigurer::disable) // NOSONAR
.authorizeHttpRequests(requests -> requests
+// .requestMatchers("/api/v3/graphql/**").authenticated()
.requestMatchers("/ws/**").authenticated()
.requestMatchers("/**").permitAll())
.httpBasic(withDefaults());
@@ -48,6 +51,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return newConf.build();
}
+
@Bean
public InMemoryUserDetailsManager userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
@@ -60,6 +64,6 @@ public InMemoryUserDetailsManager userDetailsService() {
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
return web ->
- web.ignoring().requestMatchers("/api/**");
+ web.ignoring().requestMatchers("/api/v1/**");
}
}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookAlreadyExistsException.java b/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookAlreadyExistsException.java
new file mode 100644
index 0000000000..8da26156b0
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookAlreadyExistsException.java
@@ -0,0 +1,17 @@
+/*
+ * 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.client.exception;
+
+public class BookAlreadyExistsException extends RuntimeException {
+ public BookAlreadyExistsException() {
+ super("A book with the given name, page count, and author ID already exists.");
+ }
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookNotFoundException.java b/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookNotFoundException.java
new file mode 100644
index 0000000000..b4c858ad2c
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/exception/BookNotFoundException.java
@@ -0,0 +1,17 @@
+/*
+ * 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.client.exception;
+
+public class BookNotFoundException extends RuntimeException {
+ public BookNotFoundException() {
+ super("Book has not been found");
+ }
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Author.java b/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Author.java
new file mode 100644
index 0000000000..44d5833eb3
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Author.java
@@ -0,0 +1,30 @@
+/*
+ * This program and the accompanying materials are made available under the terms of the
+ * Eclipse Public License v2.0 which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-v20.html
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Copyright Contributors to the Zowe Project.
+ */
+
+package org.zowe.apiml.client.model.graphql;
+
+import java.util.Arrays;
+import java.util.List;
+
+public record Author (String authorId, String firstName, String lastName) {
+
+ private static List authors = Arrays.asList(
+ new Author("author-1", "Joshua", "Bloch"),
+ new Author("author-2", "Douglas", "Adams"),
+ new Author("author-3", "Bill", "Bryson")
+ );
+
+ public static Author getById(String id) {
+ return authors.stream()
+ .filter(author -> author.authorId().equals(id))
+ .findFirst()
+ .orElse(null);
+ }
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Book.java b/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Book.java
new file mode 100644
index 0000000000..bbafbc7ea1
--- /dev/null
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/model/graphql/Book.java
@@ -0,0 +1,91 @@
+/*
+ * 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.client.model.graphql;
+import org.zowe.apiml.client.exception.BookAlreadyExistsException;
+import org.zowe.apiml.client.exception.BookNotFoundException;
+
+import java.util.*;
+
+public record Book (String bookId, String name, Integer pageCount, String authorId) {
+
+ private static List books = new ArrayList<>(List.of(
+ new Book("book-1", "Effective Java", 0, "author-1"),
+ new Book("book-2", "Hitchhiker's Guide to the Galaxy", 208, "author-2"),
+ new Book("book-3", "Down Under", 436, "author-3"))
+ );
+
+ public static List getAllBooks() {
+ return books.stream().toList();
+ }
+
+ public static Book getBookById(String bookId) {
+ return books.stream().filter(b -> b.bookId.equals(bookId)).findFirst().orElse(null);
+ }
+
+ public static Book getById(String bookId) {
+ return books.stream()
+ .filter(book -> book.bookId().equals(bookId))
+ .findFirst()
+ .orElse(null);
+ }
+
+ public static Book addBook(String name, Integer pageCount, String authorId) {
+ Book bookToAdd = books.stream()
+ .filter(book -> book.name().equals(name) &&
+ book.pageCount().equals(pageCount) &&
+ book.authorId().equals(authorId))
+ .findFirst()
+ .orElse(null);
+
+ if (bookToAdd == null) {
+ Book book = new Book(UUID.randomUUID().toString(), name, pageCount, authorId);
+ books.add(book);
+ return book;
+ }
+ else {
+ throw new BookAlreadyExistsException();
+ }
+ }
+
+ public static Book updateBook(String bookId, String name, Integer pageCount, String authorId) {
+ Book bookToUpdate = books.stream()
+ .filter(book -> book.bookId().equals(bookId))
+ .findFirst()
+ .orElse(null);
+
+ if (bookToUpdate != null) {
+ Book updatedBook = new Book(
+ bookToUpdate.bookId(),
+ name != null ? name : bookToUpdate.name(),
+ pageCount != null ? pageCount : bookToUpdate.pageCount(),
+ authorId != null ? authorId : bookToUpdate.authorId()
+ );
+ books.set(books.indexOf(bookToUpdate), updatedBook);
+ return updatedBook;
+ }
+ else {
+ throw new BookNotFoundException();
+ }
+ }
+
+ public static Book deleteBook(String bookId) {
+ Book book = getById(bookId);
+ if (book != null) {
+ books.remove(book);
+ return book;
+ }
+ throw new BookNotFoundException();
+ }
+
+ public static void setBooks(List newBooks) {
+ books = new ArrayList<>(newBooks);
+ }
+}
diff --git a/discoverable-client/src/main/java/org/zowe/apiml/client/service/ApiMediationClientService.java b/discoverable-client/src/main/java/org/zowe/apiml/client/service/ApiMediationClientService.java
index b906ee1f20..0cf120e4d4 100644
--- a/discoverable-client/src/main/java/org/zowe/apiml/client/service/ApiMediationClientService.java
+++ b/discoverable-client/src/main/java/org/zowe/apiml/client/service/ApiMediationClientService.java
@@ -45,7 +45,7 @@ public ApiMediationClientService(@Autowired DiscoverableClientConfig dcConfig) {
}
public boolean register() throws ServiceDefinitionException {
- ApiInfo apiInfo = new ApiInfo(SERVICE_ID, GATEWAY_URL, "1.0.0", null, null);
+ ApiInfo apiInfo = new ApiInfo(SERVICE_ID, GATEWAY_URL, "1.0.0", null, null, null);
Authentication authentication = new Authentication("bypass", null, null);
Ssl ssl = new Ssl(dcConfig.isSslEnabled(), dcConfig.isVerifyCerts(), dcConfig.isNonStrictVerifyCerts(), dcConfig.getSslProtocol(), dcConfig.getKeyAlias(),
dcConfig.getKeyPassword().toCharArray(), dcConfig.getKeyStore(), dcConfig.getKeyStorePassword().toCharArray(),
diff --git a/discoverable-client/src/main/resources/application.yml b/discoverable-client/src/main/resources/application.yml
index 22b9508076..ac8e5de87c 100644
--- a/discoverable-client/src/main/resources/application.yml
+++ b/discoverable-client/src/main/resources/application.yml
@@ -30,6 +30,11 @@ spring:
profiles.group:
dev: diag
+ graphql:
+ graphiql:
+ enabled: true
+ path: "/api/v3/graphql"
+
eureka:
client:
initialInstanceInfoReplicationIntervalSeconds: 1
@@ -69,8 +74,8 @@ apiml:
service-url: ${apiml.service.contextPath}/ws
- gateway-url: "/sse/v1"
service-url: ${apiml.service.contextPath}/
- - gateway-url: "/graphql/v1"
- service-url: ${apiml.service.contextPath}/
+ - gateway-url: "/api/v3"
+ service-url: ${apiml.service.contextPath}/api/v3
apiInfo:
- apiId: zowe.apiml.discoverableclient.rest
version: 1.0.0
@@ -213,3 +218,4 @@ apiml:
server:
ssl:
enabled: false
+
diff --git a/discoverable-client/src/main/resources/graphql/schema.graphqls b/discoverable-client/src/main/resources/graphql/schema.graphqls
new file mode 100644
index 0000000000..372614ad35
--- /dev/null
+++ b/discoverable-client/src/main/resources/graphql/schema.graphqls
@@ -0,0 +1,23 @@
+type Query {
+ getAllBooks: [Book]
+ getBookById(bookId:String!): Book
+}
+
+type Mutation {
+ addBook(name:String!, pageCount: Int!, authorId:String!): Book!
+ deleteBook(bookId:String!): Book!
+ updateBook(bookId:String!, name:String, pageCount: Int, authorId:String):Book!
+}
+
+type Book {
+ bookId: ID
+ name: String
+ pageCount: Int
+ author: Author
+}
+
+type Author {
+ authorId: ID
+ firstName: String
+ lastName: String
+}
diff --git a/discoverable-client/src/test/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolverTest.java b/discoverable-client/src/test/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolverTest.java
new file mode 100644
index 0000000000..d60581b78d
--- /dev/null
+++ b/discoverable-client/src/test/java/org/zowe/apiml/client/api/graphql/GraphQLExceptionResolverTest.java
@@ -0,0 +1,95 @@
+/*
+ * 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.client.api.graphql;
+
+import graphql.GraphQLError;
+import graphql.execution.ExecutionStepInfo;
+import graphql.execution.ResultPath;
+import graphql.language.Field;
+import graphql.language.SourceLocation;
+import graphql.schema.DataFetchingEnvironment;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.zowe.apiml.client.exception.BookAlreadyExistsException;
+import org.zowe.apiml.client.exception.BookNotFoundException;
+
+import java.util.Collections;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.Mockito.when;
+
+class GraphQLExceptionResolverTest {
+
+ private GraphQLExceptionResolver resolver;
+
+ @Mock
+ private DataFetchingEnvironment env;
+
+ @Mock
+ private ExecutionStepInfo executionStepInfo;
+
+ @Mock
+ private ResultPath resultPath;
+
+ @Mock
+ private SourceLocation sourceLocation;
+
+ @Mock
+ private Field field;
+
+ @BeforeEach
+ void setUp() {
+ MockitoAnnotations.openMocks(this);
+ resolver = new GraphQLExceptionResolver();
+
+ // Mock ExecutionStepInfo and its methods
+ when(env.getExecutionStepInfo()).thenReturn(executionStepInfo);
+ when(executionStepInfo.getPath()).thenReturn(resultPath);
+ when(resultPath.toList()).thenReturn(Collections.singletonList("testPath"));
+
+ // Mock SourceLocation and its methods
+ when(env.getField()).thenReturn(field);
+ when(env.getField().getSourceLocation()).thenReturn(sourceLocation);
+ }
+
+ @Test
+ void resolveToSingleError_BookAlreadyExistsException() {
+ Throwable ex = new BookAlreadyExistsException();
+
+ GraphQLError error = resolver.resolveToSingleError(ex, env);
+
+ assertEquals("A book with the given name, page count, and author ID already exists.", error.getMessage());
+ assertEquals("BAD_REQUEST", error.getErrorType().toString());
+ }
+
+ @Test
+ void resolveToSingleError_BookNotFoundException() {
+ Throwable ex = new BookNotFoundException();
+
+ GraphQLError error = resolver.resolveToSingleError(ex, env);
+
+ assertEquals("Book has not been found", error.getMessage());
+ assertEquals("BAD_REQUEST", error.getErrorType().toString());
+ }
+
+ @Test
+ void resolveToSingleError_UnexpectedException() {
+ Throwable ex = new RuntimeException("Unexpected error");
+
+ GraphQLError error = resolver.resolveToSingleError(ex, env);
+
+ assertTrue(error.getMessage().contains("An unexpected error occurred: Unexpected error"));
+ assertEquals("INTERNAL_ERROR", error.getErrorType().toString());
+ }
+}
diff --git a/discoverable-client/src/test/java/org/zowe/apiml/client/model/AuthorTest.java b/discoverable-client/src/test/java/org/zowe/apiml/client/model/AuthorTest.java
new file mode 100644
index 0000000000..15a19a78a8
--- /dev/null
+++ b/discoverable-client/src/test/java/org/zowe/apiml/client/model/AuthorTest.java
@@ -0,0 +1,32 @@
+/*
+ * 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.client.model;
+import org.junit.jupiter.api.Test;
+import org.zowe.apiml.client.model.graphql.Author;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+public class AuthorTest {
+
+ @Test
+ public void testGetByIdFound() {
+ Author author = Author.getById("author-1");
+ assertEquals("Joshua", author.firstName());
+ assertEquals("Bloch", author.lastName());
+ }
+
+ @Test
+ public void testGetByIdNotFound() {
+ Author author = Author.getById("non-existent-id");
+ assertNull(author);
+ }
+}
diff --git a/discoverable-client/src/test/java/org/zowe/apiml/client/model/BookTest.java b/discoverable-client/src/test/java/org/zowe/apiml/client/model/BookTest.java
new file mode 100644
index 0000000000..fe15ac60ec
--- /dev/null
+++ b/discoverable-client/src/test/java/org/zowe/apiml/client/model/BookTest.java
@@ -0,0 +1,106 @@
+/*
+ * 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.client.model;
+
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.zowe.apiml.client.exception.BookAlreadyExistsException;
+import org.zowe.apiml.client.exception.BookNotFoundException;
+import org.zowe.apiml.client.model.graphql.Book;
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class BookTest {
+
+ @BeforeEach
+ public void setUp() {
+ // Reset the books list before each test
+ Book.setBooks(new ArrayList<>(List.of(
+ new Book("book-1", "Effective Java", 0, "author-1"),
+ new Book("book-2", "Hitchhiker's Guide to the Galaxy", 208, "author-2"),
+ new Book("book-3", "Down Under", 436, "author-3"))
+ ));
+ }
+
+ @Test
+ public void testGetAllBooks() {
+ var books = Book.getAllBooks();
+ assertEquals(3, books.size());
+ }
+
+ @Test
+ public void testGetBookByIdFound() {
+ var book = Book.getBookById("book-1");
+ assertNotNull(book);
+ assertEquals("Effective Java", book.name());
+ }
+
+ @Test
+ public void testGetBookByIdNotFound() {
+ var book = Book.getBookById("non-existent-id");
+ assertNull(book);
+ }
+
+ @Test
+ public void testAddBookSuccess() {
+ var book = Book.addBook("New Book", 100, "author-1");
+ assertNotNull(book);
+ assertEquals("New Book", book.name());
+ assertEquals(100, book.pageCount());
+ assertTrue(Book.getAllBooks().stream().anyMatch(b -> b.bookId().equals(book.bookId())));
+ }
+
+ @Test
+ public void testAddBookFailure() {
+ assertThrows(BookAlreadyExistsException.class, () -> {
+ Book.addBook("Effective Java", 0, "author-1");
+ });
+ }
+
+ @Test
+ public void testUpdateBookSuccess() {
+ var updatedBook = Book.updateBook("book-1", "Updated Book", 200, "author-1");
+ assertEquals("Updated Book", updatedBook.name());
+ assertEquals(200, updatedBook.pageCount());
+ }
+
+ @Test
+ public void testUpdateBookWithNullFieldsSuccess() {
+ var updatedBook = Book.updateBook("book-1",null, null, "author-1");
+ assertEquals("Effective Java", updatedBook.name());
+ assertEquals(0, updatedBook.pageCount());
+ }
+
+ @Test
+ public void testUpdateBookNotFound() {
+ assertThrows(BookNotFoundException.class, () -> {
+ Book.updateBook("non-existent-id", "Updated Book", 200, "author-1");
+ });
+ }
+
+ @Test
+ public void testDeleteBookSuccess() {
+ var book = Book.deleteBook("book-1");
+ assertNotNull(book);
+ assertTrue(Book.getAllBooks().stream().noneMatch(b -> b.bookId().equals(book.bookId())));
+ }
+
+ @Test
+ public void testDeleteBookNotFound() {
+ assertThrows(BookNotFoundException.class, () -> {
+ Book.deleteBook("non-existent-id");
+ });
+ }
+}
diff --git a/ehcache/.lock b/ehcache/.lock
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/gradle/versions.gradle b/gradle/versions.gradle
index faaacd52f4..28023b3b34 100644
--- a/gradle/versions.gradle
+++ b/gradle/versions.gradle
@@ -25,6 +25,7 @@ dependencyResolutionManagement {
version('gradleGitProperties', '2.4.1') // Used in classpath dependencies
version('gradleNode', '3.6.0') // Used in classpath dependencies
version('guava', '33.2.1-jre')
+ version('springBootGraphql', '3.2.7')
// version('hamcrest', '1.3')
version('hamcrest', '2.2')
version('httpClient5', '5.3.1')
@@ -197,6 +198,7 @@ dependencyResolutionManagement {
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')
// Sample apps only
library('jersey_client4', 'com.sun.jersey.contribs', 'jersey-apache-client4').versionRef('jerseySun')
diff --git a/integration-tests/build.gradle b/integration-tests/build.gradle
index 92b3b8dd51..6bbbb7b755 100644
--- a/integration-tests/build.gradle
+++ b/integration-tests/build.gradle
@@ -26,6 +26,8 @@ configurations.all {
dependencies {
testImplementation project(':apiml-security-common')
testImplementation project(':zaas-client')
+ testImplementation group: 'org.springframework.graphql', name: 'spring-graphql-test', version: '1.3.1'
+
testImplementation libs.spring.boot.starter.actuator
testImplementation libs.spring.boot.starter.test
diff --git a/integration-tests/graphql.config.yml b/integration-tests/graphql.config.yml
new file mode 100644
index 0000000000..1ccd330f87
--- /dev/null
+++ b/integration-tests/graphql.config.yml
@@ -0,0 +1,2 @@
+schema: schema.graphql
+documents: '**/*.graphql'
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
new file mode 100644
index 0000000000..7d5b3885cc
--- /dev/null
+++ b/integration-tests/src/test/java/org/zowe/apiml/integration/graphql/BookControllerTest.java
@@ -0,0 +1,383 @@
+/*
+ * 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.integration.graphql;
+
+import io.netty.handler.ssl.SslContext;
+import io.netty.handler.ssl.SslContextBuilder;
+import io.netty.handler.ssl.util.InsecureTrustManagerFactory;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.springframework.graphql.test.tester.HttpGraphQlTester;
+import org.springframework.http.client.reactive.ReactorClientHttpConnector;
+import org.springframework.test.web.reactive.server.WebTestClient;
+import org.zowe.apiml.util.http.HttpRequestUtils;
+import reactor.netty.http.client.HttpClient;
+
+import javax.net.ssl.SSLException;
+import java.util.List;
+import java.util.concurrent.ThreadLocalRandom;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+
+@org.zowe.apiml.util.categories.BookControllerTest
+public class BookControllerTest {
+
+ static HttpGraphQlTester tester;
+
+ private Book setUpBook() {
+
+ return new Book("New Book " + ThreadLocalRandom.current().nextInt(1, 10),
+ ThreadLocalRandom.current().nextInt(100, 601),
+ "dfvdb12");
+ }
+
+ @BeforeAll
+ static void setUpTester() {
+ String baseUrl = HttpRequestUtils.getUriFromGateway("/discoverableclient/api/v3/graphql").toString();
+ SslContext sslContext = null;
+ try {
+ sslContext = SslContextBuilder
+ .forClient()
+ .trustManager(InsecureTrustManagerFactory.INSTANCE)
+ .build();
+ } catch (SSLException e) {
+ throw new RuntimeException(e);
+ }
+ SslContext finalSslContext = sslContext;
+ HttpClient httpClient = HttpClient.create().secure(t -> t.sslContext(finalSslContext));
+
+ WebTestClient client =
+ WebTestClient.bindToServer().clientConnector(new ReactorClientHttpConnector(httpClient))
+ .baseUrl(baseUrl)
+ .build();
+ tester = HttpGraphQlTester.create(client);
+ }
+
+ @Test
+ public void whenGetAllBooks_thenReturnAllBooks() throws SSLException {
+ String document = """
+ query {
+ getAllBooks {
+ bookId
+ name
+ }
+ }
+ """;
+ tester.document(document)
+ .execute()
+ .path("getAllBooks")
+ .entityList(Book.class)
+ .get();
+ }
+
+ @Test
+ public void whenGetAllBooksWithWrongSchema_thenReturnException() throws SSLException {
+ String document = """
+ query {
+ getAllBooks {
+ title
+ }
+ }
+ """;
+
+ AssertionError thrown = assertThrows(AssertionError.class, () -> {
+ tester.document(document)
+ .execute()
+ .path("getAllBooks")
+ .entityList(Book.class)
+ .get();
+ });
+ assertNotNull(thrown);
+ }
+
+ @Test
+ public void whenAddBook_thenReturnAddedBook() throws SSLException {
+ Book expectedBook = setUpBook();
+ String addBookDocument = String.format("""
+ mutation {
+ addBook(name: "%s", pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, expectedBook.name, expectedBook.pageCount, expectedBook.authorId );
+
+ tester.document(addBookDocument)
+ .execute()
+ .path("addBook")
+ .entity(Book.class)
+ .satisfies(book -> {
+ assertNotNull(book.bookId);
+ assertEquals(expectedBook.name, book.name);
+ assertEquals(expectedBook.pageCount, book.pageCount);
+ });
+
+ String getAllBooksDocument = """
+ query {
+ getAllBooks {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """;
+ HttpGraphQlTester.Response getAllBooksResponse = tester.document(getAllBooksDocument)
+ .execute();
+ List books = getAllBooksResponse.path("getAllBooks").entityList(Book.class).get();
+
+ assertTrue(books.stream().anyMatch(book ->
+ book.name.equals(expectedBook.name) &&
+ book.pageCount.equals(expectedBook.pageCount)
+ ));
+ }
+
+ @Test
+ public void whenGetBookById_thenReturnMatchingBook() throws SSLException {
+ Book expectedBook = setUpBook();
+ String addBookDocument = String.format("""
+ mutation {
+ addBook(name: "%s", pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, expectedBook.name, expectedBook.pageCount, expectedBook.authorId);
+ HttpGraphQlTester.Response addBookResponse = tester.document(addBookDocument)
+ .execute();
+ String addedBookId = addBookResponse.path("addBook.bookId").entity(String.class).get();
+ String getBookByIdDocument = String.format("""
+ query {
+ getBookById(bookId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, addedBookId);
+
+ tester.document(getBookByIdDocument)
+ .execute()
+ .path("getBookById")
+ .entity(Book.class)
+ .satisfies(book -> {
+ assertEquals(addedBookId, book.bookId);
+ });
+ }
+
+ @Test
+ public void whenGetBookByIdWithWrongId_thenBookNotFound() throws SSLException {
+ String id = "UnexistingId";
+ String getBookByIdDocument = String.format("""
+ query {
+ getBookById(bookId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, id);
+
+ tester.document(getBookByIdDocument)
+ .execute()
+ .path("getBookById")
+ .valueIsNull();
+ }
+
+ @Test
+ public void whenAddBookWithNullParameter_thenReturnException() throws SSLException {
+ Book expectedBook = setUpBook();
+ String addBookDocument = String.format("""
+ mutation {
+ addBook(name: null, pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, expectedBook.pageCount, expectedBook.authorId );
+
+ AssertionError thrown = assertThrows(AssertionError.class, () -> {
+ tester.document(addBookDocument)
+ .execute()
+ .path("addBook")
+ .entity(Book.class)
+ .get();
+ });
+ assertNotNull(thrown);
+ }
+
+ @Test
+ public void whenUpdateBook_thenReturnUpdatedBook() throws SSLException {
+ Book expectedBook = setUpBook();
+ String addBookDocument = String.format("""
+ mutation {
+ addBook(name: "%s", pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, expectedBook.name, expectedBook.pageCount, expectedBook.authorId);
+
+ HttpGraphQlTester.Response addBookResponse = tester.document(addBookDocument)
+ .execute();
+ String addedBookId = addBookResponse.path("addBook.bookId").entity(String.class).get();
+ Book updatedBook = new Book(addedBookId, "New name", 500);
+ String updateBookDocument = String.format("""
+ mutation {
+ updateBook(bookId: "%s", name: "%s", pageCount: %d) {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, updatedBook.bookId, updatedBook.name, updatedBook.pageCount);
+
+ tester.document(updateBookDocument)
+ .execute()
+ .path("updateBook")
+ .entity(Book.class)
+ .satisfies(book -> {
+ assertEquals(updatedBook.bookId, book.bookId);
+ assertEquals(updatedBook.name, book.name);
+ assertEquals(updatedBook.pageCount, book.pageCount);
+ });
+ }
+
+ @Test
+ public void whenUpdateUnknownBook_thenReturnException() throws SSLException {
+ Book bookToUpdateBook = setUpBook();
+ bookToUpdateBook.bookId = "unknown-id";
+ String updateBookDocument = String.format("""
+ mutation {
+ updateBook(bookId: "%s", name: "%s", pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, bookToUpdateBook.bookId, bookToUpdateBook.name, bookToUpdateBook.pageCount, bookToUpdateBook.authorId);
+
+ AssertionError thrown = assertThrows(AssertionError.class, () -> {
+ tester.document(updateBookDocument)
+ .execute()
+ .path("updateBook")
+ .entity(Book.class)
+ .get();
+ });
+ assertNotNull(thrown);
+ }
+
+ @Test
+ public void whenDeleteBook_thenReturnDeletedBook() throws SSLException {
+ // add book which will be later deleted
+ Book bookToDelete = setUpBook();
+ String addBookDocument = String.format("""
+ mutation {
+ addBook(name: "%s", pageCount: %d, authorId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, bookToDelete.name, bookToDelete.pageCount, bookToDelete.authorId );
+
+ HttpGraphQlTester.Response addBookResponse = tester.document(addBookDocument)
+ .execute();
+ String addedBookId = addBookResponse.path("addBook.bookId").entity(String.class).get();
+
+ //delete book
+ String deleteBookDocument = String.format("""
+ mutation {
+ deleteBook(bookId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, addedBookId);
+ tester.document(deleteBookDocument)
+ .execute()
+ .path("deleteBook")
+ .entity(Book.class)
+ .satisfies(book -> {
+ assertEquals(addedBookId, book.bookId);
+ assertEquals(bookToDelete.name, book.name);
+ assertEquals(bookToDelete.pageCount, book.pageCount);
+ });
+
+ //verify that book was deleted
+ String getBookByIdDocument = String.format("""
+ query {
+ getBookById(bookId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, addedBookId);
+
+ tester.document(getBookByIdDocument)
+ .execute()
+ .path("getBookById")
+ .valueIsNull();
+ }
+
+ @Test
+ public void whenDeleteUnknownBook_thenReturnException() throws SSLException {
+ String unknownId = "unknown-id";
+ String deleteBookDocument = String.format("""
+ mutation {
+ deleteBook(bookId: "%s") {
+ bookId
+ name
+ pageCount
+ }
+ }
+ """, unknownId);
+
+ AssertionError thrown = assertThrows(AssertionError.class, () -> {
+ tester.document(deleteBookDocument)
+ .execute()
+ .path("deleteBook")
+ .entity(Book.class)
+ .get();
+ });
+ assertNotNull(thrown);
+ }
+
+ @Data
+ @NoArgsConstructor
+ @AllArgsConstructor
+ static private class Book {
+ String bookId;
+ String name;
+ Integer pageCount;
+ String authorId;
+
+ public Book(String name, Integer pageCount, String authorId) {
+ this.name = name;
+ this.pageCount = pageCount;
+ this.authorId = authorId;
+ }
+ public Book(String bookId, String name, Integer pageCount) {
+ this.bookId = bookId;
+ this.name = name;
+ this.pageCount = pageCount;
+ }
+ }
+}
diff --git a/integration-tests/src/test/java/org/zowe/apiml/util/categories/BookControllerTest.java b/integration-tests/src/test/java/org/zowe/apiml/util/categories/BookControllerTest.java
new file mode 100644
index 0000000000..485cdc2058
--- /dev/null
+++ b/integration-tests/src/test/java/org/zowe/apiml/util/categories/BookControllerTest.java
@@ -0,0 +1,26 @@
+/*
+ * 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.categories;
+
+import org.junit.jupiter.api.Tag;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+
+@Tag("BookControllerTest")
+@Target({ TYPE, METHOD })
+@Retention(RetentionPolicy.RUNTIME)
+public @interface BookControllerTest {
+}
diff --git a/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImplTest.java b/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImplTest.java
index b86d427554..1dc649cbb7 100644
--- a/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImplTest.java
+++ b/onboarding-enabler-java/src/test/java/org/zowe/apiml/eurekaservice/client/impl/ApiMediationClientImplTest.java
@@ -42,7 +42,7 @@ class ApiMediationClientImplTest {
private EurekaClientConfigProvider eurekaClientConfigProvider;
ApiMediationServiceConfig getValidConfiguration() {
- ApiInfo apiInfo = new ApiInfo("org.zowe.enabler.java", "api/v1", "1.0.0", "https://localhost:10014/apicatalog/api-doc", null);
+ ApiInfo apiInfo = new ApiInfo("org.zowe.enabler.java", "api/v1", "1.0.0", "https://localhost:10014/apicatalog/api-doc", null, null);
Catalog catalogUiTile = new Catalog(new Catalog.Tile("cademoapps", "Sample API Mediation Layer Applications", "Applications which demonstrate how to make a service integrated to the API Mediation Layer ecosystem", "1.0.0"));
Authentication authentication = new Authentication("bypass", null, null);
Ssl ssl = new Ssl(false, false, false, "TLSv1.2", "localhost", PASSWORD,
diff --git a/onboarding-enabler-nodejs-sample-app/package-lock.json b/onboarding-enabler-nodejs-sample-app/package-lock.json
index 44733cf123..be53c38e23 100644
--- a/onboarding-enabler-nodejs-sample-app/package-lock.json
+++ b/onboarding-enabler-nodejs-sample-app/package-lock.json
@@ -1,1148 +1,1148 @@
{
- "name": "helloworld-expressjs",
- "version": "0.3.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "helloworld-expressjs",
- "version": "0.3.0",
- "license": "EPL-2.0",
- "dependencies": {
- "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs",
- "express": "4.19.2"
- },
- "engines": {
- "node": "=16.19.0",
- "npm": "=8.19.3"
- }
- },
- "node_modules/@zowe/apiml-onboarding-enabler-nodejs": {
- "version": "3.0.7",
- "resolved": "file:../onboarding-enabler-nodejs",
- "license": "EPL-2.0",
- "dependencies": {
- "eureka-js-client": "4.5.0"
- },
- "engines": {
- "node": "=16.19.0",
- "npm": "=8.19.3"
- }
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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==",
- "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"
- }
- },
- "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==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "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==",
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/async": {
- "version": "2.6.4",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/async/-/async-2.6.4.tgz",
- "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
- "dependencies": {
- "lodash": "^4.17.14"
- }
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.12.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aws4/-/aws4-1.12.0.tgz",
- "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
- },
- "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==",
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
- },
- "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==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.5",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.2",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.7",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/call-bind/-/call-bind-1.0.7.tgz",
- "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "set-function-length": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-type": {
- "version": "1.0.5",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/content-type/-/content-type-1.0.5.tgz",
- "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
- "node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/define-data-property": {
- "version": "1.1.4",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/define-data-property/-/define-data-property-1.1.4.tgz",
- "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dependencies": {
- "es-define-property": "^1.0.0",
- "es-errors": "^1.3.0",
- "gopd": "^1.0.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "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==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ee-first/-/ee-first-1.1.1.tgz",
- "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==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/es-define-property": {
- "version": "1.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/es-define-property/-/es-define-property-1.0.0.tgz",
- "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dependencies": {
- "get-intrinsic": "^1.2.4"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/es-errors": {
- "version": "1.3.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/es-errors/-/es-errors-1.3.0.tgz",
- "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "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==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/eureka-js-client": {
- "version": "4.5.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eureka-js-client/-/eureka-js-client-4.5.0.tgz",
- "integrity": "sha512-vnkrw7UPAHdJbTsjpgVJfqjr3FFJnEJNq4acRbc6s8qTAhO0LhTDkN4a/1TUYlsr480x0PWjA6jzqVGCjyWE7g==",
- "dependencies": {
- "async": "^2.0.1",
- "js-yaml": "^3.3.1",
- "lodash": "^4.13.1",
- "request": "^2.83.0"
- }
- },
- "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==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.2",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.6.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "engines": [
- "node >=0.6.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=="
- },
- "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=="
- },
- "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==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "engines": {
- "node": "*"
- }
- },
- "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==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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=="
- },
- "node_modules/get-intrinsic": {
- "version": "1.2.4",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
- "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dependencies": {
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "has-proto": "^1.0.1",
- "has-symbols": "^1.0.3",
- "hasown": "^2.0.0"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
- "node_modules/gopd": {
- "version": "1.0.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gopd/-/gopd-1.0.1.tgz",
- "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dependencies": {
- "get-intrinsic": "^1.1.3"
- }
- },
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has-property-descriptors": {
- "version": "1.0.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
- "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dependencies": {
- "es-define-property": "^1.0.0"
- }
- },
- "node_modules/has-proto": {
- "version": "1.0.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-proto/-/has-proto-1.0.3.tgz",
- "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- }
- },
- "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==",
- "dependencies": {
- "function-bind": "^1.1.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "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=="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
- },
- "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=="
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "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=="
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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="
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "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==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "engines": {
- "node": "*"
- }
- },
- "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=="
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "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="
- },
- "node_modules/performance-now": {
- "version": "2.1.0",
- "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/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "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=="
- },
- "node_modules/punycode": {
- "version": "2.3.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-2.3.1.tgz",
- "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
- "engines": {
- "node": ">=6"
- }
- },
- "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==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "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/range-parser": {
- "version": "1.2.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/raw-body/-/raw-body-2.5.2.tgz",
- "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "engines": {
- "node": ">=0.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",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
+ "name": "helloworld-expressjs",
+ "version": "0.3.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "helloworld-expressjs",
+ "version": "0.3.0",
+ "license": "EPL-2.0",
+ "dependencies": {
+ "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs",
+ "express": "4.19.2"
+ },
+ "engines": {
+ "node": "=16.19.0",
+ "npm": "=8.19.3"
+ }
+ },
+ "node_modules/@zowe/apiml-onboarding-enabler-nodejs": {
+ "version": "3.0.7",
+ "resolved": "file:../onboarding-enabler-nodejs",
+ "license": "EPL-2.0",
+ "dependencies": {
+ "eureka-js-client": "4.5.0"
+ },
+ "engines": {
+ "node": "=16.19.0",
+ "npm": "=8.19.3"
+ }
+ },
+ "node_modules/accepts": {
+ "version": "1.3.8",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/accepts/-/accepts-1.3.8.tgz",
+ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
+ "dependencies": {
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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==",
+ "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"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/array-flatten": {
+ "version": "1.1.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
+ },
+ "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==",
+ "dependencies": {
+ "safer-buffer": "~2.1.0"
+ }
+ },
+ "node_modules/assert-plus": {
+ "version": "1.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dependencies": {
+ "lodash": "^4.17.14"
+ }
+ },
+ "node_modules/asynckit": {
+ "version": "0.4.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+ },
+ "node_modules/aws-sign2": {
+ "version": "0.7.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/aws4": {
+ "version": "1.12.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/aws4/-/aws4-1.12.0.tgz",
+ "integrity": "sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg=="
+ },
+ "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==",
+ "dependencies": {
+ "tweetnacl": "^0.14.3"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "on-finished": "2.4.1",
+ "qs": "6.11.0",
+ "raw-body": "2.5.2",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind": {
+ "version": "1.0.7",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/call-bind/-/call-bind-1.0.7.tgz",
+ "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "set-function-length": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/caseless": {
+ "version": "0.12.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
+ },
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+ "dependencies": {
+ "delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/content-disposition": {
+ "version": "0.5.4",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
+ "dependencies": {
+ "safe-buffer": "5.2.1"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/cookie-signature": {
+ "version": "1.0.6",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
+ },
+ "node_modules/core-util-is": {
+ "version": "1.0.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
+ },
+ "node_modules/dashdash": {
+ "version": "1.14.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/debug": {
+ "version": "2.6.9",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/define-data-property": {
+ "version": "1.1.4",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/define-data-property/-/define-data-property-1.1.4.tgz",
+ "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
+ "dependencies": {
+ "es-define-property": "^1.0.0",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/delayed-stream": {
+ "version": "1.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "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==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/destroy": {
+ "version": "1.2.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/ecc-jsbn": {
+ "version": "0.1.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
+ "dependencies": {
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.1.0"
+ }
+ },
+ "node_modules/ee-first": {
+ "version": "1.1.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ee-first/-/ee-first-1.1.1.tgz",
+ "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==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/es-define-property": {
+ "version": "1.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/es-define-property/-/es-define-property-1.0.0.tgz",
+ "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.2.4"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/escape-html": {
+ "version": "1.0.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
+ },
+ "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==",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/etag": {
+ "version": "1.8.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/eureka-js-client": {
+ "version": "4.5.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/eureka-js-client/-/eureka-js-client-4.5.0.tgz",
+ "integrity": "sha512-vnkrw7UPAHdJbTsjpgVJfqjr3FFJnEJNq4acRbc6s8qTAhO0LhTDkN4a/1TUYlsr480x0PWjA6jzqVGCjyWE7g==",
+ "dependencies": {
+ "async": "^2.0.1",
+ "js-yaml": "^3.3.1",
+ "lodash": "^4.13.1",
+ "request": "^2.83.0"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "accepts": "~1.3.8",
+ "array-flatten": "1.1.1",
+ "body-parser": "1.20.2",
+ "content-disposition": "0.5.4",
+ "content-type": "~1.0.4",
+ "cookie": "0.6.0",
+ "cookie-signature": "1.0.6",
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "finalhandler": "1.2.0",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.1",
+ "methods": "~1.1.2",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.7",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.11.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "type-is": "~1.6.18",
+ "utils-merge": "1.0.1",
+ "vary": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
+ }
+ },
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+ },
+ "node_modules/extsprintf": {
+ "version": "1.3.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
+ "engines": [
+ "node >=0.6.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=="
+ },
+ "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=="
+ },
+ "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==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
+ "unpipe": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/forever-agent": {
+ "version": "0.6.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "asynckit": "^0.4.0",
+ "combined-stream": "^1.0.6",
+ "mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
+ }
+ },
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/fresh": {
+ "version": "0.5.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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=="
+ },
+ "node_modules/get-intrinsic": {
+ "version": "1.2.4",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
+ "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "has-proto": "^1.0.1",
+ "has-symbols": "^1.0.3",
+ "hasown": "^2.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/getpass": {
+ "version": "0.1.7",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
+ "dependencies": {
+ "assert-plus": "^1.0.0"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.0.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/gopd/-/gopd-1.0.1.tgz",
+ "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.3"
+ }
+ },
+ "node_modules/har-schema": {
+ "version": "2.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
+ "dependencies": {
+ "ajv": "^6.12.3",
+ "har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
+ "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
+ "dependencies": {
+ "es-define-property": "^1.0.0"
+ }
+ },
+ "node_modules/has-proto": {
+ "version": "1.0.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-proto/-/has-proto-1.0.3.tgz",
+ "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/has-symbols": {
+ "version": "1.0.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/http-errors": {
+ "version": "2.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
+ "dependencies": {
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/http-signature": {
+ "version": "1.2.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "jsprim": "^1.2.2",
+ "sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
+ }
+ },
+ "node_modules/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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=="
+ },
+ "node_modules/ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-typedarray": {
+ "version": "1.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
+ },
+ "node_modules/isstream": {
+ "version": "0.1.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
+ },
+ "node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsbn": {
+ "version": "0.1.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
+ },
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
+ },
+ "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=="
+ },
+ "node_modules/json-stringify-safe": {
+ "version": "5.0.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
+ },
+ "node_modules/jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
+ "dependencies": {
+ "assert-plus": "1.0.0",
+ "extsprintf": "1.3.0",
+ "json-schema": "0.4.0",
+ "verror": "1.10.0"
+ },
+ "engines": {
+ "node": ">=0.6.0"
+ }
+ },
+ "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=="
+ },
+ "node_modules/media-typer": {
+ "version": "0.3.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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="
+ },
+ "node_modules/methods": {
+ "version": "1.1.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/mime-db": {
+ "version": "1.52.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/mime-types": {
+ "version": "2.1.35",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "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==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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=="
+ },
+ "node_modules/on-finished": {
+ "version": "2.4.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
+ "dependencies": {
+ "ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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="
+ },
+ "node_modules/performance-now": {
+ "version": "2.1.0",
+ "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/proxy-addr": {
+ "version": "2.0.7",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "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=="
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "side-channel": "^1.0.4"
+ },
+ "engines": {
+ "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/range-parser": {
+ "version": "1.2.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
+ "iconv-lite": "0.4.24",
+ "unpipe": "1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/request": {
+ "version": "2.88.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
+ "dependencies": {
+ "aws-sign2": "~0.7.0",
+ "aws4": "^1.8.0",
+ "caseless": "~0.12.0",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
+ "forever-agent": "~0.6.1",
+ "form-data": "~2.3.2",
+ "har-validator": "~5.1.3",
+ "http-signature": "~1.2.0",
+ "is-typedarray": "~1.0.0",
+ "isstream": "~0.1.2",
+ "json-stringify-safe": "~5.0.1",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
+ "performance-now": "^2.1.0",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
+ "tunnel-agent": "^0.6.0",
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/request/node_modules/qs": {
+ "version": "6.5.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "engines": {
+ "node": ">=0.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",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "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=="
+ },
+ "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==",
+ "dependencies": {
+ "debug": "2.6.9",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "etag": "~1.8.1",
+ "fresh": "0.5.2",
+ "http-errors": "2.0.0",
+ "mime": "1.6.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
+ "range-parser": "~1.2.1",
+ "statuses": "2.0.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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==",
+ "dependencies": {
+ "encodeurl": "~1.0.2",
+ "escape-html": "~1.0.3",
+ "parseurl": "~1.3.3",
+ "send": "0.18.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "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",
+ "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
+ "dependencies": {
+ "define-data-property": "^1.1.4",
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2",
+ "get-intrinsic": "^1.2.4",
+ "gopd": "^1.0.1",
+ "has-property-descriptors": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
+ },
+ "node_modules/side-channel": {
+ "version": "1.0.6",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/side-channel/-/side-channel-1.0.6.tgz",
+ "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
+ "dependencies": {
+ "call-bind": "^1.0.7",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.4",
+ "object-inspect": "^1.13.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "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=="
+ },
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
+ "dependencies": {
+ "asn1": "~0.2.3",
+ "assert-plus": "^1.0.0",
+ "bcrypt-pbkdf": "^1.0.0",
+ "dashdash": "^1.12.0",
+ "ecc-jsbn": "~0.1.1",
+ "getpass": "^0.1.1",
+ "jsbn": "~0.1.0",
+ "safer-buffer": "^2.0.2",
+ "tweetnacl": "~0.14.0"
+ },
+ "bin": {
+ "sshpk-conv": "bin/sshpk-conv",
+ "sshpk-sign": "bin/sshpk-sign",
+ "sshpk-verify": "bin/sshpk-verify"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/toidentifier": {
+ "version": "1.0.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
+ "engines": {
+ "node": ">=0.6"
+ }
+ },
+ "node_modules/tough-cookie": {
+ "version": "4.1.3",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-4.1.3.tgz",
+ "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
+ "dependencies": {
+ "psl": "^1.1.33",
+ "punycode": "^2.1.1",
+ "universalify": "^0.2.0",
+ "url-parse": "^1.5.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/tunnel-agent": {
+ "version": "0.6.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "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=="
+ },
+ "node_modules/type-is": {
+ "version": "1.6.18",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
+ "dependencies": {
+ "media-typer": "0.3.0",
+ "mime-types": "~2.1.24"
+ },
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "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/unpipe": {
+ "version": "1.0.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dependencies": {
+ "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/utils-merge": {
+ "version": "1.0.1",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/uuid": {
+ "version": "3.4.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+ "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
+ },
+ "node_modules/vary": {
+ "version": "1.1.2",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/verror": {
+ "version": "1.10.0",
+ "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
+ "assert-plus": "^1.0.0",
+ "core-util-is": "1.0.2",
+ "extsprintf": "^1.2.0"
+ }
}
- ]
- },
- "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=="
- },
- "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==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "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==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "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",
- "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dependencies": {
- "define-data-property": "^1.1.4",
- "es-errors": "^1.3.0",
- "function-bind": "^1.1.2",
- "get-intrinsic": "^1.2.4",
- "gopd": "^1.0.1",
- "has-property-descriptors": "^1.0.2"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/side-channel": {
- "version": "1.0.6",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/side-channel/-/side-channel-1.0.6.tgz",
- "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dependencies": {
- "call-bind": "^1.0.7",
- "es-errors": "^1.3.0",
- "get-intrinsic": "^1.2.4",
- "object-inspect": "^1.13.1"
- },
- "engines": {
- "node": ">= 0.4"
- }
- },
- "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=="
- },
- "node_modules/sshpk": {
- "version": "1.18.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/sshpk/-/sshpk-1.18.0.tgz",
- "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "4.1.3",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tough-cookie/-/tough-cookie-4.1.3.tgz",
- "integrity": "sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==",
- "dependencies": {
- "psl": "^1.1.33",
- "punycode": "^2.1.1",
- "universalify": "^0.2.0",
- "url-parse": "^1.5.3"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "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=="
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "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/unpipe": {
- "version": "1.0.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "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",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "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/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://zowe.jfrog.io/artifactory/api/npm/npm-org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
}
- }
}
diff --git a/onboarding-enabler-nodejs-sample-app/package.json b/onboarding-enabler-nodejs-sample-app/package.json
index 191eb0cf38..0dce2212e0 100755
--- a/onboarding-enabler-nodejs-sample-app/package.json
+++ b/onboarding-enabler-nodejs-sample-app/package.json
@@ -1,27 +1,27 @@
{
- "name": "helloworld-expressjs",
- "version": "0.3.0",
- "description": "Hello World Service in Express",
- "main": "src/index.js",
- "scripts": {
- "start": "node src/index.js",
- "test": "echo \"Error: no test specified\" && exit 1"
- },
- "repository": {
- "type": "git",
- "url": "git+https://github.com/zowe/api-layer.git"
- },
- "author": "",
- "license": "EPL-2.0",
- "dependencies": {
- "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs",
- "express": "4.19.2"
- },
- "overrides": {
- "tough-cookie": "4.1.3"
- },
- "engines": {
- "npm": "=8.19.3",
- "node": "=16.19.0"
- }
+ "name": "helloworld-expressjs",
+ "version": "0.3.0",
+ "description": "Hello World Service in Express",
+ "main": "src/index.js",
+ "scripts": {
+ "start": "node src/index.js",
+ "test": "echo \"Error: no test specified\" && exit 1"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/zowe/api-layer.git"
+ },
+ "author": "",
+ "license": "EPL-2.0",
+ "dependencies": {
+ "@zowe/apiml-onboarding-enabler-nodejs": "file:../onboarding-enabler-nodejs",
+ "express": "4.19.2"
+ },
+ "overrides": {
+ "tough-cookie": "4.1.3"
+ },
+ "engines": {
+ "npm": "=8.19.3",
+ "node": "=16.19.0"
+ }
}
diff --git a/package-lock.json b/package-lock.json
index fad5d6787c..18681c4fa6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,41 +1,58 @@
{
"name": "api-layer",
- "version": "0.3.0",
- "lockfileVersion": 2,
+ "version": "3.0.0",
+ "lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "api-layer",
- "version": "0.3.0",
+ "version": "3.0.0",
"license": "EPL-2.0",
"devDependencies": {
"concurrently": "6.0.0"
}
},
"node_modules/@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz",
+ "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==",
"dev": true,
"dependencies": {
- "@babel/highlight": "^7.8.3"
+ "@babel/highlight": "^7.24.7",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz",
+ "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
+ "version": "7.24.7",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz",
+ "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==",
"dev": true,
"dependencies": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
+ "@babel/helper-validator-identifier": "^7.24.7",
+ "chalk": "^2.4.2",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
}
},
"node_modules/@babel/highlight/node_modules/ansi-styles": {
"version": "3.2.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
@@ -46,8 +63,8 @@
},
"node_modules/@babel/highlight/node_modules/chalk": {
"version": "2.4.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
@@ -60,8 +77,8 @@
},
"node_modules/@babel/highlight/node_modules/color-convert": {
"version": "1.9.3",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
@@ -69,14 +86,14 @@
},
"node_modules/@babel/highlight/node_modules/color-name": {
"version": "1.1.3",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
"dev": true
},
"node_modules/@babel/highlight/node_modules/has-flag": {
"version": "3.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"dev": true,
"engines": {
"node": ">=4"
@@ -84,8 +101,8 @@
},
"node_modules/@babel/highlight/node_modules/supports-color": {
"version": "5.5.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
@@ -227,9 +244,9 @@
}
},
"node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz",
+ "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==",
"dev": true,
"engines": {
"node": ">=6"
@@ -244,21 +261,15 @@
"node": ">=0.8.0"
}
},
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
"dev": true,
- "engines": {
- "node": ">=0.10.0"
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
"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",
@@ -268,6 +279,15 @@
"node": "6.* || 8.* || >= 10.*"
}
},
+ "node_modules/graphql": {
+ "version": "16.9.0",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz",
+ "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==",
+ "peer": true,
+ "engines": {
+ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
+ }
+ },
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -382,6 +402,12 @@
"integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
+ "node_modules/picocolors": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz",
+ "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==",
+ "dev": true
+ },
"node_modules/read-pkg": {
"version": "5.2.0",
"resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/read-pkg/-/read-pkg-5.2.0.tgz",
@@ -479,14 +505,14 @@
"dev": true
},
"node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.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.0"
+ "strip-ansi": "^6.0.1"
},
"engines": {
"node": ">=8"
@@ -499,12 +525,12 @@
"dev": true
},
"node_modules/strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dev": true,
"dependencies": {
- "ansi-regex": "^5.0.0"
+ "ansi-regex": "^5.0.1"
},
"engines": {
"node": ">=8"
@@ -612,489 +638,5 @@
"node": ">=10"
}
}
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",
- "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.8.3"
- }
- },
- "@babel/highlight": {
- "version": "7.8.3",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.8.3.tgz",
- "integrity": "sha512-PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==",
- "dev": true,
- "requires": {
- "chalk": "^2.0.0",
- "esutils": "^2.0.2",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@types/normalize-package-data": {
- "version": "2.4.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
- "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=",
- "dev": true
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "dev": true
- },
- "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=",
- "dev": true,
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "chalk": {
- "version": "4.1.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/chalk/-/chalk-4.1.0.tgz",
- "integrity": "sha1-ThSHCmGNni7dl92DRf2dncMVZGo=",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "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=",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha1-oCZe5lVHb8gHrqnfPfjfd4OAi08=",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "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=",
- "dev": true,
- "requires": {
- "color-name": "~1.1.4"
- }
- },
- "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=",
- "dev": true
- },
- "concurrently": {
- "version": "6.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/concurrently/-/concurrently-6.0.0.tgz",
- "integrity": "sha1-wah23Zk5CXnHH4xv5nlogvOhMZk=",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "date-fns": "^2.16.1",
- "lodash": "^4.17.20",
- "read-pkg": "^5.2.0",
- "rxjs": "^6.6.3",
- "spawn-command": "^0.0.2-1",
- "supports-color": "^8.1.0",
- "tree-kill": "^1.2.2",
- "yargs": "^16.2.0"
- }
- },
- "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
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha1-2M/ccACWXFoBdLSoLqpcBVJ0LkA=",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
- },
- "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=",
- "dev": true
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dev": true,
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=",
- "dev": true
- },
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
- "dev": true
- },
- "is-core-module": {
- "version": "2.2.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/is-core-module/-/is-core-module-2.2.0.tgz",
- "integrity": "sha1-lwN+89UiJNhRY/VZeytj2a/tmBo=",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "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=",
- "dev": true
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha1-fEeAWpQxmSjgV3dAXcEuH3pO4C0=",
- "dev": true
- },
- "lines-and-columns": {
- "version": "1.1.6",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
- "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=",
- "dev": true
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha1-Z5WRxWTDv/quhFTPCz3zcMPWkRw=",
- "dev": true
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=",
- "dev": true,
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha1-x2/Gbe5UIxyWKyK8yKcs8vmXU80=",
- "dev": true,
- "requires": {
- "@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"
- }
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "dev": true
- },
- "resolve": {
- "version": "1.20.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/resolve/-/resolve-1.20.0.tgz",
- "integrity": "sha1-YpoBP7P3B1XW8LeTXMHCxTeLGXU=",
- "dev": true,
- "requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
- }
- },
- "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=",
- "dev": true,
- "requires": {
- "tslib": "^1.9.0"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/semver/-/semver-5.7.1.tgz",
- "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=",
- "dev": true
- },
- "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
- },
- "spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.7",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz",
- "integrity": "sha1-6cGKQQ5e1+EkQqVJ+9ivp2cDjWU=",
- "dev": true
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha1-2v1PlVmnWFz7pSnGoKT3NIjr1MU=",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "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
- }
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=",
- "dev": true,
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha1-zW/BfihQDP9WwbhsCn/UpUpzAFw=",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "tree-kill": {
- "version": "1.2.2",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/tree-kill/-/tree-kill-1.2.2.tgz",
- "integrity": "sha1-TKCakJLIi3OnzcXooBtQeweQoMw=",
- "dev": true
- },
- "tslib": {
- "version": "1.14.1",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha1-zy04vcNKE0vK8QkcQfZhni9nLQA=",
- "dev": true
- },
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=",
- "dev": true
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "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=",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.5",
- "resolved": "https://zowe.jfrog.io/zowe/api/npm/npm-release/y18n/-/y18n-5.0.5.tgz",
- "integrity": "sha1-h2nsCNA7HqLfJQCs71YXQ7u5qxg=",
- "dev": true
- },
- "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=",
- "dev": true,
- "requires": {
- "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"
- }
- },
- "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=",
- "dev": true
- }
}
}
diff --git a/package.json b/package.json
index 6b8f18116f..fcf64a05ab 100644
--- a/package.json
+++ b/package.json
@@ -61,7 +61,6 @@
"url": "https://github.com/zowe/api-layer/issues"
},
"homepage": "https://github.com/zowe/api-layer#readme",
- "dependencies": {},
"devDependencies": {
"concurrently": "6.0.0"
}
diff --git a/zaas-service/ehcache/.lock b/zaas-service/ehcache/.lock
new file mode 100644
index 0000000000..e69de29bb2