diff --git a/CHANGELOG.md b/CHANGELOG.md index 11b9ebfb28..4d21f8dffd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +# [5.3.0](https://github.com/watson-developer-cloud/node-sdk/compare/v5.2.1...v5.3.0) (2020-01-16) + + +### Features + +* **speech-to-text:** `endOfPhraseSilenceTime` and `splitTranscriptAtPhraseEnd` params added to `recognize`, `createJob`, and `recognizeUsingWebSocket` methods ([e3ff8db](https://github.com/watson-developer-cloud/node-sdk/commit/e3ff8db807456998d22bf42bbbc72cd271595c1c)) +* add `serviceName` parameter for all services ([964e9e1](https://github.com/watson-developer-cloud/node-sdk/commit/964e9e1aff17e292f2dc3207c524c2f6669e76e2)) + ## [5.2.1](https://github.com/watson-developer-cloud/node-sdk/compare/v5.2.0...v5.2.1) (2019-12-09) diff --git a/assistant/v1.ts b/assistant/v1.ts index 758cdc23a7..e42924587c 100644 --- a/assistant/v1.ts +++ b/assistant/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2018, 2019. + * (C) Copyright IBM Corp. 2018, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -29,9 +28,8 @@ import { getSdkHeaders } from '../lib/common'; class AssistantV1 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/assistant/api'; - name: string; // set by prototype to 'conversation' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/assistant/api'; + static DEFAULT_SERVICE_NAME: string = 'conversation'; /** * Construct a AssistantV1 object. @@ -45,17 +43,25 @@ class AssistantV1 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/assistant/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {AssistantV1} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = AssistantV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('conversation'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -94,8 +100,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.nodesVisitedDetails] - Whether to include additional diagnostic information about the * dialog nodes that were visited during processing of the message. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public message(params: AssistantV1.MessageParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -103,7 +109,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -130,7 +135,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'message'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'message'); const parameters = { options: { @@ -185,15 +190,14 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listWorkspaces(params?: AssistantV1.ListWorkspacesParams, callback?: AssistantV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'page_limit': _params.pageLimit, 'sort': _params.sort, @@ -201,7 +205,7 @@ class AssistantV1 extends BaseService { 'include_audit': _params.includeAudit }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listWorkspaces'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listWorkspaces'); const parameters = { options: { @@ -260,15 +264,14 @@ class AssistantV1 extends BaseService { * marked as irrelevant input. * @param {Webhook[]} [params.webhooks] - * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createWorkspace(params?: AssistantV1.CreateWorkspaceParams, callback?: AssistantV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const body = { 'name': _params.name, 'description': _params.description, @@ -283,7 +286,7 @@ class AssistantV1 extends BaseService { 'webhooks': _params.webhooks }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createWorkspace'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createWorkspace'); const parameters = { options: { @@ -336,8 +339,8 @@ class AssistantV1 extends BaseService { * only if **export**=`true`. Specify `sort=stable` to sort all workspace objects by unique identifier, in ascending * alphabetical order. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getWorkspace(params: AssistantV1.GetWorkspaceParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -345,7 +348,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -365,7 +367,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getWorkspace'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getWorkspace'); const parameters = { options: { @@ -433,8 +435,8 @@ class AssistantV1 extends BaseService { * If **append**=`true`, existing elements are preserved, and the new elements are added. If any elements in the new * data collide with existing elements, the update request fails. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateWorkspace(params: AssistantV1.UpdateWorkspaceParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -442,7 +444,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -474,7 +475,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateWorkspace'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateWorkspace'); const parameters = { options: { @@ -520,8 +521,8 @@ class AssistantV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.workspaceId - Unique identifier of the workspace. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteWorkspace(params: AssistantV1.DeleteWorkspaceParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -529,7 +530,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -543,7 +543,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteWorkspace'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteWorkspace'); const parameters = { options: { @@ -600,8 +600,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listIntents(params: AssistantV1.ListIntentsParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -609,7 +609,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -631,7 +630,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listIntents'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listIntents'); const parameters = { options: { @@ -684,8 +683,8 @@ class AssistantV1 extends BaseService { * newline, or tab characters. * @param {Example[]} [params.examples] - An array of user input examples for the intent. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createIntent(params: AssistantV1.CreateIntentParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -693,7 +692,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -713,7 +711,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createIntent'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createIntent'); const parameters = { options: { @@ -765,8 +763,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getIntent(params: AssistantV1.GetIntentParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -774,7 +772,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -794,7 +791,7 @@ class AssistantV1 extends BaseService { 'intent': _params.intent }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getIntent'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getIntent'); const parameters = { options: { @@ -850,8 +847,8 @@ class AssistantV1 extends BaseService { * return, newline, or tab characters. * @param {Example[]} [params.newExamples] - An array of user input examples for the intent. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateIntent(params: AssistantV1.UpdateIntentParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -859,7 +856,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -880,7 +876,7 @@ class AssistantV1 extends BaseService { 'intent': _params.intent }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateIntent'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateIntent'); const parameters = { options: { @@ -926,8 +922,8 @@ class AssistantV1 extends BaseService { * @param {string} params.workspaceId - Unique identifier of the workspace. * @param {string} params.intent - The intent name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteIntent(params: AssistantV1.DeleteIntentParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -935,7 +931,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -950,7 +945,7 @@ class AssistantV1 extends BaseService { 'intent': _params.intent }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteIntent'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteIntent'); const parameters = { options: { @@ -1004,8 +999,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listExamples(params: AssistantV1.ListExamplesParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1013,7 +1008,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1035,7 +1029,7 @@ class AssistantV1 extends BaseService { 'intent': _params.intent }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listExamples'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listExamples'); const parameters = { options: { @@ -1088,8 +1082,8 @@ class AssistantV1 extends BaseService { * - It cannot consist of only whitespace characters. * @param {Mention[]} [params.mentions] - An array of contextual entity mentions. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createExample(params: AssistantV1.CreateExampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1097,7 +1091,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1117,7 +1110,7 @@ class AssistantV1 extends BaseService { 'intent': _params.intent }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createExample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createExample'); const parameters = { options: { @@ -1166,8 +1159,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getExample(params: AssistantV1.GetExampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1175,7 +1168,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1195,7 +1187,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getExample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getExample'); const parameters = { options: { @@ -1249,8 +1241,8 @@ class AssistantV1 extends BaseService { * - It cannot consist of only whitespace characters. * @param {Mention[]} [params.newMentions] - An array of contextual entity mentions. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateExample(params: AssistantV1.UpdateExampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1258,7 +1250,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1279,7 +1270,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateExample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateExample'); const parameters = { options: { @@ -1326,8 +1317,8 @@ class AssistantV1 extends BaseService { * @param {string} params.intent - The intent name. * @param {string} params.text - The text of the user input example. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteExample(params: AssistantV1.DeleteExampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1335,7 +1326,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'intent', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1351,7 +1341,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteExample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteExample'); const parameters = { options: { @@ -1404,8 +1394,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCounterexamples(params: AssistantV1.ListCounterexamplesParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1413,7 +1403,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1434,7 +1423,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listCounterexamples'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listCounterexamples'); const parameters = { options: { @@ -1485,8 +1474,8 @@ class AssistantV1 extends BaseService { * - It cannot contain carriage return, newline, or tab characters. * - It cannot consist of only whitespace characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createCounterexample(params: AssistantV1.CreateCounterexampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1494,7 +1483,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1512,7 +1500,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createCounterexample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createCounterexample'); const parameters = { options: { @@ -1560,8 +1548,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCounterexample(params: AssistantV1.GetCounterexampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1569,7 +1557,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1588,7 +1575,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getCounterexample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getCounterexample'); const parameters = { options: { @@ -1640,8 +1627,8 @@ class AssistantV1 extends BaseService { * - It cannot contain carriage return, newline, or tab characters. * - It cannot consist of only whitespace characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateCounterexample(params: AssistantV1.UpdateCounterexampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1649,7 +1636,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1668,7 +1654,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateCounterexample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateCounterexample'); const parameters = { options: { @@ -1714,8 +1700,8 @@ class AssistantV1 extends BaseService { * @param {string} params.workspaceId - Unique identifier of the workspace. * @param {string} params.text - The text of a user input counterexample (for example, `What are you wearing?`). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteCounterexample(params: AssistantV1.DeleteCounterexampleParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1723,7 +1709,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1738,7 +1723,7 @@ class AssistantV1 extends BaseService { 'text': _params.text }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteCounterexample'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteCounterexample'); const parameters = { options: { @@ -1795,8 +1780,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listEntities(params: AssistantV1.ListEntitiesParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1804,7 +1789,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1826,7 +1810,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listEntities'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listEntities'); const parameters = { options: { @@ -1882,8 +1866,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.fuzzyMatch] - Whether to use fuzzy matching for the entity. * @param {CreateValue[]} [params.values] - An array of objects describing the entity values. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createEntity(params: AssistantV1.CreateEntityParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1891,7 +1875,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1913,7 +1896,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createEntity'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createEntity'); const parameters = { options: { @@ -1965,8 +1948,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getEntity(params: AssistantV1.GetEntityParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -1974,7 +1957,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1994,7 +1976,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getEntity'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getEntity'); const parameters = { options: { @@ -2052,8 +2034,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.newFuzzyMatch] - Whether to use fuzzy matching for the entity. * @param {CreateValue[]} [params.newValues] - An array of objects describing the entity values. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateEntity(params: AssistantV1.UpdateEntityParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2061,7 +2043,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2084,7 +2065,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateEntity'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateEntity'); const parameters = { options: { @@ -2130,8 +2111,8 @@ class AssistantV1 extends BaseService { * @param {string} params.workspaceId - Unique identifier of the workspace. * @param {string} params.entity - The name of the entity. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteEntity(params: AssistantV1.DeleteEntityParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2139,7 +2120,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2154,7 +2134,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteEntity'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteEntity'); const parameters = { options: { @@ -2208,8 +2188,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listMentions(params: AssistantV1.ListMentionsParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2217,7 +2197,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2237,7 +2216,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listMentions'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listMentions'); const parameters = { options: { @@ -2295,8 +2274,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listValues(params: AssistantV1.ListValuesParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2304,7 +2283,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2327,7 +2305,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listValues'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listValues'); const parameters = { options: { @@ -2390,8 +2368,8 @@ class AssistantV1 extends BaseService { * information about how to specify a pattern, see the * [documentation](https://cloud.ibm.com/docs/services/assistant?topic=assistant-entities#entities-create-dictionary-based). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createValue(params: AssistantV1.CreateValueParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2399,7 +2377,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2422,7 +2399,7 @@ class AssistantV1 extends BaseService { 'entity': _params.entity }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createValue'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createValue'); const parameters = { options: { @@ -2474,8 +2451,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getValue(params: AssistantV1.GetValueParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2483,7 +2460,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2504,7 +2480,7 @@ class AssistantV1 extends BaseService { 'value': _params.value }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getValue'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getValue'); const parameters = { options: { @@ -2569,8 +2545,8 @@ class AssistantV1 extends BaseService { * information about how to specify a pattern, see the * [documentation](https://cloud.ibm.com/docs/services/assistant?topic=assistant-entities#entities-create-dictionary-based). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateValue(params: AssistantV1.UpdateValueParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2578,7 +2554,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2602,7 +2577,7 @@ class AssistantV1 extends BaseService { 'value': _params.value }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateValue'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateValue'); const parameters = { options: { @@ -2649,8 +2624,8 @@ class AssistantV1 extends BaseService { * @param {string} params.entity - The name of the entity. * @param {string} params.value - The text of the entity value. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteValue(params: AssistantV1.DeleteValueParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2658,7 +2633,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2674,7 +2648,7 @@ class AssistantV1 extends BaseService { 'value': _params.value }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteValue'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteValue'); const parameters = { options: { @@ -2729,8 +2703,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listSynonyms(params: AssistantV1.ListSynonymsParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2738,7 +2712,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2761,7 +2734,7 @@ class AssistantV1 extends BaseService { 'value': _params.value }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listSynonyms'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listSynonyms'); const parameters = { options: { @@ -2813,8 +2786,8 @@ class AssistantV1 extends BaseService { * - It cannot contain carriage return, newline, or tab characters. * - It cannot consist of only whitespace characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createSynonym(params: AssistantV1.CreateSynonymParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2822,7 +2795,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2842,7 +2814,7 @@ class AssistantV1 extends BaseService { 'value': _params.value }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createSynonym'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createSynonym'); const parameters = { options: { @@ -2892,8 +2864,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getSynonym(params: AssistantV1.GetSynonymParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2901,7 +2873,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2922,7 +2893,7 @@ class AssistantV1 extends BaseService { 'synonym': _params.synonym }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getSynonym'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getSynonym'); const parameters = { options: { @@ -2976,8 +2947,8 @@ class AssistantV1 extends BaseService { * - It cannot contain carriage return, newline, or tab characters. * - It cannot consist of only whitespace characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateSynonym(params: AssistantV1.UpdateSynonymParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -2985,7 +2956,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3006,7 +2976,7 @@ class AssistantV1 extends BaseService { 'synonym': _params.synonym }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateSynonym'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateSynonym'); const parameters = { options: { @@ -3054,8 +3024,8 @@ class AssistantV1 extends BaseService { * @param {string} params.value - The text of the entity value. * @param {string} params.synonym - The text of the synonym. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteSynonym(params: AssistantV1.DeleteSynonymParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3063,7 +3033,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3080,7 +3049,7 @@ class AssistantV1 extends BaseService { 'synonym': _params.synonym }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteSynonym'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteSynonym'); const parameters = { options: { @@ -3133,8 +3102,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listDialogNodes(params: AssistantV1.ListDialogNodesParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3142,7 +3111,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3163,7 +3131,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listDialogNodes'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listDialogNodes'); const parameters = { options: { @@ -3241,8 +3209,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.disambiguationOptOut] - Whether the dialog node should be excluded from disambiguation * suggestions. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createDialogNode(params: AssistantV1.CreateDialogNodeParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3250,7 +3218,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'dialogNode']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3286,7 +3253,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'createDialogNode'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'createDialogNode'); const parameters = { options: { @@ -3334,8 +3301,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.includeAudit] - Whether to include the audit properties (`created` and `updated` * timestamps) in the response. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getDialogNode(params: AssistantV1.GetDialogNodeParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3343,7 +3310,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'dialogNode']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3362,7 +3328,7 @@ class AssistantV1 extends BaseService { 'dialog_node': _params.dialogNode }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'getDialogNode'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'getDialogNode'); const parameters = { options: { @@ -3443,8 +3409,8 @@ class AssistantV1 extends BaseService { * @param {boolean} [params.newDisambiguationOptOut] - Whether the dialog node should be excluded from disambiguation * suggestions. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateDialogNode(params: AssistantV1.UpdateDialogNodeParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3452,7 +3418,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'dialogNode']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3489,7 +3454,7 @@ class AssistantV1 extends BaseService { 'dialog_node': _params.dialogNode }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'updateDialogNode'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'updateDialogNode'); const parameters = { options: { @@ -3535,8 +3500,8 @@ class AssistantV1 extends BaseService { * @param {string} params.workspaceId - Unique identifier of the workspace. * @param {string} params.dialogNode - The dialog node ID (for example, `get_order`). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteDialogNode(params: AssistantV1.DeleteDialogNodeParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3544,7 +3509,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId', 'dialogNode']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3559,7 +3523,7 @@ class AssistantV1 extends BaseService { 'dialog_node': _params.dialogNode }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteDialogNode'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteDialogNode'); const parameters = { options: { @@ -3614,8 +3578,8 @@ class AssistantV1 extends BaseService { * @param {number} [params.pageLimit] - The number of records to return in each page of results. * @param {string} [params.cursor] - A token identifying the page of results to retrieve. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listLogs(params: AssistantV1.ListLogsParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3623,7 +3587,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['workspaceId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3644,7 +3607,7 @@ class AssistantV1 extends BaseService { 'workspace_id': _params.workspaceId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listLogs'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listLogs'); const parameters = { options: { @@ -3697,8 +3660,8 @@ class AssistantV1 extends BaseService { * @param {number} [params.pageLimit] - The number of records to return in each page of results. * @param {string} [params.cursor] - A token identifying the page of results to retrieve. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listAllLogs(params: AssistantV1.ListAllLogsParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3706,7 +3669,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['filter']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3723,7 +3685,7 @@ class AssistantV1 extends BaseService { 'cursor': _params.cursor }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'listAllLogs'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'listAllLogs'); const parameters = { options: { @@ -3770,11 +3732,13 @@ class AssistantV1 extends BaseService { * For more information about personal data and customer IDs, see [Information * security](https://cloud.ibm.com/docs/services/assistant?topic=assistant-information-security#information-security). * + * This operation is limited to 4 requests per minute. For more information, see **Rate limiting**. + * * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: AssistantV1.DeleteUserDataParams, callback?: AssistantV1.Callback): Promise> { const _params = extend({}, params); @@ -3782,7 +3746,6 @@ class AssistantV1 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3796,7 +3759,7 @@ class AssistantV1 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('conversation', 'v1', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(AssistantV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteUserData'); const parameters = { options: { @@ -3831,9 +3794,6 @@ class AssistantV1 extends BaseService { } -AssistantV1.prototype.name = 'conversation'; -AssistantV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ diff --git a/assistant/v2.ts b/assistant/v2.ts index 7de30300a0..c2b00316b6 100644 --- a/assistant/v2.ts +++ b/assistant/v2.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2018, 2019. + * (C) Copyright IBM Corp. 2018, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -30,9 +29,8 @@ import { getSdkHeaders } from '../lib/common'; class AssistantV2 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/assistant/api'; - name: string; // set by prototype to 'conversation' - serviceVersion: string; // set by prototype to 'v2' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/assistant/api'; + static DEFAULT_SERVICE_NAME: string = 'conversation'; /** * Construct a AssistantV2 object. @@ -46,17 +44,25 @@ class AssistantV2 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/assistant/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {AssistantV2} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = AssistantV2.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('conversation'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -84,8 +90,8 @@ class AssistantV2 extends BaseService { * * **Note:** Currently, the v2 API does not support creating assistants. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createSession(params: AssistantV2.CreateSessionParams, callback?: AssistantV2.Callback): Promise> { const _params = extend({}, params); @@ -93,7 +99,6 @@ class AssistantV2 extends BaseService { const requiredParams = ['assistantId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -107,7 +112,7 @@ class AssistantV2 extends BaseService { 'assistant_id': _params.assistantId }; - const sdkHeaders = getSdkHeaders('conversation', 'v2', 'createSession'); + const sdkHeaders = getSdkHeaders(AssistantV2.DEFAULT_SERVICE_NAME, 'v2', 'createSession'); const parameters = { options: { @@ -155,8 +160,8 @@ class AssistantV2 extends BaseService { * **Note:** Currently, the v2 API does not support creating assistants. * @param {string} params.sessionId - Unique identifier of the session. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteSession(params: AssistantV2.DeleteSessionParams, callback?: AssistantV2.Callback): Promise> { const _params = extend({}, params); @@ -164,7 +169,6 @@ class AssistantV2 extends BaseService { const requiredParams = ['assistantId', 'sessionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -179,7 +183,7 @@ class AssistantV2 extends BaseService { 'session_id': _params.sessionId }; - const sdkHeaders = getSdkHeaders('conversation', 'v2', 'deleteSession'); + const sdkHeaders = getSdkHeaders(AssistantV2.DEFAULT_SERVICE_NAME, 'v2', 'deleteSession'); const parameters = { options: { @@ -236,8 +240,8 @@ class AssistantV2 extends BaseService { * assistant on a per-session basis. You can use this property to set or modify context variables, which can also be * accessed by dialog nodes. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public message(params: AssistantV2.MessageParams, callback?: AssistantV2.Callback): Promise> { const _params = extend({}, params); @@ -245,7 +249,6 @@ class AssistantV2 extends BaseService { const requiredParams = ['assistantId', 'sessionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -265,7 +268,7 @@ class AssistantV2 extends BaseService { 'session_id': _params.sessionId }; - const sdkHeaders = getSdkHeaders('conversation', 'v2', 'message'); + const sdkHeaders = getSdkHeaders(AssistantV2.DEFAULT_SERVICE_NAME, 'v2', 'message'); const parameters = { options: { @@ -302,9 +305,6 @@ class AssistantV2 extends BaseService { } -AssistantV2.prototype.name = 'conversation'; -AssistantV2.prototype.serviceVersion = 'v2'; - /************************* * interfaces ************************/ @@ -501,6 +501,8 @@ namespace AssistantV2 { export interface MessageContextSkill { /** Arbitrary variables that can be read and written by a particular skill. */ user_defined?: JsonObject; + /** For internal use only. */ + system?: JsonObject; } /** Information specific to particular skills used by the Assistant. **Note:** Currently, only a single property named `main skill` is supported. This object contains variables that apply to the dialog skill used by the assistant. */ diff --git a/compare-comply/v1.ts b/compare-comply/v1.ts index 902a9c2712..0fe74c2b60 100644 --- a/compare-comply/v1.ts +++ b/compare-comply/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2018, 2019. + * (C) Copyright IBM Corp. 2018, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -27,9 +26,8 @@ import { getSdkHeaders } from '../lib/common'; class CompareComplyV1 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/compare-comply/api'; - name: string; // set by prototype to 'compare-comply' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/compare-comply/api'; + static DEFAULT_SERVICE_NAME: string = 'compare-comply'; /** * Construct a CompareComplyV1 object. @@ -43,17 +41,25 @@ class CompareComplyV1 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/compare-comply/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {CompareComplyV1} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = CompareComplyV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('compare-comply'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -78,8 +84,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public convertToHtml(params: CompareComplyV1.ConvertToHtmlParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -87,7 +93,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['file']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -96,6 +101,7 @@ class CompareComplyV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -107,7 +113,7 @@ class CompareComplyV1 extends BaseService { 'model': _params.model }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'convertToHtml'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'convertToHtml'); const parameters = { options: { @@ -159,8 +165,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public classifyElements(params: CompareComplyV1.ClassifyElementsParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -168,7 +174,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['file']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -177,6 +182,7 @@ class CompareComplyV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -188,7 +194,7 @@ class CompareComplyV1 extends BaseService { 'model': _params.model }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'classifyElements'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'classifyElements'); const parameters = { options: { @@ -240,8 +246,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public extractTables(params: CompareComplyV1.ExtractTablesParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -249,7 +255,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['file']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -258,6 +263,7 @@ class CompareComplyV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -269,7 +275,7 @@ class CompareComplyV1 extends BaseService { 'model': _params.model }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'extractTables'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'extractTables'); const parameters = { options: { @@ -325,8 +331,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public compareDocuments(params: CompareComplyV1.CompareDocumentsParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -334,7 +340,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['file1', 'file2']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -343,6 +348,7 @@ class CompareComplyV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file_1': { data: _params.file1, @@ -360,7 +366,7 @@ class CompareComplyV1 extends BaseService { 'model': _params.model }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'compareDocuments'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'compareDocuments'); const parameters = { options: { @@ -411,8 +417,8 @@ class CompareComplyV1 extends BaseService { * @param {string} [params.userId] - An optional string identifying the user. * @param {string} [params.comment] - An optional comment on or description of the feedback. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addFeedback(params: CompareComplyV1.AddFeedbackParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -420,7 +426,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['feedbackData']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -436,7 +441,7 @@ class CompareComplyV1 extends BaseService { 'comment': _params.comment }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'addFeedback'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'addFeedback'); const parameters = { options: { @@ -516,15 +521,14 @@ class CompareComplyV1 extends BaseService { * @param {boolean} [params.includeTotal] - An optional boolean value. If specified as `true`, the `pagination` object * in the output includes a value called `total` that gives the total count of feedback created. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listFeedback(params?: CompareComplyV1.ListFeedbackParams, callback?: CompareComplyV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'feedback_type': _params.feedbackType, 'before': _params.before, @@ -544,7 +548,7 @@ class CompareComplyV1 extends BaseService { 'include_total': _params.includeTotal }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'listFeedback'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'listFeedback'); const parameters = { options: { @@ -589,8 +593,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getFeedback(params: CompareComplyV1.GetFeedbackParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -598,7 +602,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['feedbackId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -616,7 +619,7 @@ class CompareComplyV1 extends BaseService { 'feedback_id': _params.feedbackId }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'getFeedback'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'getFeedback'); const parameters = { options: { @@ -662,8 +665,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteFeedback(params: CompareComplyV1.DeleteFeedbackParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -671,7 +674,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['feedbackId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -689,7 +691,7 @@ class CompareComplyV1 extends BaseService { 'feedback_id': _params.feedbackId }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'deleteFeedback'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteFeedback'); const parameters = { options: { @@ -757,8 +759,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createBatch(params: CompareComplyV1.CreateBatchParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -766,7 +768,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['_function', 'inputCredentialsFile', 'inputBucketLocation', 'inputBucketName', 'outputCredentialsFile', 'outputBucketLocation', 'outputBucketName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -775,6 +776,7 @@ class CompareComplyV1 extends BaseService { } return reject(missingParams); } + const formData = { 'input_credentials_file': { data: _params.inputCredentialsFile, @@ -795,7 +797,7 @@ class CompareComplyV1 extends BaseService { 'model': _params.model }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'createBatch'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'createBatch'); const parameters = { options: { @@ -837,16 +839,15 @@ class CompareComplyV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listBatches(params?: CompareComplyV1.ListBatchesParams, callback?: CompareComplyV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'listBatches'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'listBatches'); const parameters = { options: { @@ -886,8 +887,8 @@ class CompareComplyV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.batchId - The ID of the batch-processing job whose information you want to retrieve. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getBatch(params: CompareComplyV1.GetBatchParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -895,7 +896,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['batchId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -909,7 +909,7 @@ class CompareComplyV1 extends BaseService { 'batch_id': _params.batchId }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'getBatch'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'getBatch'); const parameters = { options: { @@ -956,8 +956,8 @@ class CompareComplyV1 extends BaseService { * is `tables`. These defaults apply to the standalone methods as well as to the methods' use in batch-processing * requests. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateBatch(params: CompareComplyV1.UpdateBatchParams, callback?: CompareComplyV1.Callback): Promise> { const _params = extend({}, params); @@ -965,7 +965,6 @@ class CompareComplyV1 extends BaseService { const requiredParams = ['batchId', 'action']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -984,7 +983,7 @@ class CompareComplyV1 extends BaseService { 'batch_id': _params.batchId }; - const sdkHeaders = getSdkHeaders('compare-comply', 'v1', 'updateBatch'); + const sdkHeaders = getSdkHeaders(CompareComplyV1.DEFAULT_SERVICE_NAME, 'v1', 'updateBatch'); const parameters = { options: { @@ -1020,9 +1019,6 @@ class CompareComplyV1 extends BaseService { } -CompareComplyV1.prototype.name = 'compare-comply'; -CompareComplyV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ diff --git a/discovery/v1.ts b/discovery/v1.ts index 541b9fb3a8..60785b753f 100644 --- a/discovery/v1.ts +++ b/discovery/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -29,9 +28,8 @@ import { getSdkHeaders } from '../lib/common'; class DiscoveryV1 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/discovery/api'; - name: string; // set by prototype to 'discovery' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/discovery/api'; + static DEFAULT_SERVICE_NAME: string = 'discovery'; /** * Construct a DiscoveryV1 object. @@ -45,17 +43,25 @@ class DiscoveryV1 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/discovery/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {DiscoveryV1} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = DiscoveryV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('discovery'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -81,8 +87,8 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.size] - Size of the environment. In the Lite plan the default and only accepted value is * `LT`, in all other plans the default is `S`. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createEnvironment(params: DiscoveryV1.CreateEnvironmentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -90,7 +96,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -106,7 +111,7 @@ class DiscoveryV1 extends BaseService { 'size': _params.size }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createEnvironment'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createEnvironment'); const parameters = { options: { @@ -148,20 +153,19 @@ class DiscoveryV1 extends BaseService { * @param {Object} [params] - The parameters to send to the service. * @param {string} [params.name] - Show only the environment with the given name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listEnvironments(params?: DiscoveryV1.ListEnvironmentsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'name': _params.name }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listEnvironments'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listEnvironments'); const parameters = { options: { @@ -200,8 +204,8 @@ class DiscoveryV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.environmentId - The ID of the environment. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getEnvironment(params: DiscoveryV1.GetEnvironmentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -209,7 +213,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -223,7 +226,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getEnvironment'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getEnvironment'); const parameters = { options: { @@ -269,8 +272,8 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.size] - Size that the environment should be increased to. Environment size cannot be * modified when using a Lite plan. Environment size can only increased and not decreased. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateEnvironment(params: DiscoveryV1.UpdateEnvironmentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -278,7 +281,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -298,7 +300,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateEnvironment'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateEnvironment'); const parameters = { options: { @@ -339,8 +341,8 @@ class DiscoveryV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.environmentId - The ID of the environment. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteEnvironment(params: DiscoveryV1.DeleteEnvironmentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -348,7 +350,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -362,7 +363,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteEnvironment'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteEnvironment'); const parameters = { options: { @@ -404,8 +405,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string[]} params.collectionIds - A comma-separated list of collection IDs to be queried against. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listFields(params: DiscoveryV1.ListFieldsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -413,7 +414,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionIds']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -431,7 +431,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listFields'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listFields'); const parameters = { options: { @@ -492,8 +492,8 @@ class DiscoveryV1 extends BaseService { * final output JSON into a normalized form. Operations are executed in the order that they appear in the array. * @param {Source} [params.source] - Object containing source parameters for the configuration. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createConfiguration(params: DiscoveryV1.CreateConfigurationParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -501,7 +501,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -524,7 +523,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createConfiguration'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createConfiguration'); const parameters = { options: { @@ -568,8 +567,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} [params.name] - Find configurations with the given name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listConfigurations(params: DiscoveryV1.ListConfigurationsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -577,7 +576,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -595,7 +593,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listConfigurations'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listConfigurations'); const parameters = { options: { @@ -636,8 +634,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.configurationId - The ID of the configuration. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getConfiguration(params: DiscoveryV1.GetConfigurationParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -645,7 +643,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'configurationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -660,7 +657,7 @@ class DiscoveryV1 extends BaseService { 'configuration_id': _params.configurationId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getConfiguration'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getConfiguration'); const parameters = { options: { @@ -715,8 +712,8 @@ class DiscoveryV1 extends BaseService { * final output JSON into a normalized form. Operations are executed in the order that they appear in the array. * @param {Source} [params.source] - Object containing source parameters for the configuration. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateConfiguration(params: DiscoveryV1.UpdateConfigurationParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -724,7 +721,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'configurationId', 'name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -748,7 +744,7 @@ class DiscoveryV1 extends BaseService { 'configuration_id': _params.configurationId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateConfiguration'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateConfiguration'); const parameters = { options: { @@ -795,8 +791,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.configurationId - The ID of the configuration. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteConfiguration(params: DiscoveryV1.DeleteConfigurationParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -804,7 +800,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'configurationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -819,7 +814,7 @@ class DiscoveryV1 extends BaseService { 'configuration_id': _params.configurationId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteConfiguration'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteConfiguration'); const parameters = { options: { @@ -867,8 +862,8 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.language] - The language of the documents stored in the collection, in the form of an ISO * 639-1 language code. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createCollection(params: DiscoveryV1.CreateCollectionParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -876,7 +871,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -897,7 +891,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createCollection'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createCollection'); const parameters = { options: { @@ -941,8 +935,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} [params.name] - Find collections with the given name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCollections(params: DiscoveryV1.ListCollectionsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -950,7 +944,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -968,7 +961,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listCollections'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listCollections'); const parameters = { options: { @@ -1009,8 +1002,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCollection(params: DiscoveryV1.GetCollectionParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1018,7 +1011,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1033,7 +1025,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getCollection'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getCollection'); const parameters = { options: { @@ -1076,16 +1068,15 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.description] - A description of the collection. * @param {string} [params.configurationId] - The ID of the configuration in which the collection is to be updated. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateCollection(params: DiscoveryV1.UpdateCollectionParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); const _callback = callback; - const requiredParams = ['environmentId', 'collectionId']; + const requiredParams = ['environmentId', 'collectionId', 'name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1106,7 +1097,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateCollection'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateCollection'); const parameters = { options: { @@ -1148,8 +1139,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteCollection(params: DiscoveryV1.DeleteCollectionParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1157,7 +1148,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1172,7 +1162,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteCollection'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteCollection'); const parameters = { options: { @@ -1214,8 +1204,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCollectionFields(params: DiscoveryV1.ListCollectionFieldsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1223,7 +1213,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1238,7 +1227,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listCollectionFields'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listCollectionFields'); const parameters = { options: { @@ -1285,8 +1274,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listExpansions(params: DiscoveryV1.ListExpansionsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1294,7 +1283,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1309,7 +1297,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listExpansions'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listExpansions'); const parameters = { options: { @@ -1365,8 +1353,8 @@ class DiscoveryV1 extends BaseService { * **expanded_terms**. When items in the **input_terms** array are present in a query, they are expanded using the * items listed in the **expanded_terms** array. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createExpansions(params: DiscoveryV1.CreateExpansionsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1374,7 +1362,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'expansions']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1393,7 +1380,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createExpansions'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createExpansions'); const parameters = { options: { @@ -1438,8 +1425,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteExpansions(params: DiscoveryV1.DeleteExpansionsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1447,7 +1434,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1462,7 +1448,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteExpansions'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteExpansions'); const parameters = { options: { @@ -1503,8 +1489,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTokenizationDictionaryStatus(params: DiscoveryV1.GetTokenizationDictionaryStatusParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1512,7 +1498,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1527,7 +1512,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getTokenizationDictionaryStatus'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getTokenizationDictionaryStatus'); const parameters = { options: { @@ -1572,8 +1557,8 @@ class DiscoveryV1 extends BaseService { * original `text` string, component `tokens`, any alternate character set `readings`, and which `part_of_speech` the * text is from. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createTokenizationDictionary(params: DiscoveryV1.CreateTokenizationDictionaryParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1581,7 +1566,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1600,7 +1584,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createTokenizationDictionary'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createTokenizationDictionary'); const parameters = { options: { @@ -1644,8 +1628,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteTokenizationDictionary(params: DiscoveryV1.DeleteTokenizationDictionaryParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1653,7 +1637,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1668,7 +1651,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteTokenizationDictionary'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteTokenizationDictionary'); const parameters = { options: { @@ -1709,8 +1692,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getStopwordListStatus(params: DiscoveryV1.GetStopwordListStatusParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1718,7 +1701,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1733,7 +1715,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getStopwordListStatus'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getStopwordListStatus'); const parameters = { options: { @@ -1777,8 +1759,8 @@ class DiscoveryV1 extends BaseService { * @param {NodeJS.ReadableStream|Buffer} params.stopwordFile - The content of the stopword list to ingest. * @param {string} params.stopwordFilename - The filename for stopwordFile. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createStopwordList(params: DiscoveryV1.CreateStopwordListParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1786,7 +1768,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'stopwordFile', 'stopwordFilename']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1795,6 +1776,7 @@ class DiscoveryV1 extends BaseService { } return reject(missingParams); } + const formData = { 'stopword_file': { data: _params.stopwordFile, @@ -1808,7 +1790,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createStopwordList'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createStopwordList'); const parameters = { options: { @@ -1853,8 +1835,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteStopwordList(params: DiscoveryV1.DeleteStopwordListParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1862,7 +1844,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1877,7 +1858,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteStopwordList'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteStopwordList'); const parameters = { options: { @@ -1953,8 +1934,8 @@ class DiscoveryV1 extends BaseService { * "Subject": "Apples" * } ```. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addDocument(params: DiscoveryV1.AddDocumentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -1962,7 +1943,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1971,6 +1951,7 @@ class DiscoveryV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -1985,7 +1966,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'addDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'addDocument'); const parameters = { options: { @@ -2032,8 +2013,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {string} params.documentId - The ID of the document. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getDocumentStatus(params: DiscoveryV1.GetDocumentStatusParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2041,7 +2022,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2057,7 +2037,7 @@ class DiscoveryV1 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getDocumentStatus'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getDocumentStatus'); const parameters = { options: { @@ -2114,8 +2094,8 @@ class DiscoveryV1 extends BaseService { * "Subject": "Apples" * } ```. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateDocument(params: DiscoveryV1.UpdateDocumentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2123,7 +2103,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2132,6 +2111,7 @@ class DiscoveryV1 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -2147,7 +2127,7 @@ class DiscoveryV1 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateDocument'); const parameters = { options: { @@ -2193,8 +2173,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {string} params.documentId - The ID of the document. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteDocument(params: DiscoveryV1.DeleteDocumentParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2202,7 +2182,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2218,7 +2197,7 @@ class DiscoveryV1 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteDocument'); const parameters = { options: { @@ -2317,8 +2296,8 @@ class DiscoveryV1 extends BaseService { * @param {boolean} [params.xWatsonLoggingOptOut] - If `true`, queries are not stored in the Discovery **Logs** * endpoint. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public query(params: DiscoveryV1.QueryParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2326,7 +2305,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2364,7 +2342,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'query'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'query'); const parameters = { options: { @@ -2450,8 +2428,8 @@ class DiscoveryV1 extends BaseService { * @param {string[]} [params.similarFields] - A comma-separated list of field names that are used as a basis for * comparison to identify similar documents. If not specified, the entire document is used for comparison. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public queryNotices(params: DiscoveryV1.QueryNoticesParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2459,7 +2437,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2494,7 +2471,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'queryNotices'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'queryNotices'); const parameters = { options: { @@ -2586,16 +2563,15 @@ class DiscoveryV1 extends BaseService { * @param {boolean} [params.xWatsonLoggingOptOut] - If `true`, queries are not stored in the Discovery **Logs** * endpoint. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public federatedQuery(params: DiscoveryV1.FederatedQueryParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); const _callback = callback; - const requiredParams = ['environmentId']; + const requiredParams = ['environmentId', 'collectionIds']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2632,7 +2608,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'federatedQuery'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'federatedQuery'); const parameters = { options: { @@ -2712,8 +2688,8 @@ class DiscoveryV1 extends BaseService { * @param {string[]} [params.similarFields] - A comma-separated list of field names that are used as a basis for * comparison to identify similar documents. If not specified, the entire document is used for comparison. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public federatedQueryNotices(params: DiscoveryV1.FederatedQueryNoticesParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2721,7 +2697,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionIds']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2752,7 +2727,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'federatedQueryNotices'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'federatedQueryNotices'); const parameters = { options: { @@ -2801,8 +2776,8 @@ class DiscoveryV1 extends BaseService { * from. * @param {number} [params.count] - The number of autocompletion suggestions to return. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getAutocompletion(params: DiscoveryV1.GetAutocompletionParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2810,7 +2785,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'prefix']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2831,7 +2805,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getAutocompletion'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getAutocompletion'); const parameters = { options: { @@ -2878,8 +2852,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listTrainingData(params: DiscoveryV1.ListTrainingDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2887,7 +2861,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2902,7 +2875,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listTrainingData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listTrainingData'); const parameters = { options: { @@ -2948,8 +2921,8 @@ class DiscoveryV1 extends BaseService { * applied. * @param {TrainingExample[]} [params.examples] - Array of training examples. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addTrainingData(params: DiscoveryV1.AddTrainingDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -2957,7 +2930,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2978,7 +2950,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'addTrainingData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'addTrainingData'); const parameters = { options: { @@ -3022,8 +2994,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.collectionId - The ID of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteAllTrainingData(params: DiscoveryV1.DeleteAllTrainingDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3031,7 +3003,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3046,7 +3017,7 @@ class DiscoveryV1 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteAllTrainingData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteAllTrainingData'); const parameters = { options: { @@ -3088,8 +3059,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {string} params.queryId - The ID of the query used for training. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTrainingData(params: DiscoveryV1.GetTrainingDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3097,7 +3068,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3113,7 +3083,7 @@ class DiscoveryV1 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getTrainingData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getTrainingData'); const parameters = { options: { @@ -3156,8 +3126,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {string} params.queryId - The ID of the query used for training. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteTrainingData(params: DiscoveryV1.DeleteTrainingDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3165,7 +3135,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3181,7 +3150,7 @@ class DiscoveryV1 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteTrainingData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteTrainingData'); const parameters = { options: { @@ -3223,8 +3192,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {string} params.queryId - The ID of the query used for training. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listTrainingExamples(params: DiscoveryV1.ListTrainingExamplesParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3232,7 +3201,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3248,7 +3216,7 @@ class DiscoveryV1 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listTrainingExamples'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listTrainingExamples'); const parameters = { options: { @@ -3294,8 +3262,8 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.crossReference] - The cross reference associated with this training example. * @param {number} [params.relevance] - The relevance of the training example. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createTrainingExample(params: DiscoveryV1.CreateTrainingExampleParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3303,7 +3271,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3325,7 +3292,7 @@ class DiscoveryV1 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createTrainingExample'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createTrainingExample'); const parameters = { options: { @@ -3371,8 +3338,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.queryId - The ID of the query used for training. * @param {string} params.exampleId - The ID of the document as it is indexed. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteTrainingExample(params: DiscoveryV1.DeleteTrainingExampleParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3380,7 +3347,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3397,7 +3363,7 @@ class DiscoveryV1 extends BaseService { 'example_id': _params.exampleId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteTrainingExample'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteTrainingExample'); const parameters = { options: { @@ -3442,8 +3408,8 @@ class DiscoveryV1 extends BaseService { * @param {string} [params.crossReference] - The example to add. * @param {number} [params.relevance] - The relevance value for this example. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateTrainingExample(params: DiscoveryV1.UpdateTrainingExampleParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3451,7 +3417,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3473,7 +3438,7 @@ class DiscoveryV1 extends BaseService { 'example_id': _params.exampleId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateTrainingExample'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateTrainingExample'); const parameters = { options: { @@ -3519,8 +3484,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.queryId - The ID of the query used for training. * @param {string} params.exampleId - The ID of the document as it is indexed. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTrainingExample(params: DiscoveryV1.GetTrainingExampleParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3528,7 +3493,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3545,7 +3509,7 @@ class DiscoveryV1 extends BaseService { 'example_id': _params.exampleId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getTrainingExample'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getTrainingExample'); const parameters = { options: { @@ -3595,8 +3559,8 @@ class DiscoveryV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: DiscoveryV1.DeleteUserDataParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3604,7 +3568,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3618,7 +3581,7 @@ class DiscoveryV1 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteUserData'); const parameters = { options: { @@ -3658,14 +3621,14 @@ class DiscoveryV1 extends BaseService { * Create event. * * The **Events** API can be used to create log entries that are associated with specific queries. For example, you - * can record which documents in the results set were "clicked" by a user and when that click occured. + * can record which documents in the results set were "clicked" by a user and when that click occurred. * * @param {Object} params - The parameters to send to the service. * @param {string} params.type - The event type to be created. * @param {EventData} params.data - Query event data object. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createEvent(params: DiscoveryV1.CreateEventParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -3673,7 +3636,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['type', 'data']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3688,7 +3650,7 @@ class DiscoveryV1 extends BaseService { 'data': _params.data }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createEvent'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createEvent'); const parameters = { options: { @@ -3742,15 +3704,14 @@ class DiscoveryV1 extends BaseService { * specify a sort direction by prefixing the field with `-` for descending or `+` for ascending. Ascending is the * default sort direction if no prefix is specified. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public queryLog(params?: DiscoveryV1.QueryLogParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'filter': _params.filter, 'query': _params.query, @@ -3759,7 +3720,7 @@ class DiscoveryV1 extends BaseService { 'sort': _params.sort }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'queryLog'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'queryLog'); const parameters = { options: { @@ -3804,22 +3765,21 @@ class DiscoveryV1 extends BaseService { * `YYYY-MM-DDThh:mm:ssZ` format. * @param {string} [params.resultType] - The type of result to consider when calculating the metric. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getMetricsQuery(params?: DiscoveryV1.GetMetricsQueryParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'start_time': _params.startTime, 'end_time': _params.endTime, 'result_type': _params.resultType }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getMetricsQuery'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getMetricsQuery'); const parameters = { options: { @@ -3866,22 +3826,21 @@ class DiscoveryV1 extends BaseService { * `YYYY-MM-DDThh:mm:ssZ` format. * @param {string} [params.resultType] - The type of result to consider when calculating the metric. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getMetricsQueryEvent(params?: DiscoveryV1.GetMetricsQueryEventParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'start_time': _params.startTime, 'end_time': _params.endTime, 'result_type': _params.resultType }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getMetricsQueryEvent'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getMetricsQueryEvent'); const parameters = { options: { @@ -3927,22 +3886,21 @@ class DiscoveryV1 extends BaseService { * `YYYY-MM-DDThh:mm:ssZ` format. * @param {string} [params.resultType] - The type of result to consider when calculating the metric. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getMetricsQueryNoResults(params?: DiscoveryV1.GetMetricsQueryNoResultsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'start_time': _params.startTime, 'end_time': _params.endTime, 'result_type': _params.resultType }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getMetricsQueryNoResults'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getMetricsQueryNoResults'); const parameters = { options: { @@ -3989,22 +3947,21 @@ class DiscoveryV1 extends BaseService { * `YYYY-MM-DDThh:mm:ssZ` format. * @param {string} [params.resultType] - The type of result to consider when calculating the metric. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getMetricsEventRate(params?: DiscoveryV1.GetMetricsEventRateParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'start_time': _params.startTime, 'end_time': _params.endTime, 'result_type': _params.resultType }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getMetricsEventRate'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getMetricsEventRate'); const parameters = { options: { @@ -4048,20 +4005,19 @@ class DiscoveryV1 extends BaseService { * @param {number} [params.count] - Number of results to return. The maximum for the **count** and **offset** values * together in any one query is **10000**. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getMetricsQueryTokenEvent(params?: DiscoveryV1.GetMetricsQueryTokenEventParams, callback?: DiscoveryV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'count': _params.count }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getMetricsQueryTokenEvent'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getMetricsQueryTokenEvent'); const parameters = { options: { @@ -4108,8 +4064,8 @@ class DiscoveryV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.environmentId - The ID of the environment. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCredentials(params: DiscoveryV1.ListCredentialsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4117,7 +4073,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4131,7 +4086,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listCredentials'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listCredentials'); const parameters = { options: { @@ -4187,8 +4142,8 @@ class DiscoveryV1 extends BaseService { * credentials are available to use with the source configuration of a collection. `invalid` refers to the credentials * (for example, the password provided has expired) and must be corrected before they can be used with a collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createCredentials(params: DiscoveryV1.CreateCredentialsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4196,7 +4151,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4216,7 +4170,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createCredentials'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createCredentials'); const parameters = { options: { @@ -4263,8 +4217,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.credentialId - The unique identifier for a set of source credentials. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCredentials(params: DiscoveryV1.GetCredentialsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4272,7 +4226,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'credentialId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4287,7 +4240,7 @@ class DiscoveryV1 extends BaseService { 'credential_id': _params.credentialId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getCredentials'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getCredentials'); const parameters = { options: { @@ -4343,8 +4296,8 @@ class DiscoveryV1 extends BaseService { * credentials are available to use with the source configuration of a collection. `invalid` refers to the credentials * (for example, the password provided has expired) and must be corrected before they can be used with a collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateCredentials(params: DiscoveryV1.UpdateCredentialsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4352,7 +4305,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'credentialId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4373,7 +4325,7 @@ class DiscoveryV1 extends BaseService { 'credential_id': _params.credentialId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'updateCredentials'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'updateCredentials'); const parameters = { options: { @@ -4417,8 +4369,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.credentialId - The unique identifier for a set of source credentials. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteCredentials(params: DiscoveryV1.DeleteCredentialsParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4426,7 +4378,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'credentialId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4441,7 +4392,7 @@ class DiscoveryV1 extends BaseService { 'credential_id': _params.credentialId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteCredentials'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteCredentials'); const parameters = { options: { @@ -4486,8 +4437,8 @@ class DiscoveryV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.environmentId - The ID of the environment. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listGateways(params: DiscoveryV1.ListGatewaysParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4495,7 +4446,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4509,7 +4459,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'listGateways'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'listGateways'); const parameters = { options: { @@ -4551,8 +4501,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} [params.name] - User-defined name. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createGateway(params: DiscoveryV1.CreateGatewayParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4560,7 +4510,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4578,7 +4527,7 @@ class DiscoveryV1 extends BaseService { 'environment_id': _params.environmentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'createGateway'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'createGateway'); const parameters = { options: { @@ -4622,8 +4571,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.gatewayId - The requested gateway ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getGateway(params: DiscoveryV1.GetGatewayParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4631,7 +4580,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'gatewayId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4646,7 +4594,7 @@ class DiscoveryV1 extends BaseService { 'gateway_id': _params.gatewayId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'getGateway'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'getGateway'); const parameters = { options: { @@ -4688,8 +4636,8 @@ class DiscoveryV1 extends BaseService { * @param {string} params.environmentId - The ID of the environment. * @param {string} params.gatewayId - The requested gateway ID. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteGateway(params: DiscoveryV1.DeleteGatewayParams, callback?: DiscoveryV1.Callback): Promise> { const _params = extend({}, params); @@ -4697,7 +4645,6 @@ class DiscoveryV1 extends BaseService { const requiredParams = ['environmentId', 'gatewayId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -4712,7 +4659,7 @@ class DiscoveryV1 extends BaseService { 'gateway_id': _params.gatewayId }; - const sdkHeaders = getSdkHeaders('discovery', 'v1', 'deleteGateway'); + const sdkHeaders = getSdkHeaders(DiscoveryV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteGateway'); const parameters = { options: { @@ -4747,9 +4694,6 @@ class DiscoveryV1 extends BaseService { } -DiscoveryV1.prototype.name = 'discovery'; -DiscoveryV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ @@ -5993,14 +5937,6 @@ namespace DiscoveryV1 { aggregations?: QueryAggregation[]; } - /** Calculation. */ - export interface Calculation { - /** The field where the aggregation is located in the document. */ - field?: string; - /** Value of the aggregation. */ - value?: number; - } - /** A collection for storing documents. */ export interface Collection { /** The unique identifier of the collection. */ @@ -6489,12 +6425,6 @@ namespace DiscoveryV1 { type?: string; } - /** Filter. */ - export interface Filter { - /** The match the aggregated results queried for. */ - match?: string; - } - /** Font matching configuration. */ export interface FontSetting { /** The HTML heading level that any content with the matching font is converted to. */ @@ -6545,14 +6475,6 @@ namespace DiscoveryV1 { gateways?: Gateway[]; } - /** Histogram. */ - export interface Histogram { - /** The field where the aggregation is located in the document. */ - field?: string; - /** Interval of the aggregation. (For 'histogram' type). */ - interval?: number; - } - /** A list of HTML conversion settings. */ export interface HtmlSettings { /** Array of HTML tags that are excluded completely. */ @@ -6756,12 +6678,6 @@ namespace DiscoveryV1 { aggregations?: MetricTokenAggregation[]; } - /** Nested. */ - export interface Nested { - /** The area of the results the aggregation was restricted to. */ - path?: string; - } - /** An object that indicates the Categories enrichment will be applied to the specified field. */ export interface NluEnrichmentCategories { /** NluEnrichmentCategories accepts additional properties. */ @@ -7298,28 +7214,6 @@ namespace DiscoveryV1 { next_crawl?: string; } - /** Term. */ - export interface Term { - /** The field where the aggregation is located in the document. */ - field?: string; - /** The number of terms identified. */ - count?: number; - } - - /** Timeslice. */ - export interface Timeslice { - /** The field where the aggregation is located in the document. */ - field?: string; - /** Interval of the aggregation. Valid date interval values are second/seconds minute/minutes, hour/hours, - * day/days, week/weeks, month/months, and year/years. - */ - interval?: string; - /** Used to indicate that anomaly detection should be performed. Anomaly detection is used to locate unusual - * datapoints within a time series. - */ - anomaly?: boolean; - } - /** An object defining a single tokenizaion rule. */ export interface TokenDictRule { /** The string to tokenize. */ @@ -7342,13 +7236,6 @@ namespace DiscoveryV1 { type?: string; } - /** TopHits. */ - export interface TopHits { - /** Number of top hits returned by the aggregation. */ - size?: number; - hits?: TopHitsResults; - } - /** Top hit information for this query. */ export interface TopHitsResults { /** Number of matching results. */ @@ -7445,6 +7332,63 @@ namespace DiscoveryV1 { xpaths?: string[]; } + /** Calculation. */ + export interface Calculation extends QueryAggregation { + /** The field where the aggregation is located in the document. */ + field?: string; + /** Value of the aggregation. */ + value?: number; + } + + /** Filter. */ + export interface Filter extends QueryAggregation { + /** The match the aggregated results queried for. */ + match?: string; + } + + /** Histogram. */ + export interface Histogram extends QueryAggregation { + /** The field where the aggregation is located in the document. */ + field?: string; + /** Interval of the aggregation. (For 'histogram' type). */ + interval?: number; + } + + /** Nested. */ + export interface Nested extends QueryAggregation { + /** The area of the results the aggregation was restricted to. */ + path?: string; + } + + /** Term. */ + export interface Term extends QueryAggregation { + /** The field where the aggregation is located in the document. */ + field?: string; + /** The number of terms identified. */ + count?: number; + } + + /** Timeslice. */ + export interface Timeslice extends QueryAggregation { + /** The field where the aggregation is located in the document. */ + field?: string; + /** Interval of the aggregation. Valid date interval values are second/seconds minute/minutes, hour/hours, + * day/days, week/weeks, month/months, and year/years. + */ + interval?: string; + /** Used to indicate that anomaly detection should be performed. Anomaly detection is used to locate unusual + * datapoints within a time series. + */ + anomaly?: boolean; + } + + /** TopHits. */ + export interface TopHits extends QueryAggregation { + /** Number of top hits returned by the aggregation. */ + size?: number; + hits?: TopHitsResults; + } + } export = DiscoveryV1; diff --git a/discovery/v2.ts b/discovery/v2.ts index c8adb1fa79..795319a5b7 100644 --- a/discovery/v2.ts +++ b/discovery/v2.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2019, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -29,8 +28,7 @@ import { getSdkHeaders } from '../lib/common'; class DiscoveryV2 extends BaseService { - name: string; // set by prototype to 'discovery' - serviceVersion: string; // set by prototype to 'v2' + static DEFAULT_SERVICE_NAME: string = 'discovery'; /** * Construct a DiscoveryV2 object. @@ -44,17 +42,25 @@ class DiscoveryV2 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/discovery/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {DiscoveryV2} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = DiscoveryV2.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('discovery'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -75,8 +81,8 @@ class DiscoveryV2 extends BaseService { * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the * Discovery administrative tooling. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCollections(params: DiscoveryV2.ListCollectionsParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -84,7 +90,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -98,7 +103,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'listCollections'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'listCollections'); const parameters = { options: { @@ -173,8 +178,8 @@ class DiscoveryV2 extends BaseService { * @param {QueryLargeSuggestedRefinements} [params.suggestedRefinements] - Configuration for suggested refinements. * @param {QueryLargePassages} [params.passages] - Configuration for passage retrieval. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public query(params: DiscoveryV2.QueryParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -182,7 +187,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -213,7 +217,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'query'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'query'); const parameters = { options: { @@ -264,8 +268,8 @@ class DiscoveryV2 extends BaseService { * from. * @param {number} [params.count] - The number of autocompletion suggestions to return. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getAutocompletion(params: DiscoveryV2.GetAutocompletionParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -273,7 +277,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'prefix']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -294,7 +297,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'getAutocompletion'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'getAutocompletion'); const parameters = { options: { @@ -349,8 +352,8 @@ class DiscoveryV2 extends BaseService { * number of results that are returned is 10 and the offset is 8, it returns the last two results. The maximum for the * **count** and **offset** values together in any one query is **10000**. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public queryNotices(params: DiscoveryV2.QueryNoticesParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -358,7 +361,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -380,7 +382,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'queryNotices'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'queryNotices'); const parameters = { options: { @@ -425,8 +427,8 @@ class DiscoveryV2 extends BaseService { * @param {string[]} [params.collectionIds] - Comma separated list of the collection IDs. If this parameter is not * specified, all collections in the project are used. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listFields(params: DiscoveryV2.ListFieldsParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -434,7 +436,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -452,7 +453,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'listFields'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'listFields'); const parameters = { options: { @@ -499,8 +500,8 @@ class DiscoveryV2 extends BaseService { * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the * Discovery administrative tooling. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getComponentSettings(params: DiscoveryV2.GetComponentSettingsParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -508,7 +509,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -522,7 +522,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'getComponentSettings'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'getComponentSettings'); const parameters = { options: { @@ -587,7 +587,7 @@ class DiscoveryV2 extends BaseService { * **_/v2/projects/{project_id}/collections/{collection_id}/documents** method. * * **Note:** This operation only works on collections created to accept direct file uploads. It cannot be used to - * modify a collection that conects to an external source such as Microsoft SharePoint. + * modify a collection that connects to an external source such as Microsoft SharePoint. * * @param {Object} params - The parameters to send to the service. * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the @@ -595,7 +595,7 @@ class DiscoveryV2 extends BaseService { * @param {string} params.collectionId - The ID of the collection. * @param {NodeJS.ReadableStream|Buffer} [params.file] - The content of the document to ingest. The maximum supported * file size when adding a file to a collection is 50 megabytes, the maximum supported file size when testing a - * confiruration is 1 megabyte. Files larger than the supported size are rejected. + * configuration is 1 megabyte. Files larger than the supported size are rejected. * @param {string} [params.filename] - The filename for file. * @param {string} [params.fileContentType] - The content type of file. * @param {string} [params.metadata] - The maximum supported metadata file size is 1 MB. Metadata parts larger than 1 @@ -606,8 +606,8 @@ class DiscoveryV2 extends BaseService { * @param {boolean} [params.xWatsonDiscoveryForce] - When `true`, the uploaded document is added to the collection * even if the data for that collection is shared with other collections. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addDocument(params: DiscoveryV2.AddDocumentParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -615,7 +615,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -624,6 +623,7 @@ class DiscoveryV2 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -638,7 +638,7 @@ class DiscoveryV2 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'addDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'addDocument'); const parameters = { options: { @@ -687,7 +687,7 @@ class DiscoveryV2 extends BaseService { * same **document_id** if it exists. * * **Note:** This operation only works on collections created to accept direct file uploads. It cannot be used to - * modify a collection that conects to an external source such as Microsoft SharePoint. + * modify a collection that connects to an external source such as Microsoft SharePoint. * * @param {Object} params - The parameters to send to the service. * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the @@ -696,7 +696,7 @@ class DiscoveryV2 extends BaseService { * @param {string} params.documentId - The ID of the document. * @param {NodeJS.ReadableStream|Buffer} [params.file] - The content of the document to ingest. The maximum supported * file size when adding a file to a collection is 50 megabytes, the maximum supported file size when testing a - * confiruration is 1 megabyte. Files larger than the supported size are rejected. + * configuration is 1 megabyte. Files larger than the supported size are rejected. * @param {string} [params.filename] - The filename for file. * @param {string} [params.fileContentType] - The content type of file. * @param {string} [params.metadata] - The maximum supported metadata file size is 1 MB. Metadata parts larger than 1 @@ -707,8 +707,8 @@ class DiscoveryV2 extends BaseService { * @param {boolean} [params.xWatsonDiscoveryForce] - When `true`, the uploaded document is added to the collection * even if the data for that collection is shared with other collections. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateDocument(params: DiscoveryV2.UpdateDocumentParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -716,7 +716,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'collectionId', 'documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -725,6 +724,7 @@ class DiscoveryV2 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -740,7 +740,7 @@ class DiscoveryV2 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'updateDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'updateDocument'); const parameters = { options: { @@ -783,7 +783,7 @@ class DiscoveryV2 extends BaseService { * status code `200`) with the status set to 'deleted'. * * **Note:** This operation only works on collections created to accept direct file uploads. It cannot be used to - * modify a collection that conects to an external source such as Microsoft SharePoint. + * modify a collection that connects to an external source such as Microsoft SharePoint. * * @param {Object} params - The parameters to send to the service. * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the @@ -793,8 +793,8 @@ class DiscoveryV2 extends BaseService { * @param {boolean} [params.xWatsonDiscoveryForce] - When `true`, the uploaded document is added to the collection * even if the data for that collection is shared with other collections. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteDocument(params: DiscoveryV2.DeleteDocumentParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -802,7 +802,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'collectionId', 'documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -818,7 +817,7 @@ class DiscoveryV2 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'deleteDocument'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'deleteDocument'); const parameters = { options: { @@ -865,8 +864,8 @@ class DiscoveryV2 extends BaseService { * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the * Discovery administrative tooling. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listTrainingQueries(params: DiscoveryV2.ListTrainingQueriesParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -874,7 +873,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -888,7 +886,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'listTrainingQueries'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'listTrainingQueries'); const parameters = { options: { @@ -930,8 +928,8 @@ class DiscoveryV2 extends BaseService { * @param {string} params.projectId - The ID of the project. This information can be found from the deploy page of the * Discovery administrative tooling. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteTrainingQueries(params: DiscoveryV2.DeleteTrainingQueriesParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -939,7 +937,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -953,7 +950,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'deleteTrainingQueries'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'deleteTrainingQueries'); const parameters = { options: { @@ -998,16 +995,15 @@ class DiscoveryV2 extends BaseService { * @param {string} [params.filter] - The filter used on the collection before the **natural_language_query** is * applied. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createTrainingQuery(params: DiscoveryV2.CreateTrainingQueryParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); const _callback = callback; - const requiredParams = ['projectId']; + const requiredParams = ['projectId', 'naturalLanguageQuery', 'examples']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1027,7 +1023,7 @@ class DiscoveryV2 extends BaseService { 'project_id': _params.projectId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'createTrainingQuery'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'createTrainingQuery'); const parameters = { options: { @@ -1072,8 +1068,8 @@ class DiscoveryV2 extends BaseService { * Discovery administrative tooling. * @param {string} params.queryId - The ID of the query used for training. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTrainingQuery(params: DiscoveryV2.GetTrainingQueryParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -1081,7 +1077,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'queryId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1096,7 +1091,7 @@ class DiscoveryV2 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'getTrainingQuery'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'getTrainingQuery'); const parameters = { options: { @@ -1143,8 +1138,8 @@ class DiscoveryV2 extends BaseService { * @param {string} [params.filter] - The filter used on the collection before the **natural_language_query** is * applied. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateTrainingQuery(params: DiscoveryV2.UpdateTrainingQueryParams, callback?: DiscoveryV2.Callback): Promise> { const _params = extend({}, params); @@ -1152,7 +1147,6 @@ class DiscoveryV2 extends BaseService { const requiredParams = ['projectId', 'queryId', 'naturalLanguageQuery', 'examples']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1173,7 +1167,7 @@ class DiscoveryV2 extends BaseService { 'query_id': _params.queryId }; - const sdkHeaders = getSdkHeaders('discovery', 'v2', 'updateTrainingQuery'); + const sdkHeaders = getSdkHeaders(DiscoveryV2.DEFAULT_SERVICE_NAME, 'v2', 'updateTrainingQuery'); const parameters = { options: { @@ -1210,9 +1204,6 @@ class DiscoveryV2 extends BaseService { } -DiscoveryV2.prototype.name = 'discovery'; -DiscoveryV2.prototype.serviceVersion = 'v2'; - /************************* * interfaces ************************/ @@ -1391,7 +1382,7 @@ namespace DiscoveryV2 { /** The ID of the collection. */ collectionId: string; /** The content of the document to ingest. The maximum supported file size when adding a file to a collection is - * 50 megabytes, the maximum supported file size when testing a confiruration is 1 megabyte. Files larger than the + * 50 megabytes, the maximum supported file size when testing a configuration is 1 megabyte. Files larger than the * supported size are rejected. */ file?: NodeJS.ReadableStream|Buffer; @@ -1437,7 +1428,7 @@ namespace DiscoveryV2 { /** The ID of the document. */ documentId: string; /** The content of the document to ingest. The maximum supported file size when adding a file to a collection is - * 50 megabytes, the maximum supported file size when testing a confiruration is 1 megabyte. Files larger than the + * 50 megabytes, the maximum supported file size when testing a configuration is 1 megabyte. Files larger than the * supported size are rejected. */ file?: NodeJS.ReadableStream|Buffer; @@ -1705,36 +1696,6 @@ namespace DiscoveryV2 { type: string; } - /** Returns a scalar calculation across all documents for the field specified. Possible calculations include min, max, sum, average, and unique_count. */ - export interface QueryCalculationAggregation extends QueryAggregation { - /** The field to perform the calculation on. */ - field: string; - /** The value of the calculation. */ - value?: number; - } - - /** A modifier that will narrow down the document set of the sub aggregations it precedes. */ - export interface QueryFilterAggregation extends QueryAggregation { - /** The filter written in Discovery Query Language syntax applied to the documents before sub aggregations are - * run. - */ - match: string; - /** Number of documents matching the filter. */ - matching_results: number; - /** An array of sub aggregations. */ - aggregations?: QueryAggregation[]; - } - - /** Numeric interval segments to categorize documents by using field values from a single numeric field to describe the category. */ - export interface QueryHistogramAggregation extends QueryAggregation { - /** The numeric field name used to create the histogram. */ - field: string; - /** The size of the sections the results are split into. */ - interval: number; - /** Array of numeric intervals. */ - results?: QueryHistogramAggregationResult[]; - } - /** Histogram numeric interval result. */ export interface QueryHistogramAggregationResult { /** The value of the upper bound for the numeric segment. */ @@ -1749,7 +1710,7 @@ namespace DiscoveryV2 { export interface QueryLargePassages { /** A passages query that returns the most relevant passages from the results. */ enabled?: boolean; - /** When `true`, passages will be returned whithin their respective result. */ + /** When `true`, passages will be returned within their respective result. */ per_document?: boolean; /** Maximum number of passages to return per result. */ max_per_document?: number; @@ -1781,16 +1742,6 @@ namespace DiscoveryV2 { count?: number; } - /** A restriction that alter the document set used for sub aggregations it precedes to nested documents found in the field specified. */ - export interface QueryNestedAggregation extends QueryAggregation { - /** The path to the document field to scope sub aggregations to. */ - path: string; - /** Number of nested documents found in the specified field. */ - matching_results: number; - /** An array of sub aggregations. */ - aggregations?: QueryAggregation[]; - } - /** Object containing notice query results. */ export interface QueryNoticesResponse { /** The number of matching results. */ @@ -1811,7 +1762,7 @@ namespace DiscoveryV2 { retrieval_details?: RetrievalDetails; /** Suggested correction to the submitted **natural_language_query** value. */ suggested_query?: string; - /** Array of suggested refinments. */ + /** Array of suggested refinements. */ suggested_refinements?: QuerySuggestedRefinement[]; /** Array of table results. */ table_results?: QueryTableResult[]; @@ -1880,16 +1831,6 @@ namespace DiscoveryV2 { table?: TableResultTable; } - /** Returns the top values for the field specified. */ - export interface QueryTermAggregation extends QueryAggregation { - /** The field in the document used to generate top values from. */ - field: string; - /** The number of top values returned. */ - count?: number; - /** Array of top values for the field. */ - results?: QueryTermAggregationResult[]; - } - /** Top value result for the term aggregation. */ export interface QueryTermAggregationResult { /** Value of the field with a non-zero frequency in the document set. */ @@ -1900,21 +1841,11 @@ namespace DiscoveryV2 { aggregations?: QueryAggregation[]; } - /** A specialized histogram aggregation that uses dates to create interval segments. */ - export interface QueryTimesliceAggregation extends QueryAggregation { - /** The date field name used to create the timeslice. */ - field: string; - /** The date interval value. Valid values are seconds, minutes, hours, days, weeks, and years. */ - interval: string; - /** Array of aggregation results. */ - results?: QueryTimesliceAggregationResult[]; - } - /** A timeslice interval segment. */ export interface QueryTimesliceAggregationResult { /** String date value of the upper bound for the timeslice interval in ISO-8601 format. */ key_as_string: string; - /** Numeric date value of the upper bound for the timeslice interval in UNIX miliseconds since epoch. */ + /** Numeric date value of the upper bound for the timeslice interval in UNIX milliseconds since epoch. */ key: number; /** Number of documents with the specified key as the upper bound. */ matching_results: number; @@ -1922,13 +1853,6 @@ namespace DiscoveryV2 { aggregations?: QueryAggregation[]; } - /** Returns the top documents ranked by the score of the query. */ - export interface QueryTopHitsAggregation extends QueryAggregation { - /** The number of documents to return. */ - size: number; - hits?: QueryTopHitsAggregationResult; - } - /** A query response containing the matching documents for the preceding aggregations. */ export interface QueryTopHitsAggregationResult { /** Number of matching results. */ @@ -1939,7 +1863,7 @@ namespace DiscoveryV2 { /** An object contain retrieval type information. */ export interface RetrievalDetails { - /** Indentifies the document retrieval strategy used for this query. `relevancy_training` indicates that the + /** Identifies the document retrieval strategy used for this query. `relevancy_training` indicates that the * results were returned using a relevancy trained model. * * **Note**: In the event of trained collections being queried, but the trained model is not used to return @@ -2204,6 +2128,73 @@ namespace DiscoveryV2 { queries?: TrainingQuery[]; } + /** Returns a scalar calculation across all documents for the field specified. Possible calculations include min, max, sum, average, and unique_count. */ + export interface QueryCalculationAggregation extends QueryAggregation { + /** The field to perform the calculation on. */ + field: string; + /** The value of the calculation. */ + value?: number; + } + + /** A modifier that will narrow down the document set of the sub aggregations it precedes. */ + export interface QueryFilterAggregation extends QueryAggregation { + /** The filter written in Discovery Query Language syntax applied to the documents before sub aggregations are + * run. + */ + match: string; + /** Number of documents matching the filter. */ + matching_results: number; + /** An array of sub aggregations. */ + aggregations?: QueryAggregation[]; + } + + /** Numeric interval segments to categorize documents by using field values from a single numeric field to describe the category. */ + export interface QueryHistogramAggregation extends QueryAggregation { + /** The numeric field name used to create the histogram. */ + field: string; + /** The size of the sections the results are split into. */ + interval: number; + /** Array of numeric intervals. */ + results?: QueryHistogramAggregationResult[]; + } + + /** A restriction that alter the document set used for sub aggregations it precedes to nested documents found in the field specified. */ + export interface QueryNestedAggregation extends QueryAggregation { + /** The path to the document field to scope sub aggregations to. */ + path: string; + /** Number of nested documents found in the specified field. */ + matching_results: number; + /** An array of sub aggregations. */ + aggregations?: QueryAggregation[]; + } + + /** Returns the top values for the field specified. */ + export interface QueryTermAggregation extends QueryAggregation { + /** The field in the document used to generate top values from. */ + field: string; + /** The number of top values returned. */ + count?: number; + /** Array of top values for the field. */ + results?: QueryTermAggregationResult[]; + } + + /** A specialized histogram aggregation that uses dates to create interval segments. */ + export interface QueryTimesliceAggregation extends QueryAggregation { + /** The date field name used to create the timeslice. */ + field: string; + /** The date interval value. Valid values are seconds, minutes, hours, days, weeks, and years. */ + interval: string; + /** Array of aggregation results. */ + results?: QueryTimesliceAggregationResult[]; + } + + /** Returns the top documents ranked by the score of the query. */ + export interface QueryTopHitsAggregation extends QueryAggregation { + /** The number of documents to return. */ + size: number; + hits?: QueryTopHitsAggregationResult; + } + } export = DiscoveryV2; diff --git a/language-translator/v3.ts b/language-translator/v3.ts index cb1041653a..7593e9088c 100644 --- a/language-translator/v3.ts +++ b/language-translator/v3.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2018, 2019. + * (C) Copyright IBM Corp. 2018, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -29,9 +28,8 @@ import { getSdkHeaders } from '../lib/common'; class LanguageTranslatorV3 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/language-translator/api'; - name: string; // set by prototype to 'language_translator' - serviceVersion: string; // set by prototype to 'v3' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/language-translator/api'; + static DEFAULT_SERVICE_NAME: string = 'language_translator'; /** * Construct a LanguageTranslatorV3 object. @@ -45,17 +43,25 @@ class LanguageTranslatorV3 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/language-translator/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {LanguageTranslatorV3} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = LanguageTranslatorV3.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('language_translator'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -80,8 +86,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {string} [params.source] - Translation source language code. * @param {string} [params.target] - Translation target language code. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public translate(params: LanguageTranslatorV3.TranslateParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -89,7 +95,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -106,7 +111,7 @@ class LanguageTranslatorV3 extends BaseService { 'target': _params.target }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'translate'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'translate'); const parameters = { options: { @@ -152,16 +157,15 @@ class LanguageTranslatorV3 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listIdentifiableLanguages(params?: LanguageTranslatorV3.ListIdentifiableLanguagesParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'listIdentifiableLanguages'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'listIdentifiableLanguages'); const parameters = { options: { @@ -201,8 +205,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.text - Input text in UTF-8 format. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public identify(params: LanguageTranslatorV3.IdentifyParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -210,7 +214,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -219,9 +222,9 @@ class LanguageTranslatorV3 extends BaseService { } return reject(missingParams); } - const body = _params.text; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'identify'); + const body = _params.text; + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'identify'); const parameters = { options: { @@ -272,22 +275,21 @@ class LanguageTranslatorV3 extends BaseService { * non-default models, set this to `false`. There is exactly one default model per language pair, the IBM provided * base model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listModels(params?: LanguageTranslatorV3.ListModelsParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'source': _params.source, 'target': _params.target, 'default': _params._default }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'listModels'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'listModels'); const parameters = { options: { @@ -351,8 +353,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {string} [params.name] - An optional model name that you can use to identify the model. Valid characters are * letters, numbers, dashes, underscores, spaces and apostrophes. The maximum length is 32 characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createModel(params: LanguageTranslatorV3.CreateModelParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -360,7 +362,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['baseModelId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -369,6 +370,7 @@ class LanguageTranslatorV3 extends BaseService { } return reject(missingParams); } + const formData = { 'forced_glossary': { data: _params.forcedGlossary, @@ -385,7 +387,7 @@ class LanguageTranslatorV3 extends BaseService { 'name': _params.name }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'createModel'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'createModel'); const parameters = { options: { @@ -428,8 +430,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.modelId - Model ID of the model to delete. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteModel(params: LanguageTranslatorV3.DeleteModelParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -437,7 +439,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['modelId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -451,7 +452,7 @@ class LanguageTranslatorV3 extends BaseService { 'model_id': _params.modelId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'deleteModel'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'deleteModel'); const parameters = { options: { @@ -493,8 +494,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.modelId - Model ID of the model to get. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getModel(params: LanguageTranslatorV3.GetModelParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -502,7 +503,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['modelId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -516,7 +516,7 @@ class LanguageTranslatorV3 extends BaseService { 'model_id': _params.modelId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'getModel'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'getModel'); const parameters = { options: { @@ -560,16 +560,15 @@ class LanguageTranslatorV3 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listDocuments(params?: LanguageTranslatorV3.ListDocumentsParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'listDocuments'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'listDocuments'); const parameters = { options: { @@ -608,7 +607,7 @@ class LanguageTranslatorV3 extends BaseService { * reference a previously submitted document by document ID. * * @param {Object} params - The parameters to send to the service. - * @param {NodeJS.ReadableStream|Buffer} params.file - The source file to translate. + * @param {NodeJS.ReadableStream|Buffer} params.file - The contents of the source file to translate. * * [Supported file * types](https://cloud.ibm.com/docs/services/language-translator?topic=language-translator-document-translator-tutorial#supported-file-formats) @@ -623,8 +622,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {string} [params.documentId] - To use a previously submitted document as the source for a new translation, * enter the `document_id` of the document. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public translateDocument(params: LanguageTranslatorV3.TranslateDocumentParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -632,7 +631,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['file', 'filename']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -641,6 +639,7 @@ class LanguageTranslatorV3 extends BaseService { } return reject(missingParams); } + const formData = { 'file': { data: _params.file, @@ -653,7 +652,7 @@ class LanguageTranslatorV3 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'translateDocument'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'translateDocument'); const parameters = { options: { @@ -695,8 +694,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.documentId - The document ID of the document. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getDocumentStatus(params: LanguageTranslatorV3.GetDocumentStatusParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -704,7 +703,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -718,7 +716,7 @@ class LanguageTranslatorV3 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'getDocumentStatus'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'getDocumentStatus'); const parameters = { options: { @@ -759,8 +757,8 @@ class LanguageTranslatorV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.documentId - Document ID of the document to delete. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteDocument(params: LanguageTranslatorV3.DeleteDocumentParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -768,7 +766,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -782,7 +779,7 @@ class LanguageTranslatorV3 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'deleteDocument'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'deleteDocument'); const parameters = { options: { @@ -831,8 +828,8 @@ class LanguageTranslatorV3 extends BaseService { * text/richtext, text/rtf, or text/xml. A character encoding can be specified by including a `charset` parameter. For * example, 'text/html;charset=utf-8'. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTranslatedDocument(params: LanguageTranslatorV3.GetTranslatedDocumentParams, callback?: LanguageTranslatorV3.Callback): Promise> { const _params = extend({}, params); @@ -840,7 +837,6 @@ class LanguageTranslatorV3 extends BaseService { const requiredParams = ['documentId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -854,7 +850,7 @@ class LanguageTranslatorV3 extends BaseService { 'document_id': _params.documentId }; - const sdkHeaders = getSdkHeaders('language_translator', 'v3', 'getTranslatedDocument'); + const sdkHeaders = getSdkHeaders(LanguageTranslatorV3.DEFAULT_SERVICE_NAME, 'v3', 'getTranslatedDocument'); const parameters = { options: { @@ -890,9 +886,6 @@ class LanguageTranslatorV3 extends BaseService { } -LanguageTranslatorV3.prototype.name = 'language_translator'; -LanguageTranslatorV3.prototype.serviceVersion = 'v3'; - /************************* * interfaces ************************/ @@ -1007,7 +1000,7 @@ namespace LanguageTranslatorV3 { /** Parameters for the `translateDocument` operation. */ export interface TranslateDocumentParams { - /** The source file to translate. + /** The contents of the source file to translate. * * [Supported file * types](https://cloud.ibm.com/docs/services/language-translator?topic=language-translator-document-translator-tutorial#supported-file-formats) @@ -1162,7 +1155,7 @@ namespace LanguageTranslatorV3 { created: string; /** The time when the translation completed. */ completed?: string; - /** The number of words in the source document, present only if status=available. */ + /** An estimate of the number of words in the source document. Returned only if `status` is `available`. */ word_count?: number; /** The number of characters in the source document, present only if status=available. */ character_count?: number; @@ -1242,7 +1235,7 @@ namespace LanguageTranslatorV3 { /** TranslationResult. */ export interface TranslationResult { - /** Number of words in the input text. */ + /** An estimate of the number of words in the input text. */ word_count: number; /** Number of characters in the input text. */ character_count: number; diff --git a/lib/recognize-stream.ts b/lib/recognize-stream.ts index 2491d0fde6..af8f66543f 100644 --- a/lib/recognize-stream.ts +++ b/lib/recognize-stream.ts @@ -101,6 +101,8 @@ class RecognizeStream extends Duplex { * @param {boolean} [options.processingMetrics] - If true, requests processing metrics about the service's transcription of the input audio (default=false) * @param {number} [options.processingMetricsInterval] - Specifies the interval in seconds at which the service is to return processing metrics * @param {boolean} [options.audioMetrics] - If true, requests detailed information about the signal characteristics of the input audio (detailed=false) + * @param {number} [options.endOfPhraseSilenceTime] - If `true`, specifies the duration of the pause interval at which the service splits a transcript into multiple final results + * @param {boolean} [options.splitTranscriptAtPhraseEnd] - If `true`, directs the service to split the transcript into multiple final results based on semantic features of the input * @constructor */ constructor(options: RecognizeStream.Options) { @@ -173,6 +175,8 @@ class RecognizeStream extends Duplex { 'speaker_labels', 'grammar_name', 'redaction', + 'end_of_phrase_silence_time', + 'split_transcript_at_phrase_end', ]; const openingMessage = processUserParameters(options, openingMessageParamsAllowed); openingMessage.action = 'start'; diff --git a/natural-language-classifier/v1.ts b/natural-language-classifier/v1.ts index 8167dc107d..b365c5c3d5 100644 --- a/natural-language-classifier/v1.ts +++ b/natural-language-classifier/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -28,9 +27,8 @@ import { getSdkHeaders } from '../lib/common'; class NaturalLanguageClassifierV1 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/natural-language-classifier/api'; - name: string; // set by prototype to 'natural_language_classifier' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/natural-language-classifier/api'; + static DEFAULT_SERVICE_NAME: string = 'natural_language_classifier'; /** * Construct a NaturalLanguageClassifierV1 object. @@ -38,16 +36,24 @@ class NaturalLanguageClassifierV1 extends BaseService { * @param {Object} options - Options for the service. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/natural-language-classifier/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {NaturalLanguageClassifierV1} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('natural_language_classifier'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } } /************************* @@ -64,8 +70,8 @@ class NaturalLanguageClassifierV1 extends BaseService { * @param {string} params.classifierId - Classifier ID to use. * @param {string} params.text - The submitted phrase. The maximum length is 2048 characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public classify(params: NaturalLanguageClassifierV1.ClassifyParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = extend({}, params); @@ -73,7 +79,6 @@ class NaturalLanguageClassifierV1 extends BaseService { const requiredParams = ['classifierId', 'text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -91,7 +96,7 @@ class NaturalLanguageClassifierV1 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'classify'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'classify'); const parameters = { options: { @@ -138,8 +143,8 @@ class NaturalLanguageClassifierV1 extends BaseService { * @param {string} params.classifierId - Classifier ID to use. * @param {ClassifyInput[]} params.collection - The submitted phrases. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public classifyCollection(params: NaturalLanguageClassifierV1.ClassifyCollectionParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = extend({}, params); @@ -147,7 +152,6 @@ class NaturalLanguageClassifierV1 extends BaseService { const requiredParams = ['classifierId', 'collection']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -165,7 +169,7 @@ class NaturalLanguageClassifierV1 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'classifyCollection'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'classifyCollection'); const parameters = { options: { @@ -220,8 +224,8 @@ class NaturalLanguageClassifierV1 extends BaseService { * at least one class. The data can include up to 3,000 classes and 20,000 records. For details, see [Data * preparation](https://cloud.ibm.com/docs/services/natural-language-classifier?topic=natural-language-classifier-using-your-data). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createClassifier(params: NaturalLanguageClassifierV1.CreateClassifierParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = extend({}, params); @@ -229,7 +233,6 @@ class NaturalLanguageClassifierV1 extends BaseService { const requiredParams = ['trainingMetadata', 'trainingData']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -238,6 +241,7 @@ class NaturalLanguageClassifierV1 extends BaseService { } return reject(missingParams); } + const formData = { 'training_metadata': { data: _params.trainingMetadata, @@ -249,7 +253,7 @@ class NaturalLanguageClassifierV1 extends BaseService { } }; - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'createClassifier'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'createClassifier'); const parameters = { options: { @@ -290,16 +294,15 @@ class NaturalLanguageClassifierV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listClassifiers(params?: NaturalLanguageClassifierV1.ListClassifiersParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'listClassifiers'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'listClassifiers'); const parameters = { options: { @@ -339,8 +342,8 @@ class NaturalLanguageClassifierV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.classifierId - Classifier ID to query. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getClassifier(params: NaturalLanguageClassifierV1.GetClassifierParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = extend({}, params); @@ -348,7 +351,6 @@ class NaturalLanguageClassifierV1 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -362,7 +364,7 @@ class NaturalLanguageClassifierV1 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'getClassifier'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'getClassifier'); const parameters = { options: { @@ -401,8 +403,8 @@ class NaturalLanguageClassifierV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.classifierId - Classifier ID to delete. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteClassifier(params: NaturalLanguageClassifierV1.DeleteClassifierParams, callback?: NaturalLanguageClassifierV1.Callback): Promise> { const _params = extend({}, params); @@ -410,7 +412,6 @@ class NaturalLanguageClassifierV1 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -424,7 +425,7 @@ class NaturalLanguageClassifierV1 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('natural_language_classifier', 'v1', 'deleteClassifier'); + const sdkHeaders = getSdkHeaders(NaturalLanguageClassifierV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteClassifier'); const parameters = { options: { @@ -459,9 +460,6 @@ class NaturalLanguageClassifierV1 extends BaseService { } -NaturalLanguageClassifierV1.prototype.name = 'natural_language_classifier'; -NaturalLanguageClassifierV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ diff --git a/natural-language-understanding/v1.ts b/natural-language-understanding/v1.ts index 93789e7c16..a7f03931d3 100644 --- a/natural-language-understanding/v1.ts +++ b/natural-language-understanding/v1.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -27,14 +26,13 @@ import { getSdkHeaders } from '../lib/common'; * * You can create [custom * models](https://cloud.ibm.com/docs/services/natural-language-understanding?topic=natural-language-understanding-customizing) - * with Watson Knowledge Studio to detect custom entities, relations, and categories in Natural Language Understanding. + * with Watson Knowledge Studio to detect custom entities and relations in Natural Language Understanding. */ class NaturalLanguageUnderstandingV1 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/natural-language-understanding/api'; - name: string; // set by prototype to 'natural-language-understanding' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/natural-language-understanding/api'; + static DEFAULT_SERVICE_NAME: string = 'natural-language-understanding'; /** * Construct a NaturalLanguageUnderstandingV1 object. @@ -48,17 +46,25 @@ class NaturalLanguageUnderstandingV1 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/natural-language-understanding/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {NaturalLanguageUnderstandingV1} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = NaturalLanguageUnderstandingV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('natural-language-understanding'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -85,6 +91,10 @@ class NaturalLanguageUnderstandingV1 extends BaseService { * - Sentiment * - Syntax (Experimental). * + * If a language for the input text is not specified with the `language` parameter, the service [automatically detects + * the + * language](https://cloud.ibm.com/docs/services/natural-language-understanding?topic=natural-language-understanding-detectable-languages). + * * @param {Object} params - The parameters to send to the service. * @param {Features} params.features - Specific features to analyze the document for. * @param {string} [params.text] - The plain text to analyze. One of the `text`, `html`, or `url` parameters is @@ -110,8 +120,8 @@ class NaturalLanguageUnderstandingV1 extends BaseService { * @param {number} [params.limitTextCharacters] - Sets the maximum number of characters that are processed by the * service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public analyze(params: NaturalLanguageUnderstandingV1.AnalyzeParams, callback?: NaturalLanguageUnderstandingV1.Callback): Promise> { const _params = extend({}, params); @@ -119,7 +129,6 @@ class NaturalLanguageUnderstandingV1 extends BaseService { const requiredParams = ['features']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -142,7 +151,7 @@ class NaturalLanguageUnderstandingV1 extends BaseService { 'limit_text_characters': _params.limitTextCharacters }; - const sdkHeaders = getSdkHeaders('natural-language-understanding', 'v1', 'analyze'); + const sdkHeaders = getSdkHeaders(NaturalLanguageUnderstandingV1.DEFAULT_SERVICE_NAME, 'v1', 'analyze'); const parameters = { options: { @@ -189,16 +198,15 @@ class NaturalLanguageUnderstandingV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listModels(params?: NaturalLanguageUnderstandingV1.ListModelsParams, callback?: NaturalLanguageUnderstandingV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('natural-language-understanding', 'v1', 'listModels'); + const sdkHeaders = getSdkHeaders(NaturalLanguageUnderstandingV1.DEFAULT_SERVICE_NAME, 'v1', 'listModels'); const parameters = { options: { @@ -238,8 +246,8 @@ class NaturalLanguageUnderstandingV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.modelId - Model ID of the model to delete. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteModel(params: NaturalLanguageUnderstandingV1.DeleteModelParams, callback?: NaturalLanguageUnderstandingV1.Callback): Promise> { const _params = extend({}, params); @@ -247,7 +255,6 @@ class NaturalLanguageUnderstandingV1 extends BaseService { const requiredParams = ['modelId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -261,7 +268,7 @@ class NaturalLanguageUnderstandingV1 extends BaseService { 'model_id': _params.modelId }; - const sdkHeaders = getSdkHeaders('natural-language-understanding', 'v1', 'deleteModel'); + const sdkHeaders = getSdkHeaders(NaturalLanguageUnderstandingV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteModel'); const parameters = { options: { @@ -296,9 +303,6 @@ class NaturalLanguageUnderstandingV1 extends BaseService { } -NaturalLanguageUnderstandingV1.prototype.name = 'natural-language-understanding'; -NaturalLanguageUnderstandingV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ @@ -450,11 +454,6 @@ namespace NaturalLanguageUnderstandingV1 { explanation?: boolean; /** Maximum number of categories to return. */ limit?: number; - /** Enter a [custom - * model](https://cloud.ibm.com/docs/services/natural-language-understanding?topic=natural-language-understanding-customizing) - * ID to override the standard categories model. - */ - model?: string; } /** Relevant text that contributed to the categorization. */ diff --git a/package-lock.json b/package-lock.json index 739b8d7ea2..cd2fab10ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,33 +1,34 @@ { "name": "ibm-watson", - "version": "5.2.1", + "version": "5.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", - "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "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.0.0" + "@babel/highlight": "^7.8.3" } }, "@babel/core": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.6.2.tgz", - "integrity": "sha512-l8zto/fuoZIbncm+01p8zPSDZu/VuuJhAfA7d/AbzM09WR7iVhavvfNDYCNpo1VvLk6E6xgAoP9P+/EMJHuRkQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", - "@babel/helpers": "^7.6.2", - "@babel/parser": "^7.6.2", - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0", - "convert-source-map": "^1.1.0", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.8.3.tgz", + "integrity": "sha512-4XFkf8AwyrEG7Ziu3L2L0Cv+WyY47Tcsp70JFmpftbAA1K7YL/sgE9jh9HyNj08Y/U50ItUchpN0w6HxAoX1rA==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helpers": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3", + "convert-source-map": "^1.7.0", "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", "json5": "^2.1.0", "lodash": "^4.17.13", "resolve": "^1.3.2", @@ -35,19 +36,19 @@ "source-map": "^0.5.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { - "ms": "^2.1.1" + "safe-buffer": "~5.1.1" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "semver": { @@ -55,85 +56,71 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, "@babel/generator": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.6.2.tgz", - "integrity": "sha512-j8iHaIW4gGPnViaIHI7e9t/Hl8qLjERI6DcV9kEpAIDJsAOrcnXqRS7t+QbhL76pwbtqP+QCQLL0z1CyVmtjjQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.8.3.tgz", + "integrity": "sha512-WjoPk8hRpDRqqzRpvaR8/gDUPkrnOOeuT2m8cNICJtZH6mwaCo3v0OKMI7Y6SM1pBtyijnLtAL0HDi41pf41ug==", "dev": true, "requires": { - "@babel/types": "^7.6.0", + "@babel/types": "^7.8.3", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "@babel/helper-function-name": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", - "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", + "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "dev": true, "requires": { - "@babel/helper-get-function-arity": "^7.0.0", - "@babel/template": "^7.1.0", - "@babel/types": "^7.0.0" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", - "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", + "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "dev": true, "requires": { - "@babel/types": "^7.0.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-plugin-utils": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", - "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz", + "integrity": "sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ==", "dev": true }, "@babel/helper-split-export-declaration": { - "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", - "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", + "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "dev": true, "requires": { - "@babel/types": "^7.4.4" + "@babel/types": "^7.8.3" } }, "@babel/helpers": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.6.2.tgz", - "integrity": "sha512-3/bAUL8zZxYs1cdX2ilEE0WobqbCmKWr/889lf2SS0PpDcpEIY8pb1CCyz0pEcX3pEb+MCbks1jIokz2xLtGTA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.8.3.tgz", + "integrity": "sha512-LmU3q9Pah/XyZU89QvBgGt+BCsTPoQa+73RxAQh8fb8qkDyIfeQnmgs+hvzhTCKTzqOyk7JTkS3MS1S8Mq5yrQ==", "dev": true, "requires": { - "@babel/template": "^7.6.0", - "@babel/traverse": "^7.6.2", - "@babel/types": "^7.6.0" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/highlight": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", - "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "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", @@ -142,69 +129,69 @@ } }, "@babel/parser": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.6.2.tgz", - "integrity": "sha512-mdFqWrSPCmikBoaBYMuBulzTIKuXVPtEISFbRRVNwMWpCms/hmE2kRq0bblUHaNRKrjRlmVbx1sDHmjmRgD2Xg==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.8.3.tgz", + "integrity": "sha512-/V72F4Yp/qmHaTALizEm9Gf2eQHV3QyTL3K0cNfijwnMnb1L+LDlAubb/ZnSdGAVzVSWakujHYs1I26x66sMeQ==", "dev": true }, "@babel/plugin-syntax-object-rest-spread": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", - "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/runtime": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.8.3.tgz", + "integrity": "sha512-fVHx1rzEmwB130VTkLnxR+HmxcTjGzH12LYQcFFoBwakMd3aOMD4OsRN7tGG/UOYE2ektgFrS8uACAoRk1CY0w==", "dev": true, "requires": { - "@babel/helper-plugin-utils": "^7.0.0" + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + } } }, "@babel/template": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", - "integrity": "sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.3.tgz", + "integrity": "sha512-04m87AcQgAFdvuoyiQ2kgELr2tV8B4fP/xJAVUL3Yb3bkNdMedD3d0rlSQr3PegP0cms3eHjl1F7PWlvWbU8FQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.0", - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.0" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/traverse": { - "version": "7.6.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.6.2.tgz", - "integrity": "sha512-8fRE76xNwNttVEF2TwxJDGBLWthUkHWSldmfuBzVRmEDWOtu4XdINTgN7TDWzuLg4bbeIMLvfMFD9we5YcWkRQ==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.8.3.tgz", + "integrity": "sha512-we+a2lti+eEImHmEXp7bM9cTxGzxPmBiVJlLVD+FuuQMeeO7RaDbutbgeheDkw+Xe3mCfJHnGOWLswT74m2IPg==", "dev": true, "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.6.2", - "@babel/helper-function-name": "^7.1.0", - "@babel/helper-split-export-declaration": "^7.4.4", - "@babel/parser": "^7.6.2", - "@babel/types": "^7.6.0", + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.8.3", + "@babel/types": "^7.8.3", "debug": "^4.1.0", "globals": "^11.1.0", "lodash": "^4.17.13" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "@babel/types": { - "version": "7.6.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz", - "integrity": "sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g==", + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.8.3.tgz", + "integrity": "sha512-jBD+G8+LWpMBBWvVcdr4QysjUE4mU/syrhN17o1u3gx0/WzJB1kwiVZAXRtWbsIPOwW8pF/YJV5+nmetPzepXg==", "dev": true, "requires": { "esutils": "^2.0.2", @@ -223,216 +210,157 @@ } }, "@commitlint/cli": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.2.0.tgz", - "integrity": "sha512-8fJ5pmytc38yw2QWbTTJmXLfSiWPwMkHH4govo9zJ/+ERPBF2jvlxD/dQvk24ezcizjKc6LFka2edYC4OQ+Dgw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/cli/-/cli-8.3.5.tgz", + "integrity": "sha512-6+L0vbw55UEdht71pgWOE55SRgb+8OHcEwGDB234VlIBFGK9P2QOBU7MHiYJ5cjdjCQ0rReNrGjOHmJ99jwf0w==", "dev": true, "requires": { - "@commitlint/format": "^8.2.0", - "@commitlint/lint": "^8.2.0", - "@commitlint/load": "^8.2.0", - "@commitlint/read": "^8.2.0", + "@commitlint/format": "^8.3.4", + "@commitlint/lint": "^8.3.5", + "@commitlint/load": "^8.3.5", + "@commitlint/read": "^8.3.4", "babel-polyfill": "6.26.0", "chalk": "2.4.2", "get-stdin": "7.0.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "meow": "5.0.0", "resolve-from": "5.0.0", "resolve-global": "1.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/config-conventional": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.2.0.tgz", - "integrity": "sha512-HuwlHQ3DyVhpK9GHgTMhJXD8Zp8PGIQVpQGYh/iTrEU6TVxdRC61BxIDZvfWatCaiG617Z/U8maRAFrqFM4TqA==", - "dev": true + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-8.3.4.tgz", + "integrity": "sha512-w0Yc5+aVAjZgjYqx29igBOnVCj8O22gy3Vo6Fyp7PwoS7+AYS1x3sN7IBq6i7Ae15Mv5P+rEx1pkxXo5zOMe4g==", + "dev": true, + "requires": { + "conventional-changelog-conventionalcommits": "4.2.1" + } }, "@commitlint/ensure": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.2.0.tgz", - "integrity": "sha512-XZZih/kcRrqK7lEORbSYCfqQw6byfsFbLygRGVdJMlCPGu9E2MjpwCtoj5z7y/lKfUB3MJaBhzn2muJqS1gC6A==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/ensure/-/ensure-8.3.4.tgz", + "integrity": "sha512-8NW77VxviLhD16O3EUd02lApMFnrHexq10YS4F4NftNoErKbKaJ0YYedktk2boKrtNRf/gQHY/Qf65edPx4ipw==", "dev": true, "requires": { - "lodash": "4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } + "lodash": "4.17.15" } }, "@commitlint/execute-rule": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.2.0.tgz", - "integrity": "sha512-9MBRthHaulbWTa8ReG2Oii2qc117NuvzhZdnkuKuYLhker7sUXGFcVhLanuWUKGyfyI2o9zVr/NHsNbCCsTzAA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-8.3.4.tgz", + "integrity": "sha512-f4HigYjeIBn9f7OuNv5zh2y5vWaAhNFrfeul8CRJDy82l3Y+09lxOTGxfF3uMXKrZq4LmuK6qvvRCZ8mUrVvzQ==", "dev": true }, "@commitlint/format": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.2.0.tgz", - "integrity": "sha512-sA77agkDEMsEMrlGhrLtAg8vRexkOofEEv/CZX+4xlANyAz2kNwJvMg33lcL65CBhqKEnRRJRxfZ1ZqcujdKcQ==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/format/-/format-8.3.4.tgz", + "integrity": "sha512-809wlQ/ND6CLZON+w2Rb3YM2TLNDfU2xyyqpZeqzf2reJNpySMSUAeaO/fNDJSOKIsOsR3bI01rGu6hv28k+Nw==", "dev": true, "requires": { "chalk": "^2.0.1" } }, "@commitlint/is-ignored": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.2.0.tgz", - "integrity": "sha512-ADaGnKfbfV6KD1pETp0Qf7XAyc75xTy3WJlbvPbwZ4oPdBMsXF0oXEEGMis6qABfU2IXan5/KAJgAFX3vdd0jA==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-8.3.5.tgz", + "integrity": "sha512-Zo+8a6gJLFDTqyNRx53wQi/XTiz8mncvmWf/4oRG+6WRcBfjSSHY7KPVj5Y6UaLy2EgZ0WQ2Tt6RdTDeQiQplA==", "dev": true, "requires": { - "@types/semver": "^6.0.1", - "semver": "6.2.0" - }, - "dependencies": { - "@types/semver": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.0.2.tgz", - "integrity": "sha512-G1Ggy7/9Nsa1Jt2yiBR2riEuyK2DFNnqow6R7cromXPMNynackRY1vqFTLz/gwnef1LHokbXThcPhqMRjUbkpQ==", - "dev": true - }, - "semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-jdFC1VdUGT/2Scgbimf7FSx9iJLXoqfglSF+gJeuNWVpiE37OIbc1jywR/GJyFdz3mnkz2/id0L0J/cr0izR5A==", - "dev": true - } + "semver": "6.3.0" } }, "@commitlint/lint": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.2.0.tgz", - "integrity": "sha512-ch9JN8aR37ufdjoWv50jLfvFz9rWMgLW5HEkMGLsM/51gjekmQYS5NJg8S2+6F5+jmralAO7VkUMI6FukXKX0A==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/lint/-/lint-8.3.5.tgz", + "integrity": "sha512-02AkI0a6PU6rzqUvuDkSi6rDQ2hUgkq9GpmdJqfai5bDbxx2939mK4ZO+7apbIh4H6Pae7EpYi7ffxuJgm+3hQ==", "dev": true, "requires": { - "@commitlint/is-ignored": "^8.2.0", - "@commitlint/parse": "^8.2.0", - "@commitlint/rules": "^8.2.0", + "@commitlint/is-ignored": "^8.3.5", + "@commitlint/parse": "^8.3.4", + "@commitlint/rules": "^8.3.4", "babel-runtime": "^6.23.0", - "lodash": "4.17.14" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } + "lodash": "4.17.15" } }, "@commitlint/load": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.2.0.tgz", - "integrity": "sha512-EV6PfAY/p83QynNd1llHxJiNxKmp43g8+7dZbyfHFbsGOdokrCnoelAVZ+WGgktXwLN/uXyfkcIAxwac015UYw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/load/-/load-8.3.5.tgz", + "integrity": "sha512-poF7R1CtQvIXRmVIe63FjSQmN9KDqjRtU5A6hxqXBga87yB2VUJzic85TV6PcQc+wStk52cjrMI+g0zFx+Zxrw==", "dev": true, "requires": { - "@commitlint/execute-rule": "^8.2.0", - "@commitlint/resolve-extends": "^8.2.0", + "@commitlint/execute-rule": "^8.3.4", + "@commitlint/resolve-extends": "^8.3.5", "babel-runtime": "^6.23.0", "chalk": "2.4.2", "cosmiconfig": "^5.2.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "resolve-from": "^5.0.0" - }, - "dependencies": { - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/message": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.2.0.tgz", - "integrity": "sha512-LNsSwDLIFgE3nb/Sb1PIluYNy4Q8igdf4tpJCdv5JJDf7CZCZt3ZTglj0YutZZorpRRuHJsVIB2+dI4bVH3bFw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/message/-/message-8.3.4.tgz", + "integrity": "sha512-nEj5tknoOKXqBsaQtCtgPcsAaf5VCg3+fWhss4Vmtq40633xLq0irkdDdMEsYIx8rGR0XPBTukqzln9kAWCkcA==", "dev": true }, "@commitlint/parse": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.2.0.tgz", - "integrity": "sha512-vzouqroTXG6QXApkrps0gbeSYW6w5drpUk7QAeZIcaCSPsQXDM8eqqt98ZzlzLJHo5oPNXPX1AAVSTrssvHemA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/parse/-/parse-8.3.4.tgz", + "integrity": "sha512-b3uQvpUQWC20EBfKSfMRnyx5Wc4Cn778bVeVOFErF/cXQK725L1bYFvPnEjQO/GT8yGVzq2wtLaoEqjm1NJ/Bw==", "dev": true, "requires": { "conventional-changelog-angular": "^1.3.3", - "conventional-commits-parser": "^2.1.0", + "conventional-commits-parser": "^3.0.0", "lodash": "^4.17.11" } }, "@commitlint/read": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.2.0.tgz", - "integrity": "sha512-1tBai1VuSQmsOTsvJr3Fi/GZqX3zdxRqYe/yN4i3cLA5S2Y4QGJ5I3l6nGZlKgm/sSelTCVKHltrfWU8s5H7SA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/read/-/read-8.3.4.tgz", + "integrity": "sha512-FKv1kHPrvcAG5j+OSbd41IWexsbLhfIXpxVC/YwQZO+FR0EHmygxQNYs66r+GnhD1EfYJYM4WQIqd5bJRx6OIw==", "dev": true, "requires": { - "@commitlint/top-level": "^8.2.0", + "@commitlint/top-level": "^8.3.4", "@marionebl/sander": "^0.6.0", "babel-runtime": "^6.23.0", - "git-raw-commits": "^1.3.0" + "git-raw-commits": "^2.0.0" } }, "@commitlint/resolve-extends": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.2.0.tgz", - "integrity": "sha512-cwi0HUsDcD502HBP8huXfTkVuWmeo1Fiz3GKxNwMBBsJV4+bKa7QrtxbNpXhVuarX7QjWfNTvmW6KmFS7YK9uw==", + "version": "8.3.5", + "resolved": "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-8.3.5.tgz", + "integrity": "sha512-nHhFAK29qiXNe6oH6uG5wqBnCR+BQnxlBW/q5fjtxIaQALgfoNLHwLS9exzbIRFqwJckpR6yMCfgMbmbAOtklQ==", "dev": true, "requires": { - "@types/node": "^12.0.2", "import-fresh": "^3.0.0", - "lodash": "4.17.14", + "lodash": "4.17.15", "resolve-from": "^5.0.0", "resolve-global": "^1.0.0" - }, - "dependencies": { - "@types/node": { - "version": "12.7.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.7.tgz", - "integrity": "sha512-4jUncNe2tj1nmrO/34PsRpZqYVnRV1svbU78cKhuQKkMntKB/AmdLyGgswcZKjFHEHGpiY8pVD8CuVI55nP54w==", - "dev": true - }, - "lodash": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz", - "integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw==", - "dev": true - } } }, "@commitlint/rules": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.2.0.tgz", - "integrity": "sha512-FlqSBBP2Gxt5Ibw+bxdYpzqYR6HI8NIBpaTBhAjSEAduQtdWFMOhF0zsgkwH7lHN7opaLcnY2fXxAhbzTmJQQA==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/rules/-/rules-8.3.4.tgz", + "integrity": "sha512-xuC9dlqD5xgAoDFgnbs578cJySvwOSkMLQyZADb1xD5n7BNcUJfP8WjT9W1Aw8K3Wf8+Ym/ysr9FZHXInLeaRg==", "dev": true, "requires": { - "@commitlint/ensure": "^8.2.0", - "@commitlint/message": "^8.2.0", - "@commitlint/to-lines": "^8.2.0", + "@commitlint/ensure": "^8.3.4", + "@commitlint/message": "^8.3.4", + "@commitlint/to-lines": "^8.3.4", "babel-runtime": "^6.23.0" } }, "@commitlint/to-lines": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.2.0.tgz", - "integrity": "sha512-LXTYG3sMenlN5qwyTZ6czOULVcx46uMy+MEVqpvCgptqr/MZcV/C2J+S2o1DGwj1gOEFMpqrZaE3/1R2Q+N8ng==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-8.3.4.tgz", + "integrity": "sha512-5AvcdwRsMIVq0lrzXTwpbbG5fKRTWcHkhn/hCXJJ9pm1JidsnidS1y0RGkb3O50TEHGewhXwNoavxW9VToscUA==", "dev": true }, "@commitlint/top-level": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.2.0.tgz", - "integrity": "sha512-Yaw4KmYNy31/HhRUuZ+fupFcDalnfpdu4JGBgGAqS9aBHdMSSWdWqtAaDaxdtWjTZeN3O0sA2gOhXwvKwiDwvw==", + "version": "8.3.4", + "resolved": "https://registry.npmjs.org/@commitlint/top-level/-/top-level-8.3.4.tgz", + "integrity": "sha512-nOaeLBbAqSZNpKgEtO6NAxmui1G8ZvLG+0wb4rvv6mWhPDzK1GNZkCd8FUZPahCoJ1iHDoatw7F8BbJLg4nDjg==", "dev": true, "requires": { "find-up": "^4.0.0" @@ -458,9 +386,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -628,12 +556,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -661,6 +583,15 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -730,6 +661,12 @@ "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -742,6 +679,14 @@ "callsites": "^3.0.0", "graceful-fs": "^4.1.15", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "@jest/test-result": { @@ -821,9 +766,9 @@ } }, "convert-source-map": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", - "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "dev": true, "requires": { "safe-buffer": "~5.1.1" @@ -884,12 +829,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -923,6 +862,12 @@ "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -932,17 +877,6 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } - }, - "write-file-atomic": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", - "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.11", - "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.2" - } } } }, @@ -950,7 +884,6 @@ "version": "24.9.0", "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^1.1.1", @@ -969,37 +902,38 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.2.tgz", - "integrity": "sha512-wrIBsjA5pl13f0RN4Zx4FNWmU71lv03meGKnqRUoCyan17s4V3WL92f3w3AIuWbNnpcrQyFBU5qMavJoB8d27w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", + "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.2", + "@nodelib/fs.stat": "2.0.3", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.2.tgz", - "integrity": "sha512-z8+wGWV2dgUhLqrtRYa03yDx4HWMvXKi1z8g3m2JyxAx8F7xk74asqPk5LAETjqDSGLFML/6CDl0+yFunSYicw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", + "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.3.tgz", - "integrity": "sha512-l6t8xEhfK9Sa4YO5mIRdau7XSOADfmh3jCr0evNHdY+HNkW6xuQhgMH7D73VV6WpZOagrW0UludvMTiifiwTfA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", + "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.2", + "@nodelib/fs.scandir": "2.1.3", "fastq": "^1.6.0" } }, "@octokit/endpoint": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.3.6.tgz", - "integrity": "sha512-XuerByak8H+jW9J/rVMEdBXfI4UTsDWUwAKgIP/uhQjXIUVdPRwt2Zg+SmbWQ+WY7pRkw/hFVES8C4G/Kle7oA==", + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-5.5.1.tgz", + "integrity": "sha512-nBFhRUb5YzVTCX/iAK1MgQ4uWo89Gu0TH00qQHoYRCsE12dWcG1OiLd7v2EIo2+tpUKPMOQ62QFy9hy9Vg2ULg==", "dev": true, "requires": { + "@octokit/types": "^2.0.0", "is-plain-object": "^3.0.0", "universal-user-agent": "^4.0.0" }, @@ -1022,13 +956,14 @@ } }, "@octokit/request": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.1.0.tgz", - "integrity": "sha512-I15T9PwjFs4tbWyhtFU2Kq7WDPidYMvRB7spmxoQRZfxSmiqullG+Nz+KbSmpkfnlvHwTr1e31R5WReFRKMXjg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-5.3.1.tgz", + "integrity": "sha512-5/X0AL1ZgoU32fAepTfEoggFinO3rxsMLtzhlUX+RctLrusn/CApJuGFCd0v7GMFhF+8UiCsTTfsu7Fh1HnEJg==", "dev": true, "requires": { - "@octokit/endpoint": "^5.1.0", + "@octokit/endpoint": "^5.5.0", "@octokit/request-error": "^1.0.1", + "@octokit/types": "^2.0.0", "deprecation": "^2.0.0", "is-plain-object": "^3.0.0", "node-fetch": "^2.3.0", @@ -1054,22 +989,23 @@ } }, "@octokit/request-error": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.0.4.tgz", - "integrity": "sha512-L4JaJDXn8SGT+5G0uX79rZLv0MNJmfGa4vb4vy1NnpjSnWDLJRy6m90udGwvMmavwsStgbv2QNkPzzTCMmL+ig==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.0.tgz", + "integrity": "sha512-DNBhROBYjjV/I9n7A8kVkmQNkqFAMem90dSxqvPq57e2hBr7mNTX98y3R2zDpqMQHVRpBDjsvsfIGgBzy+4PAg==", "dev": true, "requires": { + "@octokit/types": "^2.0.0", "deprecation": "^2.0.0", "once": "^1.4.0" } }, "@octokit/rest": { - "version": "16.30.1", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.30.1.tgz", - "integrity": "sha512-1n2QzTbbaBXNLpx7WHlcsSMdJvxSdKmerXQm+bMYlKDbQM19uq446ZpGs7Ynq5SsdLj1usIfgJ9gJf4LtcWkDw==", + "version": "16.36.0", + "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-16.36.0.tgz", + "integrity": "sha512-zoZj7Ya4vWBK4fjTwK2Cnmu7XBB1p9ygSvTk2TthN6DVJXM4hQZQoAiknWFLJWSTix4dnA3vuHtjPZbExYoCZA==", "dev": true, "requires": { - "@octokit/request": "^5.0.0", + "@octokit/request": "^5.2.0", "@octokit/request-error": "^1.0.2", "atob-lite": "^2.0.0", "before-after-hook": "^2.0.0", @@ -1083,6 +1019,15 @@ "universal-user-agent": "^4.0.0" } }, + "@octokit/types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@octokit/types/-/types-2.0.2.tgz", + "integrity": "sha512-StASIL2lgT3TRjxv17z9pAqbnI7HGu9DrJlg3sEBFfCLaMEqp+O3IQPUF6EZtQ4xkAu2ml6kMBBCtGxjvmtmuQ==", + "dev": true, + "requires": { + "@types/node": ">= 8" + } + }, "@samverschueren/stream-to-observable": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz", @@ -1093,9 +1038,9 @@ } }, "@semantic-release/changelog": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-3.0.4.tgz", - "integrity": "sha512-UqEPahcZSW0IKtzOglyjeEZCN99ku6Wb/yH/iOKEBJ7Vkw0/+Fc3VRiGoXTkMfHSFUJk+4UkoQKTlYuwf61C2w==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/@semantic-release/changelog/-/changelog-3.0.6.tgz", + "integrity": "sha512-9TqPL/VarLLj6WkUqbIqFiY3nwPmLuKFHy9fe/LamAW5s4MEW/ig9zW9vzYGOUVtWdErGJ1J62E3Edkamh3xaQ==", "dev": true, "requires": { "@semantic-release/error": "^2.1.0", @@ -1105,75 +1050,28 @@ } }, "@semantic-release/commit-analyzer": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.0.tgz", - "integrity": "sha512-sh51MVlV8VyrvGIemcvzueDADX/8qGbAgce1F0CtQv8hNKYyhdaJeHzfiM1rNXwCynDmcQj+Yq9rrWt71tBd/Q==", + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz", + "integrity": "sha512-Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", "conventional-commits-filter": "^2.0.0", - "conventional-commits-parser": "^3.0.0", + "conventional-commits-parser": "^3.0.7", "debug": "^4.0.0", "import-from": "^3.0.0", "lodash": "^4.17.4" }, "dependencies": { "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz", + "integrity": "sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA==", "dev": true, "requires": { "compare-func": "^1.3.1", "q": "^1.5.1" } - }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, @@ -1184,44 +1082,27 @@ "dev": true }, "@semantic-release/git": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-7.0.16.tgz", - "integrity": "sha512-Bw/npxTVTeFPnQZmuczWRGRdxqJpWOOFZENx38ykyp42InwDFm4n72bfcCwmP/J4WqkPmMR4p+IracWruz/RUw==", + "version": "7.0.18", + "resolved": "https://registry.npmjs.org/@semantic-release/git/-/git-7.0.18.tgz", + "integrity": "sha512-VwnsGUXpNdvPcsq05BQyLBZxGUlEiJCMKNi8ttLvZZAhjI1mAp9dwypOeyxSJ5eFQ+iGMBLdoKF1LL0pmA/d0A==", "dev": true, "requires": { "@semantic-release/error": "^2.1.0", "aggregate-error": "^3.0.0", "debug": "^4.0.0", "dir-glob": "^3.0.0", - "execa": "^1.0.0", + "execa": "^3.2.0", "fs-extra": "^8.0.0", "globby": "^10.0.0", "lodash": "^4.17.4", "micromatch": "^4.0.0", "p-reduce": "^2.0.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "@semantic-release/github": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.4.3.tgz", - "integrity": "sha512-nFoG1whDZettsGsMRE64kCFRpGSHxQxiKtUltKw67uYO7Q62049HGcdH7pZh/ipn+Uq2cG4Zef/g1vxVVaK82w==", + "version": "5.5.8", + "resolved": "https://registry.npmjs.org/@semantic-release/github/-/github-5.5.8.tgz", + "integrity": "sha512-YxbBXbCThs/Xk3E4QU01AMIUM8eb0UTvjHJtclTDR3/DEW7kUpmXQqBMnSh3qCTuk4scRFIoaF0fGU/0xByZug==", "dev": true, "requires": { "@octokit/rest": "^16.27.0", @@ -1232,43 +1113,43 @@ "dir-glob": "^3.0.0", "fs-extra": "^8.0.0", "globby": "^10.0.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", - "issue-parser": "^4.0.0", + "http-proxy-agent": "^3.0.0", + "https-proxy-agent": "^4.0.0", + "issue-parser": "^5.0.0", "lodash": "^4.17.4", "mime": "^2.4.3", "p-filter": "^2.0.0", "p-retry": "^4.0.0", - "parse-github-url": "^1.0.1", "url-join": "^4.0.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + }, + "https-proxy-agent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz", + "integrity": "sha512-zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==", "dev": true, "requires": { - "ms": "^2.1.1" + "agent-base": "5", + "debug": "4" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, "@semantic-release/npm": { - "version": "5.1.15", - "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.1.15.tgz", - "integrity": "sha512-MUUKOOtqsX/aJZJIjiAdw7SkCH+D3De060l1HhTlqrwTB7PzMtXcUMen6Prd1Hv8+gknUFkSWhVmi8tIaGDVnA==", + "version": "5.3.5", + "resolved": "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.3.5.tgz", + "integrity": "sha512-AOREQ6rUT8OAiqXvWCp0kMNjcdnLLq1JdP0voZL4l5zf6Tgs/65YA7ctP+9shthW01Ps85Nu0pILW3p9GkaYuw==", "dev": true, "requires": { "@semantic-release/error": "^2.2.0", "aggregate-error": "^3.0.0", - "execa": "^2.0.2", + "execa": "^3.2.0", "fs-extra": "^8.0.0", "lodash": "^4.17.15", "nerf-dart": "^1.0.0", @@ -1276,77 +1157,10 @@ "npm": "^6.10.3", "rc": "^1.2.8", "read-pkg": "^5.0.0", - "registry-auth-token": "^4.0.0" + "registry-auth-token": "^4.0.0", + "tempy": "^0.3.0" }, "dependencies": { - "execa": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/execa/-/execa-2.0.4.tgz", - "integrity": "sha512-VcQfhuGD51vQUQtKIq2fjGDLDbL6N1DTQVpYzxZ7LPIXw3HqTuIz6uxRmpV1qf8i31LHf2kjiaGI+GdHwRgbnQ==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5", - "get-stream": "^5.0.0", - "is-stream": "^2.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^3.0.0", - "onetime": "^5.1.0", - "p-finally": "^2.0.0", - "signal-exit": "^3.0.2", - "strip-final-newline": "^2.0.0" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true - }, - "normalize-url": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.4.1.tgz", - "integrity": "sha512-rjH3yRt0Ssx19mUwS0hrDUOdG9VI+oRLpLHJ7tXRdjcuQ7v7wo6qPvOZppHRrqfslTKr0L2yBhjj4UXd7c3cQg==", - "dev": true - }, - "npm-run-path": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", - "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", - "dev": true, - "requires": { - "path-key": "^3.0.0" - } - }, - "onetime": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", - "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", - "dev": true, - "requires": { - "mimic-fn": "^2.1.0" - } - }, - "p-finally": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", - "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", - "dev": true - }, "parse-json": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", @@ -1359,12 +1173,6 @@ "lines-and-columns": "^1.1.6" } }, - "path-key": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.0.tgz", - "integrity": "sha512-8cChqz0RP6SHJkMt48FW0A7+qUOn+OsnOsVtzI59tZ8m+5bCSk7hzwET0pulwOM2YMn9J1efb07KB9l9f30SGg==", - "dev": true - }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -1376,23 +1184,13 @@ "parse-json": "^5.0.0", "type-fest": "^0.6.0" } - }, - "registry-auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", - "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", - "dev": true, - "requires": { - "rc": "^1.2.8", - "safe-buffer": "^5.0.1" - } } } }, "@semantic-release/release-notes-generator": { - "version": "7.3.0", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.0.tgz", - "integrity": "sha512-6ozBLHM9XZR6Z8PFSKssLtwBYc5l1WOnxj034F8051QOo3TMKDDPKwdj2Niyc+e7ru7tGa3Ftq7nfN0YnD6//A==", + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz", + "integrity": "sha512-LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q==", "dev": true, "requires": { "conventional-changelog-angular": "^5.0.0", @@ -1404,50 +1202,27 @@ "import-from": "^3.0.0", "into-stream": "^5.0.0", "lodash": "^4.17.4", - "read-pkg-up": "^6.0.0" + "read-pkg-up": "^7.0.0" }, "dependencies": { "conventional-changelog-angular": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", - "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz", + "integrity": "sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA==", "dev": true, "requires": { "compare-func": "^1.3.1", "q": "^1.5.1" } }, - "conventional-commits-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.1.tgz", - "integrity": "sha512-P6U5UOvDeidUJ8ebHVDIoXzI7gMlQ1OF/id6oUvp8cnZvOXMt1n8nYl74Ey9YMn0uVQtxmCtjPQawpsssBWtGg==", - "dev": true, - "requires": { - "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", - "split2": "^2.0.0", - "through2": "^2.0.0", - "trim-off-newlines": "^1.0.0" - } - }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "requires": { - "pump": "^3.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "locate-path": { @@ -1459,45 +1234,10 @@ "p-locate": "^4.1.0" } }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - }, - "dependencies": { - "read-pkg-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", - "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", - "dev": true, - "requires": { - "find-up": "^2.0.0", - "read-pkg": "^3.0.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -1536,70 +1276,58 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "read-pkg-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz", - "integrity": "sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==", + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", "dev": true, "requires": { - "find-up": "^4.0.0", - "read-pkg": "^5.1.1", - "type-fest": "^0.5.0" + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" }, "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "read-pkg": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", - "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", - "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" - }, - "dependencies": { - "type-fest": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", - "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", - "dev": true - } - } + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true } } }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + } + }, "type-fest": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", - "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true } } }, "@snyk/cli-interface": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.1.0.tgz", - "integrity": "sha512-b/magC8iNQP9QhSDeV9RQDSaY3sNy57k0UH1Y/sMOSvVLHLsA7dOi/HrPWTiLouyGqcuYzwjkz7bNbu8cwmVDQ==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.0.tgz", + "integrity": "sha512-ecbylK5Ol2ySb/WbfPj0s0GuLQR+KWKFzUgVaoNHaSoN6371qRWwf2uVr+hPUP4gXqCai21Ug/RDArfOhlPwrQ==", "dev": true, "requires": { "tslib": "^1.9.3" } }, "@snyk/cocoapods-lockfile-parser": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-2.0.4.tgz", - "integrity": "sha512-d57bajPjqCiNXMuyMmt9Zt98zbjABZUFw+91B705flzV6oB7OThgtA40Eoin6iatYoStIx28bC3T6b0mScy/iA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.0.0.tgz", + "integrity": "sha512-AebCc+v9vtOL9tFkU4/tommgVsXxqdx6t45kCkBW+FC4PaYvfYEg9Eg/9GqlY9+nFrLFo/uTr+E/aR0AF/KqYA==", "dev": true, "requires": { "@snyk/dep-graph": "^1.11.0", @@ -1612,26 +1340,26 @@ }, "dependencies": { "core-js": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.3.2.tgz", - "integrity": "sha512-S1FfZpeBchkhyoY76YAdFzKS4zz9aOK7EeFaNA2aJlyXyA+sgqz6xdxmLPGXEAf0nF44MVN1kSjrA9Kt3ATDQg==", + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", + "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", "dev": true } } }, "@snyk/composer-lockfile-parser": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.0.3.tgz", - "integrity": "sha512-hb+6E7kMzWlcwfe//ILDoktBPKL2a3+RnJT/CXnzRXaiLQpsdkf5li4q2v0fmvd+4v7L3tTN8KM+//lJyviEkg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.2.0.tgz", + "integrity": "sha512-kZT+HTqgNcQMeoE5NM9M3jj463M8zI7ZxqZXLw9WoyVs5JTt9g0qFWxIG1cNwZdGVI+y7tzZbNWw9BlMD1vCCQ==", "dev": true, "requires": { "lodash": "^4.17.13" } }, "@snyk/dep-graph": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.12.0.tgz", - "integrity": "sha512-n7+PlHn3SqznHgsCpeBRfEvU1oiQydoGkXQlnSB2+tfImiKXvY7YZbrg4wlbvYgylYiTbpCi5CpPNkJG14S+UQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.13.1.tgz", + "integrity": "sha512-Ww2xvm5UQgrq9eV0SdTBCh+w/4oI2rCx5vn1IOSeypaR0CO4p+do1vm3IDZ2ugg4jLSfHP8+LiD6ORESZMkQ2w==", "dev": true, "requires": { "graphlib": "^2.1.5", @@ -1658,14 +1386,14 @@ } }, "@snyk/snyk-cocoapods-plugin": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-1.0.3.tgz", - "integrity": "sha512-AHAA7z23nPi1eHODsDxeSkl73Ze3yphuqJjMl39ie323EzBDcb9g6uAACrk0Qn2K/K2D8uyxMAf2zDtc+JGQfw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.0.1.tgz", + "integrity": "sha512-XVkvaMvMzQ3miJi/YZmsRJSAUfDloYhfg6pXPgzAeAugB4p+cNi01Z68pT62ypB8U/Ugh1Xx2pb9aoOFqBbSjA==", "dev": true, "requires": { "@snyk/cli-interface": "1.5.0", - "@snyk/cocoapods-lockfile-parser": "2.0.4", - "@snyk/dep-graph": "1.13.0", + "@snyk/cocoapods-lockfile-parser": "3.0.0", + "@snyk/dep-graph": "^1.13.1", "source-map-support": "^0.5.7", "tslib": "^1.9.3" }, @@ -1678,20 +1406,6 @@ "requires": { "tslib": "^1.9.3" } - }, - "@snyk/dep-graph": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.13.0.tgz", - "integrity": "sha512-e0XcLH6Kgs/lunf6iDjbxEnm9+JYFEJn6eo/PlEUW+SMWBZ2uEXHBTDNp9oxjJou48PngzWMveEkniBAN+ulOQ==", - "dev": true, - "requires": { - "graphlib": "^2.1.5", - "lodash": "^4.7.14", - "object-hash": "^1.3.1", - "semver": "^6.0.0", - "source-map-support": "^0.5.11", - "tslib": "^1.9.3" - } } } }, @@ -1724,9 +1438,9 @@ } }, "@types/babel__generator": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.0.tgz", - "integrity": "sha512-c1mZUu4up5cp9KROs/QAw0gTeHrw/x7m52LcnvMxxOZ03DmLwPV0MlGmlgzV3cnSdjhJOZsj7E7FHeioai+egw==", + "version": "7.6.1", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", + "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", "dev": true, "requires": { "@babel/types": "^7.0.0" @@ -1743,9 +1457,9 @@ } }, "@types/babel__traverse": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.7.tgz", - "integrity": "sha512-CeBpmX1J8kWLcDEnI3Cl2Eo6RfbGvzUctA+CjZUhOKDFbLfcr7fc4usEqLNWetrlJd7RhAkyYe2czXop4fICpw==", + "version": "7.0.8", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.8.tgz", + "integrity": "sha512-yGeB2dHEdvxjP0y4UbRtQaSkXJ9649fYCmIdRoul5kfAoGCwxuCbMhag0k3RPfnuh9kPGm8x89btcfDEXdVWGw==", "dev": true, "requires": { "@babel/types": "^7.3.0" @@ -1760,6 +1474,12 @@ "@types/node": "*" } }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", + "dev": true + }, "@types/debug": { "version": "4.1.5", "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", @@ -1783,6 +1503,13 @@ "integrity": "sha512-GWtM4fyqfb+bec4ocpo51/y4x0b83Je+iA6eV131LT9wL0//G+1UgwbkMg7w61ceOwR+KkZXK00z44jrrNljWg==", "requires": { "@types/node": "*" + }, + "dependencies": { + "@types/node": { + "version": "13.1.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-13.1.7.tgz", + "integrity": "sha512-HU0q9GXazqiKwviVxg9SI/+t/nAsGkvLDkIdxz+ObejG2nX6Si00TeLqHMoS+a/1tjH7a8YpKVQwtgHuMQsldg==" + } } }, "@types/glob": { @@ -1813,14 +1540,12 @@ "@types/istanbul-lib-coverage": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz", - "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==", - "dev": true + "integrity": "sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg==" }, "@types/istanbul-lib-report": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", "integrity": "sha512-3BUTyMzbZa2DtDI2BkERNC6jJw2Mr2Y0oGI7mRxYNBPxppbtEK1F66u3bKwU2g+wxwWI7PAoRpJnOY1grJqzHg==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "*" } @@ -1829,12 +1554,19 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", - "dev": true, "requires": { "@types/istanbul-lib-coverage": "*", "@types/istanbul-lib-report": "*" } }, + "@types/jest": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-24.9.0.tgz", + "integrity": "sha512-dXvuABY9nM1xgsXlOtLQXJKdacxZJd7AtvLsKZ/0b57ruMXDKCOXAC/M75GbllQX6o1pcZ5hAG4JzYy7Z/wM2w==", + "requires": { + "jest-diff": "^24.3.0" + } + }, "@types/js-yaml": { "version": "3.12.1", "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.1.tgz", @@ -1848,9 +1580,9 @@ "dev": true }, "@types/node": { - "version": "11.13.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-11.13.22.tgz", - "integrity": "sha512-rOsaPRUGTOXbRBOKToy4cgZXY4Y+QSVhxcLwdEveozbk7yuudhWMpxxcaXqYizLMP3VY7OcWCFtx9lGFh5j5kg==" + "version": "11.15.4", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.15.4.tgz", + "integrity": "sha512-z7deEbNOPcS7pb7uyaZhbITh18ruGghYh86VmUL2zJPKeu9tEAqF0goQH0dhWamHoBJpkyWroNxPZjzNvbYVCw==" }, "@types/normalize-package-data": { "version": "2.4.0", @@ -1858,6 +1590,12 @@ "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==", "dev": true }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, "@types/restify": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/@types/restify/-/restify-4.3.6.tgz", @@ -1905,19 +1643,17 @@ } }, "@types/yargs": { - "version": "13.0.3", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.3.tgz", - "integrity": "sha512-K8/LfZq2duW33XW/tFwEAfnZlqIfVsoyRB3kfXdPXYhl0nfM8mmh7GS0jg7WrX2Dgq/0Ha/pR1PaR+BvmWwjiQ==", - "dev": true, + "version": "13.0.5", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.5.tgz", + "integrity": "sha512-CF/+sxTO7FOwbIRL4wMv0ZYLCRfMid2HQpzDRyViH7kSpfoAFiMdGqKIxb1PxWfjtQXQhnQuD33lvRHNwr809Q==", "requires": { "@types/yargs-parser": "*" } }, "@types/yargs-parser": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz", - "integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==", - "dev": true + "version": "15.0.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz", + "integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==" }, "@voxpelli/semver-set": { "version": "1.0.1", @@ -1955,9 +1691,9 @@ } }, "abab": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz", - "integrity": "sha512-2scffjvioEmNz0OyDSLGWDfKCVwaKc6l9Pm9kOIREU13ClXZvHpg/nRL5xyjSSSLhOnXqft2HpsAzNEEA8cFFg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", + "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", "dev": true }, "abbrev": { @@ -1983,9 +1719,9 @@ }, "dependencies": { "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true }, "acorn-walk": { @@ -1997,9 +1733,9 @@ } }, "acorn-jsx": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.2.tgz", - "integrity": "sha512-tiNTrP1MP0QrChmD2DdupCr6HWSFeKVw5d/dHTu4Y7rkAkRhU/Dt7dphAfIUyxtHpl/eBVip5uTNSpQJHylpAw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.1.0.tgz", + "integrity": "sha512-tMUqwBWfLFbJbizRmEcWSLw6HnFzfdJs2sOJEOwwtVPMoH/0Ay+E703oZz78VSXZiiDcZrQ5XKjPIUQixhmgVw==", "dev": true }, "acorn-node": { @@ -2029,13 +1765,21 @@ } }, "aggregate-error": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.0.tgz", - "integrity": "sha512-yKD9kEoJIR+2IFqhMwayIBgheLYbB3PS2OBhWae1L/ODTd/JF/30cW0bc9TqzRL3k4U41Dieu3BF4I29p8xesA==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", + "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "dev": true, "requires": { "clean-stack": "^2.0.0", - "indent-string": "^3.2.0" + "indent-string": "^4.0.0" + }, + "dependencies": { + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + } } }, "ajv": { @@ -2072,16 +1816,14 @@ "dev": true }, "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, "requires": { "color-convert": "^1.9.0" } @@ -2192,12 +1934,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -2300,12 +2036,6 @@ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", "dev": true }, - "array-uniq": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz", - "integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==", - "dev": true - }, "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", @@ -2383,6 +2113,12 @@ "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", "dev": true }, + "ast-types": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.13.2.tgz", + "integrity": "sha512-uWMHxJxtfj/1oZClOxDEV1sQ1HCDkA4MG8Gr69KKeBjEVH0R84WlejZ0y2DcwyBlpAEMltmVYkVgqfLFb2oyiA==", + "dev": true + }, "astral-regex": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", @@ -2433,9 +2169,9 @@ "dev": true }, "aws4": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", - "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz", + "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==", "dev": true }, "axios": { @@ -2502,9 +2238,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -2642,12 +2378,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -2678,6 +2408,16 @@ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", "dev": true }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, "bl": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/bl/-/bl-3.0.0.tgz", @@ -2685,12 +2425,25 @@ "dev": true, "requires": { "readable-stream": "^3.0.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "bluebird": { - "version": "3.5.5", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz", - "integrity": "sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", "dev": true }, "bn.js": { @@ -2765,6 +2518,18 @@ "safe-buffer": "^5.1.1", "through2": "^2.0.0", "umd": "^3.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "browser-process-hrtime": { @@ -2858,59 +2623,14 @@ "typedarray": "^0.0.6" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "safe-buffer": "~5.2.0" - }, - "dependencies": { - "safe-buffer": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz", - "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==", - "dev": true - } + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } @@ -2986,10 +2706,18 @@ "pako": "~1.0.5" } }, + "bs-logger": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", + "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", + "requires": { + "fast-json-stable-stringify": "2.x" + } + }, "bser": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.0.tgz", - "integrity": "sha512-8zsjWrQkkBoLK6uxASk1nJ2SKv97ltiGDo6A3wA0/yRPz+CwmEyDo0hUrhIuukG2JHpAl3bvFIixw2/3Hi0DOg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "requires": { "node-int64": "^0.4.0" @@ -3041,8 +2769,7 @@ "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "buffer-xor": { "version": "1.0.3", @@ -3062,6 +2789,12 @@ "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", "dev": true }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, "cache-base": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", @@ -3201,7 +2934,6 @@ "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", @@ -3294,6 +3026,12 @@ } } }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", @@ -3309,6 +3047,15 @@ "kind-of": "^3.0.2" } }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3328,9 +3075,9 @@ } }, "ci-info": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", - "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, "cipher-base": { @@ -3387,6 +3134,12 @@ "restore-cursor": "^2.0.0" } }, + "cli-spinner": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/cli-spinner/-/cli-spinner-0.2.10.tgz", + "integrity": "sha512-U0sSQ+JJvSLi1pAYuJykwiA8Dsr15uHEy85iCJ6A+0DjVxivr3d+N2Wjvodeg89uP5K6TswFkKBfAD7B3YSn/Q==", + "dev": true + }, "cli-table": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", @@ -3464,59 +3217,34 @@ "dev": true }, "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "dev": true, "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wrap-ansi": "^2.0.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" + "ansi-regex": "^4.1.0" } } } @@ -3531,6 +3259,23 @@ "is-plain-object": "^2.0.1", "kind-of": "^3.2.2", "shallow-clone": "^0.1.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "co": { @@ -3572,7 +3317,6 @@ "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, "requires": { "color-name": "1.1.3" } @@ -3580,8 +3324,7 @@ "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" }, "colors": { "version": "1.4.0", @@ -3601,10 +3344,10 @@ "source-map": "~0.5.3" }, "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", "dev": true } } @@ -3618,9 +3361,9 @@ } }, "commander": { - "version": "2.20.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", - "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", "dev": true }, "compare-func": { @@ -3631,17 +3374,6 @@ "requires": { "array-ify": "^1.0.0", "dot-prop": "^3.0.0" - }, - "dependencies": { - "dot-prop": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", - "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", - "dev": true, - "requires": { - "is-obj": "^1.0.0" - } - } } }, "component-emitter": { @@ -3666,6 +3398,19 @@ "inherits": "^2.0.3", "readable-stream": "^3.0.2", "typedarray": "^0.0.6" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "configstore": { @@ -3680,16 +3425,33 @@ "unique-string": "^1.0.0", "write-file-atomic": "^2.0.0", "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + } } }, "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true, - "requires": { - "date-now": "^0.1.4" - } + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true }, "constants-browserify": { "version": "1.0.0", @@ -3707,104 +3469,58 @@ "q": "^1.5.1" } }, + "conventional-changelog-conventionalcommits": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.1.tgz", + "integrity": "sha512-vC02KucnkNNap+foDKFm7BVUSDAXktXrUJqGszUuYnt6T0J2azsbYz/w9TDc3VsrW2v6JOtiQWVcgZnporHr4Q==", + "dev": true, + "requires": { + "compare-func": "^1.3.1", + "lodash": "^4.2.1", + "q": "^1.5.1" + } + }, "conventional-changelog-writer": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz", - "integrity": "sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw==", + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz", + "integrity": "sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw==", "dev": true, "requires": { "compare-func": "^1.3.1", "conventional-commits-filter": "^2.0.2", "dateformat": "^3.0.0", - "handlebars": "^4.1.2", + "handlebars": "^4.4.0", "json-stringify-safe": "^5.0.1", - "lodash": "^4.2.1", - "meow": "^4.0.0", + "lodash": "^4.17.15", + "meow": "^5.0.0", "semver": "^6.0.0", "split": "^1.0.0", "through2": "^3.0.0" - }, - "dependencies": { - "conventional-commits-filter": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", - "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", - "dev": true, - "requires": { - "lodash.ismatch": "^4.4.0", - "modify-values": "^1.0.0" - } - }, - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - }, - "through2": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", - "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", - "dev": true, - "requires": { - "readable-stream": "2 || 3" - } - } } }, "conventional-commits-filter": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.1.tgz", - "integrity": "sha512-92OU8pz/977udhBjgPEbg3sbYzIxMDFTlQT97w7KdhR9igNqdJvy8smmedAAgn4tPiqseFloKkrVfbXCVd+E7A==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", + "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", "dev": true, "requires": { - "is-subset": "^0.1.1", + "lodash.ismatch": "^4.4.0", "modify-values": "^1.0.0" } }, "conventional-commits-parser": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-2.1.7.tgz", - "integrity": "sha512-BoMaddIEJ6B4QVMSDu9IkVImlGOSGA1I2BQyOZHeLQ6qVOJLcLKn97+fL6dGbzWEiqDzfH4OkcveULmeq2MHFQ==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz", + "integrity": "sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==", "dev": true, "requires": { "JSONStream": "^1.0.4", - "is-text-path": "^1.0.0", - "lodash": "^4.2.1", - "meow": "^4.0.0", + "is-text-path": "^1.0.1", + "lodash": "^4.17.15", + "meow": "^5.0.0", "split2": "^2.0.0", - "through2": "^2.0.0", + "through2": "^3.0.0", "trim-off-newlines": "^1.0.0" - }, - "dependencies": { - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - } } }, "convert-source-map": { @@ -3820,9 +3536,9 @@ "dev": true }, "core-js": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", - "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", + "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==", "dev": true }, "core-util-is": { @@ -3908,24 +3624,14 @@ } }, "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", + "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", "dev": true, "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "crypto-browserify": { @@ -3977,6 +3683,15 @@ "array-find-index": "^1.0.1" } }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, "dargs": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/dargs/-/dargs-4.1.0.tgz", @@ -4001,6 +3716,12 @@ "assert-plus": "^1.0.0" } }, + "data-uri-to-buffer": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-1.2.0.tgz", + "integrity": "sha512-vKQ9DTQPN1FLYiiEEOQ6IBGFqvjCa5rSK3cWMy/Nespm5d/x3dGFT9UBZnkLxCwua/IXBi2TYnwTEpsOvhC4UQ==", + "dev": true + }, "data-urls": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", @@ -4013,9 +3734,9 @@ }, "dependencies": { "whatwg-url": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", - "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "dev": true, "requires": { "lodash.sortby": "^4.7.0", @@ -4031,12 +3752,6 @@ "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", "dev": true }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, "dateformat": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", @@ -4044,11 +3759,18 @@ "dev": true }, "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.0.0" + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } } }, "debuglog": { @@ -4152,12 +3874,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -4167,11 +3883,36 @@ "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", "dev": true }, + "degenerator": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", + "integrity": "sha1-/PSQo37OJmRk2cxDGrmMWBnO0JU=", + "dev": true, + "requires": { + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, "dependency-lint": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/dependency-lint/-/dependency-lint-5.0.1.tgz", @@ -4244,21 +3985,33 @@ "dev": true }, "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", "dev": true, "requires": { "JSONStream": "^1.0.3", - "shasum": "^1.0.0", + "shasum-object": "^1.0.0", "subarg": "^1.0.0", "through2": "^2.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "dev": true, "requires": { "inherits": "^2.0.1", @@ -4293,16 +4046,15 @@ } }, "diff": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", - "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true }, "diff-sequences": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.9.0.tgz", - "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==", - "dev": true + "integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==" }, "diffie-hellman": { "version": "5.0.3", @@ -4372,9 +4124,9 @@ } }, "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", + "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", "dev": true, "requires": { "is-obj": "^1.0.0" @@ -4386,15 +4138,15 @@ "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==" }, "dotnet-deps-parser": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/dotnet-deps-parser/-/dotnet-deps-parser-4.5.2.tgz", - "integrity": "sha512-bk5Q1luEwQ10rrBwZbtTxUNadaLz2dM6xzOLoTK+oUBcaq6saCeELmkIgdG+Fwkn58XRgLQvOySVS0gp4OG6RA==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/dotnet-deps-parser/-/dotnet-deps-parser-4.9.0.tgz", + "integrity": "sha512-V0O+7pI7Ei+iL5Kgy6nYq1UTwzrpqci5K/zf8cXyP5RWBSQBUl/JOE9I67zLUkKiwOdfPhbMQgcRj/yGA+NL1A==", "dev": true, "requires": { "@types/xml2js": "0.4.3", "lodash": "^4.17.11", "source-map-support": "^0.5.7", - "tslib": "^1.9.3", + "tslib": "^1.10.0", "xml2js": "0.4.19" }, "dependencies": { @@ -4417,44 +4169,6 @@ "dev": true, "requires": { "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "duplexer3": { @@ -4488,9 +4202,9 @@ "dev": true }, "elliptic": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz", - "integrity": "sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg==", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", + "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "dev": true, "requires": { "bn.js": "^4.4.0", @@ -4530,12 +4244,12 @@ "dev": true }, "env-ci": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-4.1.1.tgz", - "integrity": "sha512-eTgpkALDeYRGNhYM2fO9LKsWDifoUgKL7hxpPZqFMP2IU7f+r89DtKqCmk3yQB/jxS8CmZTfKnWO5TiIDFs9Hw==", + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/env-ci/-/env-ci-4.5.2.tgz", + "integrity": "sha512-lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ==", "dev": true, "requires": { - "execa": "^1.0.0", + "execa": "^3.2.0", "java-properties": "^1.0.0" } }, @@ -4549,27 +4263,28 @@ } }, "es-abstract": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", - "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.2.tgz", + "integrity": "sha512-YoKuru3Lyoy7yVTBSH2j7UxTqe/je3dWAruC0sHvZX1GNd5zX8SSLvQqEgO9b3Ex8IW+goFI9arEEsFIbulhOw==", "dev": true, "requires": { - "es-to-primitive": "^1.2.0", + "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.0", - "is-callable": "^1.1.4", - "is-regex": "^1.0.4", - "object-inspect": "^1.6.0", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", "object-keys": "^1.1.1", - "string.prototype.trimleft": "^2.0.0", - "string.prototype.trimright": "^2.0.0" + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", - "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "requires": { "is-callable": "^1.1.4", @@ -4577,6 +4292,26 @@ "is-symbol": "^1.0.2" } }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, "es6-promise": { "version": "4.2.8", "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", @@ -4592,16 +4327,24 @@ "es6-promise": "^4.0.3" } }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, "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 + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz", - "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==", + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz", + "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==", "dev": true, "requires": { "esprima": "^3.1.3", @@ -4609,6 +4352,21 @@ "esutils": "^2.0.2", "optionator": "^0.8.1", "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + } } }, "eslint": { @@ -4655,13 +4413,17 @@ "text-table": "^0.2.0" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, "ignore": { @@ -4670,10 +4432,10 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", "dev": true }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, "semver": { @@ -4682,13 +4444,28 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "isexe": "^2.0.0" } } } @@ -4749,9 +4526,9 @@ } }, "eslint-plugin-prettier": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.1.tgz", - "integrity": "sha512-A+TZuHZ0KU0cnn56/9mfR7/KjUJ9QNVXUhwvRFSR7PGPe0zQR6PTkmyqg1AtUUEOzTqeRsUwyKFh0oVZKVCrtA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz", + "integrity": "sha512-GlolCC9y3XZfv3RQfwGew7NnuFDKsfI4lbvRK+PIIo23SFH+LemGs4cKwzAaRa+Mdb+lQO/STaIayno8T5sJJA==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -4768,12 +4545,12 @@ } }, "eslint-utils": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.2.tgz", - "integrity": "sha512-eAZS2sEUMlIeCjBeubdj45dmBHQwPHWyBcT1VSYB7o9x9WRRqKxyUoiXlRjyAwzN7YEzHJlYg0NmzDRWx6GP4Q==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", + "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "dev": true, "requires": { - "eslint-visitor-keys": "^1.0.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -4794,17 +4571,17 @@ }, "dependencies": { "acorn": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.3.0.tgz", - "integrity": "sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==", + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.0.tgz", + "integrity": "sha512-gac8OEcQ2Li1dxIEWGZzsp2BitJxwkwcOm0zHAJLcPJaVvm58FRnk6RkuLRpU1EujipU2ZFODv2P9DLMfnV8mw==", "dev": true } } }, "esprima": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", - "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, "esquery": { @@ -4854,24 +4631,27 @@ } }, "exec-sh": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz", - "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==", + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz", + "integrity": "sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==", "dev": true }, "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz", + "integrity": "sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==", "dev": true, "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" } }, "exit": { @@ -4944,6 +4724,21 @@ "jest-regex-util": "^24.9.0" } }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.0.0.tgz", + "integrity": "sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==" + } + } + }, "extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", @@ -5038,12 +4833,6 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -5066,24 +4855,22 @@ "dev": true }, "fast-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.0.4.tgz", - "integrity": "sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz", + "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==", "dev": true, "requires": { - "@nodelib/fs.stat": "^2.0.1", - "@nodelib/fs.walk": "^1.2.1", - "glob-parent": "^5.0.0", - "is-glob": "^4.0.1", - "merge2": "^1.2.3", + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.0", + "merge2": "^1.3.0", "micromatch": "^4.0.2" } }, "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, "fast-levenshtein": { "version": "2.0.6", @@ -5091,6 +4878,12 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "fast-safe-stringify": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", + "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", + "dev": true + }, "fastq": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", @@ -5101,12 +4894,12 @@ } }, "fb-watchman": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", - "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", "dev": true, "requires": { - "bser": "^2.0.0" + "bser": "2.1.1" } }, "figures": { @@ -5132,6 +4925,12 @@ "resolved": "https://registry.npmjs.org/file-type/-/file-type-7.7.1.tgz", "integrity": "sha512-bTrKkzzZI6wH+NXhyD3SOXtb2zXTw2SbwI2RxUlRcXVsnN7jNL5hJzVQLYv7FOQhxFkK4XWdAflEaWFpaLLWpQ==" }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true + }, "fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -5157,12 +4956,11 @@ } }, "find-versions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz", - "integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", + "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", "dev": true, "requires": { - "array-uniq": "^2.1.0", "semver-regex": "^2.0.0" } }, @@ -5200,6 +4998,16 @@ "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", "requires": { "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + } } }, "for-in": { @@ -5250,44 +5058,6 @@ "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.0" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "fs-constants": { @@ -5314,14 +5084,15 @@ "dev": true }, "fsevents": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", - "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.11.tgz", + "integrity": "sha512-+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==", "dev": true, "optional": true, "requires": { + "bindings": "^1.5.0", "nan": "^2.12.1", - "node-pre-gyp": "^0.12.0" + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -5369,7 +5140,7 @@ } }, "chownr": { - "version": "1.1.1", + "version": "1.1.3", "bundled": true, "dev": true, "optional": true @@ -5399,7 +5170,7 @@ "optional": true }, "debug": { - "version": "4.1.1", + "version": "3.2.6", "bundled": true, "dev": true, "optional": true, @@ -5426,12 +5197,12 @@ "optional": true }, "fs-minipass": { - "version": "1.2.5", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -5457,7 +5228,7 @@ } }, "glob": { - "version": "7.1.3", + "version": "7.1.6", "bundled": true, "dev": true, "optional": true, @@ -5486,7 +5257,7 @@ } }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "optional": true, @@ -5505,7 +5276,7 @@ } }, "inherits": { - "version": "2.0.3", + "version": "2.0.4", "bundled": true, "dev": true, "optional": true @@ -5547,7 +5318,7 @@ "optional": true }, "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "optional": true, @@ -5557,12 +5328,12 @@ } }, "minizlib": { - "version": "1.2.1", + "version": "1.3.3", "bundled": true, "dev": true, "optional": true, "requires": { - "minipass": "^2.2.1" + "minipass": "^2.9.0" } }, "mkdirp": { @@ -5575,24 +5346,24 @@ } }, "ms": { - "version": "2.1.1", + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, "needle": { - "version": "2.3.0", + "version": "2.4.0", "bundled": true, "dev": true, "optional": true, "requires": { - "debug": "^4.1.0", + "debug": "^3.2.6", "iconv-lite": "^0.4.4", "sax": "^1.2.4" } }, "node-pre-gyp": { - "version": "0.12.0", + "version": "0.14.0", "bundled": true, "dev": true, "optional": true, @@ -5606,7 +5377,7 @@ "rc": "^1.2.7", "rimraf": "^2.6.1", "semver": "^5.3.0", - "tar": "^4" + "tar": "^4.4.2" } }, "nopt": { @@ -5620,13 +5391,22 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true }, "npm-packlist": { - "version": "1.4.1", + "version": "1.4.7", "bundled": true, "dev": true, "optional": true, @@ -5697,7 +5477,7 @@ "optional": true }, "process-nextick-args": { - "version": "2.0.0", + "version": "2.0.1", "bundled": true, "dev": true, "optional": true @@ -5738,7 +5518,7 @@ } }, "rimraf": { - "version": "2.6.3", + "version": "2.7.1", "bundled": true, "dev": true, "optional": true, @@ -5765,7 +5545,7 @@ "optional": true }, "semver": { - "version": "5.7.0", + "version": "5.7.1", "bundled": true, "dev": true, "optional": true @@ -5818,18 +5598,18 @@ "optional": true }, "tar": { - "version": "4.4.8", + "version": "4.4.13", "bundled": true, "dev": true, "optional": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.4", - "minizlib": "^1.1.1", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", - "yallist": "^3.0.2" + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -5854,13 +5634,49 @@ "optional": true }, "yallist": { - "version": "3.0.3", + "version": "3.1.1", "bundled": true, "dev": true, "optional": true } } }, + "ftp": { + "version": "0.3.10", + "resolved": "https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz", + "integrity": "sha1-kZfYYa2BQvPmPVqDv+TFn3MwiF0=", + "dev": true, + "requires": { + "readable-stream": "1.1.x", + "xregexp": "2.0.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -5873,6 +5689,12 @@ "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", "dev": true }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", + "integrity": "sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==", + "dev": true + }, "get-assigned-identifiers": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", @@ -5886,9 +5708,9 @@ "dev": true }, "get-own-enumerable-property-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.0.tgz", - "integrity": "sha512-CIJYJC4GGF06TakLg8z4GQKvDsx9EMspVxOYih7LerEL/WosUnFIww45CGfxfeKHqlg3twgUrYRT1O3WQqjGCg==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", "dev": true }, "get-stdin": { @@ -5898,14 +5720,39 @@ "dev": true }, "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", "dev": true, "requires": { "pump": "^3.0.0" } }, + "get-uri": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.4.tgz", + "integrity": "sha512-v7LT/s8kVjs+Tx0ykk1I+H/rbpzkHvuIq87LmeXptcf5sNWm9uQiwjNAt94SJPA1zOlCntmnOlJvVWKmzsxG8Q==", + "dev": true, + "requires": { + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "~3.0.2", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", @@ -5943,39 +5790,30 @@ "requires": { "through2": "~2.0.0" } + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } } } }, "git-raw-commits": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-1.3.6.tgz", - "integrity": "sha512-svsK26tQ8vEKnMshTDatSIQSMDdz8CxIIqKsvPqbtV23Etmw6VNaFAitu8zwZ0VrOne7FztwPyRLxK7/DIUTQg==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.3.tgz", + "integrity": "sha512-SoSsFL5lnixVzctGEi2uykjA7B5I0AhO9x6kdzvGRHbxsa6JSEgrgy1esRKsfOKE1cgyOJ/KDR2Trxu157sb8w==", "dev": true, "requires": { "dargs": "^4.0.1", "lodash.template": "^4.0.2", - "meow": "^4.0.0", + "meow": "^5.0.0", "split2": "^2.0.0", - "through2": "^2.0.0" - }, - "dependencies": { - "meow": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/meow/-/meow-4.0.1.tgz", - "integrity": "sha512-xcSBHD5Z86zaOc+781KrupuHAzeGXSLtiAOmBsiLDiPSaYSB6hdew2ng9EBAnZ62jagG9MHAOdxpDi/lWBFJ/A==", - "dev": true, - "requires": { - "camelcase-keys": "^4.0.0", - "decamelize-keys": "^1.0.0", - "loud-rejection": "^1.0.0", - "minimist": "^1.1.3", - "minimist-options": "^3.0.1", - "normalize-package-data": "^2.3.4", - "read-pkg-up": "^3.0.0", - "redent": "^2.0.0", - "trim-newlines": "^2.0.0" - } - } + "through2": "^3.0.0" } }, "git-up": { @@ -5998,9 +5836,9 @@ } }, "glob": { - "version": "7.1.4", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", + "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "dev": true, "requires": { "fs.realpath": "^1.0.0", @@ -6036,9 +5874,9 @@ "dev": true }, "globby": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.1.tgz", - "integrity": "sha512-sSs4inE1FB2YQiymcmTv6NWENryABjUNPeWhOvmn4SjtKybglsyPZxFB3U1/+L1bYi0rNZDqCLlHyLYDl1Pq5A==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz", + "integrity": "sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==", "dev": true, "requires": { "@types/glob": "^7.1.1", @@ -6075,22 +5913,28 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true } } }, "graceful-fs": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", - "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", + "integrity": "sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==", "dev": true }, "graphlib": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.7.tgz", - "integrity": "sha512-TyI9jIy2J4j0qgPmOOrHTCtpPqJGN/aurBwc6ZT+bRii+di1I+Wv3obRhVrmBEXet+qkMaEX67dXrwsd3QQM6w==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", + "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", "dev": true, "requires": { - "lodash": "^4.17.5" + "lodash": "^4.17.15" } }, "growly": { @@ -6100,9 +5944,9 @@ "dev": true }, "handlebars": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.3.1.tgz", - "integrity": "sha512-c0HoNHzDiHpBt4Kqe99N8tdLPKAnGCQ73gYMPWtAYM4PwGnf7xl8PBUHJqh9ijlzt2uQKaSRxbXRt+rZ7M2/kA==", + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.2.tgz", + "integrity": "sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==", "dev": true, "requires": { "neo-async": "^2.6.0", @@ -6111,14 +5955,20 @@ "uglify-js": "^3.1.4" }, "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, "uglify-js": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", - "integrity": "sha512-W+jrUHJr3DXKhrsS7NUVxn3zqMOFn0hL/Ei6v0anCIMoKC93TjcflTagwIHLW7SfMFfiQuktQyFVCFHGUE0+yg==", + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.7.5.tgz", + "integrity": "sha512-GFZ3EXRptKGvb/C1Sq6nO1iI7AGcjyqmIyOw0DrD0675e+NNbGO72xmMM2iEBdFbxaTLo70NbjM/Wy54uZIlsg==", "dev": true, "optional": true, "requires": { - "commander": "~2.20.0", + "commander": "~2.20.3", "source-map": "~0.6.1" } } @@ -6169,13 +6019,12 @@ "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "has-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", - "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", + "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", "dev": true }, "has-value": { @@ -6257,10 +6106,13 @@ } }, "highlight.js": { - "version": "9.15.10", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.10.tgz", - "integrity": "sha512-RoV7OkQm0T3os3Dd2VHLNMoaoDVx77Wygln3n9l5YV172XonWG6rgQD3XnF/BuFFZw9A0TJgmMSO8FEWQgvcXw==", - "dev": true + "version": "9.17.1", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.17.1.tgz", + "integrity": "sha512-TA2/doAur5Ol8+iM3Ov7qy3jYcr/QiJ2eDTdRF4dfbjG7AaaB99J5G+zSl11ljbl6cIcahgPY6SKb3sC3EJ0fw==", + "dev": true, + "requires": { + "handlebars": "^4.5.3" + } }, "hmac-drbg": { "version": "1.0.1", @@ -6280,9 +6132,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", - "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.5.tgz", + "integrity": "sha512-kssjab8CvdXfcXMXVcvsXum4Hwdq9XGtRD3TteMEvEbq0LXyiNQr6AprqKqfeaDXze7SxWvRxdpwE6ku7ikLkg==", "dev": true }, "html-encoding-sniffer": { @@ -6294,20 +6146,47 @@ "whatwg-encoding": "^1.0.1" } }, + "html-escaper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.0.tgz", + "integrity": "sha512-a4u9BeERWGu/S8JiWEAQcdrg9v4QArtP9keViQjGMdff20fBdd8waotXaNmODqBe6uZ3Nafi7K/ho4gCQHV3Ig==", + "dev": true + }, "htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", "dev": true }, + "http-errors": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz", + "integrity": "sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz", + "integrity": "sha512-uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==", "dev": true, "requires": { - "agent-base": "4", - "debug": "3.1.0" + "agent-base": "5", + "debug": "4" + }, + "dependencies": { + "agent-base": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz", + "integrity": "sha512-TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==", + "dev": true + } } }, "http-signature": { @@ -6328,15 +6207,38 @@ "dev": true }, "https-proxy-agent": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.2.tgz", - "integrity": "sha512-c8Ndjc9Bkpfx/vCJueCPy0jlP4ccCCSNDp8xwCZzPjKJUm+B+u9WX2x98Qx4n1PiMNTWo3D7KK5ifNV/yJyRzg==", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { "agent-base": "^4.3.0", "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "dev": true + }, "husky": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/husky/-/husky-2.7.0.tgz", @@ -6355,11 +6257,33 @@ "slash": "^3.0.0" }, "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } }, "find-up": { "version": "3.0.0", @@ -6370,15 +6294,21 @@ "locate-path": "^3.0.0" } }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "pump": "^3.0.0" } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, "locate-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", @@ -6389,10 +6319,25 @@ "path-exists": "^3.0.0" } }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6425,6 +6370,12 @@ "lines-and-columns": "^1.1.6" } }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -6436,17 +6387,48 @@ "parse-json": "^5.0.0", "type-fest": "^0.6.0" } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, "ibm-cloud-sdk-core": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/ibm-cloud-sdk-core/-/ibm-cloud-sdk-core-1.3.1.tgz", - "integrity": "sha512-fGaJxJeXWGjHQ478vPUm2RSxUXjNEaoy3mpaUG4iQvJ6Yi29Mw/qtz6IoNEzoowSKvsW/whqblVEqiOBGRTrog==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/ibm-cloud-sdk-core/-/ibm-cloud-sdk-core-2.0.3.tgz", + "integrity": "sha512-XyupHUzyxGAC/i/uTGsMkQkKhPuTfmI+6o/b20laOn8bEdCk3C9lShSuiMt/5GWuqmBWkxOpxTm6u6XeLwRryQ==", "requires": { "@types/extend": "~3.0.0", "@types/file-type": "~5.2.1", "@types/isstream": "^0.1.0", + "@types/jest": "^24.0.23", "@types/node": "~10.14.19", "axios": "^0.18.0", "camelcase": "^5.3.1", @@ -6462,26 +6444,47 @@ "object.omit": "~3.0.0", "object.pick": "~1.3.0", "semver": "^6.2.0", - "vcap_services": "~0.3.4" + "ts-jest": "^24.2.0" }, "dependencies": { + "@types/extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.1.tgz", + "integrity": "sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw==" + }, + "@types/isstream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@types/isstream/-/isstream-0.1.0.tgz", + "integrity": "sha512-jo6R5XtVMgu1ej3H4o9NXiUE/4ZxyxmDrGslGiBa4/ugJr+Olw2viio/F2Vlc+zrwC9HJzuApOCCVC2g5jqV0w==" + }, "@types/node": { "version": "10.14.22", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.22.tgz", "integrity": "sha512-9taxKC944BqoTVjE+UT3pQH0nHZlTvITwfsOZqyc+R3sfJuxaTtxWjfn1K2UlxyPcKHf0rnaXcVFrS9F9vf0bw==" }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "axios": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.18.1.tgz", + "integrity": "sha512-0BfJq4NSfQXd+SkFdrvFbG7addhYSBA2mQwISr46pD6E5iqkWg02RAs8vyTT/j0RTnoYmeXauBuSv1qKwR179g==", "requires": { - "ms": "^2.1.1" + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" } } }, @@ -6507,9 +6510,9 @@ "dev": true }, "ignore-walk": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.2.tgz", - "integrity": "sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", "dev": true, "requires": { "minimatch": "^3.0.4" @@ -6522,9 +6525,9 @@ "dev": true }, "import-fresh": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.1.0.tgz", - "integrity": "sha512-PpuksHKGt8rXfWEr9m9EHIpgyyaltBy8+eF6GJM0QCAxMgxCfucMF3mjecK2QsJr0amJW7gTqh5/wht0z2UhEQ==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -6584,9 +6587,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -6659,14 +6662,6 @@ "dev": true, "requires": { "source-map": "~0.5.3" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } } }, "inquirer": { @@ -6688,6 +6683,17 @@ "string-width": "^2.1.0", "strip-ansi": "^5.1.0", "through": "^2.3.6" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } } }, "insert-module-globals": { @@ -6726,40 +6732,14 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } @@ -6793,13 +6773,13 @@ "dev": true }, "into-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.0.tgz", - "integrity": "sha512-cbDhb8qlxKMxPBk/QxTtYg1DQ4CwXmadu7quG3B7nrJsgSncEreF2kwWKZFdnjc/lSNNIkFPsjI7SM0Cx/QXPw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz", + "integrity": "sha512-krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==", "dev": true, "requires": { "from2": "^2.3.0", - "p-is-promise": "^2.0.0" + "p-is-promise": "^3.0.0" } }, "invariant": { @@ -6817,6 +6797,12 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", @@ -6824,6 +6810,23 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-arrayish": { @@ -6842,23 +6845,23 @@ } }, "is-buffer": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz", - "integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==" }, "is-callable": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", - "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", + "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==", "dev": true }, "is-ci": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", - "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "dev": true, "requires": { - "ci-info": "^1.5.0" + "ci-info": "^2.0.0" } }, "is-data-descriptor": { @@ -6868,12 +6871,29 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "is-date-object": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", + "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", "dev": true }, "is-descriptor": { @@ -7009,12 +7029,12 @@ "dev": true }, "is-regex": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", + "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "dev": true, "requires": { - "has": "^1.0.1" + "has": "^1.0.3" } }, "is-regexp": { @@ -7039,24 +7059,18 @@ } }, "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-subset": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-subset/-/is-subset-0.1.1.tgz", - "integrity": "sha1-ilkRfZMt4d4A8kX83TnOQ/HpOaY=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", "dev": true }, "is-symbol": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", - "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", + "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "dev": true, "requires": { - "has-symbols": "^1.0.0" + "has-symbols": "^1.0.1" } }, "is-text-path": { @@ -7086,9 +7100,9 @@ "dev": true }, "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -7108,9 +7122,9 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "issue-parser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-4.0.0.tgz", - "integrity": "sha512-1RmmAXHl5+cqTZ9dRr861xWy0Gkc9TWTEklgjKv+nhlB1dY1NmGBV8b20jTWRL5cPGpOIXkz84kEcDBM8Nc0cw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/issue-parser/-/issue-parser-5.0.0.tgz", + "integrity": "sha512-q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q==", "dev": true, "requires": { "lodash.capitalize": "^4.2.1", @@ -7152,28 +7166,6 @@ "supports-color": "^6.1.0" }, "dependencies": { - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, "supports-color": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", @@ -7198,52 +7190,21 @@ "source-map": "^0.6.1" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true } } }, "istanbul-reports": { - "version": "2.2.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.6.tgz", - "integrity": "sha512-SKi4rnMyLBKe0Jy2uUdx28h8oG7ph2PPuQPvIAh31d+Ci+lSiEu4C+h3oBPuJ9+mPKhOyW0M8gY4U5NM1WLeXA==", + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", + "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", "dev": true, "requires": { - "handlebars": "^4.1.2" + "html-escaper": "^2.0.0" } }, "java-properties": { @@ -7262,45 +7223,10 @@ "jest-cli": "^24.9.0" }, "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, - "jest-cli": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", - "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", + "jest-cli": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", + "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", "dev": true, "requires": { "@jest/core": "^24.9.0", @@ -7317,99 +7243,116 @@ "realpath-native": "^1.1.0", "yargs": "^13.3.0" } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + } + } + }, + "jest-changed-files": { + "version": "24.9.0", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", + "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", + "dev": true, + "requires": { + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "dev": true, "requires": { - "p-try": "^2.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, "requires": { - "p-limit": "^2.0.0" + "pump": "^3.0.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "path-key": "^2.0.0" } }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", "dev": true }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "shebang-regex": "^1.0.0" } }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" + "isexe": "^2.0.0" } } } }, - "jest-changed-files": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", - "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", - "dev": true, - "requires": { - "@jest/types": "^24.9.0", - "execa": "^1.0.0", - "throat": "^4.0.0" - } - }, "jest-config": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", @@ -7519,12 +7462,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7562,7 +7499,6 @@ "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", - "dev": true, "requires": { "chalk": "^2.0.1", "diff-sequences": "^24.9.0", @@ -7622,8 +7558,7 @@ "jest-get-type": { "version": "24.9.0", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz", - "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==", - "dev": true + "integrity": "sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==" }, "jest-haste-map": { "version": "24.9.0", @@ -7729,12 +7664,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -7914,12 +7843,6 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -8062,110 +7985,11 @@ "yargs": "^13.3.0" }, "dependencies": { - "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", - "dev": true, - "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" - } - }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true - }, - "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", - "dev": true, - "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - } - }, - "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } } } }, @@ -8216,26 +8040,17 @@ "source-map": "^0.6.0" }, "dependencies": { - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "requires": { - "ci-info": "^2.0.0" - } - }, "slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", "integrity": "sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -8309,14 +8124,6 @@ "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } } }, "js2xmlparser": { @@ -8467,10 +8274,9 @@ "dev": true }, "json5": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", - "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", - "dev": true, + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.1.tgz", + "integrity": "sha512-l+3HXD0GEI3huGq1njuqtzYK8OYJyXMkOLtQ53pjWh89tvWS2h6l+1zMkYWqlb57+SiQodKZyvMEFb2X+KrFhQ==", "requires": { "minimist": "^1.2.0" } @@ -8547,44 +8353,6 @@ "pako": "~1.0.2", "readable-stream": "~2.3.6", "set-immediate-shim": "~1.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "jwa": { @@ -8607,21 +8375,10 @@ } }, "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - }, - "dependencies": { - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - } - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true }, "klaw": { "version": "1.3.1", @@ -8748,6 +8505,12 @@ "stringify-object": "^3.2.2" }, "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, "braces": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", @@ -8788,6 +8551,15 @@ "which": "^1.2.9" } }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, "execa": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/execa/-/execa-0.9.0.tgz", @@ -8864,6 +8636,12 @@ } } }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, "jest-get-type": { "version": "22.4.3", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-22.4.3.tgz", @@ -8882,12 +8660,6 @@ "pretty-format": "^23.6.0" } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "leven": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", @@ -8915,6 +8687,33 @@ "to-regex": "^3.0.2" } }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "pretty-format": { "version": "23.6.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-23.6.0.tgz", @@ -8925,6 +8724,21 @@ "ansi-styles": "^3.2.0" } }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -8934,6 +8748,15 @@ "is-number": "^3.0.0", "repeat-string": "^1.6.1" } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -8954,6 +8777,12 @@ "rxjs": "^6.3.3" }, "dependencies": { + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, "p-map": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", @@ -9180,10 +9009,9 @@ "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" }, "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=" }, "lodash.once": { "version": "4.1.1", @@ -9259,15 +9087,6 @@ "wrap-ansi": "^3.0.1" }, "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - }, "wrap-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", @@ -9322,9 +9141,9 @@ } }, "lunr": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.6.tgz", - "integrity": "sha512-swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.8.tgz", + "integrity": "sha512-oxMeX/Y35PNFuZoHp+jUj5OSEmLCaIH4KTFJh7a93cHBoFmpw2IoPs22VIz7vyO2YUnx2Tn9dzIwO2P/4quIRg==", "dev": true }, "macos-release": { @@ -9334,14 +9153,34 @@ "dev": true }, "make-dir": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", - "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "dev": true, "requires": { - "pify": "^3.0.0" + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } } }, + "make-error": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz", + "integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==" + }, "makeerror": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", @@ -9386,9 +9225,9 @@ } }, "markdown-it-anchor": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz", - "integrity": "sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A==", + "version": "5.2.5", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.2.5.tgz", + "integrity": "sha512-xLIjLQmtym3QpoY9llBgApknl7pxAcN3WDRc2d3rwpl+/YvDZHPmKscGs+L6E05xf2KrCXPBvosWt7MZukwSpQ==", "dev": true }, "marked": { @@ -9484,22 +9323,22 @@ "dev": true }, "mime-db": { - "version": "1.40.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", - "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==" + "version": "1.43.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz", + "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==" }, "mime-types": { - "version": "2.1.24", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", - "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "version": "2.1.26", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz", + "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==", "requires": { - "mime-db": "1.40.0" + "mime-db": "1.43.0" } }, "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true }, "minimalistic-assert": { @@ -9526,8 +9365,7 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" }, "minimist-options": { "version": "3.0.2", @@ -9577,7 +9415,6 @@ "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, "requires": { "minimist": "0.0.8" }, @@ -9585,8 +9422,7 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" } } }, @@ -9597,9 +9433,9 @@ "dev": true }, "module-deps": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.1.tgz", - "integrity": "sha512-UnEn6Ah36Tu4jFiBbJVUtt0h+iXqxpLqDvPS8nllbw5RZFmNJ1+Mz5BjYnM9ieH80zyxHkARGLnMIHlPK5bu6A==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz", + "integrity": "sha512-a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==", "dev": true, "requires": { "JSONStream": "^1.0.3", @@ -9607,7 +9443,7 @@ "cached-path-relative": "^1.0.2", "concat-stream": "~1.6.0", "defined": "^1.0.0", - "detective": "^5.0.2", + "detective": "^5.2.0", "duplexer2": "^0.1.2", "inherits": "^2.0.1", "parents": "^1.0.0", @@ -9631,40 +9467,14 @@ "typedarray": "^0.0.6" } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" } } } @@ -9702,14 +9512,6 @@ "regex-not": "^1.0.0", "snapdragon": "^0.8.1", "to-regex": "^3.0.1" - }, - "dependencies": { - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - } } }, "natural-compare": { @@ -9730,11 +9532,94 @@ "yargs": "^3.19.0" }, "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", "dev": true + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + } } } }, @@ -9778,6 +9663,17 @@ "integrity": "sha1-5tq3/r9a2Bbqgc9cYpxaDr3nLBo=", "dev": true }, + "netmask": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/netmask/-/netmask-1.0.6.tgz", + "integrity": "sha1-ICl+idhvb2QA8lDZ9Pa0wZRfzTU=", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -9838,6 +9734,15 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -9871,15 +9776,15 @@ } }, "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", "dev": true }, "npm": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/npm/-/npm-6.11.3.tgz", - "integrity": "sha512-K2h+MPzZiY39Xf6eHEdECe/LKoJXam4UCflz5kIxoskN3LQFeYs5fqBGT5i4TtM/aBk+86Mcf+jgXs/WuWAutQ==", + "version": "6.13.6", + "resolved": "https://registry.npmjs.org/npm/-/npm-6.13.6.tgz", + "integrity": "sha512-NomC08kv7HIl1FOyLOe9Hp89kYsOsvx52huVIJ7i8hFW8Xp65lDwe/8wTIrh9q9SaQhA8hTrfXPh3BEL3TmMpw==", "dev": true, "requires": { "JSONStream": "^1.3.5", @@ -9888,12 +9793,12 @@ "ansistyles": "~0.1.3", "aproba": "^2.0.0", "archy": "~1.0.0", - "bin-links": "^1.1.3", + "bin-links": "^1.1.6", "bluebird": "^3.5.5", "byte-size": "^5.0.1", "cacache": "^12.0.3", "call-limit": "^1.1.1", - "chownr": "^1.1.2", + "chownr": "^1.1.3", "ci-info": "^2.0.0", "cli-columns": "^3.1.2", "cli-table3": "^0.5.1", @@ -9909,11 +9814,11 @@ "find-npm-prefix": "^1.0.2", "fs-vacuum": "~1.2.10", "fs-write-stream-atomic": "~1.0.10", - "gentle-fs": "^2.2.1", + "gentle-fs": "^2.3.0", "glob": "^7.1.4", - "graceful-fs": "^4.2.2", + "graceful-fs": "^4.2.3", "has-unicode": "~2.0.1", - "hosted-git-info": "^2.8.2", + "hosted-git-info": "^2.8.5", "iferr": "^1.0.2", "imurmurhash": "*", "infer-owner": "^1.0.4", @@ -9924,7 +9829,7 @@ "is-cidr": "^3.0.0", "json-parse-better-errors": "^1.0.2", "lazy-property": "~1.0.0", - "libcipm": "^4.0.3", + "libcipm": "^4.0.7", "libnpm": "^3.0.1", "libnpmaccess": "^3.0.2", "libnpmhook": "^5.0.3", @@ -9950,33 +9855,33 @@ "mississippi": "^3.0.0", "mkdirp": "~0.5.1", "move-concurrently": "^1.0.1", - "node-gyp": "^5.0.3", + "node-gyp": "^5.0.5", "nopt": "~4.0.1", "normalize-package-data": "^2.5.0", "npm-audit-report": "^1.3.2", "npm-cache-filename": "~1.0.2", - "npm-install-checks": "~3.0.0", - "npm-lifecycle": "^3.1.3", + "npm-install-checks": "^3.0.2", + "npm-lifecycle": "^3.1.4", "npm-package-arg": "^6.1.1", - "npm-packlist": "^1.4.4", + "npm-packlist": "^1.4.7", "npm-pick-manifest": "^3.0.2", "npm-profile": "^4.0.2", - "npm-registry-fetch": "^4.0.0", + "npm-registry-fetch": "^4.0.2", "npm-user-validate": "~1.0.0", "npmlog": "~4.1.2", "once": "~1.4.0", "opener": "^1.5.1", "osenv": "^0.1.5", - "pacote": "^9.5.8", + "pacote": "^9.5.12", "path-is-inside": "~1.0.2", "promise-inflight": "~1.0.1", "qrcode-terminal": "^0.12.0", "query-string": "^6.8.2", "qw": "~1.0.1", "read": "~1.0.7", - "read-cmd-shim": "^1.0.4", + "read-cmd-shim": "^1.0.5", "read-installed": "~4.0.3", - "read-package-json": "^2.1.0", + "read-package-json": "^2.1.1", "read-package-tree": "^5.3.1", "readable-stream": "^3.4.0", "readdir-scoped-modules": "^1.1.0", @@ -9990,8 +9895,8 @@ "sorted-object": "~2.0.1", "sorted-union-stream": "~2.1.3", "ssri": "^6.0.1", - "stringify-package": "^1.0.0", - "tar": "^4.4.10", + "stringify-package": "^1.0.1", + "tar": "^4.4.13", "text-table": "~0.2.0", "tiny-relative-date": "^1.3.0", "uid-number": "0.0.6", @@ -9999,7 +9904,7 @@ "unique-filename": "^1.1.1", "unpipe": "~1.0.0", "update-notifier": "^2.5.0", - "uuid": "^3.3.2", + "uuid": "^3.3.3", "validate-npm-package-license": "^3.0.4", "validate-npm-package-name": "~3.0.0", "which": "^1.3.1", @@ -10170,14 +10075,15 @@ } }, "bin-links": { - "version": "1.1.3", + "version": "1.1.6", "bundled": true, "dev": true, "requires": { "bluebird": "^3.5.3", "cmd-shim": "^3.0.0", - "gentle-fs": "^2.0.1", + "gentle-fs": "^2.3.0", "graceful-fs": "^4.1.15", + "npm-normalize-package-bin": "^1.0.0", "write-file-atomic": "^2.3.0" } }, @@ -10282,7 +10188,7 @@ } }, "chownr": { - "version": "1.1.2", + "version": "1.1.3", "bundled": true, "dev": true }, @@ -10920,17 +10826,28 @@ } }, "fs-minipass": { - "version": "1.2.6", + "version": "1.2.7", "bundled": true, "dev": true, "requires": { - "minipass": "^2.2.1" - } - }, - "fs-vacuum": { - "version": "1.2.10", - "bundled": true, - "dev": true, + "minipass": "^2.6.0" + }, + "dependencies": { + "minipass": { + "version": "2.9.0", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + } + } + }, + "fs-vacuum": { + "version": "1.2.10", + "bundled": true, + "dev": true, "requires": { "graceful-fs": "^4.1.2", "path-is-inside": "^1.0.1", @@ -11025,12 +10942,13 @@ "dev": true }, "gentle-fs": { - "version": "2.2.1", + "version": "2.3.0", "bundled": true, "dev": true, "requires": { "aproba": "^1.1.2", "chownr": "^1.1.2", + "cmd-shim": "^3.0.3", "fs-vacuum": "^1.2.10", "graceful-fs": "^4.1.11", "iferr": "^0.1.5", @@ -11121,7 +11039,7 @@ } }, "graceful-fs": { - "version": "4.2.2", + "version": "4.2.3", "bundled": true, "dev": true }, @@ -11163,12 +11081,9 @@ "dev": true }, "hosted-git-info": { - "version": "2.8.2", + "version": "2.8.5", "bundled": true, - "dev": true, - "requires": { - "lru-cache": "^5.1.1" - } + "dev": true }, "http-cache-semantics": { "version": "3.8.1", @@ -11195,7 +11110,7 @@ } }, "https-proxy-agent": { - "version": "2.2.2", + "version": "2.2.4", "bundled": true, "dev": true, "requires": { @@ -11225,7 +11140,7 @@ "dev": true }, "ignore-walk": { - "version": "3.0.1", + "version": "3.0.3", "bundled": true, "dev": true, "requires": { @@ -11479,7 +11394,7 @@ } }, "libcipm": { - "version": "4.0.3", + "version": "4.0.7", "bundled": true, "dev": true, "requires": { @@ -11782,7 +11697,7 @@ } }, "make-fetch-happen": { - "version": "5.0.0", + "version": "5.0.2", "bundled": true, "dev": true, "requires": { @@ -11790,7 +11705,7 @@ "cacache": "^12.0.0", "http-cache-semantics": "^3.8.1", "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.1", + "https-proxy-agent": "^2.2.3", "lru-cache": "^5.1.1", "mississippi": "^3.0.0", "node-fetch-npm": "^2.0.2", @@ -11843,30 +11758,25 @@ "bundled": true, "dev": true }, - "minipass": { - "version": "2.3.3", + "minizlib": { + "version": "1.3.3", "bundled": true, "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "minipass": "^2.9.0" }, "dependencies": { - "yallist": { - "version": "3.0.2", + "minipass": { + "version": "2.9.0", "bundled": true, - "dev": true + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } } } }, - "minizlib": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "requires": { - "minipass": "^2.2.1" - } - }, "mississippi": { "version": "3.0.0", "bundled": true, @@ -11933,7 +11843,7 @@ } }, "node-gyp": { - "version": "5.0.3", + "version": "5.0.5", "bundled": true, "dev": true, "requires": { @@ -11946,7 +11856,7 @@ "request": "^2.87.0", "rimraf": "2", "semver": "~5.3.0", - "tar": "^4.4.8", + "tar": "^4.4.12", "which": "1" }, "dependencies": { @@ -12005,9 +11915,12 @@ } }, "npm-bundled": { - "version": "1.0.6", + "version": "1.1.1", "bundled": true, - "dev": true + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } }, "npm-cache-filename": { "version": "1.0.2", @@ -12015,7 +11928,7 @@ "dev": true }, "npm-install-checks": { - "version": "3.0.0", + "version": "3.0.2", "bundled": true, "dev": true, "requires": { @@ -12023,7 +11936,7 @@ } }, "npm-lifecycle": { - "version": "3.1.3", + "version": "3.1.4", "bundled": true, "dev": true, "requires": { @@ -12042,6 +11955,11 @@ "bundled": true, "dev": true }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, "npm-package-arg": { "version": "6.1.1", "bundled": true, @@ -12054,7 +11972,7 @@ } }, "npm-packlist": { - "version": "1.4.4", + "version": "1.4.7", "bundled": true, "dev": true, "requires": { @@ -12083,7 +12001,7 @@ } }, "npm-registry-fetch": { - "version": "4.0.0", + "version": "4.0.2", "bundled": true, "dev": true, "requires": { @@ -12092,7 +12010,15 @@ "figgy-pudding": "^3.4.1", "lru-cache": "^5.1.1", "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0" + "npm-package-arg": "^6.1.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.0", + "bundled": true, + "dev": true + } } }, "npm-run-path": { @@ -12228,7 +12154,7 @@ } }, "pacote": { - "version": "9.5.8", + "version": "9.5.12", "bundled": true, "dev": true, "requires": { @@ -12246,6 +12172,7 @@ "mississippi": "^3.0.0", "mkdirp": "^0.5.1", "normalize-package-data": "^2.4.0", + "npm-normalize-package-bin": "^1.0.0", "npm-package-arg": "^6.1.0", "npm-packlist": "^1.1.12", "npm-pick-manifest": "^3.0.0", @@ -12264,7 +12191,7 @@ }, "dependencies": { "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "requires": { @@ -12497,7 +12424,7 @@ } }, "read-cmd-shim": { - "version": "1.0.4", + "version": "1.0.5", "bundled": true, "dev": true, "requires": { @@ -12519,7 +12446,7 @@ } }, "read-package-json": { - "version": "2.1.0", + "version": "2.1.1", "bundled": true, "dev": true, "requires": { @@ -12527,7 +12454,7 @@ "graceful-fs": "^4.1.2", "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" + "npm-normalize-package-bin": "^1.0.0" } }, "read-package-tree": { @@ -12702,28 +12629,23 @@ "bundled": true, "dev": true }, - "slash": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "slide": { "version": "1.1.6", "bundled": true, "dev": true }, "smart-buffer": { - "version": "4.0.2", + "version": "4.1.0", "bundled": true, "dev": true }, "socks": { - "version": "2.3.2", + "version": "2.3.3", "bundled": true, "dev": true, "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" + "ip": "1.1.5", + "smart-buffer": "^4.1.0" } }, "socks-proxy-agent": { @@ -12938,7 +12860,7 @@ } }, "stringify-package": { - "version": "1.0.0", + "version": "1.0.1", "bundled": true, "dev": true }, @@ -12969,13 +12891,13 @@ } }, "tar": { - "version": "4.4.10", + "version": "4.4.13", "bundled": true, "dev": true, "requires": { "chownr": "^1.1.1", "fs-minipass": "^1.2.5", - "minipass": "^2.3.5", + "minipass": "^2.8.6", "minizlib": "^1.2.1", "mkdirp": "^0.5.0", "safe-buffer": "^5.1.2", @@ -12983,18 +12905,13 @@ }, "dependencies": { "minipass": { - "version": "2.3.5", + "version": "2.9.0", "bundled": true, "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } - }, - "yallist": { - "version": "3.0.3", - "bundled": true, - "dev": true } } }, @@ -13175,7 +13092,7 @@ } }, "uuid": { - "version": "3.3.2", + "version": "3.3.3", "bundled": true, "dev": true }, @@ -13355,6 +13272,12 @@ } } }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, "npm-path": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", @@ -13362,15 +13285,26 @@ "dev": true, "requires": { "which": "^1.2.10" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "path-key": "^2.0.0" + "path-key": "^3.0.0" } }, "npm-which": { @@ -13382,6 +13316,17 @@ "commander": "^2.9.0", "npm-path": "^2.0.2", "which": "^1.2.10" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, "number-is-nan": { @@ -13391,9 +13336,9 @@ "dev": true }, "nwsapi": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.4.tgz", - "integrity": "sha512-iGfd9Y6SFdTNldEy2L0GUhcarIutFmk+MPWIn9dmj8NMIup03G08uUF2KGbbmv/Ux4RT0VZJoP/sVbWA6d/VIw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==", "dev": true }, "oauth-sign": { @@ -13427,6 +13372,21 @@ "requires": { "is-descriptor": "^0.1.0" } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } } } }, @@ -13437,9 +13397,9 @@ "dev": true }, "object-inspect": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", - "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz", + "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==", "dev": true }, "object-keys": { @@ -13457,14 +13417,26 @@ "isobject": "^3.0.0" } }, - "object.getownpropertydescriptors": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", - "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "dev": true, "requires": { "define-properties": "^1.1.2", - "es-abstract": "^1.5.1" + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.omit": { @@ -13499,12 +13471,12 @@ } }, "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "dev": true, "requires": { - "mimic-fn": "^1.0.0" + "mimic-fn": "^2.1.0" } }, "opn": { @@ -13531,27 +13503,21 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", "dev": true - }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true } } }, "optionator": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", - "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "dev": true, "requires": { "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", + "fast-levenshtein": "~2.0.6", "levn": "~0.3.0", "prelude-ls": "~1.1.2", "type-check": "~0.3.2", - "wordwrap": "~1.0.0" + "word-wrap": "~1.2.3" } }, "os-browserify": { @@ -13629,15 +13595,15 @@ } }, "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==", "dev": true }, "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", + "integrity": "sha512-Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==", "dev": true }, "p-limit": { @@ -13671,9 +13637,9 @@ "dev": true }, "p-retry": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.1.0.tgz", - "integrity": "sha512-oepllyG9gX1qH4Sm20YAKxg1GA7L7puhvGnTfimi31P07zSIj7SDV6YtuAx9nbJF51DES+2CIIRkXs8GKqWJxA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz", + "integrity": "sha512-jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==", "dev": true, "requires": { "@types/retry": "^0.12.0", @@ -13686,6 +13652,85 @@ "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", "dev": true }, + "pac-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.1.tgz", + "integrity": "sha512-44DUg21G/liUZ48dJpUSjZnFfZro/0K5JTyFYLBcmh9+T6Ooi4/i4efwUiEy0+4oQusCBqWdhv16XohIj1GqnQ==", + "dev": true, + "requires": { + "agent-base": "^4.2.0", + "debug": "^4.1.1", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + } + } + }, + "pac-resolver": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", + "dev": true, + "requires": { + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" + } + }, "package-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", @@ -13698,6 +13743,16 @@ "semver": "^5.1.0" }, "dependencies": { + "registry-auth-token": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", + "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "dev": true, + "requires": { + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" + } + }, "semver": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", @@ -13744,12 +13799,6 @@ "safe-buffer": "^5.1.1" } }, - "parse-github-url": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz", - "integrity": "sha512-kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==", - "dev": true - }, "parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", @@ -13780,6 +13829,14 @@ "normalize-url": "^3.3.0", "parse-path": "^4.0.0", "protocols": "^1.4.0" + }, + "dependencies": { + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + } } }, "parse5": { @@ -13825,16 +13882,15 @@ "dev": true }, "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true }, "path-parse": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==" }, "path-platform": { "version": "0.11.15", @@ -13871,9 +13927,9 @@ "dev": true }, "picomatch": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", - "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz", + "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==", "dev": true }, "pify": { @@ -13930,9 +13986,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -13995,9 +14051,9 @@ "dev": true }, "prettier": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.18.2.tgz", - "integrity": "sha512-OeHeMc0JhFE9idD4ZdtNibzY0+TPHSpSSb9h8FqtP+YnoZZ1sl8Vc9b1sasjfymH3SonAF4QcA2+mzHPhMvIiw==", + "version": "1.19.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", + "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", "dev": true }, "prettier-linter-helpers": { @@ -14013,20 +14069,11 @@ "version": "24.9.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", - "dev": true, "requires": { "@jest/types": "^24.9.0", "ansi-regex": "^4.0.0", "ansi-styles": "^3.2.0", "react-is": "^16.8.4" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } } }, "process": { @@ -14057,9 +14104,9 @@ } }, "prompts": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.2.1.tgz", - "integrity": "sha512-VObPvJiWPhpZI6C5m60XOzTfnYg/xc/an+r9VYymj9WJW3B/DIH+REzjpAACPf8brwPeP+7vz3bIim3S+AaMjw==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.0.tgz", + "integrity": "sha512-NfbbPPg/74fT7wk2XYQ7hAIp9zJyZp5Fu19iRbORqqy1BhtrkZ0fPafBU+7bmn8ie69DpT0R6QpJIN2oisYjJg==", "dev": true, "requires": { "kleur": "^3.0.3", @@ -14072,25 +14119,112 @@ "integrity": "sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==", "dev": true }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", - "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "proxy-agent": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.1.1.tgz", + "integrity": "sha512-WudaR0eTsDx33O3EJE16PjBRZWcX8GqCEeERw1W3hZJgH/F2a46g7jty6UGty6NeJ4CKQy8ds2CJPMiyeqaTvw==", "dev": true, "requires": { - "bn.js": "^4.1.0", + "agent-base": "^4.2.0", + "debug": "4", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^3.0.0", + "lru-cache": "^5.1.1", + "pac-proxy-agent": "^3.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^4.0.1" + }, + "dependencies": { + "http-proxy-agent": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "dev": true, + "requires": { + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "https-proxy-agent": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-3.0.1.tgz", + "integrity": "sha512-+ML2Rbh6DAuee7d07tYGEKOEi2voWPUGan+ExdPbPW6Z3svq+JCqr0v8WmKPOkz1vOVykPCBSuobe7G8GJUtVg==", + "dev": true, + "requires": { + "agent-base": "^4.3.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } + }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.7.0.tgz", + "integrity": "sha512-5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", "browserify-rsa": "^4.0.0", "create-hash": "^1.1.0", "parse-asn1": "^5.0.0", @@ -14163,6 +14297,18 @@ "safe-buffer": "^5.1.0" } }, + "raw-body": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.1.tgz", + "integrity": "sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.3", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, "rc": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", @@ -14176,10 +14322,9 @@ } }, "react-is": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz", - "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==", - "dev": true + "version": "16.12.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.12.0.tgz", + "integrity": "sha512-rPCkf/mWBtKc97aLL9/txD8DZdemK0vkA3JMLShjlJB3Pj3s+lpf1KaBzMfQrAmhMQB0n1cU/SUGgKKBCe837Q==" }, "read-installed": { "version": "4.0.3", @@ -14211,65 +14356,19 @@ "dev": true, "requires": { "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "read-package-json": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.0.tgz", - "integrity": "sha512-KLhu8M1ZZNkMcrq1+0UJbR8Dii8KZUqB0Sha4mOx/bknfKI/fyrQVrG/YIt2UOtG667sD8+ee4EXMM91W9dC+A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz", + "integrity": "sha512-dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==", "dev": true, "requires": { "glob": "^7.1.1", "graceful-fs": "^4.1.2", "json-parse-better-errors": "^1.0.1", "normalize-package-data": "^2.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - } + "npm-normalize-package-bin": "^1.0.0" } }, "read-pkg": { @@ -14294,24 +14393,25 @@ } }, "readable-stream": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", - "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true } } }, @@ -14422,18 +14522,6 @@ } } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true - }, "micromatch": { "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", @@ -14455,36 +14543,6 @@ "to-regex": "^3.0.2" } }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - }, "to-regex-range": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", @@ -14532,14 +14590,6 @@ "dev": true, "requires": { "esprima": "~4.0.0" - }, - "dependencies": { - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - } } }, "regenerator-runtime": { @@ -14565,12 +14615,12 @@ "dev": true }, "registry-auth-token": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz", - "integrity": "sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", + "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", "dev": true, "requires": { - "rc": "^1.1.6", + "rc": "^1.2.8", "safe-buffer": "^5.0.1" } }, @@ -14653,21 +14703,21 @@ } }, "request-promise-core": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", - "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", + "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", "dev": true, "requires": { - "lodash": "^4.17.11" + "lodash": "^4.17.15" } }, "request-promise-native": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", - "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz", + "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", "dev": true, "requires": { - "request-promise-core": "1.1.2", + "request-promise-core": "1.1.3", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" } @@ -14694,10 +14744,9 @@ } }, "resolve": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", - "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", - "dev": true, + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.14.2.tgz", + "integrity": "sha512-EjlOBLBO1kxsUxsKjLt7TAECyKW6fOh1VRkykQkKGzcBbjjPIxBqGh0jf7GJ3k/f5mxMqW3htMD3WdTUVtW8HQ==", "requires": { "path-parse": "^1.0.6" } @@ -14748,6 +14797,23 @@ "requires": { "onetime": "^2.0.0", "signal-exit": "^3.0.2" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + } } }, "ret": { @@ -14815,9 +14881,9 @@ "dev": true }, "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", + "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "dev": true, "requires": { "tslib": "^1.9.0" @@ -14889,6 +14955,34 @@ } } }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, "fill-range": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", @@ -14912,6 +15006,15 @@ } } }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", @@ -14944,10 +15047,10 @@ } } }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", "dev": true }, "micromatch": { @@ -14971,46 +15074,97 @@ "to-regex": "^3.0.2" } }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" + "path-key": "^2.0.0" } - } - } - }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "secure-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", - "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=", - "dev": true - }, - "semantic-release": { - "version": "15.13.24", - "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.24.tgz", - "integrity": "sha512-OPshm6HSp+KmZP9dUv1o3MRILDgOeHYWPI+XSpQRERMri7QkaEiIPkZzoNm2d6KDeFDnp03GphQQS4+Zfo+x/Q==", - "dev": true, - "requires": { - "@semantic-release/commit-analyzer": "^6.1.0", - "@semantic-release/error": "^2.2.0", - "@semantic-release/github": "^5.1.0", + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "secure-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz", + "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o=", + "dev": true + }, + "semantic-release": { + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/semantic-release/-/semantic-release-15.14.0.tgz", + "integrity": "sha512-Cn43W35AOLY0RMcDbtwhJODJmWg6YCs1+R5jRQsTmmkEGzkV4B2F/QXkjVZpl4UbH91r93GGH0xhoq9kh7I5PA==", + "dev": true, + "requires": { + "@semantic-release/commit-analyzer": "^6.1.0", + "@semantic-release/error": "^2.2.0", + "@semantic-release/github": "^5.1.0", "@semantic-release/npm": "^5.0.5", "@semantic-release/release-notes-generator": "^7.1.2", "aggregate-error": "^3.0.0", - "cosmiconfig": "^5.0.1", + "cosmiconfig": "^6.0.0", "debug": "^4.0.0", "env-ci": "^4.0.0", - "execa": "^1.0.0", + "execa": "^3.2.0", "figures": "^3.0.0", "find-versions": "^3.0.0", "get-stream": "^5.0.0", @@ -15022,37 +15176,78 @@ "marked-terminal": "^3.2.0", "p-locate": "^4.0.0", "p-reduce": "^2.0.0", - "read-pkg-up": "^6.0.0", + "read-pkg-up": "^7.0.0", "resolve-from": "^5.0.0", "semver": "^6.0.0", "signale": "^1.2.1", - "yargs": "^14.0.0" + "yargs": "^15.0.1" }, "dependencies": { - "cliui": { + "ansi-regex": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" } }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cosmiconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", + "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, "figures": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", - "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.1.0.tgz", + "integrity": "sha512-ravh8VRXqHuMvZt/d8GblBeqDMkdJMBdv/2KntFH+ra5MXkO7nxNKpzQ3n6QD/2da1kH0aWmNISdvhM7gl2gVg==", "dev": true, "requires": { "escape-string-regexp": "^1.0.5" @@ -15068,24 +15263,21 @@ "path-exists": "^4.0.0" } }, - "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, "hosted-git-info": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.0.tgz", - "integrity": "sha512-zYSx1cP4MLsvKtTg8DF/PI6e6FHZ3wcawcTGsrLU2TM+UfD4jmSrn2wdQT16TFbH3lO4PIdjLG0E+cuYDgFD9g==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.2.tgz", + "integrity": "sha512-ezZMWtHXm7Eb7Rq4Mwnx2vs79WUx2QmRg3+ZqeGroKzfDO+EprOcgRPYghsOP9JuYBfK18VojmRTGCg8Ma+ktw==", "dev": true, "requires": { "lru-cache": "^5.1.1" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, "locate-path": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", @@ -15104,16 +15296,10 @@ "yallist": "^3.0.2" } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -15152,6 +15338,12 @@ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, "read-pkg": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", @@ -15173,104 +15365,82 @@ } }, "read-pkg-up": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz", - "integrity": "sha512-odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==", + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", "dev": true, "requires": { - "find-up": "^4.0.0", - "read-pkg": "^5.1.1", - "type-fest": "^0.5.0" + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" } }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" } }, "type-fest": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz", - "integrity": "sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", "dev": true }, - "y18n": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", - "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", - "dev": true + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } }, "yallist": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.3.tgz", - "integrity": "sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true }, "yargs": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.0.0.tgz", - "integrity": "sha512-ssa5JuRjMeZEUjg7bEL99AwpitxU/zWGAGpdj0di41pOEmJti8NR6kyUIJBkR78DTYNPZOU08luUo0GTHuB+ow==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz", + "integrity": "sha512-T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==", "dev": true, "requires": { - "cliui": "^5.0.0", + "cliui": "^6.0.0", "decamelize": "^1.2.0", - "find-up": "^3.0.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" - }, - "dependencies": { - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "requires": { - "locate-path": "^3.0.0" - } - }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - } - }, - "p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } + "yargs-parser": "^16.1.0" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz", + "integrity": "sha512-H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -15354,6 +15524,12 @@ } } }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, "sha.js": { "version": "2.4.11", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", @@ -15409,19 +15585,28 @@ "sha.js": "~2.4.4" } }, + "shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "requires": { + "fast-safe-stringify": "^2.0.7" + } + }, "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true }, "shell-quote": { @@ -15471,9 +15656,9 @@ "dev": true }, "sisteransi": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.3.tgz", - "integrity": "sha512-SbEG75TzH8G7eVXFSN5f9EExILKfly7SUvVY5DhhYLvfhKqhDFY0OzevWa/zwak0RLRfWS5AvfMWpd9gJvr5Yg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.4.tgz", + "integrity": "sha512-/ekMoM4NJ59ivGSfKapeG+FWtrmWvA1p6FBZwXrqojw90vJu8lBmrTxCMuBCydKtkaUe2zt4PlxeTKpjwMbyig==", "dev": true }, "slash": { @@ -15499,6 +15684,12 @@ "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", "dev": true }, + "smart-buffer": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", + "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", + "dev": true + }, "snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -15547,12 +15738,6 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true } } }, @@ -15604,12 +15789,6 @@ "is-data-descriptor": "^1.0.0", "kind-of": "^6.0.2" } - }, - "kind-of": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", - "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", - "dev": true } } }, @@ -15620,23 +15799,41 @@ "dev": true, "requires": { "kind-of": "^3.2.0" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "snyk": { - "version": "1.235.1", - "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.235.1.tgz", - "integrity": "sha512-wEwZd1WlsY3/9bTbiHJOTcCeYkGnGH9jrq+fUEE12c9Y3AK1OsouaMQlAbCVy+wYIe9rA4bqmjRqV3OFDPaR6A==", + "version": "1.278.1", + "resolved": "https://registry.npmjs.org/snyk/-/snyk-1.278.1.tgz", + "integrity": "sha512-fcmnsQQGEjwkzc472IIp+WesYp1HCg/victizONDOUlhB+864CCm4y5n8OaK21kuhihU7xnZb+Pon0JRrHmRXQ==", "dev": true, "requires": { - "@snyk/cli-interface": "^2.0.3", - "@snyk/dep-graph": "1.12.0", + "@snyk/cli-interface": "2.3.0", + "@snyk/dep-graph": "1.13.1", "@snyk/gemfile": "1.2.0", - "@snyk/snyk-cocoapods-plugin": "1.0.3", + "@snyk/snyk-cocoapods-plugin": "2.0.1", "@types/agent-base": "^4.2.0", "@types/restify": "^4.3.6", "abbrev": "^1.1.1", "ansi-escapes": "3.2.0", "chalk": "^2.4.2", + "cli-spinner": "0.2.10", "configstore": "^3.1.2", "debug": "^3.1.0", "diff": "^4.0.1", @@ -15647,23 +15844,23 @@ "needle": "^2.2.4", "opn": "^5.5.0", "os-name": "^3.0.0", - "proxy-agent": "*", + "proxy-agent": "^3.1.1", "proxy-from-env": "^1.0.0", "semver": "^6.0.0", "snyk-config": "^2.2.1", "snyk-docker-plugin": "1.33.1", "snyk-go-plugin": "1.11.1", - "snyk-gradle-plugin": "3.1.0", + "snyk-gradle-plugin": "3.2.2", "snyk-module": "1.9.1", - "snyk-mvn-plugin": "2.4.0", - "snyk-nodejs-lockfile-parser": "1.16.0", - "snyk-nuget-plugin": "1.13.0", - "snyk-php-plugin": "1.6.4", + "snyk-mvn-plugin": "2.7.0", + "snyk-nodejs-lockfile-parser": "1.17.0", + "snyk-nuget-plugin": "1.16.0", + "snyk-php-plugin": "1.7.0", "snyk-policy": "1.13.5", - "snyk-python-plugin": "^1.13.3", + "snyk-python-plugin": "1.16.0", "snyk-resolve": "1.0.1", "snyk-resolve-deps": "4.4.0", - "snyk-sbt-plugin": "2.8.0", + "snyk-sbt-plugin": "2.11.0", "snyk-tree": "^1.0.0", "snyk-try-require": "1.3.1", "source-map-support": "^0.5.11", @@ -15677,545 +15874,71 @@ "dependencies": { "debug": { "version": "3.2.6", - "bundled": true, + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { "ms": "^2.1.1" } }, - "esprima": { - "version": "4.0.1", - "bundled": true - }, - "inherits": { - "version": "2.0.4", - "bundled": true + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, - "lru-cache": { - "version": "4.1.5", - "bundled": true, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "snyk-config": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/snyk-config/-/snyk-config-2.2.3.tgz", + "integrity": "sha512-9NjxHVMd1U1LFw66Lya4LXgrsFUiuRiL4opxfTFo0LmMNzUoU5Bk/p0zDdg3FE5Wg61r4fP2D8w+QTl6M8CGiw==", + "dev": true, + "requires": { + "debug": "^3.1.0", + "lodash": "^4.17.15", + "nconf": "^0.10.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "dev": true, "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" + "ms": "^2.1.1" } }, "ms": { "version": "2.1.2", - "bundled": true, - "dev": true - }, - "prelude-ls": { - "version": "1.1.2", - "bundled": true - }, - "proxy-agent": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent-snyk-fork": "*", - "lru-cache": "^4.1.2", - "pac-proxy-agent": "*", - "proxy-from-env": "^1.0.0", - "socks-proxy-agent": "^4.0.1" - }, - "dependencies": { - "agent-base": { - "version": "4.3.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "ast-types": { - "version": "0.13.2", - "bundled": true, - "dev": true - }, - "bytes": { - "version": "3.1.0", - "bundled": true, - "dev": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "data-uri-to-buffer": { - "version": "2.0.2", - "bundled": true, - "dev": true - }, - "debug": { - "version": "3.2.6", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "deep-is": { - "version": "0.1.3", - "bundled": true, - "dev": true - }, - "degenerator": { - "version": "1.0.4", - "bundled": true, - "dev": true, - "requires": { - "ast-types": "0.x.x", - "escodegen": "1.x.x", - "esprima": "3.x.x" - } - }, - "depd": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "es6-promise": { - "version": "4.2.8", - "bundled": true, - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "bundled": true, - "dev": true, - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escodegen": { - "version": "1.12.0", - "bundled": true, - "dev": true, - "requires": { - "esprima": "^3.1.3", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - } - }, - "esprima": { - "version": "3.1.3", - "bundled": true, - "dev": true - }, - "estraverse": { - "version": "4.3.0", - "bundled": true, - "dev": true - }, - "esutils": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "extend": { - "version": "3.0.2", - "bundled": true, - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "bundled": true, - "dev": true - }, - "file-uri-to-path": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "ftp": { - "version": "0.3.10", - "bundled": true, - "dev": true, - "requires": { - "readable-stream": "1.1.x", - "xregexp": "2.0.0" - }, - "dependencies": { - "readable-stream": { - "version": "1.1.14", - "bundled": true, - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - } - } - }, - "get-uri": { - "version": "2.0.3", - "bundled": true, - "dev": true, - "requires": { - "data-uri-to-buffer": "2", - "debug": "4", - "extend": "~3.0.2", - "file-uri-to-path": "1", - "ftp": "~0.3.10", - "readable-stream": "3" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } - } - }, - "http-errors": { - "version": "1.7.3", - "bundled": true, - "dev": true, - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - } - }, - "http-proxy-agent": { - "version": "2.1.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "bundled": true, - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "https-proxy-agent-snyk-fork": { - "version": "2.2.2-fixed-mitm-vuln", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - } - }, - "iconv-lite": { - "version": "0.4.24", - "bundled": true, - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inherits": { - "version": "2.0.4", - "bundled": true, - "dev": true - }, - "ip": { - "version": "1.1.5", - "bundled": true, - "dev": true - }, - "isarray": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "levn": { - "version": "0.3.0", - "bundled": true, - "dev": true, - "requires": { - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2" - } - }, - "ms": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "netmask": { - "version": "1.0.6", - "bundled": true, - "dev": true - }, - "optionator": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "requires": { - "deep-is": "~0.1.3", - "fast-levenshtein": "~2.0.4", - "levn": "~0.3.0", - "prelude-ls": "~1.1.2", - "type-check": "~0.3.2", - "wordwrap": "~1.0.0" - } - }, - "pac-proxy-agent": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "^4.2.0", - "debug": "^3.1.0", - "get-uri": "^2.0.0", - "http-proxy-agent": "^2.1.0", - "pac-resolver": "^3.0.0", - "raw-body": "^2.2.0", - "socks-proxy-agent": "^4.0.1" - } - }, - "pac-resolver": { - "version": "3.0.0", - "bundled": true, - "dev": true, - "requires": { - "co": "^4.6.0", - "degenerator": "^1.0.4", - "ip": "^1.1.5", - "netmask": "^1.0.6", - "thunkify": "^2.1.2" - } - }, - "prelude-ls": { - "version": "1.1.2", - "bundled": true, - "dev": true - }, - "raw-body": { - "version": "2.4.1", - "bundled": true, - "dev": true, - "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.3", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "readable-stream": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "dependencies": { - "string_decoder": { - "version": "1.3.0", - "bundled": true, - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - } - } - }, - "safe-buffer": { - "version": "5.2.0", - "bundled": true, - "dev": true - }, - "safer-buffer": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "setprototypeof": { - "version": "1.1.1", - "bundled": true, - "dev": true - }, - "smart-buffer": { - "version": "4.0.2", - "bundled": true, - "dev": true - }, - "socks": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "requires": { - "ip": "^1.1.5", - "smart-buffer": "4.0.2" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "bundled": true, - "dev": true, - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - } - } - }, - "source-map": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "statuses": { - "version": "1.5.0", - "bundled": true, - "dev": true - }, - "string_decoder": { - "version": "0.10.31", - "bundled": true, - "dev": true - }, - "thunkify": { - "version": "2.1.2", - "bundled": true, - "dev": true - }, - "toidentifier": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "type-check": { - "version": "0.3.2", - "bundled": true, - "dev": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "unpipe": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "wordwrap": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "xregexp": { - "version": "2.0.0", - "bundled": true, - "dev": true - } - } - }, - "proxy-from-env": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "type-check": { - "version": "0.3.2", - "bundled": true, - "requires": { - "prelude-ls": "~1.1.2" - } - }, - "yallist": { - "version": "2.1.2", - "bundled": true, - "dev": true - } - } - }, - "snyk-config": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/snyk-config/-/snyk-config-2.2.3.tgz", - "integrity": "sha512-9NjxHVMd1U1LFw66Lya4LXgrsFUiuRiL4opxfTFo0LmMNzUoU5Bk/p0zDdg3FE5Wg61r4fP2D8w+QTl6M8CGiw==", - "dev": true, - "requires": { - "debug": "^3.1.0", - "lodash": "^4.17.15", - "nconf": "^0.10.0" - } - }, - "snyk-docker-plugin": { - "version": "1.33.1", - "resolved": "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-1.33.1.tgz", - "integrity": "sha512-xfs3DN1tPMTh6J8x2341wGK4HRr+pI5+i/YRuRmsslnBnwk/DkKYcbt8zOIWk6kzMoW8vo+9LqqXBQO/24szKg==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "dockerfile-ast": "0.0.16", - "semver": "^6.1.0", - "tar-stream": "^2.1.0", - "tslib": "^1" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } }, + "snyk-docker-plugin": { + "version": "1.33.1", + "resolved": "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-1.33.1.tgz", + "integrity": "sha512-xfs3DN1tPMTh6J8x2341wGK4HRr+pI5+i/YRuRmsslnBnwk/DkKYcbt8zOIWk6kzMoW8vo+9LqqXBQO/24szKg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "dockerfile-ast": "0.0.16", + "semver": "^6.1.0", + "tar-stream": "^2.1.0", + "tslib": "^1" + } + }, "snyk-go-parser": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/snyk-go-parser/-/snyk-go-parser-1.3.1.tgz", @@ -16237,32 +15960,15 @@ "snyk-go-parser": "1.3.1", "tmp": "0.0.33", "tslib": "^1.10.0" - }, - "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - } } }, "snyk-gradle-plugin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.1.0.tgz", - "integrity": "sha512-789Rqyhv1+WYbfy1Qilgsw0FMccedSaCO5n+54CXXGVUZWMsVvqJj3T8k7+vis+9Eq+Sgbdzti8vDtApz6rWWQ==", + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.2.2.tgz", + "integrity": "sha512-ijIWsypbtpdTuRcYTFsnEWbaBnhCc7q0iIg0A4OcOW/xLyInPwyfBMnip4ubNfHAS/PrvzgfwwwJhttcQD0ZaQ==", "dev": true, "requires": { - "@snyk/cli-interface": "^2.1.0", + "@snyk/cli-interface": "2.2.0", "@types/debug": "^4.1.4", "chalk": "^2.4.2", "clone-deep": "^0.3.0", @@ -16271,20 +15977,14 @@ "tslib": "^1.9.3" }, "dependencies": { - "debug": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "@snyk/cli-interface": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.2.0.tgz", + "integrity": "sha512-sA7V2JhgqJB9z5uYotgQc5iNDv//y+Mdm39rANxmFjtZMSYJZHkP80arzPjw1mB5ni/sWec7ieYUUFeySZBfVg==", "dev": true, "requires": { - "ms": "^2.1.1" + "tslib": "^1.9.3" } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true } } }, @@ -16296,18 +15996,57 @@ "requires": { "debug": "^3.1.0", "hosted-git-info": "^2.7.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "snyk-mvn-plugin": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.4.0.tgz", - "integrity": "sha512-Fmt6Mjx6zZz+4q6PnBkhuNGhEX++q/pKMI26ls4p3JPkx4KxBz89oncpkmf7P8YCkoaka8oHhtDEv/R4Z9LleQ==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.7.0.tgz", + "integrity": "sha512-DLBt+6ZvtoleXE7Si3wAa6gdPSWsXdIQEY6m2zW2InN9WiaRwIEKMCY822eFmRPZVNNmZNRUIeQsoHZwv/slqQ==", "dev": true, "requires": { + "@snyk/cli-interface": "2.2.0", + "debug": "^4.1.1", "lodash": "^4.17.15", + "needle": "^2.4.0", + "tmp": "^0.1.0", "tslib": "1.9.3" }, "dependencies": { + "@snyk/cli-interface": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.2.0.tgz", + "integrity": "sha512-sA7V2JhgqJB9z5uYotgQc5iNDv//y+Mdm39rANxmFjtZMSYJZHkP80arzPjw1mB5ni/sWec7ieYUUFeySZBfVg==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } + }, + "tmp": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz", + "integrity": "sha512-J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==", + "dev": true, + "requires": { + "rimraf": "^2.6.3" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -16317,32 +16056,58 @@ } }, "snyk-nodejs-lockfile-parser": { - "version": "1.16.0", - "resolved": "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.16.0.tgz", - "integrity": "sha512-cf3uozRXEG88nsjOQlo+SfOJPpcLs45qpnuk2vhBBZ577IMnV+fTOJQsP2YRiikLUbdgkVlduviwUO6OVn1PhA==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.17.0.tgz", + "integrity": "sha512-i4GAYFj9TJLOQ8F+FbIJuJWdGymi8w/XcrEX0FzXk7DpYUCY3mWibyKhw8RasfYBx5vLwUzEvRMaQuc2EwlyfA==", "dev": true, "requires": { "@yarnpkg/lockfile": "^1.0.2", "graphlib": "^2.1.5", "lodash": "^4.17.14", + "p-map": "2.1.0", "source-map-support": "^0.5.7", "tslib": "^1.9.3", "uuid": "^3.3.2" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + } } }, "snyk-nuget-plugin": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.13.0.tgz", - "integrity": "sha512-9PrsN6kSz79lKUlpfqAYvMtac7HYbscf4OJ5LTzTcPn2XRs24NCTZylUUpilkSY0r2DyDLY18cl+qHHjfJKnig==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.16.0.tgz", + "integrity": "sha512-OEusK3JKKpR4Yto5KwuqjQGgb9wAhmDqBWSQomWdtKQVFrzn5B6BMzOFikUzmeMTnUGGON7gurQBLXeZZLhRqg==", "dev": true, "requires": { "debug": "^3.1.0", - "dotnet-deps-parser": "4.5.2", + "dotnet-deps-parser": "4.9.0", "jszip": "^3.1.5", "lodash": "^4.17.14", "snyk-paket-parser": "1.5.0", "tslib": "^1.9.3", "xml2js": "^0.4.17" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "snyk-paket-parser": { @@ -16355,15 +16120,25 @@ } }, "snyk-php-plugin": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/snyk-php-plugin/-/snyk-php-plugin-1.6.4.tgz", - "integrity": "sha512-FFQeimtbwq17nDUS0o0zuKgyjXSX7SpoC9iYTeKvxTXrmKf2QlxTtPvmMM4/hQxehEu1i40ow1Ozw0Ahxm8Dpw==", + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/snyk-php-plugin/-/snyk-php-plugin-1.7.0.tgz", + "integrity": "sha512-mDe90xkqSEVrpx1ZC7ItqCOc6fZCySbE+pHVI+dAPUmf1C1LSWZrZVmAVeo/Dw9sJzJfzmcdAFQl+jZP8/uV0A==", "dev": true, "requires": { - "@snyk/composer-lockfile-parser": "1.0.3", + "@snyk/cli-interface": "2.2.0", + "@snyk/composer-lockfile-parser": "1.2.0", "tslib": "1.9.3" }, "dependencies": { + "@snyk/cli-interface": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.2.0.tgz", + "integrity": "sha512-sA7V2JhgqJB9z5uYotgQc5iNDv//y+Mdm39rANxmFjtZMSYJZHkP80arzPjw1mB5ni/sWec7ieYUUFeySZBfVg==", + "dev": true, + "requires": { + "tslib": "^1.9.3" + } + }, "tslib": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", @@ -16387,12 +16162,29 @@ "snyk-resolve": "^1.0.1", "snyk-try-require": "^1.3.1", "then-fs": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "snyk-python-plugin": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.13.3.tgz", - "integrity": "sha512-Ud7mHmpMG4uCChvYLx5jA8HwOV/FNpT65xTxSt+6wsOjIUTuLiqM86mbvgzgk3pir8vMP9yQEsCi1i0zYLBArw==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/snyk-python-plugin/-/snyk-python-plugin-1.16.0.tgz", + "integrity": "sha512-IA53xOcy1s881tbIrIXNqIuCNozd4PAVWN8oF0xgRn2NQbq0e7EWt7kFPJbmZodpLCDpXaKKqV2MHbXruFIsrw==", "dev": true, "requires": { "@snyk/cli-interface": "^2.0.3", @@ -16407,6 +16199,23 @@ "requires": { "debug": "^3.1.0", "then-fs": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "snyk-resolve-deps": { @@ -16435,9 +16244,9 @@ }, "dependencies": { "@types/node": { - "version": "6.14.7", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.7.tgz", - "integrity": "sha512-YbPXbaynBTe0pVExPhL76TsWnxSPeFAvImIsmylpBWn/yfw+lHy+Q68aawvZHsgskT44ZAoeE67GM5f+Brekew==", + "version": "6.14.9", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.14.9.tgz", + "integrity": "sha512-leP/gxHunuazPdZaCvsCefPQxinqUDsCxCR5xaDUrY2MkYxQRFZZwU5e7GojyYsGB7QVtCi7iVEl/hoFXQYc+w==", "dev": true }, "debug": { @@ -16464,14 +16273,15 @@ } }, "snyk-sbt-plugin": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/snyk-sbt-plugin/-/snyk-sbt-plugin-2.8.0.tgz", - "integrity": "sha512-ZzyBdND5CsaO0xkv05geZXu8Dd6Llvr/5oTj811U7h7UmrvljrAiABW4RGjRJPrPVuuJaDej2p633sgGtK9UsA==", + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/snyk-sbt-plugin/-/snyk-sbt-plugin-2.11.0.tgz", + "integrity": "sha512-wUqHLAa3MzV6sVO+05MnV+lwc+T6o87FZZaY+43tQPytBI2Wq23O3j4POREM4fa2iFfiQJoEYD6c7xmhiEUsSA==", "dev": true, "requires": { + "debug": "^4.1.1", "semver": "^6.1.2", "tmp": "^0.1.0", - "tree-kill": "^1.2.1", + "tree-kill": "^1.2.2", "tslib": "^1.10.0" }, "dependencies": { @@ -16505,6 +16315,54 @@ "lodash.clonedeep": "^4.3.0", "lru-cache": "^4.0.0", "then-fs": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socks": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", + "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", + "dev": true, + "requires": { + "ip": "1.1.5", + "smart-buffer": "^4.1.0" + } + }, + "socks-proxy-agent": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", + "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", + "dev": true, + "requires": { + "agent-base": "~4.2.1", + "socks": "~2.3.2" + }, + "dependencies": { + "agent-base": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", + "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "dev": true, + "requires": { + "es6-promisify": "^5.0.0" + } + } } }, "sorted-object": { @@ -16514,18 +16372,18 @@ "dev": true }, "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", "dev": true }, "source-map-resolve": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", - "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "dev": true, "requires": { - "atob": "^2.1.1", + "atob": "^2.1.2", "decode-uri-component": "^0.2.0", "resolve-url": "^0.2.1", "source-map-url": "^0.4.0", @@ -16533,13 +16391,21 @@ } }, "source-map-support": { - "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", - "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } } }, "source-map-url": { @@ -16611,6 +16477,18 @@ "dev": true, "requires": { "through2": "^2.0.2" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "sprintf-js": { @@ -16654,75 +16532,43 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } - } - }, - "stealthy-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", - "dev": true - }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "safe-buffer": "~5.1.0" + "is-descriptor": "^0.1.0" } } } }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, "stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", @@ -16731,44 +16577,6 @@ "requires": { "duplexer2": "~0.1.0", "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "stream-http": { @@ -16781,6 +16589,19 @@ "inherits": "^2.0.1", "readable-stream": "^3.0.6", "xtend": "^4.0.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "stream-parser": { @@ -16811,44 +16632,6 @@ "requires": { "inherits": "^2.0.1", "readable-stream": "^2.0.2" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } } }, "string-argv": { @@ -16865,17 +16648,6 @@ "requires": { "astral-regex": "^1.0.0", "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "string-width": { @@ -16886,23 +16658,12 @@ "requires": { "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^4.0.0" - }, - "dependencies": { - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } } }, "string.prototype.trimleft": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", - "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", + "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -16910,9 +16671,9 @@ } }, "string.prototype.trimright": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", - "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", + "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "dev": true, "requires": { "define-properties": "^1.1.3", @@ -16920,10 +16681,21 @@ } }, "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } }, "stringify-object": { "version": "3.3.0", @@ -16937,18 +16709,18 @@ } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^3.0.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", "dev": true } } @@ -16996,7 +16768,6 @@ "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, "requires": { "has-flag": "^3.0.0" } @@ -17062,6 +16833,15 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -17082,6 +16862,19 @@ "fs-constants": "^1.0.0", "inherits": "^2.0.3", "readable-stream": "^3.1.1" + }, + "dependencies": { + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, "teeny-request": { @@ -17111,6 +16904,25 @@ "uuid": "^3.0.1" } }, + "tempy": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz", + "integrity": "sha512-WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==", + "dev": true, + "requires": { + "temp-dir": "^1.0.0", + "type-fest": "^0.3.1", + "unique-string": "^1.0.0" + }, + "dependencies": { + "type-fest": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", + "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", + "dev": true + } + } + }, "term-size": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", @@ -17151,6 +16963,57 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } } } }, @@ -17186,9 +17049,9 @@ } }, "p-limit": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz", - "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==", + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { "p-try": "^2.0.0" @@ -17255,53 +17118,20 @@ "dev": true }, "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.1.tgz", + "integrity": "sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", - "dev": true, - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "dev": true - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } - } + "readable-stream": "2 || 3" } }, + "thunkify": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz", + "integrity": "sha1-+qDp0jDFGsyVyhOjYawFyn4EVT0=", + "dev": true + }, "timed-out": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", @@ -17345,6 +17175,23 @@ "dev": true, "requires": { "kind-of": "^3.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } } }, "to-regex": { @@ -17368,6 +17215,12 @@ "is-number": "^7.0.0" } }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, "toml": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", @@ -17416,9 +17269,9 @@ "dev": true }, "tree-kill": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.1.tgz", - "integrity": "sha512-4hjqbObwlh2dLyW4tcz0Ymw0ggoaVDMveUB9w8kFSQScdRLo0gxO9J7WFcUBo+W3C1TLdFIEwNOWebgZZ0RH9Q==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, "trim-newlines": { @@ -17433,14 +17286,38 @@ "integrity": "sha1-n5up2e+odkw4dpi8v+sshI8RrbM=", "dev": true }, + "ts-jest": { + "version": "24.3.0", + "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-24.3.0.tgz", + "integrity": "sha512-Hb94C/+QRIgjVZlJyiWwouYUF+siNJHJHknyspaOcZ+OQAIdFG/UrdQVXw/0B8Z3No34xkUXZJpOTy9alOWdVQ==", + "requires": { + "bs-logger": "0.x", + "buffer-from": "1.x", + "fast-json-stable-stringify": "2.x", + "json5": "2.x", + "lodash.memoize": "4.x", + "make-error": "1.x", + "mkdirp": "0.x", + "resolve": "1.x", + "semver": "^5.5", + "yargs-parser": "10.x" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + } + } + }, "tsc-publish": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/tsc-publish/-/tsc-publish-0.5.1.tgz", - "integrity": "sha512-iRM1VpDacFnoghS2FPib6hTuvhfr9mylsOfGVJpYKa/ns3+2m2/93F4bNzMWIZCD2GLv+lECcYQGTrvKxjkBAA==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/tsc-publish/-/tsc-publish-0.5.2.tgz", + "integrity": "sha512-Z/2yZSVFoeEgziTVeYc+jc6+2AygX9dnbwB6f3XuI4sSgTjoq5ggRGoTtuKcI91FzUeJq88rVZkN/VZmjbSzPw==", "dev": true, "requires": { "@types/ignore-walk": "^3.0.1", - "@types/node": "^12.11.1", + "@types/node": "^12.12.5", "ansi-colors": "^4.1.1", "commander": "^3.0.0", "ignore-walk": "^3.0.3", @@ -17448,9 +17325,9 @@ }, "dependencies": { "@types/node": { - "version": "12.11.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.11.1.tgz", - "integrity": "sha512-TJtwsqZ39pqcljJpajeoofYRfeZ7/I/OMUQ5pR4q5wOKf2ocrUvBAZUMhWsOvKx3dVc/aaV5GluBivt0sWqA5A==", + "version": "12.12.24", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.24.tgz", + "integrity": "sha512-1Ciqv9pqwVtW6FsIUKSZNB82E5Cu1I2bBTj1xuIHXLe/1zYLl3956Nbhg2MzSYHVfl9/rmanjbQIb7LibfCnug==", "dev": true }, "commander": { @@ -17459,15 +17336,6 @@ "integrity": "sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==", "dev": true }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, "strip-json-comments": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz", @@ -17483,9 +17351,9 @@ "dev": true }, "tslint": { - "version": "5.20.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz", - "integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", @@ -17544,6 +17412,12 @@ "integrity": "sha1-wBzKqa5LiXxtDD4hCuUvPHqEQ3U=", "dev": true }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, "tslib": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", @@ -17591,6 +17465,11 @@ "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", "dev": true }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", @@ -17621,48 +17500,48 @@ } }, "typedoc": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.15.0.tgz", - "integrity": "sha512-NOtfq5Tis4EFt+J2ozhVq9RCeUnfEYMFKoU6nCXCXUULJz1UQynOM+yH3TkfZCPLzigbqB0tQYGVlktUWweKlw==", + "version": "0.15.8", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.15.8.tgz", + "integrity": "sha512-a0zypcvfIFsS7Gqpf2MkC1+jNND3K1Om38pbDdy/gYWX01NuJZhC5+O0HkIp0oRIZOo7PWrA5+fC24zkANY28Q==", "dev": true, "requires": { "@types/minimatch": "3.0.3", "fs-extra": "^8.1.0", - "handlebars": "^4.1.2", - "highlight.js": "^9.15.8", + "handlebars": "^4.7.0", + "highlight.js": "^9.17.1", "lodash": "^4.17.15", - "marked": "^0.7.0", + "marked": "^0.8.0", "minimatch": "^3.0.0", "progress": "^2.0.3", "shelljs": "^0.8.3", - "typedoc-default-themes": "^0.6.0", - "typescript": "3.5.x" + "typedoc-default-themes": "^0.6.3", + "typescript": "3.7.x" }, "dependencies": { - "typescript": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz", - "integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g==", + "marked": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.8.0.tgz", + "integrity": "sha512-MyUe+T/Pw4TZufHkzAfDj6HarCBWia2y27/bhuYkTaiUnfDYFnCP3KUN+9oM7Wi6JA2rymtVYbQu3spE0GCmxQ==", "dev": true } } }, "typedoc-default-themes": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.0.tgz", - "integrity": "sha512-MdTROOojxod78CEv22rIA69o7crMPLnVZPefuDLt/WepXqJwgiSu8Xxq+H36x0Jj3YGc7lOglI2vPJ2GhoOybw==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.6.3.tgz", + "integrity": "sha512-rouf0TcIA4M2nOQFfC7Zp4NEwoYiEX4vX/ZtudJWU9IHA29MPC+PPgSXYLPESkUo7FuB//GxigO3mk9Qe1xp3Q==", "dev": true, "requires": { "backbone": "^1.4.0", "jquery": "^3.4.1", - "lunr": "^2.3.6", + "lunr": "^2.3.8", "underscore": "^1.9.1" } }, "typescript": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", - "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz", + "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==", "dev": true }, "uc.micro": { @@ -17686,6 +17565,12 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } }, @@ -17709,9 +17594,9 @@ } }, "underscore": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", - "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.2.tgz", + "integrity": "sha512-D39qtimx0c1fI3ya1Lnhk3E9nONswSKhnffBI0gME9C99fYOkNi04xs8K6pePLhvl1frbDemkaBQ5ikWllR2HQ==", "dev": true }, "union-value": { @@ -17758,6 +17643,12 @@ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, "unset-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", @@ -17795,12 +17686,6 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", "dev": true - }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true } } }, @@ -17832,6 +17717,23 @@ "latest-version": "^3.0.0", "semver-diff": "^2.0.0", "xdg-basedir": "^3.0.0" + }, + "dependencies": { + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz", + "integrity": "sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==", + "dev": true + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz", + "integrity": "sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + } } }, "upper-case": { @@ -17963,11 +17865,6 @@ "spdx-expression-parse": "^3.0.0" } }, - "vcap_services": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/vcap_services/-/vcap_services-0.3.4.tgz", - "integrity": "sha1-FUv5QEAlEqzKI98iY/xg72aEWto=" - }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -17980,15 +17877,15 @@ } }, "vm-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.0.tgz", - "integrity": "sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true }, "vscode-languageserver-types": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz", - "integrity": "sha512-lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==", + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.0.tgz", + "integrity": "sha512-AXteNagMhBWnZ6gNN0UB4HTiD/7TajgfHl6jaM6O7qz3zDJw0H3Jf83w05phihnBRCML+K6Ockh8f8bL0OObPw==", "dev": true }, "w3c-hr-time": { @@ -18022,6 +17919,18 @@ "outpipe": "^1.1.0", "through2": "^2.0.0", "xtend": "^4.0.0" + }, + "dependencies": { + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + } } }, "wav": { @@ -18046,6 +17955,12 @@ "ms": "2.0.0" } }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", @@ -18057,6 +17972,12 @@ "isarray": "0.0.1", "string_decoder": "~0.10.x" } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true } } }, @@ -18067,11 +17988,12 @@ "dev": true }, "websocket": { - "version": "1.0.30", - "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.30.tgz", - "integrity": "sha512-aO6klgaTdSMkhfl5VVJzD5fm+Srhh5jLYbS15+OiI1sN6h/RU/XW6WN9J1uVIpUKNmsTvT3Hs35XAFjn9NMfOw==", + "version": "1.0.31", + "resolved": "https://registry.npmjs.org/websocket/-/websocket-1.0.31.tgz", + "integrity": "sha512-VAouplvGKPiKFDTeCCO65vYHsyay8DqoBSlzIO3fayrfOgU94lQN5a1uWVnFrMLceTJw/+fQXR5PGbUVRaHshQ==", "requires": { "debug": "^2.2.0", + "es5-ext": "^0.10.50", "nan": "^2.14.0", "typedarray-to-buffer": "^3.1.5", "yaeti": "^0.0.6" @@ -18114,9 +18036,9 @@ } }, "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "requires": { "isexe": "^2.0.0" @@ -18150,12 +18072,114 @@ "dev": true, "requires": { "execa": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", "dev": true }, "wrap-ansi": { @@ -18179,6 +18203,15 @@ "is-fullwidth-code-point": "^2.0.0", "strip-ansi": "^5.1.0" } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } } } }, @@ -18198,9 +18231,9 @@ } }, "write-file-atomic": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz", - "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", + "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", "dev": true, "requires": { "graceful-fs": "^4.1.11", @@ -18230,13 +18263,12 @@ "dev": true }, "xml2js": { - "version": "0.4.22", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.22.tgz", - "integrity": "sha512-MWTbxAQqclRSTnehWWe5nMKzI3VmJ8ltiJEco8akcC6j3miOhjjfzKum5sId+CWhfxdOs/1xauYr8/ZDBtQiRw==", + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", "dev": true, "requires": { "sax": ">=0.6.0", - "util.promisify": "~1.0.0", "xmlbuilder": "~11.0.0" }, "dependencies": { @@ -18260,6 +18292,12 @@ "integrity": "sha512-MjGsXhKG8YjTKrDCXseFo3ClbMGvUD4en29H2Cev1dv4P/chlpw6KdYmlCWDkhosBVKRDjM836+3e3pm1cBNJA==", "dev": true }, + "xregexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz", + "integrity": "sha1-UqY+VsoLhKfzpfPWGHLxJq16WUM=", + "dev": true + }, "xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", @@ -18267,9 +18305,9 @@ "dev": true }, "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", "dev": true }, "yaeti": { @@ -18283,60 +18321,104 @@ "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", "dev": true }, + "yaml": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.7.2.tgz", + "integrity": "sha512-qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==", + "dev": true, + "requires": { + "@babel/runtime": "^7.6.3" + } + }, "yargs": { - "version": "3.32.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", - "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", - "dev": true, - "requires": { - "camelcase": "^2.0.1", - "cliui": "^3.0.3", - "decamelize": "^1.1.1", - "os-locale": "^1.4.0", - "string-width": "^1.0.1", - "window-size": "^0.1.4", - "y18n": "^3.2.0" + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" }, "dependencies": { - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } }, - "camelcase": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", - "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", - "dev": true + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "p-limit": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", + "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" } }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } }, "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "ansi-regex": "^4.1.0" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -18345,7 +18427,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", - "dev": true, "requires": { "camelcase": "^4.1.0" }, @@ -18353,8 +18434,7 @@ "camelcase": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" } } } diff --git a/package.json b/package.json index 003bc20a28..af89709410 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ibm-watson", - "version": "5.2.1", + "version": "5.3.0", "description": "Client library to use the IBM Watson Services", "repository": { "type": "git", @@ -88,7 +88,7 @@ "axios": "^0.18.0", "camelcase": "^5.3.1", "extend": "~3.0.2", - "ibm-cloud-sdk-core": "^1.3.1", + "ibm-cloud-sdk-core": "^2.0.3", "isstream": "~0.1.2", "websocket": "^1.0.28" }, diff --git a/personality-insights/v3.ts b/personality-insights/v3.ts index e4ab46e5b8..14ff31bc67 100644 --- a/personality-insights/v3.ts +++ b/personality-insights/v3.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -42,9 +41,8 @@ import { getSdkHeaders } from '../lib/common'; class PersonalityInsightsV3 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/personality-insights/api'; - name: string; // set by prototype to 'personality_insights' - serviceVersion: string; // set by prototype to 'v3' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/personality-insights/api'; + static DEFAULT_SERVICE_NAME: string = 'personality_insights'; /** * Construct a PersonalityInsightsV3 object. @@ -58,17 +56,25 @@ class PersonalityInsightsV3 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/personality-insights/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {PersonalityInsightsV3} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = PersonalityInsightsV3.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('personality_insights'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -147,8 +153,8 @@ class PersonalityInsightsV3 extends BaseService { * @param {boolean} [params.consumptionPreferences] - Indicates whether consumption preferences are returned with the * results. By default, no consumption preferences are returned. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public profile(params: PersonalityInsightsV3.ProfileParams, callback?: PersonalityInsightsV3.Callback): Promise> { const _params = extend({}, params); @@ -156,7 +162,6 @@ class PersonalityInsightsV3 extends BaseService { const requiredParams = ['content']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -165,15 +170,15 @@ class PersonalityInsightsV3 extends BaseService { } return reject(missingParams); } - const body = _params.content; + const body = _params.content; const query = { 'raw_scores': _params.rawScores, 'csv_headers': _params.csvHeaders, 'consumption_preferences': _params.consumptionPreferences }; - const sdkHeaders = getSdkHeaders('personality_insights', 'v3', 'profile'); + const sdkHeaders = getSdkHeaders(PersonalityInsightsV3.DEFAULT_SERVICE_NAME, 'v3', 'profile'); const parameters = { options: { @@ -277,8 +282,8 @@ class PersonalityInsightsV3 extends BaseService { * @param {boolean} [params.consumptionPreferences] - Indicates whether consumption preferences are returned with the * results. By default, no consumption preferences are returned. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public profileAsCsv(params: PersonalityInsightsV3.ProfileAsCsvParams, callback?: PersonalityInsightsV3.Callback): Promise> { const _params = extend({}, params); @@ -286,7 +291,6 @@ class PersonalityInsightsV3 extends BaseService { const requiredParams = ['content']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -295,15 +299,15 @@ class PersonalityInsightsV3 extends BaseService { } return reject(missingParams); } - const body = _params.content; + const body = _params.content; const query = { 'raw_scores': _params.rawScores, 'csv_headers': _params.csvHeaders, 'consumption_preferences': _params.consumptionPreferences }; - const sdkHeaders = getSdkHeaders('personality_insights', 'v3', 'profileAsCsv'); + const sdkHeaders = getSdkHeaders(PersonalityInsightsV3.DEFAULT_SERVICE_NAME, 'v3', 'profileAsCsv'); const parameters = { options: { @@ -342,9 +346,6 @@ class PersonalityInsightsV3 extends BaseService { } -PersonalityInsightsV3.prototype.name = 'personality_insights'; -PersonalityInsightsV3.prototype.serviceVersion = 'v3'; - /************************* * interfaces ************************/ diff --git a/speech-to-text/v1-generated.ts b/speech-to-text/v1-generated.ts index 0ca9c9516d..ab95035196 100644 --- a/speech-to-text/v1-generated.ts +++ b/speech-to-text/v1-generated.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -42,9 +41,8 @@ import { getSdkHeaders } from '../lib/common'; class SpeechToTextV1 extends BaseService { - static URL: string = 'https://stream.watsonplatform.net/speech-to-text/api'; - name: string; // set by prototype to 'speech_to_text' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://stream.watsonplatform.net/speech-to-text/api'; + static DEFAULT_SERVICE_NAME: string = 'speech_to_text'; /** * Construct a SpeechToTextV1 object. @@ -52,16 +50,24 @@ class SpeechToTextV1 extends BaseService { * @param {Object} options - Options for the service. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/speech-to-text/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {SpeechToTextV1} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = SpeechToTextV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('speech_to_text'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } } /************************* @@ -79,16 +85,15 @@ class SpeechToTextV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listModels(params?: SpeechToTextV1.ListModelsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listModels'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listModels'); const parameters = { options: { @@ -133,8 +138,8 @@ class SpeechToTextV1 extends BaseService { * @param {string} params.modelId - The identifier of the model in the form of its name from the output of the **Get a * model** method. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getModel(params: SpeechToTextV1.GetModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -142,7 +147,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['modelId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -156,7 +160,7 @@ class SpeechToTextV1 extends BaseService { 'model_id': _params.modelId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getModel'); const parameters = { options: { @@ -382,9 +386,33 @@ class SpeechToTextV1 extends BaseService { * @param {boolean} [params.audioMetrics] - If `true`, requests detailed information about the signal characteristics * of the input audio. The service returns audio metrics with the final transcription results. By default, the service * returns no audio metrics. + * + * See [Audio metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#audio_metrics). + * @param {number} [params.endOfPhraseSilenceTime] - If `true`, specifies the duration of the pause interval at which + * the service splits a transcript into multiple final results. If the service detects pauses or extended silence + * before it reaches the end of the audio stream, its response can include multiple final results. Silence indicates a + * point at which the speaker pauses between spoken words or phrases. + * + * Specify a value for the pause interval in the range of 0.0 to 120.0. + * * A value greater than 0 specifies the interval that the service is to use for speech recognition. + * * A value of 0 indicates that the service is to use the default interval. It is equivalent to omitting the + * parameter. + * + * The default pause interval for most languages is 0.8 seconds; the default for Chinese is 0.6 seconds. + * + * See [End of phrase silence + * time](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#silence_time). + * @param {boolean} [params.splitTranscriptAtPhraseEnd] - If `true`, directs the service to split the transcript into + * multiple final results based on semantic features of the input, for example, at the conclusion of meaningful + * phrases such as sentences. The service bases its understanding of semantic features on the base language model that + * you use with a request. Custom language models and grammars can also influence how and where the service splits a + * transcript. By default, the service splits transcripts based solely on the pause interval. + * + * See [Split transcript at phrase + * end](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#split_transcript). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public recognize(params: SpeechToTextV1.RecognizeParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -392,7 +420,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['audio']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -401,8 +428,8 @@ class SpeechToTextV1 extends BaseService { } return reject(missingParams); } - const body = _params.audio; + const body = _params.audio; const query = { 'model': _params.model, 'language_customization_id': _params.languageCustomizationId, @@ -422,10 +449,12 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId, 'grammar_name': _params.grammarName, 'redaction': _params.redaction, - 'audio_metrics': _params.audioMetrics + 'audio_metrics': _params.audioMetrics, + 'end_of_phrase_silence_time': _params.endOfPhraseSilenceTime, + 'split_transcript_at_phrase_end': _params.splitTranscriptAtPhraseEnd }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'recognize'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'recognize'); const parameters = { options: { @@ -505,8 +534,8 @@ class SpeechToTextV1 extends BaseService { * verification and with every notification sent to the callback URL. It calculates the signature over the payload of * the notification. If you omit the parameter, the service does not send the header. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public registerCallback(params: SpeechToTextV1.RegisterCallbackParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -514,7 +543,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['callbackUrl']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -529,7 +557,7 @@ class SpeechToTextV1 extends BaseService { 'user_secret': _params.userSecret }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'registerCallback'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'registerCallback'); const parameters = { options: { @@ -574,8 +602,8 @@ class SpeechToTextV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.callbackUrl - The callback URL that is to be unregistered. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public unregisterCallback(params: SpeechToTextV1.UnregisterCallbackParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -583,7 +611,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['callbackUrl']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -597,7 +624,7 @@ class SpeechToTextV1 extends BaseService { 'callback_url': _params.callbackUrl }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'unregisterCallback'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'unregisterCallback'); const parameters = { options: { @@ -854,6 +881,9 @@ class SpeechToTextV1 extends BaseService { * transcription of the input audio. The service returns processing metrics at the interval specified by the * `processing_metrics_interval` parameter. It also returns processing metrics for transcription events, for example, * for final and interim results. By default, the service returns no processing metrics. + * + * See [Processing + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#processing_metrics). * @param {number} [params.processingMetricsInterval] - Specifies the interval in real wall-clock seconds at which the * service is to return processing metrics. The parameter is ignored unless the `processing_metrics` parameter is set * to `true`. @@ -864,12 +894,39 @@ class SpeechToTextV1 extends BaseService { * The service does not impose a maximum value. If you want to receive processing metrics only for transcription * events instead of at periodic intervals, set the value to a large number. If the value is larger than the duration * of the audio, the service returns processing metrics only for transcription events. + * + * See [Processing + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#processing_metrics). * @param {boolean} [params.audioMetrics] - If `true`, requests detailed information about the signal characteristics * of the input audio. The service returns audio metrics with the final transcription results. By default, the service * returns no audio metrics. + * + * See [Audio metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#audio_metrics). + * @param {number} [params.endOfPhraseSilenceTime] - If `true`, specifies the duration of the pause interval at which + * the service splits a transcript into multiple final results. If the service detects pauses or extended silence + * before it reaches the end of the audio stream, its response can include multiple final results. Silence indicates a + * point at which the speaker pauses between spoken words or phrases. + * + * Specify a value for the pause interval in the range of 0.0 to 120.0. + * * A value greater than 0 specifies the interval that the service is to use for speech recognition. + * * A value of 0 indicates that the service is to use the default interval. It is equivalent to omitting the + * parameter. + * + * The default pause interval for most languages is 0.8 seconds; the default for Chinese is 0.6 seconds. + * + * See [End of phrase silence + * time](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#silence_time). + * @param {boolean} [params.splitTranscriptAtPhraseEnd] - If `true`, directs the service to split the transcript into + * multiple final results based on semantic features of the input, for example, at the conclusion of meaningful + * phrases such as sentences. The service bases its understanding of semantic features on the base language model that + * you use with a request. Custom language models and grammars can also influence how and where the service splits a + * transcript. By default, the service splits transcripts based solely on the pause interval. + * + * See [Split transcript at phrase + * end](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#split_transcript). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createJob(params: SpeechToTextV1.CreateJobParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -877,7 +934,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['audio']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -886,8 +942,8 @@ class SpeechToTextV1 extends BaseService { } return reject(missingParams); } - const body = _params.audio; + const body = _params.audio; const query = { 'model': _params.model, 'callback_url': _params.callbackUrl, @@ -913,10 +969,12 @@ class SpeechToTextV1 extends BaseService { 'redaction': _params.redaction, 'processing_metrics': _params.processingMetrics, 'processing_metrics_interval': _params.processingMetricsInterval, - 'audio_metrics': _params.audioMetrics + 'audio_metrics': _params.audioMetrics, + 'end_of_phrase_silence_time': _params.endOfPhraseSilenceTime, + 'split_transcript_at_phrase_end': _params.splitTranscriptAtPhraseEnd }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'createJob'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'createJob'); const parameters = { options: { @@ -966,16 +1024,15 @@ class SpeechToTextV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public checkJobs(params?: SpeechToTextV1.CheckJobsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'checkJobs'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'checkJobs'); const parameters = { options: { @@ -1026,8 +1083,8 @@ class SpeechToTextV1 extends BaseService { * @param {string} params.id - The identifier of the asynchronous job that is to be used for the request. You must * make the request with credentials for the instance of the service that owns the job. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public checkJob(params: SpeechToTextV1.CheckJobParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1035,7 +1092,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['id']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1049,7 +1105,7 @@ class SpeechToTextV1 extends BaseService { 'id': _params.id }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'checkJob'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'checkJob'); const parameters = { options: { @@ -1096,8 +1152,8 @@ class SpeechToTextV1 extends BaseService { * @param {string} params.id - The identifier of the asynchronous job that is to be used for the request. You must * make the request with credentials for the instance of the service that owns the job. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteJob(params: SpeechToTextV1.DeleteJobParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1105,7 +1161,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['id']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1119,7 +1174,7 @@ class SpeechToTextV1 extends BaseService { 'id': _params.id }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteJob'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteJob'); const parameters = { options: { @@ -1162,7 +1217,7 @@ class SpeechToTextV1 extends BaseService { * base model for which it is created. The model is owned by the instance of the service whose credentials are used to * create it. * - * You can create a maximum of 1024 custom language models, per credential. The service returns an error if you + * You can create a maximum of 1024 custom language models per owning credentials. The service returns an error if you * attempt to create more than 1024 models. You do not lose any models, but you cannot create any more until your * model count is below the limit. * @@ -1198,8 +1253,8 @@ class SpeechToTextV1 extends BaseService { * @param {string} [params.description] - A description of the new custom language model. Use a localized description * that matches the language of the custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createLanguageModel(params: SpeechToTextV1.CreateLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1207,7 +1262,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['name', 'baseModelName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1224,7 +1278,7 @@ class SpeechToTextV1 extends BaseService { 'description': _params.description }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'createLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'createLanguageModel'); const parameters = { options: { @@ -1274,20 +1328,19 @@ class SpeechToTextV1 extends BaseService { * models are to be returned (for example, `en-US`). Omit the parameter to see all custom language or custom acoustic * models that are owned by the requesting credentials. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listLanguageModels(params?: SpeechToTextV1.ListLanguageModelsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'language': _params.language }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listLanguageModels'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listLanguageModels'); const parameters = { options: { @@ -1334,8 +1387,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getLanguageModel(params: SpeechToTextV1.GetLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1343,7 +1396,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1357,7 +1409,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getLanguageModel'); const parameters = { options: { @@ -1405,8 +1457,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteLanguageModel(params: SpeechToTextV1.DeleteLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1414,7 +1466,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1428,7 +1479,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteLanguageModel'); const parameters = { options: { @@ -1516,8 +1567,8 @@ class SpeechToTextV1 extends BaseService { * The value that you assign is used for all recognition requests that use the model. You can override it for any * recognition request by specifying a customization weight for that request. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public trainLanguageModel(params: SpeechToTextV1.TrainLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1525,7 +1576,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1544,7 +1594,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'trainLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'trainLanguageModel'); const parameters = { options: { @@ -1594,8 +1644,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public resetLanguageModel(params: SpeechToTextV1.ResetLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1603,7 +1653,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1617,7 +1666,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'resetLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'resetLanguageModel'); const parameters = { options: { @@ -1673,8 +1722,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public upgradeLanguageModel(params: SpeechToTextV1.UpgradeLanguageModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1682,7 +1731,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1696,7 +1744,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'upgradeLanguageModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'upgradeLanguageModel'); const parameters = { options: { @@ -1748,8 +1796,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCorpora(params: SpeechToTextV1.ListCorporaParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1757,7 +1805,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1771,7 +1818,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listCorpora'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listCorpora'); const parameters = { options: { @@ -1872,8 +1919,8 @@ class SpeechToTextV1 extends BaseService { * same name. If `false`, the request fails if a corpus with the same name already exists. The parameter has no effect * if a corpus with the same name does not already exist. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addCorpus(params: SpeechToTextV1.AddCorpusParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1881,7 +1928,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'corpusName', 'corpusFile']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1890,6 +1936,7 @@ class SpeechToTextV1 extends BaseService { } return reject(missingParams); } + const formData = { 'corpus_file': { data: _params.corpusFile, @@ -1906,7 +1953,7 @@ class SpeechToTextV1 extends BaseService { 'corpus_name': _params.corpusName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'addCorpus'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'addCorpus'); const parameters = { options: { @@ -1958,8 +2005,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.corpusName - The name of the corpus for the custom language model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCorpus(params: SpeechToTextV1.GetCorpusParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -1967,7 +2014,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'corpusName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1982,7 +2028,7 @@ class SpeechToTextV1 extends BaseService { 'corpus_name': _params.corpusName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getCorpus'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getCorpus'); const parameters = { options: { @@ -2033,8 +2079,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.corpusName - The name of the corpus for the custom language model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteCorpus(params: SpeechToTextV1.DeleteCorpusParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2042,7 +2088,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'corpusName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2057,7 +2102,7 @@ class SpeechToTextV1 extends BaseService { 'corpus_name': _params.corpusName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteCorpus'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteCorpus'); const parameters = { options: { @@ -2122,8 +2167,8 @@ class SpeechToTextV1 extends BaseService { * ordering, values with the same count are ordered alphabetically. With the `curl` command, URL-encode the `+` symbol * as `%2B`. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listWords(params: SpeechToTextV1.ListWordsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2131,7 +2176,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2150,7 +2194,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listWords'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listWords'); const parameters = { options: { @@ -2238,8 +2282,8 @@ class SpeechToTextV1 extends BaseService { * @param {CustomWord[]} params.words - An array of `CustomWord` objects that provides information about each custom * word that is to be added to or updated in the custom language model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addWords(params: SpeechToTextV1.AddWordsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2247,7 +2291,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'words']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2265,7 +2308,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'addWords'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'addWords'); const parameters = { options: { @@ -2360,8 +2403,8 @@ class SpeechToTextV1 extends BaseService { * Use the parameter when you want the word to have a spelling that is different from its usual representation or from * its spelling in corpora training data. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addWord(params: SpeechToTextV1.AddWordParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2369,7 +2412,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'wordName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2390,7 +2432,7 @@ class SpeechToTextV1 extends BaseService { 'word_name': _params.wordName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'addWord'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'addWord'); const parameters = { options: { @@ -2442,8 +2484,8 @@ class SpeechToTextV1 extends BaseService { * word if it includes non-ASCII characters. For more information, see [Character * encoding](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-corporaWords#charEncoding). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getWord(params: SpeechToTextV1.GetWordParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2451,7 +2493,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'wordName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2466,7 +2507,7 @@ class SpeechToTextV1 extends BaseService { 'word_name': _params.wordName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getWord'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getWord'); const parameters = { options: { @@ -2519,8 +2560,8 @@ class SpeechToTextV1 extends BaseService { * the word if it includes non-ASCII characters. For more information, see [Character * encoding](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-corporaWords#charEncoding). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteWord(params: SpeechToTextV1.DeleteWordParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2528,7 +2569,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'wordName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2543,7 +2583,7 @@ class SpeechToTextV1 extends BaseService { 'word_name': _params.wordName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteWord'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteWord'); const parameters = { options: { @@ -2595,8 +2635,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listGrammars(params: SpeechToTextV1.ListGrammarsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2604,7 +2644,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2618,7 +2657,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listGrammars'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listGrammars'); const parameters = { options: { @@ -2715,8 +2754,8 @@ class SpeechToTextV1 extends BaseService { * same name. If `false`, the request fails if a grammar with the same name already exists. The parameter has no * effect if a grammar with the same name does not already exist. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addGrammar(params: SpeechToTextV1.AddGrammarParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2724,7 +2763,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'grammarName', 'grammarFile', 'contentType']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2733,8 +2771,8 @@ class SpeechToTextV1 extends BaseService { } return reject(missingParams); } - const body = _params.grammarFile; + const body = _params.grammarFile; const query = { 'allow_overwrite': _params.allowOverwrite }; @@ -2744,7 +2782,7 @@ class SpeechToTextV1 extends BaseService { 'grammar_name': _params.grammarName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'addGrammar'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'addGrammar'); const parameters = { options: { @@ -2796,8 +2834,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.grammarName - The name of the grammar for the custom language model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getGrammar(params: SpeechToTextV1.GetGrammarParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2805,7 +2843,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'grammarName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2820,7 +2857,7 @@ class SpeechToTextV1 extends BaseService { 'grammar_name': _params.grammarName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getGrammar'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getGrammar'); const parameters = { options: { @@ -2871,8 +2908,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.grammarName - The name of the grammar for the custom language model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteGrammar(params: SpeechToTextV1.DeleteGrammarParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2880,7 +2917,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'grammarName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2895,7 +2931,7 @@ class SpeechToTextV1 extends BaseService { 'grammar_name': _params.grammarName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteGrammar'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteGrammar'); const parameters = { options: { @@ -2939,7 +2975,7 @@ class SpeechToTextV1 extends BaseService { * base model for which it is created. The model is owned by the instance of the service whose credentials are used to * create it. * - * You can create a maximum of 1024 custom acoustic models, per credential. The service returns an error if you + * You can create a maximum of 1024 custom acoustic models per owning credentials. The service returns an error if you * attempt to create more than 1024 models. You do not lose any models, but you cannot create any more until your * model count is below the limit. * @@ -2959,8 +2995,8 @@ class SpeechToTextV1 extends BaseService { * @param {string} [params.description] - A description of the new custom acoustic model. Use a localized description * that matches the language of the custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createAcousticModel(params: SpeechToTextV1.CreateAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -2968,7 +3004,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['name', 'baseModelName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -2984,7 +3019,7 @@ class SpeechToTextV1 extends BaseService { 'description': _params.description }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'createAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'createAcousticModel'); const parameters = { options: { @@ -3034,20 +3069,19 @@ class SpeechToTextV1 extends BaseService { * models are to be returned (for example, `en-US`). Omit the parameter to see all custom language or custom acoustic * models that are owned by the requesting credentials. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listAcousticModels(params?: SpeechToTextV1.ListAcousticModelsParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'language': _params.language }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listAcousticModels'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listAcousticModels'); const parameters = { options: { @@ -3094,8 +3128,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getAcousticModel(params: SpeechToTextV1.GetAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3103,7 +3137,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3117,7 +3150,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getAcousticModel'); const parameters = { options: { @@ -3165,8 +3198,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteAcousticModel(params: SpeechToTextV1.DeleteAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3174,7 +3207,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3188,7 +3220,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteAcousticModel'); const parameters = { options: { @@ -3276,8 +3308,8 @@ class SpeechToTextV1 extends BaseService { * audio resources. The custom language model must be based on the same version of the same base model as the custom * acoustic model. The credentials specified with the request must own both custom models. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public trainAcousticModel(params: SpeechToTextV1.TrainAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3285,7 +3317,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3303,7 +3334,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'trainAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'trainAcousticModel'); const parameters = { options: { @@ -3355,8 +3386,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public resetAcousticModel(params: SpeechToTextV1.ResetAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3364,7 +3395,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3378,7 +3408,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'resetAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'resetAcousticModel'); const parameters = { options: { @@ -3449,8 +3479,8 @@ class SpeechToTextV1 extends BaseService { * input data modified since last training`. See [Upgrading a custom acoustic * model](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-customUpgrade#upgradeAcoustic). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public upgradeAcousticModel(params: SpeechToTextV1.UpgradeAcousticModelParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3458,7 +3488,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3477,7 +3506,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'upgradeAcousticModel'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'upgradeAcousticModel'); const parameters = { options: { @@ -3532,8 +3561,8 @@ class SpeechToTextV1 extends BaseService { * used for the request. You must make the request with credentials for the instance of the service that owns the * custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listAudio(params: SpeechToTextV1.ListAudioParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3541,7 +3570,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3555,7 +3583,7 @@ class SpeechToTextV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'listAudio'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'listAudio'); const parameters = { options: { @@ -3714,8 +3742,8 @@ class SpeechToTextV1 extends BaseService { * resource with the same name. If `false`, the request fails if an audio resource with the same name already exists. * The parameter has no effect if an audio resource with the same name does not already exist. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addAudio(params: SpeechToTextV1.AddAudioParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3723,7 +3751,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'audioName', 'audioResource']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3732,8 +3759,8 @@ class SpeechToTextV1 extends BaseService { } return reject(missingParams); } - const body = _params.audioResource; + const body = _params.audioResource; const query = { 'allow_overwrite': _params.allowOverwrite }; @@ -3743,7 +3770,7 @@ class SpeechToTextV1 extends BaseService { 'audio_name': _params.audioName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'addAudio'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'addAudio'); const parameters = { options: { @@ -3808,8 +3835,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.audioName - The name of the audio resource for the custom acoustic model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getAudio(params: SpeechToTextV1.GetAudioParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3817,7 +3844,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'audioName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3832,7 +3858,7 @@ class SpeechToTextV1 extends BaseService { 'audio_name': _params.audioName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'getAudio'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'getAudio'); const parameters = { options: { @@ -3885,8 +3911,8 @@ class SpeechToTextV1 extends BaseService { * custom model. * @param {string} params.audioName - The name of the audio resource for the custom acoustic model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteAudio(params: SpeechToTextV1.DeleteAudioParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3894,7 +3920,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customizationId', 'audioName']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3909,7 +3934,7 @@ class SpeechToTextV1 extends BaseService { 'audio_name': _params.audioName }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteAudio'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteAudio'); const parameters = { options: { @@ -3963,8 +3988,8 @@ class SpeechToTextV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: SpeechToTextV1.DeleteUserDataParams, callback?: SpeechToTextV1.Callback): Promise> { const _params = extend({}, params); @@ -3972,7 +3997,6 @@ class SpeechToTextV1 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -3986,7 +4010,7 @@ class SpeechToTextV1 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('speech_to_text', 'v1', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(SpeechToTextV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteUserData'); const parameters = { options: { @@ -4020,9 +4044,6 @@ class SpeechToTextV1 extends BaseService { } -SpeechToTextV1.prototype.name = 'speech_to_text'; -SpeechToTextV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ @@ -4090,10 +4111,14 @@ namespace SpeechToTextV1 { ES_PE_NARROWBANDMODEL = 'es-PE_NarrowbandModel', FR_FR_BROADBANDMODEL = 'fr-FR_BroadbandModel', FR_FR_NARROWBANDMODEL = 'fr-FR_NarrowbandModel', + IT_IT_BROADBANDMODEL = 'it-IT_BroadbandModel', + IT_IT_NARROWBANDMODEL = 'it-IT_NarrowbandModel', JA_JP_BROADBANDMODEL = 'ja-JP_BroadbandModel', JA_JP_NARROWBANDMODEL = 'ja-JP_NarrowbandModel', KO_KR_BROADBANDMODEL = 'ko-KR_BroadbandModel', KO_KR_NARROWBANDMODEL = 'ko-KR_NarrowbandModel', + NL_NL_BROADBANDMODEL = 'nl-NL_BroadbandModel', + NL_NL_NARROWBANDMODEL = 'nl-NL_NarrowbandModel', PT_BR_BROADBANDMODEL = 'pt-BR_BroadbandModel', PT_BR_NARROWBANDMODEL = 'pt-BR_NarrowbandModel', ZH_CN_BROADBANDMODEL = 'zh-CN_BroadbandModel', @@ -4251,8 +4276,37 @@ namespace SpeechToTextV1 { redaction?: boolean; /** If `true`, requests detailed information about the signal characteristics of the input audio. The service * returns audio metrics with the final transcription results. By default, the service returns no audio metrics. + * + * See [Audio + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#audio_metrics). */ audioMetrics?: boolean; + /** If `true`, specifies the duration of the pause interval at which the service splits a transcript into + * multiple final results. If the service detects pauses or extended silence before it reaches the end of the audio + * stream, its response can include multiple final results. Silence indicates a point at which the speaker pauses + * between spoken words or phrases. + * + * Specify a value for the pause interval in the range of 0.0 to 120.0. + * * A value greater than 0 specifies the interval that the service is to use for speech recognition. + * * A value of 0 indicates that the service is to use the default interval. It is equivalent to omitting the + * parameter. + * + * The default pause interval for most languages is 0.8 seconds; the default for Chinese is 0.6 seconds. + * + * See [End of phrase silence + * time](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#silence_time). + */ + endOfPhraseSilenceTime?: number; + /** If `true`, directs the service to split the transcript into multiple final results based on semantic + * features of the input, for example, at the conclusion of meaningful phrases such as sentences. The service bases + * its understanding of semantic features on the base language model that you use with a request. Custom language + * models and grammars can also influence how and where the service splits a transcript. By default, the service + * splits transcripts based solely on the pause interval. + * + * See [Split transcript at phrase + * end](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#split_transcript). + */ + splitTranscriptAtPhraseEnd?: boolean; headers?: OutgoingHttpHeaders; } @@ -4301,10 +4355,14 @@ namespace SpeechToTextV1 { ES_PE_NARROWBANDMODEL = 'es-PE_NarrowbandModel', FR_FR_BROADBANDMODEL = 'fr-FR_BroadbandModel', FR_FR_NARROWBANDMODEL = 'fr-FR_NarrowbandModel', + IT_IT_BROADBANDMODEL = 'it-IT_BroadbandModel', + IT_IT_NARROWBANDMODEL = 'it-IT_NarrowbandModel', JA_JP_BROADBANDMODEL = 'ja-JP_BroadbandModel', JA_JP_NARROWBANDMODEL = 'ja-JP_NarrowbandModel', KO_KR_BROADBANDMODEL = 'ko-KR_BroadbandModel', KO_KR_NARROWBANDMODEL = 'ko-KR_NarrowbandModel', + NL_NL_BROADBANDMODEL = 'nl-NL_BroadbandModel', + NL_NL_NARROWBANDMODEL = 'nl-NL_NarrowbandModel', PT_BR_BROADBANDMODEL = 'pt-BR_BroadbandModel', PT_BR_NARROWBANDMODEL = 'pt-BR_NarrowbandModel', ZH_CN_BROADBANDMODEL = 'zh-CN_BroadbandModel', @@ -4523,6 +4581,9 @@ namespace SpeechToTextV1 { * returns processing metrics at the interval specified by the `processing_metrics_interval` parameter. It also * returns processing metrics for transcription events, for example, for final and interim results. By default, the * service returns no processing metrics. + * + * See [Processing + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#processing_metrics). */ processingMetrics?: boolean; /** Specifies the interval in real wall-clock seconds at which the service is to return processing metrics. The @@ -4534,12 +4595,44 @@ namespace SpeechToTextV1 { * The service does not impose a maximum value. If you want to receive processing metrics only for transcription * events instead of at periodic intervals, set the value to a large number. If the value is larger than the * duration of the audio, the service returns processing metrics only for transcription events. + * + * See [Processing + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#processing_metrics). */ processingMetricsInterval?: number; /** If `true`, requests detailed information about the signal characteristics of the input audio. The service * returns audio metrics with the final transcription results. By default, the service returns no audio metrics. + * + * See [Audio + * metrics](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-metrics#audio_metrics). */ audioMetrics?: boolean; + /** If `true`, specifies the duration of the pause interval at which the service splits a transcript into + * multiple final results. If the service detects pauses or extended silence before it reaches the end of the audio + * stream, its response can include multiple final results. Silence indicates a point at which the speaker pauses + * between spoken words or phrases. + * + * Specify a value for the pause interval in the range of 0.0 to 120.0. + * * A value greater than 0 specifies the interval that the service is to use for speech recognition. + * * A value of 0 indicates that the service is to use the default interval. It is equivalent to omitting the + * parameter. + * + * The default pause interval for most languages is 0.8 seconds; the default for Chinese is 0.6 seconds. + * + * See [End of phrase silence + * time](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#silence_time). + */ + endOfPhraseSilenceTime?: number; + /** If `true`, directs the service to split the transcript into multiple final results based on semantic + * features of the input, for example, at the conclusion of meaningful phrases such as sentences. The service bases + * its understanding of semantic features on the base language model that you use with a request. Custom language + * models and grammars can also influence how and where the service splits a transcript. By default, the service + * splits transcripts based solely on the pause interval. + * + * See [Split transcript at phrase + * end](https://cloud.ibm.com/docs/services/speech-to-text?topic=speech-to-text-output#split_transcript). + */ + splitTranscriptAtPhraseEnd?: boolean; headers?: OutgoingHttpHeaders; } @@ -4588,10 +4681,14 @@ namespace SpeechToTextV1 { ES_PE_NARROWBANDMODEL = 'es-PE_NarrowbandModel', FR_FR_BROADBANDMODEL = 'fr-FR_BroadbandModel', FR_FR_NARROWBANDMODEL = 'fr-FR_NarrowbandModel', + IT_IT_BROADBANDMODEL = 'it-IT_BroadbandModel', + IT_IT_NARROWBANDMODEL = 'it-IT_NarrowbandModel', JA_JP_BROADBANDMODEL = 'ja-JP_BroadbandModel', JA_JP_NARROWBANDMODEL = 'ja-JP_NarrowbandModel', KO_KR_BROADBANDMODEL = 'ko-KR_BroadbandModel', KO_KR_NARROWBANDMODEL = 'ko-KR_NarrowbandModel', + NL_NL_BROADBANDMODEL = 'nl-NL_BroadbandModel', + NL_NL_NARROWBANDMODEL = 'nl-NL_NarrowbandModel', PT_BR_BROADBANDMODEL = 'pt-BR_BroadbandModel', PT_BR_NARROWBANDMODEL = 'pt-BR_NarrowbandModel', ZH_CN_BROADBANDMODEL = 'zh-CN_BroadbandModel', @@ -5103,10 +5200,14 @@ namespace SpeechToTextV1 { ES_PE_NARROWBANDMODEL = 'es-PE_NarrowbandModel', FR_FR_BROADBANDMODEL = 'fr-FR_BroadbandModel', FR_FR_NARROWBANDMODEL = 'fr-FR_NarrowbandModel', + IT_IT_BROADBANDMODEL = 'it-IT_BroadbandModel', + IT_IT_NARROWBANDMODEL = 'it-IT_NarrowbandModel', JA_JP_BROADBANDMODEL = 'ja-JP_BroadbandModel', JA_JP_NARROWBANDMODEL = 'ja-JP_NarrowbandModel', KO_KR_BROADBANDMODEL = 'ko-KR_BroadbandModel', KO_KR_NARROWBANDMODEL = 'ko-KR_NarrowbandModel', + NL_NL_BROADBANDMODEL = 'nl-NL_BroadbandModel', + NL_NL_NARROWBANDMODEL = 'nl-NL_NarrowbandModel', PT_BR_BROADBANDMODEL = 'pt-BR_BroadbandModel', PT_BR_NARROWBANDMODEL = 'pt-BR_NarrowbandModel', ZH_CN_BROADBANDMODEL = 'zh-CN_BroadbandModel', @@ -5932,6 +6033,15 @@ namespace SpeechToTextV1 { * specified. */ word_alternatives?: WordAlternativeResults[]; + /** If the `split_transcript_at_phrase_end` parameter is `true`, describes the reason for the split: + * * `end_of_data` - The end of the input audio stream. + * * `full_stop` - A full semantic stop, such as for the conclusion of a grammatical sentence. The insertion of + * splits is influenced by the base language model and biased by custom language models and grammars. + * * `reset` - The amount of audio that is currently being processed exceeds the two-minute maximum. The service + * splits the transcript to avoid excessive memory use. + * * `silence` - A pause or silence that is at least as long as the pause interval. + */ + end_of_utterance?: string; } /** The complete results for a speech recognition request. */ diff --git a/speech-to-text/v1.ts b/speech-to-text/v1.ts index 8dd4c15c9c..a298d73ee1 100644 --- a/speech-to-text/v1.ts +++ b/speech-to-text/v1.ts @@ -292,6 +292,8 @@ namespace SpeechToTextV1 { processingMetrics?: boolean; processingMetricsInterval?: number; audioMetrics?: boolean; + endOfPhraseSilenceTime?: number; + splitTranscriptAtPhraseEnd?: boolean; } } diff --git a/test/unit/assistant.v1.test.js b/test/unit/assistant.v1.test.js index 8a73239300..0d6904742c 100644 --- a/test/unit/assistant.v1.test.js +++ b/test/unit/assistant.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const AssistantV1 = require('../../dist/assistant/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const assistant = new AssistantV1(service); const createRequestMock = jest.spyOn(assistant, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('AssistantV1', () => { describe('message', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -77,7 +66,10 @@ describe('AssistantV1', () => { nodesVisitedDetails, }; - assistant.message(params); + const messageResult = assistant.message(params); + + // all methods should return a Promise + expectToBePromise(messageResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -114,35 +106,9 @@ describe('AssistantV1', () => { assistant.message(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const messagePromise = assistant.message(params); - expectToBePromise(messagePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.message(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -154,7 +120,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -166,7 +132,7 @@ describe('AssistantV1', () => { expectToBePromise(messagePromise); messagePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -174,9 +140,6 @@ describe('AssistantV1', () => { }); describe('listWorkspaces', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const pageLimit = 'fake_pageLimit'; @@ -190,7 +153,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listWorkspaces(params); + const listWorkspacesResult = assistant.listWorkspaces(params); + + // all methods should return a Promise + expectToBePromise(listWorkspacesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -222,21 +188,10 @@ describe('AssistantV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listWorkspacesPromise = assistant.listWorkspaces(params); - expectToBePromise(listWorkspacesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method assistant.listWorkspaces({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -249,9 +204,6 @@ describe('AssistantV1', () => { }); describe('createWorkspace', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -279,7 +231,10 @@ describe('AssistantV1', () => { webhooks, }; - assistant.createWorkspace(params); + const createWorkspaceResult = assistant.createWorkspace(params); + + // all methods should return a Promise + expectToBePromise(createWorkspaceResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -318,21 +273,10 @@ describe('AssistantV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const createWorkspacePromise = assistant.createWorkspace(params); - expectToBePromise(createWorkspacePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method assistant.createWorkspace({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -345,9 +289,6 @@ describe('AssistantV1', () => { }); describe('getWorkspace', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -361,7 +302,10 @@ describe('AssistantV1', () => { sort, }; - assistant.getWorkspace(params); + const getWorkspaceResult = assistant.getWorkspace(params); + + // all methods should return a Promise + expectToBePromise(getWorkspaceResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -394,35 +338,9 @@ describe('AssistantV1', () => { assistant.getWorkspace(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const getWorkspacePromise = assistant.getWorkspace(params); - expectToBePromise(getWorkspacePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getWorkspace(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -434,7 +352,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -446,7 +364,7 @@ describe('AssistantV1', () => { expectToBePromise(getWorkspacePromise); getWorkspacePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -454,9 +372,6 @@ describe('AssistantV1', () => { }); describe('updateWorkspace', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -488,7 +403,10 @@ describe('AssistantV1', () => { append, }; - assistant.updateWorkspace(params); + const updateWorkspaceResult = assistant.updateWorkspace(params); + + // all methods should return a Promise + expectToBePromise(updateWorkspaceResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -530,35 +448,9 @@ describe('AssistantV1', () => { assistant.updateWorkspace(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const updateWorkspacePromise = assistant.updateWorkspace(params); - expectToBePromise(updateWorkspacePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateWorkspace(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -570,7 +462,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -582,7 +474,7 @@ describe('AssistantV1', () => { expectToBePromise(updateWorkspacePromise); updateWorkspacePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -590,9 +482,6 @@ describe('AssistantV1', () => { }); describe('deleteWorkspace', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -600,7 +489,10 @@ describe('AssistantV1', () => { workspaceId, }; - assistant.deleteWorkspace(params); + const deleteWorkspaceResult = assistant.deleteWorkspace(params); + + // all methods should return a Promise + expectToBePromise(deleteWorkspaceResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -630,35 +522,9 @@ describe('AssistantV1', () => { assistant.deleteWorkspace(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const deleteWorkspacePromise = assistant.deleteWorkspace(params); - expectToBePromise(deleteWorkspacePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteWorkspace(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -670,7 +536,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -682,7 +548,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteWorkspacePromise); deleteWorkspacePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -690,9 +556,6 @@ describe('AssistantV1', () => { }); describe('listIntents', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -710,7 +573,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listIntents(params); + const listIntentsResult = assistant.listIntents(params); + + // all methods should return a Promise + expectToBePromise(listIntentsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -745,35 +611,9 @@ describe('AssistantV1', () => { assistant.listIntents(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const listIntentsPromise = assistant.listIntents(params); - expectToBePromise(listIntentsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listIntents(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -785,7 +625,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -797,7 +637,7 @@ describe('AssistantV1', () => { expectToBePromise(listIntentsPromise); listIntentsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -805,9 +645,6 @@ describe('AssistantV1', () => { }); describe('createIntent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -821,7 +658,10 @@ describe('AssistantV1', () => { examples, }; - assistant.createIntent(params); + const createIntentResult = assistant.createIntent(params); + + // all methods should return a Promise + expectToBePromise(createIntentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -856,37 +696,9 @@ describe('AssistantV1', () => { assistant.createIntent(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const params = { - workspaceId, - intent, - }; - - // invoke method - const createIntentPromise = assistant.createIntent(params); - expectToBePromise(createIntentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createIntent(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent']; @@ -898,7 +710,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -910,7 +722,7 @@ describe('AssistantV1', () => { expectToBePromise(createIntentPromise); createIntentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -918,9 +730,6 @@ describe('AssistantV1', () => { }); describe('getIntent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -934,7 +743,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getIntent(params); + const getIntentResult = assistant.getIntent(params); + + // all methods should return a Promise + expectToBePromise(getIntentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -969,37 +781,9 @@ describe('AssistantV1', () => { assistant.getIntent(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const params = { - workspaceId, - intent, - }; - - // invoke method - const getIntentPromise = assistant.getIntent(params); - expectToBePromise(getIntentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getIntent(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent']; @@ -1011,7 +795,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1023,7 +807,7 @@ describe('AssistantV1', () => { expectToBePromise(getIntentPromise); getIntentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1031,9 +815,6 @@ describe('AssistantV1', () => { }); describe('updateIntent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1049,7 +830,10 @@ describe('AssistantV1', () => { newExamples, }; - assistant.updateIntent(params); + const updateIntentResult = assistant.updateIntent(params); + + // all methods should return a Promise + expectToBePromise(updateIntentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1085,37 +869,9 @@ describe('AssistantV1', () => { assistant.updateIntent(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const params = { - workspaceId, - intent, - }; - - // invoke method - const updateIntentPromise = assistant.updateIntent(params); - expectToBePromise(updateIntentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateIntent(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent']; @@ -1127,7 +883,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1139,7 +895,7 @@ describe('AssistantV1', () => { expectToBePromise(updateIntentPromise); updateIntentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1147,9 +903,6 @@ describe('AssistantV1', () => { }); describe('deleteIntent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1159,7 +912,10 @@ describe('AssistantV1', () => { intent, }; - assistant.deleteIntent(params); + const deleteIntentResult = assistant.deleteIntent(params); + + // all methods should return a Promise + expectToBePromise(deleteIntentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1192,37 +948,9 @@ describe('AssistantV1', () => { assistant.deleteIntent(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const params = { - workspaceId, - intent, - }; - - // invoke method - const deleteIntentPromise = assistant.deleteIntent(params); - expectToBePromise(deleteIntentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteIntent(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent']; @@ -1234,7 +962,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1246,7 +974,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteIntentPromise); deleteIntentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1254,9 +982,6 @@ describe('AssistantV1', () => { }); describe('listExamples', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1274,7 +999,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listExamples(params); + const listExamplesResult = assistant.listExamples(params); + + // all methods should return a Promise + expectToBePromise(listExamplesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1315,37 +1043,9 @@ describe('AssistantV1', () => { assistant.listExamples(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const params = { - workspaceId, - intent, - }; - - // invoke method - const listExamplesPromise = assistant.listExamples(params); - expectToBePromise(listExamplesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listExamples(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent']; @@ -1357,7 +1057,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1369,7 +1069,7 @@ describe('AssistantV1', () => { expectToBePromise(listExamplesPromise); listExamplesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1377,9 +1077,6 @@ describe('AssistantV1', () => { }); describe('createExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1393,7 +1090,10 @@ describe('AssistantV1', () => { mentions, }; - assistant.createExample(params); + const createExampleResult = assistant.createExample(params); + + // all methods should return a Promise + expectToBePromise(createExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1434,42 +1134,12 @@ describe('AssistantV1', () => { assistant.createExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); + }); - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const text = 'fake_text'; - const params = { - workspaceId, - intent, - text, - }; - - // invoke method - const createExamplePromise = assistant.createExample(params); - expectToBePromise(createExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); - }); - - describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - - test('should enforce required parameters', async done => { - // required parameters for this method - const requiredParams = ['workspaceId', 'intent', 'text']; + describe('negative tests', () => { + test('should enforce required parameters', async done => { + // required parameters for this method + const requiredParams = ['workspaceId', 'intent', 'text']; let err; try { @@ -1478,7 +1148,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1490,7 +1160,7 @@ describe('AssistantV1', () => { expectToBePromise(createExamplePromise); createExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1498,9 +1168,6 @@ describe('AssistantV1', () => { }); describe('getExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1514,7 +1181,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getExample(params); + const getExampleResult = assistant.getExample(params); + + // all methods should return a Promise + expectToBePromise(getExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1555,39 +1225,9 @@ describe('AssistantV1', () => { assistant.getExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const text = 'fake_text'; - const params = { - workspaceId, - intent, - text, - }; - - // invoke method - const getExamplePromise = assistant.getExample(params); - expectToBePromise(getExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent', 'text']; @@ -1599,7 +1239,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1611,7 +1251,7 @@ describe('AssistantV1', () => { expectToBePromise(getExamplePromise); getExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1619,9 +1259,6 @@ describe('AssistantV1', () => { }); describe('updateExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1637,7 +1274,10 @@ describe('AssistantV1', () => { newMentions, }; - assistant.updateExample(params); + const updateExampleResult = assistant.updateExample(params); + + // all methods should return a Promise + expectToBePromise(updateExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1679,39 +1319,9 @@ describe('AssistantV1', () => { assistant.updateExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const text = 'fake_text'; - const params = { - workspaceId, - intent, - text, - }; - - // invoke method - const updateExamplePromise = assistant.updateExample(params); - expectToBePromise(updateExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent', 'text']; @@ -1723,7 +1333,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1735,7 +1345,7 @@ describe('AssistantV1', () => { expectToBePromise(updateExamplePromise); updateExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1743,9 +1353,6 @@ describe('AssistantV1', () => { }); describe('deleteExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1757,7 +1364,10 @@ describe('AssistantV1', () => { text, }; - assistant.deleteExample(params); + const deleteExampleResult = assistant.deleteExample(params); + + // all methods should return a Promise + expectToBePromise(deleteExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1797,39 +1407,9 @@ describe('AssistantV1', () => { assistant.deleteExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const intent = 'fake_intent'; - const text = 'fake_text'; - const params = { - workspaceId, - intent, - text, - }; - - // invoke method - const deleteExamplePromise = assistant.deleteExample(params); - expectToBePromise(deleteExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'intent', 'text']; @@ -1841,7 +1421,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1853,7 +1433,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteExamplePromise); deleteExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1861,9 +1441,6 @@ describe('AssistantV1', () => { }); describe('listCounterexamples', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1879,7 +1456,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listCounterexamples(params); + const listCounterexamplesResult = assistant.listCounterexamples(params); + + // all methods should return a Promise + expectToBePromise(listCounterexamplesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1913,35 +1493,9 @@ describe('AssistantV1', () => { assistant.listCounterexamples(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const listCounterexamplesPromise = assistant.listCounterexamples(params); - expectToBePromise(listCounterexamplesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listCounterexamples(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -1953,7 +1507,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1965,7 +1519,7 @@ describe('AssistantV1', () => { expectToBePromise(listCounterexamplesPromise); listCounterexamplesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1973,9 +1527,6 @@ describe('AssistantV1', () => { }); describe('createCounterexample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -1985,7 +1536,10 @@ describe('AssistantV1', () => { text, }; - assistant.createCounterexample(params); + const createCounterexampleResult = assistant.createCounterexample(params); + + // all methods should return a Promise + expectToBePromise(createCounterexampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2018,37 +1572,9 @@ describe('AssistantV1', () => { assistant.createCounterexample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const text = 'fake_text'; - const params = { - workspaceId, - text, - }; - - // invoke method - const createCounterexamplePromise = assistant.createCounterexample(params); - expectToBePromise(createCounterexamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createCounterexample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'text']; @@ -2060,7 +1586,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2072,7 +1598,7 @@ describe('AssistantV1', () => { expectToBePromise(createCounterexamplePromise); createCounterexamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2080,9 +1606,6 @@ describe('AssistantV1', () => { }); describe('getCounterexample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2094,7 +1617,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getCounterexample(params); + const getCounterexampleResult = assistant.getCounterexample(params); + + // all methods should return a Promise + expectToBePromise(getCounterexampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2128,37 +1654,9 @@ describe('AssistantV1', () => { assistant.getCounterexample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const text = 'fake_text'; - const params = { - workspaceId, - text, - }; - - // invoke method - const getCounterexamplePromise = assistant.getCounterexample(params); - expectToBePromise(getCounterexamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getCounterexample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'text']; @@ -2170,7 +1668,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2182,7 +1680,7 @@ describe('AssistantV1', () => { expectToBePromise(getCounterexamplePromise); getCounterexamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2190,9 +1688,6 @@ describe('AssistantV1', () => { }); describe('updateCounterexample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2204,7 +1699,10 @@ describe('AssistantV1', () => { newText, }; - assistant.updateCounterexample(params); + const updateCounterexampleResult = assistant.updateCounterexample(params); + + // all methods should return a Promise + expectToBePromise(updateCounterexampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2238,37 +1736,9 @@ describe('AssistantV1', () => { assistant.updateCounterexample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const text = 'fake_text'; - const params = { - workspaceId, - text, - }; - - // invoke method - const updateCounterexamplePromise = assistant.updateCounterexample(params); - expectToBePromise(updateCounterexamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateCounterexample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'text']; @@ -2280,7 +1750,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2292,7 +1762,7 @@ describe('AssistantV1', () => { expectToBePromise(updateCounterexamplePromise); updateCounterexamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2300,9 +1770,6 @@ describe('AssistantV1', () => { }); describe('deleteCounterexample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2312,7 +1779,10 @@ describe('AssistantV1', () => { text, }; - assistant.deleteCounterexample(params); + const deleteCounterexampleResult = assistant.deleteCounterexample(params); + + // all methods should return a Promise + expectToBePromise(deleteCounterexampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2349,37 +1819,9 @@ describe('AssistantV1', () => { assistant.deleteCounterexample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const text = 'fake_text'; - const params = { - workspaceId, - text, - }; - - // invoke method - const deleteCounterexamplePromise = assistant.deleteCounterexample(params); - expectToBePromise(deleteCounterexamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteCounterexample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'text']; @@ -2391,7 +1833,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2403,7 +1845,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteCounterexamplePromise); deleteCounterexamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2411,9 +1853,6 @@ describe('AssistantV1', () => { }); describe('listEntities', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2431,7 +1870,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listEntities(params); + const listEntitiesResult = assistant.listEntities(params); + + // all methods should return a Promise + expectToBePromise(listEntitiesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2466,35 +1908,9 @@ describe('AssistantV1', () => { assistant.listEntities(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const listEntitiesPromise = assistant.listEntities(params); - expectToBePromise(listEntitiesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listEntities(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -2506,7 +1922,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2518,7 +1934,7 @@ describe('AssistantV1', () => { expectToBePromise(listEntitiesPromise); listEntitiesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2526,9 +1942,6 @@ describe('AssistantV1', () => { }); describe('createEntity', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2546,7 +1959,10 @@ describe('AssistantV1', () => { values, }; - assistant.createEntity(params); + const createEntityResult = assistant.createEntity(params); + + // all methods should return a Promise + expectToBePromise(createEntityResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2583,37 +1999,9 @@ describe('AssistantV1', () => { assistant.createEntity(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const createEntityPromise = assistant.createEntity(params); - expectToBePromise(createEntityPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createEntity(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -2625,7 +2013,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2637,7 +2025,7 @@ describe('AssistantV1', () => { expectToBePromise(createEntityPromise); createEntityPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2645,9 +2033,6 @@ describe('AssistantV1', () => { }); describe('getEntity', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2661,7 +2046,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getEntity(params); + const getEntityResult = assistant.getEntity(params); + + // all methods should return a Promise + expectToBePromise(getEntityResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2691,42 +2079,14 @@ describe('AssistantV1', () => { Accept: userAccept, 'Content-Type': userContentType, }, - }; - - assistant.getEntity(params); - checkMediaHeaders(createRequestMock, userAccept, userContentType); - }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const getEntityPromise = assistant.getEntity(params); - expectToBePromise(getEntityPromise); + }; - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); + assistant.getEntity(params); + checkMediaHeaders(createRequestMock, userAccept, userContentType); }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getEntity(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -2738,7 +2098,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2750,7 +2110,7 @@ describe('AssistantV1', () => { expectToBePromise(getEntityPromise); getEntityPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2758,9 +2118,6 @@ describe('AssistantV1', () => { }); describe('updateEntity', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2780,7 +2137,10 @@ describe('AssistantV1', () => { newValues, }; - assistant.updateEntity(params); + const updateEntityResult = assistant.updateEntity(params); + + // all methods should return a Promise + expectToBePromise(updateEntityResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2818,37 +2178,9 @@ describe('AssistantV1', () => { assistant.updateEntity(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const updateEntityPromise = assistant.updateEntity(params); - expectToBePromise(updateEntityPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateEntity(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -2860,7 +2192,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2872,7 +2204,7 @@ describe('AssistantV1', () => { expectToBePromise(updateEntityPromise); updateEntityPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2880,9 +2212,6 @@ describe('AssistantV1', () => { }); describe('deleteEntity', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -2892,7 +2221,10 @@ describe('AssistantV1', () => { entity, }; - assistant.deleteEntity(params); + const deleteEntityResult = assistant.deleteEntity(params); + + // all methods should return a Promise + expectToBePromise(deleteEntityResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2925,37 +2257,9 @@ describe('AssistantV1', () => { assistant.deleteEntity(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const deleteEntityPromise = assistant.deleteEntity(params); - expectToBePromise(deleteEntityPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteEntity(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -2967,7 +2271,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2979,7 +2283,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteEntityPromise); deleteEntityPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2987,9 +2291,6 @@ describe('AssistantV1', () => { }); describe('listMentions', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3003,7 +2304,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listMentions(params); + const listMentionsResult = assistant.listMentions(params); + + // all methods should return a Promise + expectToBePromise(listMentionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3042,37 +2346,9 @@ describe('AssistantV1', () => { assistant.listMentions(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const listMentionsPromise = assistant.listMentions(params); - expectToBePromise(listMentionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listMentions(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -3084,7 +2360,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3096,7 +2372,7 @@ describe('AssistantV1', () => { expectToBePromise(listMentionsPromise); listMentionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3104,9 +2380,6 @@ describe('AssistantV1', () => { }); describe('listValues', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3126,7 +2399,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listValues(params); + const listValuesResult = assistant.listValues(params); + + // all methods should return a Promise + expectToBePromise(listValuesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3164,37 +2440,9 @@ describe('AssistantV1', () => { assistant.listValues(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const params = { - workspaceId, - entity, - }; - - // invoke method - const listValuesPromise = assistant.listValues(params); - expectToBePromise(listValuesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listValues(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity']; @@ -3206,7 +2454,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3218,7 +2466,7 @@ describe('AssistantV1', () => { expectToBePromise(listValuesPromise); listValuesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3226,9 +2474,6 @@ describe('AssistantV1', () => { }); describe('createValue', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3248,7 +2493,10 @@ describe('AssistantV1', () => { patterns, }; - assistant.createValue(params); + const createValueResult = assistant.createValue(params); + + // all methods should return a Promise + expectToBePromise(createValueResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3292,39 +2540,9 @@ describe('AssistantV1', () => { assistant.createValue(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const params = { - workspaceId, - entity, - value, - }; - - // invoke method - const createValuePromise = assistant.createValue(params); - expectToBePromise(createValuePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createValue(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value']; @@ -3336,7 +2554,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3348,7 +2566,7 @@ describe('AssistantV1', () => { expectToBePromise(createValuePromise); createValuePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3356,9 +2574,6 @@ describe('AssistantV1', () => { }); describe('getValue', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3374,7 +2589,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getValue(params); + const getValueResult = assistant.getValue(params); + + // all methods should return a Promise + expectToBePromise(getValueResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3416,39 +2634,9 @@ describe('AssistantV1', () => { assistant.getValue(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const params = { - workspaceId, - entity, - value, - }; - - // invoke method - const getValuePromise = assistant.getValue(params); - expectToBePromise(getValuePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getValue(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value']; @@ -3460,7 +2648,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3472,7 +2660,7 @@ describe('AssistantV1', () => { expectToBePromise(getValuePromise); getValuePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3480,9 +2668,6 @@ describe('AssistantV1', () => { }); describe('updateValue', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3504,7 +2689,10 @@ describe('AssistantV1', () => { newPatterns, }; - assistant.updateValue(params); + const updateValueResult = assistant.updateValue(params); + + // all methods should return a Promise + expectToBePromise(updateValueResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3549,39 +2737,9 @@ describe('AssistantV1', () => { assistant.updateValue(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const params = { - workspaceId, - entity, - value, - }; - - // invoke method - const updateValuePromise = assistant.updateValue(params); - expectToBePromise(updateValuePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateValue(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value']; @@ -3593,7 +2751,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3605,7 +2763,7 @@ describe('AssistantV1', () => { expectToBePromise(updateValuePromise); updateValuePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3613,9 +2771,6 @@ describe('AssistantV1', () => { }); describe('deleteValue', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3627,7 +2782,10 @@ describe('AssistantV1', () => { value, }; - assistant.deleteValue(params); + const deleteValueResult = assistant.deleteValue(params); + + // all methods should return a Promise + expectToBePromise(deleteValueResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3667,39 +2825,9 @@ describe('AssistantV1', () => { assistant.deleteValue(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const params = { - workspaceId, - entity, - value, - }; - - // invoke method - const deleteValuePromise = assistant.deleteValue(params); - expectToBePromise(deleteValuePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteValue(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value']; @@ -3711,7 +2839,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3723,7 +2851,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteValuePromise); deleteValuePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3731,9 +2859,6 @@ describe('AssistantV1', () => { }); describe('listSynonyms', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3753,7 +2878,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listSynonyms(params); + const listSynonymsResult = assistant.listSynonyms(params); + + // all methods should return a Promise + expectToBePromise(listSynonymsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3797,39 +2925,9 @@ describe('AssistantV1', () => { assistant.listSynonyms(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const params = { - workspaceId, - entity, - value, - }; - - // invoke method - const listSynonymsPromise = assistant.listSynonyms(params); - expectToBePromise(listSynonymsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listSynonyms(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value']; @@ -3841,7 +2939,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3853,7 +2951,7 @@ describe('AssistantV1', () => { expectToBePromise(listSynonymsPromise); listSynonymsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3861,9 +2959,6 @@ describe('AssistantV1', () => { }); describe('createSynonym', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -3877,7 +2972,10 @@ describe('AssistantV1', () => { synonym, }; - assistant.createSynonym(params); + const createSynonymResult = assistant.createSynonym(params); + + // all methods should return a Promise + expectToBePromise(createSynonymResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3920,41 +3018,9 @@ describe('AssistantV1', () => { assistant.createSynonym(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const synonym = 'fake_synonym'; - const params = { - workspaceId, - entity, - value, - synonym, - }; - - // invoke method - const createSynonymPromise = assistant.createSynonym(params); - expectToBePromise(createSynonymPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createSynonym(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; @@ -3966,7 +3032,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3978,7 +3044,7 @@ describe('AssistantV1', () => { expectToBePromise(createSynonymPromise); createSynonymPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3986,9 +3052,6 @@ describe('AssistantV1', () => { }); describe('getSynonym', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4004,7 +3067,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getSynonym(params); + const getSynonymResult = assistant.getSynonym(params); + + // all methods should return a Promise + expectToBePromise(getSynonymResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4048,41 +3114,9 @@ describe('AssistantV1', () => { assistant.getSynonym(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const synonym = 'fake_synonym'; - const params = { - workspaceId, - entity, - value, - synonym, - }; - - // invoke method - const getSynonymPromise = assistant.getSynonym(params); - expectToBePromise(getSynonymPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getSynonym(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; @@ -4094,7 +3128,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4106,7 +3140,7 @@ describe('AssistantV1', () => { expectToBePromise(getSynonymPromise); getSynonymPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4114,9 +3148,6 @@ describe('AssistantV1', () => { }); describe('updateSynonym', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4132,7 +3163,10 @@ describe('AssistantV1', () => { newSynonym, }; - assistant.updateSynonym(params); + const updateSynonymResult = assistant.updateSynonym(params); + + // all methods should return a Promise + expectToBePromise(updateSynonymResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4176,41 +3210,9 @@ describe('AssistantV1', () => { assistant.updateSynonym(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const synonym = 'fake_synonym'; - const params = { - workspaceId, - entity, - value, - synonym, - }; - - // invoke method - const updateSynonymPromise = assistant.updateSynonym(params); - expectToBePromise(updateSynonymPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateSynonym(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; @@ -4222,7 +3224,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4234,7 +3236,7 @@ describe('AssistantV1', () => { expectToBePromise(updateSynonymPromise); updateSynonymPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4242,9 +3244,6 @@ describe('AssistantV1', () => { }); describe('deleteSynonym', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4258,7 +3257,10 @@ describe('AssistantV1', () => { synonym, }; - assistant.deleteSynonym(params); + const deleteSynonymResult = assistant.deleteSynonym(params); + + // all methods should return a Promise + expectToBePromise(deleteSynonymResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4301,41 +3303,9 @@ describe('AssistantV1', () => { assistant.deleteSynonym(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const entity = 'fake_entity'; - const value = 'fake_value'; - const synonym = 'fake_synonym'; - const params = { - workspaceId, - entity, - value, - synonym, - }; - - // invoke method - const deleteSynonymPromise = assistant.deleteSynonym(params); - expectToBePromise(deleteSynonymPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteSynonym(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'entity', 'value', 'synonym']; @@ -4347,7 +3317,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4359,7 +3329,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteSynonymPromise); deleteSynonymPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4367,9 +3337,6 @@ describe('AssistantV1', () => { }); describe('listDialogNodes', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4385,7 +3352,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.listDialogNodes(params); + const listDialogNodesResult = assistant.listDialogNodes(params); + + // all methods should return a Promise + expectToBePromise(listDialogNodesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4419,35 +3389,9 @@ describe('AssistantV1', () => { assistant.listDialogNodes(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const listDialogNodesPromise = assistant.listDialogNodes(params); - expectToBePromise(listDialogNodesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listDialogNodes(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -4459,7 +3403,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4471,7 +3415,7 @@ describe('AssistantV1', () => { expectToBePromise(listDialogNodesPromise); listDialogNodesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4479,9 +3423,6 @@ describe('AssistantV1', () => { }); describe('createDialogNode', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4527,7 +3468,10 @@ describe('AssistantV1', () => { disambiguationOptOut, }; - assistant.createDialogNode(params); + const createDialogNodeResult = assistant.createDialogNode(params); + + // all methods should return a Promise + expectToBePromise(createDialogNodeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4578,37 +3522,9 @@ describe('AssistantV1', () => { assistant.createDialogNode(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const dialogNode = 'fake_dialogNode'; - const params = { - workspaceId, - dialogNode, - }; - - // invoke method - const createDialogNodePromise = assistant.createDialogNode(params); - expectToBePromise(createDialogNodePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createDialogNode(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'dialogNode']; @@ -4620,7 +3536,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4632,7 +3548,7 @@ describe('AssistantV1', () => { expectToBePromise(createDialogNodePromise); createDialogNodePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4640,9 +3556,6 @@ describe('AssistantV1', () => { }); describe('getDialogNode', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4654,7 +3567,10 @@ describe('AssistantV1', () => { includeAudit, }; - assistant.getDialogNode(params); + const getDialogNodeResult = assistant.getDialogNode(params); + + // all methods should return a Promise + expectToBePromise(getDialogNodeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4692,37 +3608,9 @@ describe('AssistantV1', () => { assistant.getDialogNode(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const dialogNode = 'fake_dialogNode'; - const params = { - workspaceId, - dialogNode, - }; - - // invoke method - const getDialogNodePromise = assistant.getDialogNode(params); - expectToBePromise(getDialogNodePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.getDialogNode(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'dialogNode']; @@ -4734,7 +3622,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4746,7 +3634,7 @@ describe('AssistantV1', () => { expectToBePromise(getDialogNodePromise); getDialogNodePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4754,9 +3642,6 @@ describe('AssistantV1', () => { }); describe('updateDialogNode', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4804,7 +3689,10 @@ describe('AssistantV1', () => { newDisambiguationOptOut, }; - assistant.updateDialogNode(params); + const updateDialogNodeResult = assistant.updateDialogNode(params); + + // all methods should return a Promise + expectToBePromise(updateDialogNodeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4860,37 +3748,9 @@ describe('AssistantV1', () => { assistant.updateDialogNode(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const dialogNode = 'fake_dialogNode'; - const params = { - workspaceId, - dialogNode, - }; - - // invoke method - const updateDialogNodePromise = assistant.updateDialogNode(params); - expectToBePromise(updateDialogNodePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.updateDialogNode(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'dialogNode']; @@ -4902,7 +3762,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4914,7 +3774,7 @@ describe('AssistantV1', () => { expectToBePromise(updateDialogNodePromise); updateDialogNodePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4922,9 +3782,6 @@ describe('AssistantV1', () => { }); describe('deleteDialogNode', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -4934,7 +3791,10 @@ describe('AssistantV1', () => { dialogNode, }; - assistant.deleteDialogNode(params); + const deleteDialogNodeResult = assistant.deleteDialogNode(params); + + // all methods should return a Promise + expectToBePromise(deleteDialogNodeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4971,37 +3831,9 @@ describe('AssistantV1', () => { assistant.deleteDialogNode(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const dialogNode = 'fake_dialogNode'; - const params = { - workspaceId, - dialogNode, - }; - - // invoke method - const deleteDialogNodePromise = assistant.deleteDialogNode(params); - expectToBePromise(deleteDialogNodePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteDialogNode(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId', 'dialogNode']; @@ -5013,7 +3845,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5025,7 +3857,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteDialogNodePromise); deleteDialogNodePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5033,9 +3865,6 @@ describe('AssistantV1', () => { }); describe('listLogs', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const workspaceId = 'fake_workspaceId'; @@ -5051,7 +3880,10 @@ describe('AssistantV1', () => { cursor, }; - assistant.listLogs(params); + const listLogsResult = assistant.listLogs(params); + + // all methods should return a Promise + expectToBePromise(listLogsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5085,35 +3917,9 @@ describe('AssistantV1', () => { assistant.listLogs(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const workspaceId = 'fake_workspaceId'; - const params = { - workspaceId, - }; - - // invoke method - const listLogsPromise = assistant.listLogs(params); - expectToBePromise(listLogsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listLogs(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['workspaceId']; @@ -5125,7 +3931,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5137,7 +3943,7 @@ describe('AssistantV1', () => { expectToBePromise(listLogsPromise); listLogsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5145,9 +3951,6 @@ describe('AssistantV1', () => { }); describe('listAllLogs', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const filter = 'fake_filter'; @@ -5161,7 +3964,10 @@ describe('AssistantV1', () => { cursor, }; - assistant.listAllLogs(params); + const listAllLogsResult = assistant.listAllLogs(params); + + // all methods should return a Promise + expectToBePromise(listAllLogsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5194,35 +4000,9 @@ describe('AssistantV1', () => { assistant.listAllLogs(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const filter = 'fake_filter'; - const params = { - filter, - }; - - // invoke method - const listAllLogsPromise = assistant.listAllLogs(params); - expectToBePromise(listAllLogsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.listAllLogs(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['filter']; @@ -5234,7 +4014,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5246,7 +4026,7 @@ describe('AssistantV1', () => { expectToBePromise(listAllLogsPromise); listAllLogsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5254,9 +4034,6 @@ describe('AssistantV1', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -5264,7 +4041,10 @@ describe('AssistantV1', () => { customerId, }; - assistant.deleteUserData(params); + const deleteUserDataResult = assistant.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5294,35 +4074,9 @@ describe('AssistantV1', () => { assistant.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = assistant.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -5334,7 +4088,7 @@ describe('AssistantV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5346,7 +4100,7 @@ describe('AssistantV1', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/assistant.v2.test.js b/test/unit/assistant.v2.test.js index 93e9c1572b..9e9daa5ad7 100644 --- a/test/unit/assistant.v2.test.js +++ b/test/unit/assistant.v2.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,21 +15,10 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const AssistantV2 = require('../../dist/assistant/v2'); -const utils = require('../resources/unitTestUtils'); - -const { - getOptions, - checkUrlAndMethod, - checkMediaHeaders, - missingParamsSuccess, - expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, -} = utils; + +const { getOptions, checkUrlAndMethod, checkMediaHeaders, expectToBePromise } = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -39,22 +28,17 @@ const service = { const assistant = new AssistantV2(service); const createRequestMock = jest.spyOn(assistant, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('AssistantV2', () => { describe('createSession', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const assistantId = 'fake_assistantId'; @@ -62,7 +46,10 @@ describe('AssistantV2', () => { assistantId, }; - assistant.createSession(params); + const createSessionResult = assistant.createSession(params); + + // all methods should return a Promise + expectToBePromise(createSessionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -92,35 +79,9 @@ describe('AssistantV2', () => { assistant.createSession(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const assistantId = 'fake_assistantId'; - const params = { - assistantId, - }; - - // invoke method - const createSessionPromise = assistant.createSession(params); - expectToBePromise(createSessionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.createSession(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['assistantId']; @@ -132,7 +93,7 @@ describe('AssistantV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -144,7 +105,7 @@ describe('AssistantV2', () => { expectToBePromise(createSessionPromise); createSessionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -152,9 +113,6 @@ describe('AssistantV2', () => { }); describe('deleteSession', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const assistantId = 'fake_assistantId'; @@ -164,7 +122,10 @@ describe('AssistantV2', () => { sessionId, }; - assistant.deleteSession(params); + const deleteSessionResult = assistant.deleteSession(params); + + // all methods should return a Promise + expectToBePromise(deleteSessionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -197,37 +158,9 @@ describe('AssistantV2', () => { assistant.deleteSession(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const assistantId = 'fake_assistantId'; - const sessionId = 'fake_sessionId'; - const params = { - assistantId, - sessionId, - }; - - // invoke method - const deleteSessionPromise = assistant.deleteSession(params); - expectToBePromise(deleteSessionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.deleteSession(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['assistantId', 'sessionId']; @@ -239,7 +172,7 @@ describe('AssistantV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -251,7 +184,7 @@ describe('AssistantV2', () => { expectToBePromise(deleteSessionPromise); deleteSessionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -259,9 +192,6 @@ describe('AssistantV2', () => { }); describe('message', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const assistantId = 'fake_assistantId'; @@ -275,7 +205,10 @@ describe('AssistantV2', () => { context, }; - assistant.message(params); + const messageResult = assistant.message(params); + + // all methods should return a Promise + expectToBePromise(messageResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -314,37 +247,9 @@ describe('AssistantV2', () => { assistant.message(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const assistantId = 'fake_assistantId'; - const sessionId = 'fake_sessionId'; - const params = { - assistantId, - sessionId, - }; - - // invoke method - const messagePromise = assistant.message(params); - expectToBePromise(messagePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - assistant.message(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['assistantId', 'sessionId']; @@ -356,7 +261,7 @@ describe('AssistantV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -368,7 +273,7 @@ describe('AssistantV2', () => { expectToBePromise(messagePromise); messagePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/compare-comply.v1.test.js b/test/unit/compare-comply.v1.test.js index ef39082941..ecee175949 100644 --- a/test/unit/compare-comply.v1.test.js +++ b/test/unit/compare-comply.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const CompareComplyV1 = require('../../dist/compare-comply/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const compareComply = new CompareComplyV1(service); const createRequestMock = jest.spyOn(compareComply, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('CompareComplyV1', () => { describe('convertToHtml', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const file = 'fake_file'; @@ -67,7 +56,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.convertToHtml(params); + const convertToHtmlResult = compareComply.convertToHtml(params); + + // all methods should return a Promise + expectToBePromise(convertToHtmlResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -99,35 +91,9 @@ describe('CompareComplyV1', () => { compareComply.convertToHtml(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const file = 'fake_file'; - const params = { - file, - }; - - // invoke method - const convertToHtmlPromise = compareComply.convertToHtml(params); - expectToBePromise(convertToHtmlPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.convertToHtml(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['file']; @@ -139,7 +105,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -151,7 +117,7 @@ describe('CompareComplyV1', () => { expectToBePromise(convertToHtmlPromise); convertToHtmlPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -159,9 +125,6 @@ describe('CompareComplyV1', () => { }); describe('classifyElements', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const file = 'fake_file'; @@ -173,7 +136,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.classifyElements(params); + const classifyElementsResult = compareComply.classifyElements(params); + + // all methods should return a Promise + expectToBePromise(classifyElementsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -205,35 +171,9 @@ describe('CompareComplyV1', () => { compareComply.classifyElements(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const file = 'fake_file'; - const params = { - file, - }; - - // invoke method - const classifyElementsPromise = compareComply.classifyElements(params); - expectToBePromise(classifyElementsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.classifyElements(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['file']; @@ -245,7 +185,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -257,7 +197,7 @@ describe('CompareComplyV1', () => { expectToBePromise(classifyElementsPromise); classifyElementsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -265,9 +205,6 @@ describe('CompareComplyV1', () => { }); describe('extractTables', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const file = 'fake_file'; @@ -279,7 +216,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.extractTables(params); + const extractTablesResult = compareComply.extractTables(params); + + // all methods should return a Promise + expectToBePromise(extractTablesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -311,35 +251,9 @@ describe('CompareComplyV1', () => { compareComply.extractTables(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const file = 'fake_file'; - const params = { - file, - }; - - // invoke method - const extractTablesPromise = compareComply.extractTables(params); - expectToBePromise(extractTablesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.extractTables(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['file']; @@ -351,7 +265,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -363,7 +277,7 @@ describe('CompareComplyV1', () => { expectToBePromise(extractTablesPromise); extractTablesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -371,9 +285,6 @@ describe('CompareComplyV1', () => { }); describe('compareDocuments', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const file1 = 'fake_file1'; @@ -393,7 +304,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.compareDocuments(params); + const compareDocumentsResult = compareComply.compareDocuments(params); + + // all methods should return a Promise + expectToBePromise(compareDocumentsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -431,37 +345,9 @@ describe('CompareComplyV1', () => { compareComply.compareDocuments(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const file1 = 'fake_file1'; - const file2 = 'fake_file2'; - const params = { - file1, - file2, - }; - - // invoke method - const compareDocumentsPromise = compareComply.compareDocuments(params); - expectToBePromise(compareDocumentsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.compareDocuments(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['file1', 'file2']; @@ -473,7 +359,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -485,7 +371,7 @@ describe('CompareComplyV1', () => { expectToBePromise(compareDocumentsPromise); compareDocumentsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -493,9 +379,6 @@ describe('CompareComplyV1', () => { }); describe('addFeedback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const feedbackData = 'fake_feedbackData'; @@ -507,7 +390,10 @@ describe('CompareComplyV1', () => { comment, }; - compareComply.addFeedback(params); + const addFeedbackResult = compareComply.addFeedback(params); + + // all methods should return a Promise + expectToBePromise(addFeedbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -539,35 +425,9 @@ describe('CompareComplyV1', () => { compareComply.addFeedback(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const feedbackData = 'fake_feedbackData'; - const params = { - feedbackData, - }; - - // invoke method - const addFeedbackPromise = compareComply.addFeedback(params); - expectToBePromise(addFeedbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.addFeedback(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['feedbackData']; @@ -579,7 +439,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -591,7 +451,7 @@ describe('CompareComplyV1', () => { expectToBePromise(addFeedbackPromise); addFeedbackPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -599,9 +459,6 @@ describe('CompareComplyV1', () => { }); describe('listFeedback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const feedbackType = 'fake_feedbackType'; @@ -639,7 +496,10 @@ describe('CompareComplyV1', () => { includeTotal, }; - compareComply.listFeedback(params); + const listFeedbackResult = compareComply.listFeedback(params); + + // all methods should return a Promise + expectToBePromise(listFeedbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -683,21 +543,10 @@ describe('CompareComplyV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listFeedbackPromise = compareComply.listFeedback(params); - expectToBePromise(listFeedbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method compareComply.listFeedback({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -710,9 +559,6 @@ describe('CompareComplyV1', () => { }); describe('getFeedback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const feedbackId = 'fake_feedbackId'; @@ -722,7 +568,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.getFeedback(params); + const getFeedbackResult = compareComply.getFeedback(params); + + // all methods should return a Promise + expectToBePromise(getFeedbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -753,35 +602,9 @@ describe('CompareComplyV1', () => { compareComply.getFeedback(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const feedbackId = 'fake_feedbackId'; - const params = { - feedbackId, - }; - - // invoke method - const getFeedbackPromise = compareComply.getFeedback(params); - expectToBePromise(getFeedbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.getFeedback(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['feedbackId']; @@ -793,7 +616,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -805,7 +628,7 @@ describe('CompareComplyV1', () => { expectToBePromise(getFeedbackPromise); getFeedbackPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -813,9 +636,6 @@ describe('CompareComplyV1', () => { }); describe('deleteFeedback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const feedbackId = 'fake_feedbackId'; @@ -825,7 +645,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.deleteFeedback(params); + const deleteFeedbackResult = compareComply.deleteFeedback(params); + + // all methods should return a Promise + expectToBePromise(deleteFeedbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -856,35 +679,9 @@ describe('CompareComplyV1', () => { compareComply.deleteFeedback(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const feedbackId = 'fake_feedbackId'; - const params = { - feedbackId, - }; - - // invoke method - const deleteFeedbackPromise = compareComply.deleteFeedback(params); - expectToBePromise(deleteFeedbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.deleteFeedback(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['feedbackId']; @@ -896,7 +693,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -908,7 +705,7 @@ describe('CompareComplyV1', () => { expectToBePromise(deleteFeedbackPromise); deleteFeedbackPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -916,9 +713,6 @@ describe('CompareComplyV1', () => { }); describe('createBatch', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const _function = 'fake__function'; @@ -940,7 +734,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.createBatch(params); + const createBatchResult = compareComply.createBatch(params); + + // all methods should return a Promise + expectToBePromise(createBatchResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -991,47 +788,9 @@ describe('CompareComplyV1', () => { compareComply.createBatch(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const _function = 'fake__function'; - const inputCredentialsFile = 'fake_inputCredentialsFile'; - const inputBucketLocation = 'fake_inputBucketLocation'; - const inputBucketName = 'fake_inputBucketName'; - const outputCredentialsFile = 'fake_outputCredentialsFile'; - const outputBucketLocation = 'fake_outputBucketLocation'; - const outputBucketName = 'fake_outputBucketName'; - const params = { - _function, - inputCredentialsFile, - inputBucketLocation, - inputBucketName, - outputCredentialsFile, - outputBucketLocation, - outputBucketName, - }; - - // invoke method - const createBatchPromise = compareComply.createBatch(params); - expectToBePromise(createBatchPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.createBatch(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = [ @@ -1051,7 +810,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1071,7 +830,7 @@ describe('CompareComplyV1', () => { expectToBePromise(createBatchPromise); createBatchPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1079,14 +838,14 @@ describe('CompareComplyV1', () => { }); describe('listBatches', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - compareComply.listBatches(params); + const listBatchesResult = compareComply.listBatches(params); + + // all methods should return a Promise + expectToBePromise(listBatchesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1114,21 +873,10 @@ describe('CompareComplyV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listBatchesPromise = compareComply.listBatches(params); - expectToBePromise(listBatchesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method compareComply.listBatches({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -1141,9 +889,6 @@ describe('CompareComplyV1', () => { }); describe('getBatch', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const batchId = 'fake_batchId'; @@ -1151,7 +896,10 @@ describe('CompareComplyV1', () => { batchId, }; - compareComply.getBatch(params); + const getBatchResult = compareComply.getBatch(params); + + // all methods should return a Promise + expectToBePromise(getBatchResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1181,35 +929,9 @@ describe('CompareComplyV1', () => { compareComply.getBatch(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const batchId = 'fake_batchId'; - const params = { - batchId, - }; - - // invoke method - const getBatchPromise = compareComply.getBatch(params); - expectToBePromise(getBatchPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.getBatch(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['batchId']; @@ -1221,7 +943,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1233,7 +955,7 @@ describe('CompareComplyV1', () => { expectToBePromise(getBatchPromise); getBatchPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1241,9 +963,6 @@ describe('CompareComplyV1', () => { }); describe('updateBatch', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const batchId = 'fake_batchId'; @@ -1255,7 +974,10 @@ describe('CompareComplyV1', () => { model, }; - compareComply.updateBatch(params); + const updateBatchResult = compareComply.updateBatch(params); + + // all methods should return a Promise + expectToBePromise(updateBatchResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1289,37 +1011,9 @@ describe('CompareComplyV1', () => { compareComply.updateBatch(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const batchId = 'fake_batchId'; - const action = 'fake_action'; - const params = { - batchId, - action, - }; - - // invoke method - const updateBatchPromise = compareComply.updateBatch(params); - expectToBePromise(updateBatchPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - compareComply.updateBatch(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['batchId', 'action']; @@ -1331,7 +1025,7 @@ describe('CompareComplyV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1343,7 +1037,7 @@ describe('CompareComplyV1', () => { expectToBePromise(updateBatchPromise); updateBatchPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/discovery.v1.test.js b/test/unit/discovery.v1.test.js index 4e6d9c3d4d..802c201516 100644 --- a/test/unit/discovery.v1.test.js +++ b/test/unit/discovery.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,17 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const DiscoveryV1 = require('../../dist/discovery/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -41,22 +35,17 @@ const service = { const discovery = new DiscoveryV1(service); const createRequestMock = jest.spyOn(discovery, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('DiscoveryV1', () => { describe('createEnvironment', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -68,7 +57,10 @@ describe('DiscoveryV1', () => { size, }; - discovery.createEnvironment(params); + const createEnvironmentResult = discovery.createEnvironment(params); + + // all methods should return a Promise + expectToBePromise(createEnvironmentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -100,35 +92,9 @@ describe('DiscoveryV1', () => { discovery.createEnvironment(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const name = 'fake_name'; - const params = { - name, - }; - - // invoke method - const createEnvironmentPromise = discovery.createEnvironment(params); - expectToBePromise(createEnvironmentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createEnvironment(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['name']; @@ -140,7 +106,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -152,7 +118,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createEnvironmentPromise); createEnvironmentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -160,9 +126,6 @@ describe('DiscoveryV1', () => { }); describe('listEnvironments', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -170,7 +133,10 @@ describe('DiscoveryV1', () => { name, }; - discovery.listEnvironments(params); + const listEnvironmentsResult = discovery.listEnvironments(params); + + // all methods should return a Promise + expectToBePromise(listEnvironmentsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -199,21 +165,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listEnvironmentsPromise = discovery.listEnvironments(params); - expectToBePromise(listEnvironmentsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.listEnvironments({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -226,9 +181,6 @@ describe('DiscoveryV1', () => { }); describe('getEnvironment', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -236,7 +188,10 @@ describe('DiscoveryV1', () => { environmentId, }; - discovery.getEnvironment(params); + const getEnvironmentResult = discovery.getEnvironment(params); + + // all methods should return a Promise + expectToBePromise(getEnvironmentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -266,35 +221,9 @@ describe('DiscoveryV1', () => { discovery.getEnvironment(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const getEnvironmentPromise = discovery.getEnvironment(params); - expectToBePromise(getEnvironmentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getEnvironment(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -306,7 +235,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -318,7 +247,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getEnvironmentPromise); getEnvironmentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -326,9 +255,6 @@ describe('DiscoveryV1', () => { }); describe('updateEnvironment', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -342,7 +268,10 @@ describe('DiscoveryV1', () => { size, }; - discovery.updateEnvironment(params); + const updateEnvironmentResult = discovery.updateEnvironment(params); + + // all methods should return a Promise + expectToBePromise(updateEnvironmentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -375,35 +304,9 @@ describe('DiscoveryV1', () => { discovery.updateEnvironment(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const updateEnvironmentPromise = discovery.updateEnvironment(params); - expectToBePromise(updateEnvironmentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateEnvironment(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -415,7 +318,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -427,7 +330,7 @@ describe('DiscoveryV1', () => { expectToBePromise(updateEnvironmentPromise); updateEnvironmentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -435,9 +338,6 @@ describe('DiscoveryV1', () => { }); describe('deleteEnvironment', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -445,7 +345,10 @@ describe('DiscoveryV1', () => { environmentId, }; - discovery.deleteEnvironment(params); + const deleteEnvironmentResult = discovery.deleteEnvironment(params); + + // all methods should return a Promise + expectToBePromise(deleteEnvironmentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -475,35 +378,9 @@ describe('DiscoveryV1', () => { discovery.deleteEnvironment(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const deleteEnvironmentPromise = discovery.deleteEnvironment(params); - expectToBePromise(deleteEnvironmentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteEnvironment(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -515,7 +392,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -527,7 +404,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteEnvironmentPromise); deleteEnvironmentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -535,9 +412,6 @@ describe('DiscoveryV1', () => { }); describe('listFields', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -547,7 +421,10 @@ describe('DiscoveryV1', () => { collectionIds, }; - discovery.listFields(params); + const listFieldsResult = discovery.listFields(params); + + // all methods should return a Promise + expectToBePromise(listFieldsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -580,37 +457,9 @@ describe('DiscoveryV1', () => { discovery.listFields(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionIds = 'fake_collectionIds'; - const params = { - environmentId, - collectionIds, - }; - - // invoke method - const listFieldsPromise = discovery.listFields(params); - expectToBePromise(listFieldsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listFields(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionIds']; @@ -622,7 +471,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -634,7 +483,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listFieldsPromise); listFieldsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -642,9 +491,6 @@ describe('DiscoveryV1', () => { }); describe('createConfiguration', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -664,7 +510,10 @@ describe('DiscoveryV1', () => { source, }; - discovery.createConfiguration(params); + const createConfigurationResult = discovery.createConfiguration(params); + + // all methods should return a Promise + expectToBePromise(createConfigurationResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -702,37 +551,9 @@ describe('DiscoveryV1', () => { discovery.createConfiguration(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const name = 'fake_name'; - const params = { - environmentId, - name, - }; - - // invoke method - const createConfigurationPromise = discovery.createConfiguration(params); - expectToBePromise(createConfigurationPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createConfiguration(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'name']; @@ -744,7 +565,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -756,7 +577,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createConfigurationPromise); createConfigurationPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -764,9 +585,6 @@ describe('DiscoveryV1', () => { }); describe('listConfigurations', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -776,7 +594,10 @@ describe('DiscoveryV1', () => { name, }; - discovery.listConfigurations(params); + const listConfigurationsResult = discovery.listConfigurations(params); + + // all methods should return a Promise + expectToBePromise(listConfigurationsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -807,35 +628,9 @@ describe('DiscoveryV1', () => { discovery.listConfigurations(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const listConfigurationsPromise = discovery.listConfigurations(params); - expectToBePromise(listConfigurationsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listConfigurations(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -847,7 +642,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -859,7 +654,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listConfigurationsPromise); listConfigurationsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -867,9 +662,6 @@ describe('DiscoveryV1', () => { }); describe('getConfiguration', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -879,7 +671,10 @@ describe('DiscoveryV1', () => { configurationId, }; - discovery.getConfiguration(params); + const getConfigurationResult = discovery.getConfiguration(params); + + // all methods should return a Promise + expectToBePromise(getConfigurationResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -916,37 +711,9 @@ describe('DiscoveryV1', () => { discovery.getConfiguration(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const configurationId = 'fake_configurationId'; - const params = { - environmentId, - configurationId, - }; - - // invoke method - const getConfigurationPromise = discovery.getConfiguration(params); - expectToBePromise(getConfigurationPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getConfiguration(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'configurationId']; @@ -958,7 +725,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -970,7 +737,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getConfigurationPromise); getConfigurationPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -978,9 +745,6 @@ describe('DiscoveryV1', () => { }); describe('updateConfiguration', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1002,7 +766,10 @@ describe('DiscoveryV1', () => { source, }; - discovery.updateConfiguration(params); + const updateConfigurationResult = discovery.updateConfiguration(params); + + // all methods should return a Promise + expectToBePromise(updateConfigurationResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1047,39 +814,9 @@ describe('DiscoveryV1', () => { discovery.updateConfiguration(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const configurationId = 'fake_configurationId'; - const name = 'fake_name'; - const params = { - environmentId, - configurationId, - name, - }; - - // invoke method - const updateConfigurationPromise = discovery.updateConfiguration(params); - expectToBePromise(updateConfigurationPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateConfiguration(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'configurationId', 'name']; @@ -1091,7 +828,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1103,7 +840,7 @@ describe('DiscoveryV1', () => { expectToBePromise(updateConfigurationPromise); updateConfigurationPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1111,9 +848,6 @@ describe('DiscoveryV1', () => { }); describe('deleteConfiguration', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1123,7 +857,10 @@ describe('DiscoveryV1', () => { configurationId, }; - discovery.deleteConfiguration(params); + const deleteConfigurationResult = discovery.deleteConfiguration(params); + + // all methods should return a Promise + expectToBePromise(deleteConfigurationResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1160,37 +897,9 @@ describe('DiscoveryV1', () => { discovery.deleteConfiguration(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const configurationId = 'fake_configurationId'; - const params = { - environmentId, - configurationId, - }; - - // invoke method - const deleteConfigurationPromise = discovery.deleteConfiguration(params); - expectToBePromise(deleteConfigurationPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteConfiguration(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'configurationId']; @@ -1202,7 +911,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1214,7 +923,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteConfigurationPromise); deleteConfigurationPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1222,9 +931,6 @@ describe('DiscoveryV1', () => { }); describe('createCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1240,7 +946,10 @@ describe('DiscoveryV1', () => { language, }; - discovery.createCollection(params); + const createCollectionResult = discovery.createCollection(params); + + // all methods should return a Promise + expectToBePromise(createCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1276,37 +985,9 @@ describe('DiscoveryV1', () => { discovery.createCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const name = 'fake_name'; - const params = { - environmentId, - name, - }; - - // invoke method - const createCollectionPromise = discovery.createCollection(params); - expectToBePromise(createCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'name']; @@ -1318,7 +999,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1330,7 +1011,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createCollectionPromise); createCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1338,9 +1019,6 @@ describe('DiscoveryV1', () => { }); describe('listCollections', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1350,7 +1028,10 @@ describe('DiscoveryV1', () => { name, }; - discovery.listCollections(params); + const listCollectionsResult = discovery.listCollections(params); + + // all methods should return a Promise + expectToBePromise(listCollectionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1381,35 +1062,9 @@ describe('DiscoveryV1', () => { discovery.listCollections(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const listCollectionsPromise = discovery.listCollections(params); - expectToBePromise(listCollectionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listCollections(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -1421,7 +1076,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1433,7 +1088,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listCollectionsPromise); listCollectionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1441,9 +1096,6 @@ describe('DiscoveryV1', () => { }); describe('getCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1453,7 +1105,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.getCollection(params); + const getCollectionResult = discovery.getCollection(params); + + // all methods should return a Promise + expectToBePromise(getCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1490,37 +1145,9 @@ describe('DiscoveryV1', () => { discovery.getCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const getCollectionPromise = discovery.getCollection(params); - expectToBePromise(getCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -1532,7 +1159,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1544,7 +1171,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getCollectionPromise); getCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1552,9 +1179,6 @@ describe('DiscoveryV1', () => { }); describe('updateCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1570,7 +1194,10 @@ describe('DiscoveryV1', () => { configurationId, }; - discovery.updateCollection(params); + const updateCollectionResult = discovery.updateCollection(params); + + // all methods should return a Promise + expectToBePromise(updateCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1596,11 +1223,13 @@ describe('DiscoveryV1', () => { // parameters const environmentId = 'fake_environmentId'; const collectionId = 'fake_collectionId'; + const name = 'fake_name'; const userAccept = 'fake/header'; const userContentType = 'fake/header'; const params = { environmentId, collectionId, + name, headers: { Accept: userAccept, 'Content-Type': userContentType, @@ -1610,40 +1239,12 @@ describe('DiscoveryV1', () => { discovery.updateCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const updateCollectionPromise = discovery.updateCollection(params); - expectToBePromise(updateCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method - const requiredParams = ['environmentId', 'collectionId']; + const requiredParams = ['environmentId', 'collectionId', 'name']; let err; try { @@ -1652,19 +1253,19 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); test('should reject promise when required params are not given', done => { // required parameters for this method - const requiredParams = ['environmentId', 'collectionId']; + const requiredParams = ['environmentId', 'collectionId', 'name']; const updateCollectionPromise = discovery.updateCollection(); expectToBePromise(updateCollectionPromise); updateCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1672,9 +1273,6 @@ describe('DiscoveryV1', () => { }); describe('deleteCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1684,7 +1282,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.deleteCollection(params); + const deleteCollectionResult = discovery.deleteCollection(params); + + // all methods should return a Promise + expectToBePromise(deleteCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1721,37 +1322,9 @@ describe('DiscoveryV1', () => { discovery.deleteCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const deleteCollectionPromise = discovery.deleteCollection(params); - expectToBePromise(deleteCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -1763,7 +1336,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1775,7 +1348,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteCollectionPromise); deleteCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1783,9 +1356,6 @@ describe('DiscoveryV1', () => { }); describe('listCollectionFields', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1795,7 +1365,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.listCollectionFields(params); + const listCollectionFieldsResult = discovery.listCollectionFields(params); + + // all methods should return a Promise + expectToBePromise(listCollectionFieldsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1832,37 +1405,9 @@ describe('DiscoveryV1', () => { discovery.listCollectionFields(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const listCollectionFieldsPromise = discovery.listCollectionFields(params); - expectToBePromise(listCollectionFieldsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listCollectionFields(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -1874,7 +1419,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1886,7 +1431,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listCollectionFieldsPromise); listCollectionFieldsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1894,9 +1439,6 @@ describe('DiscoveryV1', () => { }); describe('listExpansions', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -1906,7 +1448,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.listExpansions(params); + const listExpansionsResult = discovery.listExpansions(params); + + // all methods should return a Promise + expectToBePromise(listExpansionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1943,37 +1488,9 @@ describe('DiscoveryV1', () => { discovery.listExpansions(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const listExpansionsPromise = discovery.listExpansions(params); - expectToBePromise(listExpansionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listExpansions(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -1985,7 +1502,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1997,7 +1514,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listExpansionsPromise); listExpansionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2005,9 +1522,6 @@ describe('DiscoveryV1', () => { }); describe('createExpansions', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2019,7 +1533,10 @@ describe('DiscoveryV1', () => { expansions, }; - discovery.createExpansions(params); + const createExpansionsResult = discovery.createExpansions(params); + + // all methods should return a Promise + expectToBePromise(createExpansionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2059,39 +1576,9 @@ describe('DiscoveryV1', () => { discovery.createExpansions(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const expansions = 'fake_expansions'; - const params = { - environmentId, - collectionId, - expansions, - }; - - // invoke method - const createExpansionsPromise = discovery.createExpansions(params); - expectToBePromise(createExpansionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createExpansions(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'expansions']; @@ -2103,7 +1590,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2115,7 +1602,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createExpansionsPromise); createExpansionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2123,9 +1610,6 @@ describe('DiscoveryV1', () => { }); describe('deleteExpansions', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2135,7 +1619,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.deleteExpansions(params); + const deleteExpansionsResult = discovery.deleteExpansions(params); + + // all methods should return a Promise + expectToBePromise(deleteExpansionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2172,37 +1659,9 @@ describe('DiscoveryV1', () => { discovery.deleteExpansions(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const deleteExpansionsPromise = discovery.deleteExpansions(params); - expectToBePromise(deleteExpansionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteExpansions(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2214,7 +1673,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2226,7 +1685,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteExpansionsPromise); deleteExpansionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2234,9 +1693,6 @@ describe('DiscoveryV1', () => { }); describe('getTokenizationDictionaryStatus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2246,7 +1702,12 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.getTokenizationDictionaryStatus(params); + const getTokenizationDictionaryStatusResult = discovery.getTokenizationDictionaryStatus( + params + ); + + // all methods should return a Promise + expectToBePromise(getTokenizationDictionaryStatusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2283,39 +1744,9 @@ describe('DiscoveryV1', () => { discovery.getTokenizationDictionaryStatus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const getTokenizationDictionaryStatusPromise = discovery.getTokenizationDictionaryStatus( - params - ); - expectToBePromise(getTokenizationDictionaryStatusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getTokenizationDictionaryStatus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2327,7 +1758,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2339,7 +1770,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getTokenizationDictionaryStatusPromise); getTokenizationDictionaryStatusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2347,9 +1778,6 @@ describe('DiscoveryV1', () => { }); describe('createTokenizationDictionary', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2361,7 +1789,10 @@ describe('DiscoveryV1', () => { tokenizationRules, }; - discovery.createTokenizationDictionary(params); + const createTokenizationDictionaryResult = discovery.createTokenizationDictionary(params); + + // all methods should return a Promise + expectToBePromise(createTokenizationDictionaryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2399,37 +1830,9 @@ describe('DiscoveryV1', () => { discovery.createTokenizationDictionary(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const createTokenizationDictionaryPromise = discovery.createTokenizationDictionary(params); - expectToBePromise(createTokenizationDictionaryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createTokenizationDictionary(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2441,7 +1844,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2453,7 +1856,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createTokenizationDictionaryPromise); createTokenizationDictionaryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2461,9 +1864,6 @@ describe('DiscoveryV1', () => { }); describe('deleteTokenizationDictionary', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2473,7 +1873,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.deleteTokenizationDictionary(params); + const deleteTokenizationDictionaryResult = discovery.deleteTokenizationDictionary(params); + + // all methods should return a Promise + expectToBePromise(deleteTokenizationDictionaryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2510,37 +1913,9 @@ describe('DiscoveryV1', () => { discovery.deleteTokenizationDictionary(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const deleteTokenizationDictionaryPromise = discovery.deleteTokenizationDictionary(params); - expectToBePromise(deleteTokenizationDictionaryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteTokenizationDictionary(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2552,7 +1927,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2564,7 +1939,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteTokenizationDictionaryPromise); deleteTokenizationDictionaryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2572,9 +1947,6 @@ describe('DiscoveryV1', () => { }); describe('getStopwordListStatus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2584,7 +1956,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.getStopwordListStatus(params); + const getStopwordListStatusResult = discovery.getStopwordListStatus(params); + + // all methods should return a Promise + expectToBePromise(getStopwordListStatusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2621,37 +1996,9 @@ describe('DiscoveryV1', () => { discovery.getStopwordListStatus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const getStopwordListStatusPromise = discovery.getStopwordListStatus(params); - expectToBePromise(getStopwordListStatusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getStopwordListStatus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2663,7 +2010,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2675,7 +2022,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getStopwordListStatusPromise); getStopwordListStatusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2683,9 +2030,6 @@ describe('DiscoveryV1', () => { }); describe('createStopwordList', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2699,7 +2043,10 @@ describe('DiscoveryV1', () => { stopwordFilename, }; - discovery.createStopwordList(params); + const createStopwordListResult = discovery.createStopwordList(params); + + // all methods should return a Promise + expectToBePromise(createStopwordListResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2743,41 +2090,9 @@ describe('DiscoveryV1', () => { discovery.createStopwordList(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const stopwordFile = 'fake_stopwordFile'; - const stopwordFilename = 'fake_stopwordFilename'; - const params = { - environmentId, - collectionId, - stopwordFile, - stopwordFilename, - }; - - // invoke method - const createStopwordListPromise = discovery.createStopwordList(params); - expectToBePromise(createStopwordListPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createStopwordList(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = [ @@ -2794,7 +2109,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2811,7 +2126,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createStopwordListPromise); createStopwordListPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2819,9 +2134,6 @@ describe('DiscoveryV1', () => { }); describe('deleteStopwordList', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2831,7 +2143,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.deleteStopwordList(params); + const deleteStopwordListResult = discovery.deleteStopwordList(params); + + // all methods should return a Promise + expectToBePromise(deleteStopwordListResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2868,37 +2183,9 @@ describe('DiscoveryV1', () => { discovery.deleteStopwordList(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const deleteStopwordListPromise = discovery.deleteStopwordList(params); - expectToBePromise(deleteStopwordListPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteStopwordList(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -2910,7 +2197,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2922,7 +2209,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteStopwordListPromise); deleteStopwordListPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2930,9 +2217,6 @@ describe('DiscoveryV1', () => { }); describe('addDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -2950,7 +2234,10 @@ describe('DiscoveryV1', () => { metadata, }; - discovery.addDocument(params); + const addDocumentResult = discovery.addDocument(params); + + // all methods should return a Promise + expectToBePromise(addDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2987,41 +2274,13 @@ describe('DiscoveryV1', () => { 'Content-Type': userContentType, }, }; - - discovery.addDocument(params); - checkMediaHeaders(createRequestMock, userAccept, userContentType); - }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const addDocumentPromise = discovery.addDocument(params); - expectToBePromise(addDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); + + discovery.addDocument(params); + checkMediaHeaders(createRequestMock, userAccept, userContentType); }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.addDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -3033,7 +2292,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3045,7 +2304,7 @@ describe('DiscoveryV1', () => { expectToBePromise(addDocumentPromise); addDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3053,9 +2312,6 @@ describe('DiscoveryV1', () => { }); describe('getDocumentStatus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3067,7 +2323,10 @@ describe('DiscoveryV1', () => { documentId, }; - discovery.getDocumentStatus(params); + const getDocumentStatusResult = discovery.getDocumentStatus(params); + + // all methods should return a Promise + expectToBePromise(getDocumentStatusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3107,39 +2366,9 @@ describe('DiscoveryV1', () => { discovery.getDocumentStatus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const documentId = 'fake_documentId'; - const params = { - environmentId, - collectionId, - documentId, - }; - - // invoke method - const getDocumentStatusPromise = discovery.getDocumentStatus(params); - expectToBePromise(getDocumentStatusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getDocumentStatus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'documentId']; @@ -3151,7 +2380,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3163,7 +2392,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getDocumentStatusPromise); getDocumentStatusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3171,9 +2400,6 @@ describe('DiscoveryV1', () => { }); describe('updateDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3193,7 +2419,10 @@ describe('DiscoveryV1', () => { metadata, }; - discovery.updateDocument(params); + const updateDocumentResult = discovery.updateDocument(params); + + // all methods should return a Promise + expectToBePromise(updateDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3237,39 +2466,9 @@ describe('DiscoveryV1', () => { discovery.updateDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const documentId = 'fake_documentId'; - const params = { - environmentId, - collectionId, - documentId, - }; - - // invoke method - const updateDocumentPromise = discovery.updateDocument(params); - expectToBePromise(updateDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'documentId']; @@ -3281,7 +2480,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3293,7 +2492,7 @@ describe('DiscoveryV1', () => { expectToBePromise(updateDocumentPromise); updateDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3301,9 +2500,6 @@ describe('DiscoveryV1', () => { }); describe('deleteDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3315,7 +2511,10 @@ describe('DiscoveryV1', () => { documentId, }; - discovery.deleteDocument(params); + const deleteDocumentResult = discovery.deleteDocument(params); + + // all methods should return a Promise + expectToBePromise(deleteDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3355,39 +2554,9 @@ describe('DiscoveryV1', () => { discovery.deleteDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const documentId = 'fake_documentId'; - const params = { - environmentId, - collectionId, - documentId, - }; - - // invoke method - const deleteDocumentPromise = discovery.deleteDocument(params); - expectToBePromise(deleteDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'documentId']; @@ -3399,7 +2568,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3411,7 +2580,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteDocumentPromise); deleteDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3419,9 +2588,6 @@ describe('DiscoveryV1', () => { }); describe('query', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3473,7 +2639,10 @@ describe('DiscoveryV1', () => { xWatsonLoggingOptOut, }; - discovery.query(params); + const queryResult = discovery.query(params); + + // all methods should return a Promise + expectToBePromise(queryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3531,37 +2700,9 @@ describe('DiscoveryV1', () => { discovery.query(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const queryPromise = discovery.query(params); - expectToBePromise(queryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.query(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -3573,7 +2714,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3585,7 +2726,7 @@ describe('DiscoveryV1', () => { expectToBePromise(queryPromise); queryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3593,9 +2734,6 @@ describe('DiscoveryV1', () => { }); describe('queryNotices', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3639,7 +2777,10 @@ describe('DiscoveryV1', () => { similarFields, }; - discovery.queryNotices(params); + const queryNoticesResult = discovery.queryNotices(params); + + // all methods should return a Promise + expectToBePromise(queryNoticesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3693,37 +2834,9 @@ describe('DiscoveryV1', () => { discovery.queryNotices(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const queryNoticesPromise = discovery.queryNotices(params); - expectToBePromise(queryNoticesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.queryNotices(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -3735,7 +2848,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3747,7 +2860,7 @@ describe('DiscoveryV1', () => { expectToBePromise(queryNoticesPromise); queryNoticesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3755,9 +2868,6 @@ describe('DiscoveryV1', () => { }); describe('federatedQuery', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3807,7 +2917,10 @@ describe('DiscoveryV1', () => { xWatsonLoggingOptOut, }; - discovery.federatedQuery(params); + const federatedQueryResult = discovery.federatedQuery(params); + + // all methods should return a Promise + expectToBePromise(federatedQueryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3845,10 +2958,12 @@ describe('DiscoveryV1', () => { test('should prioritize user-given headers', () => { // parameters const environmentId = 'fake_environmentId'; + const collectionIds = 'fake_collectionIds'; const userAccept = 'fake/header'; const userContentType = 'fake/header'; const params = { environmentId, + collectionIds, headers: { Accept: userAccept, 'Content-Type': userContentType, @@ -3858,38 +2973,12 @@ describe('DiscoveryV1', () => { discovery.federatedQuery(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const federatedQueryPromise = discovery.federatedQuery(params); - expectToBePromise(federatedQueryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.federatedQuery(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method - const requiredParams = ['environmentId']; + const requiredParams = ['environmentId', 'collectionIds']; let err; try { @@ -3898,19 +2987,19 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); test('should reject promise when required params are not given', done => { // required parameters for this method - const requiredParams = ['environmentId']; + const requiredParams = ['environmentId', 'collectionIds']; const federatedQueryPromise = discovery.federatedQuery(); expectToBePromise(federatedQueryPromise); federatedQueryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3918,9 +3007,6 @@ describe('DiscoveryV1', () => { }); describe('federatedQueryNotices', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -3956,7 +3042,10 @@ describe('DiscoveryV1', () => { similarFields, }; - discovery.federatedQueryNotices(params); + const federatedQueryNoticesResult = discovery.federatedQueryNotices(params); + + // all methods should return a Promise + expectToBePromise(federatedQueryNoticesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4002,37 +3091,9 @@ describe('DiscoveryV1', () => { discovery.federatedQueryNotices(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionIds = 'fake_collectionIds'; - const params = { - environmentId, - collectionIds, - }; - - // invoke method - const federatedQueryNoticesPromise = discovery.federatedQueryNotices(params); - expectToBePromise(federatedQueryNoticesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.federatedQueryNotices(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionIds']; @@ -4044,7 +3105,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4056,7 +3117,7 @@ describe('DiscoveryV1', () => { expectToBePromise(federatedQueryNoticesPromise); federatedQueryNoticesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4064,9 +3125,6 @@ describe('DiscoveryV1', () => { }); describe('getAutocompletion', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4082,7 +3140,10 @@ describe('DiscoveryV1', () => { count, }; - discovery.getAutocompletion(params); + const getAutocompletionResult = discovery.getAutocompletion(params); + + // all methods should return a Promise + expectToBePromise(getAutocompletionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4124,39 +3185,9 @@ describe('DiscoveryV1', () => { discovery.getAutocompletion(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const prefix = 'fake_prefix'; - const params = { - environmentId, - collectionId, - prefix, - }; - - // invoke method - const getAutocompletionPromise = discovery.getAutocompletion(params); - expectToBePromise(getAutocompletionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getAutocompletion(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'prefix']; @@ -4168,7 +3199,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4180,7 +3211,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getAutocompletionPromise); getAutocompletionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4188,9 +3219,6 @@ describe('DiscoveryV1', () => { }); describe('listTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4200,7 +3228,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.listTrainingData(params); + const listTrainingDataResult = discovery.listTrainingData(params); + + // all methods should return a Promise + expectToBePromise(listTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4237,37 +3268,9 @@ describe('DiscoveryV1', () => { discovery.listTrainingData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const listTrainingDataPromise = discovery.listTrainingData(params); - expectToBePromise(listTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -4279,7 +3282,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4291,7 +3294,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listTrainingDataPromise); listTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4299,9 +3302,6 @@ describe('DiscoveryV1', () => { }); describe('addTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4317,7 +3317,10 @@ describe('DiscoveryV1', () => { examples, }; - discovery.addTrainingData(params); + const addTrainingDataResult = discovery.addTrainingData(params); + + // all methods should return a Promise + expectToBePromise(addTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4353,41 +3356,13 @@ describe('DiscoveryV1', () => { 'Content-Type': userContentType, }, }; - - discovery.addTrainingData(params); - checkMediaHeaders(createRequestMock, userAccept, userContentType); - }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const addTrainingDataPromise = discovery.addTrainingData(params); - expectToBePromise(addTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); - }); - - describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.addTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); + + discovery.addTrainingData(params); + checkMediaHeaders(createRequestMock, userAccept, userContentType); }); + }); + describe('negative tests', () => { test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -4399,7 +3374,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4411,7 +3386,7 @@ describe('DiscoveryV1', () => { expectToBePromise(addTrainingDataPromise); addTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4419,9 +3394,6 @@ describe('DiscoveryV1', () => { }); describe('deleteAllTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4431,7 +3403,10 @@ describe('DiscoveryV1', () => { collectionId, }; - discovery.deleteAllTrainingData(params); + const deleteAllTrainingDataResult = discovery.deleteAllTrainingData(params); + + // all methods should return a Promise + expectToBePromise(deleteAllTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4468,37 +3443,9 @@ describe('DiscoveryV1', () => { discovery.deleteAllTrainingData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const params = { - environmentId, - collectionId, - }; - - // invoke method - const deleteAllTrainingDataPromise = discovery.deleteAllTrainingData(params); - expectToBePromise(deleteAllTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteAllTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId']; @@ -4510,7 +3457,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4522,7 +3469,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteAllTrainingDataPromise); deleteAllTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4530,9 +3477,6 @@ describe('DiscoveryV1', () => { }); describe('getTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4544,7 +3488,10 @@ describe('DiscoveryV1', () => { queryId, }; - discovery.getTrainingData(params); + const getTrainingDataResult = discovery.getTrainingData(params); + + // all methods should return a Promise + expectToBePromise(getTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4584,39 +3531,9 @@ describe('DiscoveryV1', () => { discovery.getTrainingData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const params = { - environmentId, - collectionId, - queryId, - }; - - // invoke method - const getTrainingDataPromise = discovery.getTrainingData(params); - expectToBePromise(getTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId']; @@ -4628,7 +3545,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4640,7 +3557,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getTrainingDataPromise); getTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4648,9 +3565,6 @@ describe('DiscoveryV1', () => { }); describe('deleteTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4662,7 +3576,10 @@ describe('DiscoveryV1', () => { queryId, }; - discovery.deleteTrainingData(params); + const deleteTrainingDataResult = discovery.deleteTrainingData(params); + + // all methods should return a Promise + expectToBePromise(deleteTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4702,39 +3619,9 @@ describe('DiscoveryV1', () => { discovery.deleteTrainingData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const params = { - environmentId, - collectionId, - queryId, - }; - - // invoke method - const deleteTrainingDataPromise = discovery.deleteTrainingData(params); - expectToBePromise(deleteTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId']; @@ -4746,7 +3633,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4758,7 +3645,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteTrainingDataPromise); deleteTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4766,9 +3653,6 @@ describe('DiscoveryV1', () => { }); describe('listTrainingExamples', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4780,7 +3664,10 @@ describe('DiscoveryV1', () => { queryId, }; - discovery.listTrainingExamples(params); + const listTrainingExamplesResult = discovery.listTrainingExamples(params); + + // all methods should return a Promise + expectToBePromise(listTrainingExamplesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4820,39 +3707,9 @@ describe('DiscoveryV1', () => { discovery.listTrainingExamples(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const params = { - environmentId, - collectionId, - queryId, - }; - - // invoke method - const listTrainingExamplesPromise = discovery.listTrainingExamples(params); - expectToBePromise(listTrainingExamplesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listTrainingExamples(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId']; @@ -4864,7 +3721,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4876,7 +3733,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listTrainingExamplesPromise); listTrainingExamplesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4884,9 +3741,6 @@ describe('DiscoveryV1', () => { }); describe('createTrainingExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -4904,7 +3758,10 @@ describe('DiscoveryV1', () => { relevance, }; - discovery.createTrainingExample(params); + const createTrainingExampleResult = discovery.createTrainingExample(params); + + // all methods should return a Promise + expectToBePromise(createTrainingExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4947,39 +3804,9 @@ describe('DiscoveryV1', () => { discovery.createTrainingExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const params = { - environmentId, - collectionId, - queryId, - }; - - // invoke method - const createTrainingExamplePromise = discovery.createTrainingExample(params); - expectToBePromise(createTrainingExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createTrainingExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId']; @@ -4991,7 +3818,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5003,7 +3830,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createTrainingExamplePromise); createTrainingExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5011,9 +3838,6 @@ describe('DiscoveryV1', () => { }); describe('deleteTrainingExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -5027,7 +3851,10 @@ describe('DiscoveryV1', () => { exampleId, }; - discovery.deleteTrainingExample(params); + const deleteTrainingExampleResult = discovery.deleteTrainingExample(params); + + // all methods should return a Promise + expectToBePromise(deleteTrainingExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5070,41 +3897,9 @@ describe('DiscoveryV1', () => { discovery.deleteTrainingExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const exampleId = 'fake_exampleId'; - const params = { - environmentId, - collectionId, - queryId, - exampleId, - }; - - // invoke method - const deleteTrainingExamplePromise = discovery.deleteTrainingExample(params); - expectToBePromise(deleteTrainingExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteTrainingExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; @@ -5116,7 +3911,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5128,7 +3923,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteTrainingExamplePromise); deleteTrainingExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5136,9 +3931,6 @@ describe('DiscoveryV1', () => { }); describe('updateTrainingExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -5156,7 +3948,10 @@ describe('DiscoveryV1', () => { relevance, }; - discovery.updateTrainingExample(params); + const updateTrainingExampleResult = discovery.updateTrainingExample(params); + + // all methods should return a Promise + expectToBePromise(updateTrainingExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5201,41 +3996,9 @@ describe('DiscoveryV1', () => { discovery.updateTrainingExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const exampleId = 'fake_exampleId'; - const params = { - environmentId, - collectionId, - queryId, - exampleId, - }; - - // invoke method - const updateTrainingExamplePromise = discovery.updateTrainingExample(params); - expectToBePromise(updateTrainingExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateTrainingExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; @@ -5247,7 +4010,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5259,7 +4022,7 @@ describe('DiscoveryV1', () => { expectToBePromise(updateTrainingExamplePromise); updateTrainingExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5267,9 +4030,6 @@ describe('DiscoveryV1', () => { }); describe('getTrainingExample', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -5283,7 +4043,10 @@ describe('DiscoveryV1', () => { exampleId, }; - discovery.getTrainingExample(params); + const getTrainingExampleResult = discovery.getTrainingExample(params); + + // all methods should return a Promise + expectToBePromise(getTrainingExampleResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5326,41 +4089,9 @@ describe('DiscoveryV1', () => { discovery.getTrainingExample(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const collectionId = 'fake_collectionId'; - const queryId = 'fake_queryId'; - const exampleId = 'fake_exampleId'; - const params = { - environmentId, - collectionId, - queryId, - exampleId, - }; - - // invoke method - const getTrainingExamplePromise = discovery.getTrainingExample(params); - expectToBePromise(getTrainingExamplePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getTrainingExample(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'collectionId', 'queryId', 'exampleId']; @@ -5372,7 +4103,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5384,7 +4115,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getTrainingExamplePromise); getTrainingExamplePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5392,9 +4123,6 @@ describe('DiscoveryV1', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -5402,7 +4130,10 @@ describe('DiscoveryV1', () => { customerId, }; - discovery.deleteUserData(params); + const deleteUserDataResult = discovery.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5432,35 +4163,9 @@ describe('DiscoveryV1', () => { discovery.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = discovery.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -5472,7 +4177,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5484,7 +4189,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5492,9 +4197,6 @@ describe('DiscoveryV1', () => { }); describe('createEvent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const type = 'fake_type'; @@ -5504,7 +4206,10 @@ describe('DiscoveryV1', () => { data, }; - discovery.createEvent(params); + const createEventResult = discovery.createEvent(params); + + // all methods should return a Promise + expectToBePromise(createEventResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5535,39 +4240,11 @@ describe('DiscoveryV1', () => { }; discovery.createEvent(params); - checkMediaHeaders(createRequestMock, userAccept, userContentType); - }); - - test('should return a promise when no callback is given', () => { - // parameters - const type = 'fake_type'; - const data = 'fake_data'; - const params = { - type, - data, - }; - - // invoke method - const createEventPromise = discovery.createEvent(params); - expectToBePromise(createEventPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); - }); - - describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createEvent(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); + checkMediaHeaders(createRequestMock, userAccept, userContentType); }); + }); + describe('negative tests', () => { test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['type', 'data']; @@ -5579,7 +4256,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -5591,7 +4268,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createEventPromise); createEventPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -5599,9 +4276,6 @@ describe('DiscoveryV1', () => { }); describe('queryLog', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const filter = 'fake_filter'; @@ -5617,7 +4291,10 @@ describe('DiscoveryV1', () => { sort, }; - discovery.queryLog(params); + const queryLogResult = discovery.queryLog(params); + + // all methods should return a Promise + expectToBePromise(queryLogResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5650,21 +4327,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const queryLogPromise = discovery.queryLog(params); - expectToBePromise(queryLogPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.queryLog({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -5677,9 +4343,6 @@ describe('DiscoveryV1', () => { }); describe('getMetricsQuery', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const startTime = 'fake_startTime'; @@ -5691,7 +4354,10 @@ describe('DiscoveryV1', () => { resultType, }; - discovery.getMetricsQuery(params); + const getMetricsQueryResult = discovery.getMetricsQuery(params); + + // all methods should return a Promise + expectToBePromise(getMetricsQueryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5722,21 +4388,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getMetricsQueryPromise = discovery.getMetricsQuery(params); - expectToBePromise(getMetricsQueryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.getMetricsQuery({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -5749,9 +4404,6 @@ describe('DiscoveryV1', () => { }); describe('getMetricsQueryEvent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const startTime = 'fake_startTime'; @@ -5763,7 +4415,10 @@ describe('DiscoveryV1', () => { resultType, }; - discovery.getMetricsQueryEvent(params); + const getMetricsQueryEventResult = discovery.getMetricsQueryEvent(params); + + // all methods should return a Promise + expectToBePromise(getMetricsQueryEventResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5794,21 +4449,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getMetricsQueryEventPromise = discovery.getMetricsQueryEvent(params); - expectToBePromise(getMetricsQueryEventPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.getMetricsQueryEvent({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -5821,9 +4465,6 @@ describe('DiscoveryV1', () => { }); describe('getMetricsQueryNoResults', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const startTime = 'fake_startTime'; @@ -5835,7 +4476,10 @@ describe('DiscoveryV1', () => { resultType, }; - discovery.getMetricsQueryNoResults(params); + const getMetricsQueryNoResultsResult = discovery.getMetricsQueryNoResults(params); + + // all methods should return a Promise + expectToBePromise(getMetricsQueryNoResultsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5866,21 +4510,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getMetricsQueryNoResultsPromise = discovery.getMetricsQueryNoResults(params); - expectToBePromise(getMetricsQueryNoResultsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.getMetricsQueryNoResults({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -5893,9 +4526,6 @@ describe('DiscoveryV1', () => { }); describe('getMetricsEventRate', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const startTime = 'fake_startTime'; @@ -5907,7 +4537,10 @@ describe('DiscoveryV1', () => { resultType, }; - discovery.getMetricsEventRate(params); + const getMetricsEventRateResult = discovery.getMetricsEventRate(params); + + // all methods should return a Promise + expectToBePromise(getMetricsEventRateResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -5938,21 +4571,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getMetricsEventRatePromise = discovery.getMetricsEventRate(params); - expectToBePromise(getMetricsEventRatePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.getMetricsEventRate({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -5965,9 +4587,6 @@ describe('DiscoveryV1', () => { }); describe('getMetricsQueryTokenEvent', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const count = 'fake_count'; @@ -5975,7 +4594,10 @@ describe('DiscoveryV1', () => { count, }; - discovery.getMetricsQueryTokenEvent(params); + const getMetricsQueryTokenEventResult = discovery.getMetricsQueryTokenEvent(params); + + // all methods should return a Promise + expectToBePromise(getMetricsQueryTokenEventResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6004,21 +4626,10 @@ describe('DiscoveryV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getMetricsQueryTokenEventPromise = discovery.getMetricsQueryTokenEvent(params); - expectToBePromise(getMetricsQueryTokenEventPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method discovery.getMetricsQueryTokenEvent({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -6031,9 +4642,6 @@ describe('DiscoveryV1', () => { }); describe('listCredentials', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6041,7 +4649,10 @@ describe('DiscoveryV1', () => { environmentId, }; - discovery.listCredentials(params); + const listCredentialsResult = discovery.listCredentials(params); + + // all methods should return a Promise + expectToBePromise(listCredentialsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6071,35 +4682,9 @@ describe('DiscoveryV1', () => { discovery.listCredentials(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const listCredentialsPromise = discovery.listCredentials(params); - expectToBePromise(listCredentialsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listCredentials(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -6111,7 +4696,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6123,7 +4708,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listCredentialsPromise); listCredentialsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6131,9 +4716,6 @@ describe('DiscoveryV1', () => { }); describe('createCredentials', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6147,7 +4729,10 @@ describe('DiscoveryV1', () => { status, }; - discovery.createCredentials(params); + const createCredentialsResult = discovery.createCredentials(params); + + // all methods should return a Promise + expectToBePromise(createCredentialsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6180,35 +4765,9 @@ describe('DiscoveryV1', () => { discovery.createCredentials(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const createCredentialsPromise = discovery.createCredentials(params); - expectToBePromise(createCredentialsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createCredentials(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -6220,7 +4779,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6232,7 +4791,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createCredentialsPromise); createCredentialsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6240,9 +4799,6 @@ describe('DiscoveryV1', () => { }); describe('getCredentials', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6252,7 +4808,10 @@ describe('DiscoveryV1', () => { credentialId, }; - discovery.getCredentials(params); + const getCredentialsResult = discovery.getCredentials(params); + + // all methods should return a Promise + expectToBePromise(getCredentialsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6289,37 +4848,9 @@ describe('DiscoveryV1', () => { discovery.getCredentials(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const credentialId = 'fake_credentialId'; - const params = { - environmentId, - credentialId, - }; - - // invoke method - const getCredentialsPromise = discovery.getCredentials(params); - expectToBePromise(getCredentialsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getCredentials(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'credentialId']; @@ -6331,7 +4862,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6343,7 +4874,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getCredentialsPromise); getCredentialsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6351,9 +4882,6 @@ describe('DiscoveryV1', () => { }); describe('updateCredentials', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6369,7 +4897,10 @@ describe('DiscoveryV1', () => { status, }; - discovery.updateCredentials(params); + const updateCredentialsResult = discovery.updateCredentials(params); + + // all methods should return a Promise + expectToBePromise(updateCredentialsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6409,37 +4940,9 @@ describe('DiscoveryV1', () => { discovery.updateCredentials(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const credentialId = 'fake_credentialId'; - const params = { - environmentId, - credentialId, - }; - - // invoke method - const updateCredentialsPromise = discovery.updateCredentials(params); - expectToBePromise(updateCredentialsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateCredentials(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'credentialId']; @@ -6451,7 +4954,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6463,7 +4966,7 @@ describe('DiscoveryV1', () => { expectToBePromise(updateCredentialsPromise); updateCredentialsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6471,9 +4974,6 @@ describe('DiscoveryV1', () => { }); describe('deleteCredentials', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6483,7 +4983,10 @@ describe('DiscoveryV1', () => { credentialId, }; - discovery.deleteCredentials(params); + const deleteCredentialsResult = discovery.deleteCredentials(params); + + // all methods should return a Promise + expectToBePromise(deleteCredentialsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6520,37 +5023,9 @@ describe('DiscoveryV1', () => { discovery.deleteCredentials(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const credentialId = 'fake_credentialId'; - const params = { - environmentId, - credentialId, - }; - - // invoke method - const deleteCredentialsPromise = discovery.deleteCredentials(params); - expectToBePromise(deleteCredentialsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteCredentials(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'credentialId']; @@ -6562,7 +5037,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6574,7 +5049,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteCredentialsPromise); deleteCredentialsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6582,9 +5057,6 @@ describe('DiscoveryV1', () => { }); describe('listGateways', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6592,7 +5064,10 @@ describe('DiscoveryV1', () => { environmentId, }; - discovery.listGateways(params); + const listGatewaysResult = discovery.listGateways(params); + + // all methods should return a Promise + expectToBePromise(listGatewaysResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6622,35 +5097,9 @@ describe('DiscoveryV1', () => { discovery.listGateways(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const listGatewaysPromise = discovery.listGateways(params); - expectToBePromise(listGatewaysPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listGateways(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -6662,7 +5111,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6674,7 +5123,7 @@ describe('DiscoveryV1', () => { expectToBePromise(listGatewaysPromise); listGatewaysPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6682,9 +5131,6 @@ describe('DiscoveryV1', () => { }); describe('createGateway', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6694,7 +5140,10 @@ describe('DiscoveryV1', () => { name, }; - discovery.createGateway(params); + const createGatewayResult = discovery.createGateway(params); + + // all methods should return a Promise + expectToBePromise(createGatewayResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6725,35 +5174,9 @@ describe('DiscoveryV1', () => { discovery.createGateway(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const params = { - environmentId, - }; - - // invoke method - const createGatewayPromise = discovery.createGateway(params); - expectToBePromise(createGatewayPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createGateway(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId']; @@ -6765,7 +5188,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6777,7 +5200,7 @@ describe('DiscoveryV1', () => { expectToBePromise(createGatewayPromise); createGatewayPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6785,9 +5208,6 @@ describe('DiscoveryV1', () => { }); describe('getGateway', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6797,7 +5217,10 @@ describe('DiscoveryV1', () => { gatewayId, }; - discovery.getGateway(params); + const getGatewayResult = discovery.getGateway(params); + + // all methods should return a Promise + expectToBePromise(getGatewayResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6834,37 +5257,9 @@ describe('DiscoveryV1', () => { discovery.getGateway(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const gatewayId = 'fake_gatewayId'; - const params = { - environmentId, - gatewayId, - }; - - // invoke method - const getGatewayPromise = discovery.getGateway(params); - expectToBePromise(getGatewayPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getGateway(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'gatewayId']; @@ -6876,7 +5271,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6888,7 +5283,7 @@ describe('DiscoveryV1', () => { expectToBePromise(getGatewayPromise); getGatewayPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -6896,9 +5291,6 @@ describe('DiscoveryV1', () => { }); describe('deleteGateway', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const environmentId = 'fake_environmentId'; @@ -6908,7 +5300,10 @@ describe('DiscoveryV1', () => { gatewayId, }; - discovery.deleteGateway(params); + const deleteGatewayResult = discovery.deleteGateway(params); + + // all methods should return a Promise + expectToBePromise(deleteGatewayResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -6945,37 +5340,9 @@ describe('DiscoveryV1', () => { discovery.deleteGateway(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const environmentId = 'fake_environmentId'; - const gatewayId = 'fake_gatewayId'; - const params = { - environmentId, - gatewayId, - }; - - // invoke method - const deleteGatewayPromise = discovery.deleteGateway(params); - expectToBePromise(deleteGatewayPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteGateway(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['environmentId', 'gatewayId']; @@ -6987,7 +5354,7 @@ describe('DiscoveryV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -6999,7 +5366,7 @@ describe('DiscoveryV1', () => { expectToBePromise(deleteGatewayPromise); deleteGatewayPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/discovery.v2.test.js b/test/unit/discovery.v2.test.js index 25c3de1ac8..01307f30e6 100644 --- a/test/unit/discovery.v2.test.js +++ b/test/unit/discovery.v2.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const DiscoveryV2 = require('../../dist/discovery/v2'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, -} = utils; +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,18 @@ const service = { const discovery = new DiscoveryV2(service); const createRequestMock = jest.spyOn(discovery, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('DiscoveryV2', () => { describe('listCollections', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -63,7 +53,10 @@ describe('DiscoveryV2', () => { projectId, }; - discovery.listCollections(params); + const listCollectionsResult = discovery.listCollections(params); + + // all methods should return a Promise + expectToBePromise(listCollectionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -93,35 +86,9 @@ describe('DiscoveryV2', () => { discovery.listCollections(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const listCollectionsPromise = discovery.listCollections(params); - expectToBePromise(listCollectionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listCollections(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -133,7 +100,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -145,7 +112,7 @@ describe('DiscoveryV2', () => { expectToBePromise(listCollectionsPromise); listCollectionsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -153,9 +120,7 @@ describe('DiscoveryV2', () => { }); describe('query', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -191,7 +156,10 @@ describe('DiscoveryV2', () => { passages, }; - discovery.query(params); + const queryResult = discovery.query(params); + + // all methods should return a Promise + expectToBePromise(queryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -235,35 +203,9 @@ describe('DiscoveryV2', () => { discovery.query(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const queryPromise = discovery.query(params); - expectToBePromise(queryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.query(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -275,7 +217,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -287,7 +229,7 @@ describe('DiscoveryV2', () => { expectToBePromise(queryPromise); queryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -295,9 +237,7 @@ describe('DiscoveryV2', () => { }); describe('getAutocompletion', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -313,7 +253,10 @@ describe('DiscoveryV2', () => { count, }; - discovery.getAutocompletion(params); + const getAutocompletionResult = discovery.getAutocompletion(params); + + // all methods should return a Promise + expectToBePromise(getAutocompletionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -349,37 +292,9 @@ describe('DiscoveryV2', () => { discovery.getAutocompletion(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const prefix = 'fake_prefix'; - const params = { - projectId, - prefix, - }; - - // invoke method - const getAutocompletionPromise = discovery.getAutocompletion(params); - expectToBePromise(getAutocompletionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getAutocompletion(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'prefix']; @@ -391,7 +306,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -403,7 +318,7 @@ describe('DiscoveryV2', () => { expectToBePromise(getAutocompletionPromise); getAutocompletionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -411,9 +326,7 @@ describe('DiscoveryV2', () => { }); describe('queryNotices', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -431,7 +344,10 @@ describe('DiscoveryV2', () => { offset, }; - discovery.queryNotices(params); + const queryNoticesResult = discovery.queryNotices(params); + + // all methods should return a Promise + expectToBePromise(queryNoticesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -466,35 +382,9 @@ describe('DiscoveryV2', () => { discovery.queryNotices(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const queryNoticesPromise = discovery.queryNotices(params); - expectToBePromise(queryNoticesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.queryNotices(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -506,7 +396,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -518,7 +408,7 @@ describe('DiscoveryV2', () => { expectToBePromise(queryNoticesPromise); queryNoticesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -526,9 +416,7 @@ describe('DiscoveryV2', () => { }); describe('listFields', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -538,7 +426,10 @@ describe('DiscoveryV2', () => { collectionIds, }; - discovery.listFields(params); + const listFieldsResult = discovery.listFields(params); + + // all methods should return a Promise + expectToBePromise(listFieldsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -569,35 +460,9 @@ describe('DiscoveryV2', () => { discovery.listFields(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const listFieldsPromise = discovery.listFields(params); - expectToBePromise(listFieldsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listFields(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -609,7 +474,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -621,7 +486,7 @@ describe('DiscoveryV2', () => { expectToBePromise(listFieldsPromise); listFieldsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -629,9 +494,7 @@ describe('DiscoveryV2', () => { }); describe('getComponentSettings', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -639,7 +502,10 @@ describe('DiscoveryV2', () => { projectId, }; - discovery.getComponentSettings(params); + const getComponentSettingsResult = discovery.getComponentSettings(params); + + // all methods should return a Promise + expectToBePromise(getComponentSettingsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -669,35 +535,9 @@ describe('DiscoveryV2', () => { discovery.getComponentSettings(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const getComponentSettingsPromise = discovery.getComponentSettings(params); - expectToBePromise(getComponentSettingsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getComponentSettings(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -709,7 +549,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -721,7 +561,7 @@ describe('DiscoveryV2', () => { expectToBePromise(getComponentSettingsPromise); getComponentSettingsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -729,9 +569,7 @@ describe('DiscoveryV2', () => { }); describe('addDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -751,7 +589,10 @@ describe('DiscoveryV2', () => { xWatsonDiscoveryForce, }; - discovery.addDocument(params); + const addDocumentResult = discovery.addDocument(params); + + // all methods should return a Promise + expectToBePromise(addDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -789,37 +630,9 @@ describe('DiscoveryV2', () => { discovery.addDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const collectionId = 'fake_collectionId'; - const params = { - projectId, - collectionId, - }; - - // invoke method - const addDocumentPromise = discovery.addDocument(params); - expectToBePromise(addDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.addDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'collectionId']; @@ -831,7 +644,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -843,7 +656,7 @@ describe('DiscoveryV2', () => { expectToBePromise(addDocumentPromise); addDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -851,9 +664,7 @@ describe('DiscoveryV2', () => { }); describe('updateDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -875,7 +686,10 @@ describe('DiscoveryV2', () => { xWatsonDiscoveryForce, }; - discovery.updateDocument(params); + const updateDocumentResult = discovery.updateDocument(params); + + // all methods should return a Promise + expectToBePromise(updateDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -916,39 +730,9 @@ describe('DiscoveryV2', () => { discovery.updateDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const collectionId = 'fake_collectionId'; - const documentId = 'fake_documentId'; - const params = { - projectId, - collectionId, - documentId, - }; - - // invoke method - const updateDocumentPromise = discovery.updateDocument(params); - expectToBePromise(updateDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'collectionId', 'documentId']; @@ -960,7 +744,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -972,7 +756,7 @@ describe('DiscoveryV2', () => { expectToBePromise(updateDocumentPromise); updateDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -980,9 +764,7 @@ describe('DiscoveryV2', () => { }); describe('deleteDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -996,7 +778,10 @@ describe('DiscoveryV2', () => { xWatsonDiscoveryForce, }; - discovery.deleteDocument(params); + const deleteDocumentResult = discovery.deleteDocument(params); + + // all methods should return a Promise + expectToBePromise(deleteDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1033,39 +818,9 @@ describe('DiscoveryV2', () => { discovery.deleteDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const collectionId = 'fake_collectionId'; - const documentId = 'fake_documentId'; - const params = { - projectId, - collectionId, - documentId, - }; - - // invoke method - const deleteDocumentPromise = discovery.deleteDocument(params); - expectToBePromise(deleteDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'collectionId', 'documentId']; @@ -1077,7 +832,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1089,7 +844,7 @@ describe('DiscoveryV2', () => { expectToBePromise(deleteDocumentPromise); deleteDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1097,9 +852,7 @@ describe('DiscoveryV2', () => { }); describe('listTrainingQueries', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -1107,7 +860,10 @@ describe('DiscoveryV2', () => { projectId, }; - discovery.listTrainingQueries(params); + const listTrainingQueriesResult = discovery.listTrainingQueries(params); + + // all methods should return a Promise + expectToBePromise(listTrainingQueriesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1137,35 +893,9 @@ describe('DiscoveryV2', () => { discovery.listTrainingQueries(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const listTrainingQueriesPromise = discovery.listTrainingQueries(params); - expectToBePromise(listTrainingQueriesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.listTrainingQueries(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -1177,7 +907,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1189,7 +919,7 @@ describe('DiscoveryV2', () => { expectToBePromise(listTrainingQueriesPromise); listTrainingQueriesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1197,9 +927,7 @@ describe('DiscoveryV2', () => { }); describe('deleteTrainingQueries', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -1207,7 +935,10 @@ describe('DiscoveryV2', () => { projectId, }; - discovery.deleteTrainingQueries(params); + const deleteTrainingQueriesResult = discovery.deleteTrainingQueries(params); + + // all methods should return a Promise + expectToBePromise(deleteTrainingQueriesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1237,35 +968,9 @@ describe('DiscoveryV2', () => { discovery.deleteTrainingQueries(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const deleteTrainingQueriesPromise = discovery.deleteTrainingQueries(params); - expectToBePromise(deleteTrainingQueriesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.deleteTrainingQueries(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId']; @@ -1277,7 +982,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1289,7 +994,7 @@ describe('DiscoveryV2', () => { expectToBePromise(deleteTrainingQueriesPromise); deleteTrainingQueriesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1297,9 +1002,7 @@ describe('DiscoveryV2', () => { }); describe('createTrainingQuery', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -1313,7 +1016,10 @@ describe('DiscoveryV2', () => { filter, }; - discovery.createTrainingQuery(params); + const createTrainingQueryResult = discovery.createTrainingQuery(params); + + // all methods should return a Promise + expectToBePromise(createTrainingQueryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1333,10 +1039,14 @@ describe('DiscoveryV2', () => { test('should prioritize user-given headers', () => { // parameters const projectId = 'fake_projectId'; + const naturalLanguageQuery = 'fake_naturalLanguageQuery'; + const examples = 'fake_examples'; const userAccept = 'fake/header'; const userContentType = 'fake/header'; const params = { projectId, + naturalLanguageQuery, + examples, headers: { Accept: userAccept, 'Content-Type': userContentType, @@ -1346,38 +1056,12 @@ describe('DiscoveryV2', () => { discovery.createTrainingQuery(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const params = { - projectId, - }; - - // invoke method - const createTrainingQueryPromise = discovery.createTrainingQuery(params); - expectToBePromise(createTrainingQueryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.createTrainingQuery(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method - const requiredParams = ['projectId']; + const requiredParams = ['projectId', 'naturalLanguageQuery', 'examples']; let err; try { @@ -1386,19 +1070,19 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); test('should reject promise when required params are not given', done => { // required parameters for this method - const requiredParams = ['projectId']; + const requiredParams = ['projectId', 'naturalLanguageQuery', 'examples']; const createTrainingQueryPromise = discovery.createTrainingQuery(); expectToBePromise(createTrainingQueryPromise); createTrainingQueryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1406,9 +1090,7 @@ describe('DiscoveryV2', () => { }); describe('getTrainingQuery', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -1418,7 +1100,10 @@ describe('DiscoveryV2', () => { queryId, }; - discovery.getTrainingQuery(params); + const getTrainingQueryResult = discovery.getTrainingQuery(params); + + // all methods should return a Promise + expectToBePromise(getTrainingQueryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1451,37 +1136,9 @@ describe('DiscoveryV2', () => { discovery.getTrainingQuery(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const queryId = 'fake_queryId'; - const params = { - projectId, - queryId, - }; - - // invoke method - const getTrainingQueryPromise = discovery.getTrainingQuery(params); - expectToBePromise(getTrainingQueryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.getTrainingQuery(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'queryId']; @@ -1493,7 +1150,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1505,7 +1162,7 @@ describe('DiscoveryV2', () => { expectToBePromise(getTrainingQueryPromise); getTrainingQueryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1513,9 +1170,7 @@ describe('DiscoveryV2', () => { }); describe('updateTrainingQuery', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); + test('should pass the right params to createRequest', () => { // parameters const projectId = 'fake_projectId'; @@ -1531,7 +1186,10 @@ describe('DiscoveryV2', () => { filter, }; - discovery.updateTrainingQuery(params); + const updateTrainingQueryResult = discovery.updateTrainingQuery(params); + + // all methods should return a Promise + expectToBePromise(updateTrainingQueryResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1571,41 +1229,9 @@ describe('DiscoveryV2', () => { discovery.updateTrainingQuery(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const projectId = 'fake_projectId'; - const queryId = 'fake_queryId'; - const naturalLanguageQuery = 'fake_naturalLanguageQuery'; - const examples = 'fake_examples'; - const params = { - projectId, - queryId, - naturalLanguageQuery, - examples, - }; - - // invoke method - const updateTrainingQueryPromise = discovery.updateTrainingQuery(params); - expectToBePromise(updateTrainingQueryPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - discovery.updateTrainingQuery(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['projectId', 'queryId', 'naturalLanguageQuery', 'examples']; @@ -1617,7 +1243,7 @@ describe('DiscoveryV2', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1629,7 +1255,7 @@ describe('DiscoveryV2', () => { expectToBePromise(updateTrainingQueryPromise); updateTrainingQueryPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/language-translator.v3.test.js b/test/unit/language-translator.v3.test.js index 4cd4706191..1a31c50a33 100644 --- a/test/unit/language-translator.v3.test.js +++ b/test/unit/language-translator.v3.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,17 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const LanguageTranslatorV3 = require('../../dist/language-translator/v3'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -41,22 +35,17 @@ const service = { const languageTranslator = new LanguageTranslatorV3(service); const createRequestMock = jest.spyOn(languageTranslator, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('LanguageTranslatorV3', () => { describe('translate', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const text = 'fake_text'; @@ -70,7 +59,10 @@ describe('LanguageTranslatorV3', () => { target, }; - languageTranslator.translate(params); + const translateResult = languageTranslator.translate(params); + + // all methods should return a Promise + expectToBePromise(translateResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -103,35 +95,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.translate(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const text = 'fake_text'; - const params = { - text, - }; - - // invoke method - const translatePromise = languageTranslator.translate(params); - expectToBePromise(translatePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.translate(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['text']; @@ -143,7 +109,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -155,7 +121,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(translatePromise); translatePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -163,14 +129,16 @@ describe('LanguageTranslatorV3', () => { }); describe('listIdentifiableLanguages', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - languageTranslator.listIdentifiableLanguages(params); + const listIdentifiableLanguagesResult = languageTranslator.listIdentifiableLanguages( + params + ); + + // all methods should return a Promise + expectToBePromise(listIdentifiableLanguagesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -198,23 +166,10 @@ describe('LanguageTranslatorV3', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listIdentifiableLanguagesPromise = languageTranslator.listIdentifiableLanguages( - params - ); - expectToBePromise(listIdentifiableLanguagesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method languageTranslator.listIdentifiableLanguages({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -227,9 +182,6 @@ describe('LanguageTranslatorV3', () => { }); describe('identify', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const text = 'fake_text'; @@ -237,7 +189,10 @@ describe('LanguageTranslatorV3', () => { text, }; - languageTranslator.identify(params); + const identifyResult = languageTranslator.identify(params); + + // all methods should return a Promise + expectToBePromise(identifyResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -267,35 +222,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.identify(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const text = 'fake_text'; - const params = { - text, - }; - - // invoke method - const identifyPromise = languageTranslator.identify(params); - expectToBePromise(identifyPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.identify(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['text']; @@ -307,7 +236,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -319,7 +248,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(identifyPromise); identifyPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -327,9 +256,6 @@ describe('LanguageTranslatorV3', () => { }); describe('listModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const source = 'fake_source'; @@ -341,7 +267,10 @@ describe('LanguageTranslatorV3', () => { _default, }; - languageTranslator.listModels(params); + const listModelsResult = languageTranslator.listModels(params); + + // all methods should return a Promise + expectToBePromise(listModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -372,21 +301,10 @@ describe('LanguageTranslatorV3', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listModelsPromise = languageTranslator.listModels(params); - expectToBePromise(listModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method languageTranslator.listModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -399,9 +317,6 @@ describe('LanguageTranslatorV3', () => { }); describe('createModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const baseModelId = 'fake_baseModelId'; @@ -415,7 +330,10 @@ describe('LanguageTranslatorV3', () => { name, }; - languageTranslator.createModel(params); + const createModelResult = languageTranslator.createModel(params); + + // all methods should return a Promise + expectToBePromise(createModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -450,35 +368,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.createModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const baseModelId = 'fake_baseModelId'; - const params = { - baseModelId, - }; - - // invoke method - const createModelPromise = languageTranslator.createModel(params); - expectToBePromise(createModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.createModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['baseModelId']; @@ -490,7 +382,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -502,7 +394,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(createModelPromise); createModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -510,9 +402,6 @@ describe('LanguageTranslatorV3', () => { }); describe('deleteModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const modelId = 'fake_modelId'; @@ -520,7 +409,10 @@ describe('LanguageTranslatorV3', () => { modelId, }; - languageTranslator.deleteModel(params); + const deleteModelResult = languageTranslator.deleteModel(params); + + // all methods should return a Promise + expectToBePromise(deleteModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -550,35 +442,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.deleteModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const modelId = 'fake_modelId'; - const params = { - modelId, - }; - - // invoke method - const deleteModelPromise = languageTranslator.deleteModel(params); - expectToBePromise(deleteModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.deleteModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['modelId']; @@ -590,7 +456,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -602,7 +468,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(deleteModelPromise); deleteModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -610,9 +476,6 @@ describe('LanguageTranslatorV3', () => { }); describe('getModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const modelId = 'fake_modelId'; @@ -620,7 +483,10 @@ describe('LanguageTranslatorV3', () => { modelId, }; - languageTranslator.getModel(params); + const getModelResult = languageTranslator.getModel(params); + + // all methods should return a Promise + expectToBePromise(getModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -650,35 +516,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.getModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const modelId = 'fake_modelId'; - const params = { - modelId, - }; - - // invoke method - const getModelPromise = languageTranslator.getModel(params); - expectToBePromise(getModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.getModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['modelId']; @@ -690,7 +530,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -702,7 +542,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(getModelPromise); getModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -710,14 +550,14 @@ describe('LanguageTranslatorV3', () => { }); describe('listDocuments', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - languageTranslator.listDocuments(params); + const listDocumentsResult = languageTranslator.listDocuments(params); + + // all methods should return a Promise + expectToBePromise(listDocumentsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -745,21 +585,10 @@ describe('LanguageTranslatorV3', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listDocumentsPromise = languageTranslator.listDocuments(params); - expectToBePromise(listDocumentsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method languageTranslator.listDocuments({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -772,9 +601,6 @@ describe('LanguageTranslatorV3', () => { }); describe('translateDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const file = 'fake_file'; @@ -794,7 +620,10 @@ describe('LanguageTranslatorV3', () => { documentId, }; - languageTranslator.translateDocument(params); + const translateDocumentResult = languageTranslator.translateDocument(params); + + // all methods should return a Promise + expectToBePromise(translateDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -832,37 +661,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.translateDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const file = 'fake_file'; - const filename = 'fake_filename'; - const params = { - file, - filename, - }; - - // invoke method - const translateDocumentPromise = languageTranslator.translateDocument(params); - expectToBePromise(translateDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.translateDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['file', 'filename']; @@ -874,7 +675,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -886,7 +687,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(translateDocumentPromise); translateDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -894,9 +695,6 @@ describe('LanguageTranslatorV3', () => { }); describe('getDocumentStatus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const documentId = 'fake_documentId'; @@ -904,7 +702,10 @@ describe('LanguageTranslatorV3', () => { documentId, }; - languageTranslator.getDocumentStatus(params); + const getDocumentStatusResult = languageTranslator.getDocumentStatus(params); + + // all methods should return a Promise + expectToBePromise(getDocumentStatusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -934,35 +735,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.getDocumentStatus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const documentId = 'fake_documentId'; - const params = { - documentId, - }; - - // invoke method - const getDocumentStatusPromise = languageTranslator.getDocumentStatus(params); - expectToBePromise(getDocumentStatusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.getDocumentStatus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['documentId']; @@ -974,7 +749,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -986,7 +761,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(getDocumentStatusPromise); getDocumentStatusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -994,9 +769,6 @@ describe('LanguageTranslatorV3', () => { }); describe('deleteDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const documentId = 'fake_documentId'; @@ -1004,7 +776,10 @@ describe('LanguageTranslatorV3', () => { documentId, }; - languageTranslator.deleteDocument(params); + const deleteDocumentResult = languageTranslator.deleteDocument(params); + + // all methods should return a Promise + expectToBePromise(deleteDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1034,35 +809,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.deleteDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const documentId = 'fake_documentId'; - const params = { - documentId, - }; - - // invoke method - const deleteDocumentPromise = languageTranslator.deleteDocument(params); - expectToBePromise(deleteDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.deleteDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['documentId']; @@ -1074,7 +823,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1086,7 +835,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(deleteDocumentPromise); deleteDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1094,9 +843,6 @@ describe('LanguageTranslatorV3', () => { }); describe('getTranslatedDocument', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const documentId = 'fake_documentId'; @@ -1106,7 +852,10 @@ describe('LanguageTranslatorV3', () => { accept, }; - languageTranslator.getTranslatedDocument(params); + const getTranslatedDocumentResult = languageTranslator.getTranslatedDocument(params); + + // all methods should return a Promise + expectToBePromise(getTranslatedDocumentResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1138,35 +887,9 @@ describe('LanguageTranslatorV3', () => { languageTranslator.getTranslatedDocument(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const documentId = 'fake_documentId'; - const params = { - documentId, - }; - - // invoke method - const getTranslatedDocumentPromise = languageTranslator.getTranslatedDocument(params); - expectToBePromise(getTranslatedDocumentPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - languageTranslator.getTranslatedDocument(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['documentId']; @@ -1178,7 +901,7 @@ describe('LanguageTranslatorV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1190,7 +913,7 @@ describe('LanguageTranslatorV3', () => { expectToBePromise(getTranslatedDocumentPromise); getTranslatedDocumentPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/natural-language-classifier.v1.test.js b/test/unit/natural-language-classifier.v1.test.js index 8998c54ac4..38d1bac88a 100644 --- a/test/unit/natural-language-classifier.v1.test.js +++ b/test/unit/natural-language-classifier.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const NaturalLanguageClassifierV1 = require('../../dist/natural-language-classifier/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const naturalLanguageClassifier = new NaturalLanguageClassifierV1(service); const createRequestMock = jest.spyOn(naturalLanguageClassifier, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('NaturalLanguageClassifierV1', () => { describe('classify', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -65,7 +54,10 @@ describe('NaturalLanguageClassifierV1', () => { text, }; - naturalLanguageClassifier.classify(params); + const classifyResult = naturalLanguageClassifier.classify(params); + + // all methods should return a Promise + expectToBePromise(classifyResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -98,37 +90,9 @@ describe('NaturalLanguageClassifierV1', () => { naturalLanguageClassifier.classify(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const text = 'fake_text'; - const params = { - classifierId, - text, - }; - - // invoke method - const classifyPromise = naturalLanguageClassifier.classify(params); - expectToBePromise(classifyPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageClassifier.classify(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId', 'text']; @@ -140,7 +104,7 @@ describe('NaturalLanguageClassifierV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -152,7 +116,7 @@ describe('NaturalLanguageClassifierV1', () => { expectToBePromise(classifyPromise); classifyPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -160,9 +124,6 @@ describe('NaturalLanguageClassifierV1', () => { }); describe('classifyCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -172,7 +133,10 @@ describe('NaturalLanguageClassifierV1', () => { collection, }; - naturalLanguageClassifier.classifyCollection(params); + const classifyCollectionResult = naturalLanguageClassifier.classifyCollection(params); + + // all methods should return a Promise + expectToBePromise(classifyCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -205,37 +169,9 @@ describe('NaturalLanguageClassifierV1', () => { naturalLanguageClassifier.classifyCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const collection = 'fake_collection'; - const params = { - classifierId, - collection, - }; - - // invoke method - const classifyCollectionPromise = naturalLanguageClassifier.classifyCollection(params); - expectToBePromise(classifyCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageClassifier.classifyCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId', 'collection']; @@ -247,7 +183,7 @@ describe('NaturalLanguageClassifierV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -259,7 +195,7 @@ describe('NaturalLanguageClassifierV1', () => { expectToBePromise(classifyCollectionPromise); classifyCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -267,9 +203,6 @@ describe('NaturalLanguageClassifierV1', () => { }); describe('createClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const trainingMetadata = 'fake_trainingMetadata'; @@ -279,7 +212,10 @@ describe('NaturalLanguageClassifierV1', () => { trainingData, }; - naturalLanguageClassifier.createClassifier(params); + const createClassifierResult = naturalLanguageClassifier.createClassifier(params); + + // all methods should return a Promise + expectToBePromise(createClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -314,37 +250,9 @@ describe('NaturalLanguageClassifierV1', () => { naturalLanguageClassifier.createClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const trainingMetadata = 'fake_trainingMetadata'; - const trainingData = 'fake_trainingData'; - const params = { - trainingMetadata, - trainingData, - }; - - // invoke method - const createClassifierPromise = naturalLanguageClassifier.createClassifier(params); - expectToBePromise(createClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageClassifier.createClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['trainingMetadata', 'trainingData']; @@ -356,7 +264,7 @@ describe('NaturalLanguageClassifierV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -368,7 +276,7 @@ describe('NaturalLanguageClassifierV1', () => { expectToBePromise(createClassifierPromise); createClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -376,14 +284,14 @@ describe('NaturalLanguageClassifierV1', () => { }); describe('listClassifiers', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - naturalLanguageClassifier.listClassifiers(params); + const listClassifiersResult = naturalLanguageClassifier.listClassifiers(params); + + // all methods should return a Promise + expectToBePromise(listClassifiersResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -411,21 +319,10 @@ describe('NaturalLanguageClassifierV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listClassifiersPromise = naturalLanguageClassifier.listClassifiers(params); - expectToBePromise(listClassifiersPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method naturalLanguageClassifier.listClassifiers({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -438,9 +335,6 @@ describe('NaturalLanguageClassifierV1', () => { }); describe('getClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -448,7 +342,10 @@ describe('NaturalLanguageClassifierV1', () => { classifierId, }; - naturalLanguageClassifier.getClassifier(params); + const getClassifierResult = naturalLanguageClassifier.getClassifier(params); + + // all methods should return a Promise + expectToBePromise(getClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -478,35 +375,9 @@ describe('NaturalLanguageClassifierV1', () => { naturalLanguageClassifier.getClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const getClassifierPromise = naturalLanguageClassifier.getClassifier(params); - expectToBePromise(getClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageClassifier.getClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -518,7 +389,7 @@ describe('NaturalLanguageClassifierV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -530,7 +401,7 @@ describe('NaturalLanguageClassifierV1', () => { expectToBePromise(getClassifierPromise); getClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -538,9 +409,6 @@ describe('NaturalLanguageClassifierV1', () => { }); describe('deleteClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -548,7 +416,10 @@ describe('NaturalLanguageClassifierV1', () => { classifierId, }; - naturalLanguageClassifier.deleteClassifier(params); + const deleteClassifierResult = naturalLanguageClassifier.deleteClassifier(params); + + // all methods should return a Promise + expectToBePromise(deleteClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -578,35 +449,9 @@ describe('NaturalLanguageClassifierV1', () => { naturalLanguageClassifier.deleteClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const deleteClassifierPromise = naturalLanguageClassifier.deleteClassifier(params); - expectToBePromise(deleteClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageClassifier.deleteClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -618,7 +463,7 @@ describe('NaturalLanguageClassifierV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -630,7 +475,7 @@ describe('NaturalLanguageClassifierV1', () => { expectToBePromise(deleteClassifierPromise); deleteClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/natural-language-understanding.v1.test.js b/test/unit/natural-language-understanding.v1.test.js index a57fbd4694..2e9843ec08 100644 --- a/test/unit/natural-language-understanding.v1.test.js +++ b/test/unit/natural-language-understanding.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const NaturalLanguageUnderstandingV1 = require('../../dist/natural-language-understanding/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -41,22 +35,17 @@ const service = { const naturalLanguageUnderstanding = new NaturalLanguageUnderstandingV1(service); const createRequestMock = jest.spyOn(naturalLanguageUnderstanding, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('NaturalLanguageUnderstandingV1', () => { describe('analyze', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const features = 'fake_features'; @@ -82,7 +71,10 @@ describe('NaturalLanguageUnderstandingV1', () => { limitTextCharacters, }; - naturalLanguageUnderstanding.analyze(params); + const analyzeResult = naturalLanguageUnderstanding.analyze(params); + + // all methods should return a Promise + expectToBePromise(analyzeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -121,35 +113,9 @@ describe('NaturalLanguageUnderstandingV1', () => { naturalLanguageUnderstanding.analyze(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const features = 'fake_features'; - const params = { - features, - }; - - // invoke method - const analyzePromise = naturalLanguageUnderstanding.analyze(params); - expectToBePromise(analyzePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageUnderstanding.analyze(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['features']; @@ -161,7 +127,7 @@ describe('NaturalLanguageUnderstandingV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -173,7 +139,7 @@ describe('NaturalLanguageUnderstandingV1', () => { expectToBePromise(analyzePromise); analyzePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -181,14 +147,14 @@ describe('NaturalLanguageUnderstandingV1', () => { }); describe('listModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - naturalLanguageUnderstanding.listModels(params); + const listModelsResult = naturalLanguageUnderstanding.listModels(params); + + // all methods should return a Promise + expectToBePromise(listModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -216,21 +182,10 @@ describe('NaturalLanguageUnderstandingV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listModelsPromise = naturalLanguageUnderstanding.listModels(params); - expectToBePromise(listModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method naturalLanguageUnderstanding.listModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -243,9 +198,6 @@ describe('NaturalLanguageUnderstandingV1', () => { }); describe('deleteModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const modelId = 'fake_modelId'; @@ -253,7 +205,10 @@ describe('NaturalLanguageUnderstandingV1', () => { modelId, }; - naturalLanguageUnderstanding.deleteModel(params); + const deleteModelResult = naturalLanguageUnderstanding.deleteModel(params); + + // all methods should return a Promise + expectToBePromise(deleteModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -283,35 +238,9 @@ describe('NaturalLanguageUnderstandingV1', () => { naturalLanguageUnderstanding.deleteModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const modelId = 'fake_modelId'; - const params = { - modelId, - }; - - // invoke method - const deleteModelPromise = naturalLanguageUnderstanding.deleteModel(params); - expectToBePromise(deleteModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - naturalLanguageUnderstanding.deleteModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['modelId']; @@ -323,7 +252,7 @@ describe('NaturalLanguageUnderstandingV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -335,7 +264,7 @@ describe('NaturalLanguageUnderstandingV1', () => { expectToBePromise(deleteModelPromise); deleteModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/personality-insights.v3.test.js b/test/unit/personality-insights.v3.test.js index e4072ad29a..7ec92c2d06 100644 --- a/test/unit/personality-insights.v3.test.js +++ b/test/unit/personality-insights.v3.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const PersonalityInsightsV3 = require('../../dist/personality-insights/v3'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, -} = utils; +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const personalityInsights = new PersonalityInsightsV3(service); const createRequestMock = jest.spyOn(personalityInsights, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('PersonalityInsightsV3', () => { describe('profile', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const content = 'fake_content'; @@ -75,7 +64,10 @@ describe('PersonalityInsightsV3', () => { consumptionPreferences, }; - personalityInsights.profile(params); + const profileResult = personalityInsights.profile(params); + + // all methods should return a Promise + expectToBePromise(profileResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -111,35 +103,9 @@ describe('PersonalityInsightsV3', () => { personalityInsights.profile(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const content = 'fake_content'; - const params = { - content, - }; - - // invoke method - const profilePromise = personalityInsights.profile(params); - expectToBePromise(profilePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - personalityInsights.profile(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['content']; @@ -151,7 +117,7 @@ describe('PersonalityInsightsV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -163,7 +129,7 @@ describe('PersonalityInsightsV3', () => { expectToBePromise(profilePromise); profilePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -171,9 +137,6 @@ describe('PersonalityInsightsV3', () => { }); describe('profileAsCsv', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const content = 'fake_content'; @@ -193,7 +156,10 @@ describe('PersonalityInsightsV3', () => { consumptionPreferences, }; - personalityInsights.profileAsCsv(params); + const profileAsCsvResult = personalityInsights.profileAsCsv(params); + + // all methods should return a Promise + expectToBePromise(profileAsCsvResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -229,35 +195,9 @@ describe('PersonalityInsightsV3', () => { personalityInsights.profileAsCsv(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const content = 'fake_content'; - const params = { - content, - }; - - // invoke method - const profileAsCsvPromise = personalityInsights.profileAsCsv(params); - expectToBePromise(profileAsCsvPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - personalityInsights.profileAsCsv(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['content']; @@ -269,7 +209,7 @@ describe('PersonalityInsightsV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -281,7 +221,7 @@ describe('PersonalityInsightsV3', () => { expectToBePromise(profileAsCsvPromise); profileAsCsvPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/speech-to-text.v1.test.js b/test/unit/speech-to-text.v1.test.js index 48094b8882..280337b05a 100644 --- a/test/unit/speech-to-text.v1.test.js +++ b/test/unit/speech-to-text.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,17 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const SpeechToTextV1 = require('../../dist/speech-to-text/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,27 +34,25 @@ const service = { const speechToText = new SpeechToTextV1(service); const createRequestMock = jest.spyOn(speechToText, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('SpeechToTextV1', () => { describe('listModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - speechToText.listModels(params); + const listModelsResult = speechToText.listModels(params); + + // all methods should return a Promise + expectToBePromise(listModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -88,21 +80,10 @@ describe('SpeechToTextV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listModelsPromise = speechToText.listModels(params); - expectToBePromise(listModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method speechToText.listModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -115,9 +96,6 @@ describe('SpeechToTextV1', () => { }); describe('getModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const modelId = 'fake_modelId'; @@ -125,7 +103,10 @@ describe('SpeechToTextV1', () => { modelId, }; - speechToText.getModel(params); + const getModelResult = speechToText.getModel(params); + + // all methods should return a Promise + expectToBePromise(getModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -155,35 +136,9 @@ describe('SpeechToTextV1', () => { speechToText.getModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const modelId = 'fake_modelId'; - const params = { - modelId, - }; - - // invoke method - const getModelPromise = speechToText.getModel(params); - expectToBePromise(getModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['modelId']; @@ -195,7 +150,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -207,7 +162,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getModelPromise); getModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -215,9 +170,6 @@ describe('SpeechToTextV1', () => { }); describe('recognize', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const audio = 'fake_audio'; @@ -241,6 +193,8 @@ describe('SpeechToTextV1', () => { const grammarName = 'fake_grammarName'; const redaction = 'fake_redaction'; const audioMetrics = 'fake_audioMetrics'; + const endOfPhraseSilenceTime = 'fake_endOfPhraseSilenceTime'; + const splitTranscriptAtPhraseEnd = 'fake_splitTranscriptAtPhraseEnd'; const params = { audio, contentType, @@ -263,9 +217,14 @@ describe('SpeechToTextV1', () => { grammarName, redaction, audioMetrics, + endOfPhraseSilenceTime, + splitTranscriptAtPhraseEnd, }; - speechToText.recognize(params); + const recognizeResult = speechToText.recognize(params); + + // all methods should return a Promise + expectToBePromise(recognizeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -297,6 +256,8 @@ describe('SpeechToTextV1', () => { expect(options.qs['grammar_name']).toEqual(grammarName); expect(options.qs['redaction']).toEqual(redaction); expect(options.qs['audio_metrics']).toEqual(audioMetrics); + expect(options.qs['end_of_phrase_silence_time']).toEqual(endOfPhraseSilenceTime); + expect(options.qs['split_transcript_at_phrase_end']).toEqual(splitTranscriptAtPhraseEnd); }); test('should prioritize user-given headers', () => { @@ -315,35 +276,9 @@ describe('SpeechToTextV1', () => { speechToText.recognize(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const audio = 'fake_audio'; - const params = { - audio, - }; - - // invoke method - const recognizePromise = speechToText.recognize(params); - expectToBePromise(recognizePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.recognize(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['audio']; @@ -355,7 +290,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -367,7 +302,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(recognizePromise); recognizePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -375,9 +310,6 @@ describe('SpeechToTextV1', () => { }); describe('registerCallback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const callbackUrl = 'fake_callbackUrl'; @@ -387,7 +319,10 @@ describe('SpeechToTextV1', () => { userSecret, }; - speechToText.registerCallback(params); + const registerCallbackResult = speechToText.registerCallback(params); + + // all methods should return a Promise + expectToBePromise(registerCallbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -418,35 +353,9 @@ describe('SpeechToTextV1', () => { speechToText.registerCallback(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const callbackUrl = 'fake_callbackUrl'; - const params = { - callbackUrl, - }; - - // invoke method - const registerCallbackPromise = speechToText.registerCallback(params); - expectToBePromise(registerCallbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.registerCallback(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['callbackUrl']; @@ -458,7 +367,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -470,7 +379,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(registerCallbackPromise); registerCallbackPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -478,9 +387,6 @@ describe('SpeechToTextV1', () => { }); describe('unregisterCallback', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const callbackUrl = 'fake_callbackUrl'; @@ -488,7 +394,10 @@ describe('SpeechToTextV1', () => { callbackUrl, }; - speechToText.unregisterCallback(params); + const unregisterCallbackResult = speechToText.unregisterCallback(params); + + // all methods should return a Promise + expectToBePromise(unregisterCallbackResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -518,35 +427,9 @@ describe('SpeechToTextV1', () => { speechToText.unregisterCallback(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const callbackUrl = 'fake_callbackUrl'; - const params = { - callbackUrl, - }; - - // invoke method - const unregisterCallbackPromise = speechToText.unregisterCallback(params); - expectToBePromise(unregisterCallbackPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.unregisterCallback(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['callbackUrl']; @@ -558,7 +441,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -570,7 +453,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(unregisterCallbackPromise); unregisterCallbackPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -578,9 +461,6 @@ describe('SpeechToTextV1', () => { }); describe('createJob', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const audio = 'fake_audio'; @@ -610,6 +490,8 @@ describe('SpeechToTextV1', () => { const processingMetrics = 'fake_processingMetrics'; const processingMetricsInterval = 'fake_processingMetricsInterval'; const audioMetrics = 'fake_audioMetrics'; + const endOfPhraseSilenceTime = 'fake_endOfPhraseSilenceTime'; + const splitTranscriptAtPhraseEnd = 'fake_splitTranscriptAtPhraseEnd'; const params = { audio, contentType, @@ -638,9 +520,14 @@ describe('SpeechToTextV1', () => { processingMetrics, processingMetricsInterval, audioMetrics, + endOfPhraseSilenceTime, + splitTranscriptAtPhraseEnd, }; - speechToText.createJob(params); + const createJobResult = speechToText.createJob(params); + + // all methods should return a Promise + expectToBePromise(createJobResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -678,6 +565,8 @@ describe('SpeechToTextV1', () => { expect(options.qs['processing_metrics']).toEqual(processingMetrics); expect(options.qs['processing_metrics_interval']).toEqual(processingMetricsInterval); expect(options.qs['audio_metrics']).toEqual(audioMetrics); + expect(options.qs['end_of_phrase_silence_time']).toEqual(endOfPhraseSilenceTime); + expect(options.qs['split_transcript_at_phrase_end']).toEqual(splitTranscriptAtPhraseEnd); }); test('should prioritize user-given headers', () => { @@ -696,35 +585,9 @@ describe('SpeechToTextV1', () => { speechToText.createJob(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const audio = 'fake_audio'; - const params = { - audio, - }; - - // invoke method - const createJobPromise = speechToText.createJob(params); - expectToBePromise(createJobPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.createJob(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['audio']; @@ -736,7 +599,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -748,7 +611,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(createJobPromise); createJobPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -756,14 +619,14 @@ describe('SpeechToTextV1', () => { }); describe('checkJobs', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - speechToText.checkJobs(params); + const checkJobsResult = speechToText.checkJobs(params); + + // all methods should return a Promise + expectToBePromise(checkJobsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -791,21 +654,10 @@ describe('SpeechToTextV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const checkJobsPromise = speechToText.checkJobs(params); - expectToBePromise(checkJobsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method speechToText.checkJobs({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -818,9 +670,6 @@ describe('SpeechToTextV1', () => { }); describe('checkJob', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const id = 'fake_id'; @@ -828,7 +677,10 @@ describe('SpeechToTextV1', () => { id, }; - speechToText.checkJob(params); + const checkJobResult = speechToText.checkJob(params); + + // all methods should return a Promise + expectToBePromise(checkJobResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -858,35 +710,9 @@ describe('SpeechToTextV1', () => { speechToText.checkJob(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const id = 'fake_id'; - const params = { - id, - }; - - // invoke method - const checkJobPromise = speechToText.checkJob(params); - expectToBePromise(checkJobPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.checkJob(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['id']; @@ -898,7 +724,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -910,7 +736,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(checkJobPromise); checkJobPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -918,9 +744,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteJob', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const id = 'fake_id'; @@ -928,7 +751,10 @@ describe('SpeechToTextV1', () => { id, }; - speechToText.deleteJob(params); + const deleteJobResult = speechToText.deleteJob(params); + + // all methods should return a Promise + expectToBePromise(deleteJobResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -958,35 +784,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteJob(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const id = 'fake_id'; - const params = { - id, - }; - - // invoke method - const deleteJobPromise = speechToText.deleteJob(params); - expectToBePromise(deleteJobPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteJob(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['id']; @@ -998,7 +798,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1010,7 +810,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteJobPromise); deleteJobPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1018,9 +818,6 @@ describe('SpeechToTextV1', () => { }); describe('createLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -1034,7 +831,10 @@ describe('SpeechToTextV1', () => { description, }; - speechToText.createLanguageModel(params); + const createLanguageModelResult = speechToText.createLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(createLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1069,37 +869,9 @@ describe('SpeechToTextV1', () => { speechToText.createLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const name = 'fake_name'; - const baseModelName = 'fake_baseModelName'; - const params = { - name, - baseModelName, - }; - - // invoke method - const createLanguageModelPromise = speechToText.createLanguageModel(params); - expectToBePromise(createLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.createLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['name', 'baseModelName']; @@ -1111,7 +883,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1123,7 +895,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(createLanguageModelPromise); createLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1131,9 +903,6 @@ describe('SpeechToTextV1', () => { }); describe('listLanguageModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const language = 'fake_language'; @@ -1141,7 +910,10 @@ describe('SpeechToTextV1', () => { language, }; - speechToText.listLanguageModels(params); + const listLanguageModelsResult = speechToText.listLanguageModels(params); + + // all methods should return a Promise + expectToBePromise(listLanguageModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1170,21 +942,10 @@ describe('SpeechToTextV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listLanguageModelsPromise = speechToText.listLanguageModels(params); - expectToBePromise(listLanguageModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method speechToText.listLanguageModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -1197,9 +958,6 @@ describe('SpeechToTextV1', () => { }); describe('getLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1207,7 +965,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.getLanguageModel(params); + const getLanguageModelResult = speechToText.getLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(getLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1237,35 +998,9 @@ describe('SpeechToTextV1', () => { speechToText.getLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const getLanguageModelPromise = speechToText.getLanguageModel(params); - expectToBePromise(getLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1277,7 +1012,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1289,7 +1024,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getLanguageModelPromise); getLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1297,9 +1032,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1307,7 +1039,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.deleteLanguageModel(params); + const deleteLanguageModelResult = speechToText.deleteLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(deleteLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1337,35 +1072,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const deleteLanguageModelPromise = speechToText.deleteLanguageModel(params); - expectToBePromise(deleteLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1377,7 +1086,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1389,7 +1098,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteLanguageModelPromise); deleteLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1397,9 +1106,6 @@ describe('SpeechToTextV1', () => { }); describe('trainLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1411,7 +1117,10 @@ describe('SpeechToTextV1', () => { customizationWeight, }; - speechToText.trainLanguageModel(params); + const trainLanguageModelResult = speechToText.trainLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(trainLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1443,38 +1152,12 @@ describe('SpeechToTextV1', () => { speechToText.trainLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); + }); - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const trainLanguageModelPromise = speechToText.trainLanguageModel(params); - expectToBePromise(trainLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); - }); - - describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.trainLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - - test('should enforce required parameters', async done => { - // required parameters for this method - const requiredParams = ['customizationId']; + describe('negative tests', () => { + test('should enforce required parameters', async done => { + // required parameters for this method + const requiredParams = ['customizationId']; let err; try { @@ -1483,7 +1166,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1495,7 +1178,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(trainLanguageModelPromise); trainLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1503,9 +1186,6 @@ describe('SpeechToTextV1', () => { }); describe('resetLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1513,7 +1193,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.resetLanguageModel(params); + const resetLanguageModelResult = speechToText.resetLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(resetLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1543,35 +1226,9 @@ describe('SpeechToTextV1', () => { speechToText.resetLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const resetLanguageModelPromise = speechToText.resetLanguageModel(params); - expectToBePromise(resetLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.resetLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1583,7 +1240,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1595,7 +1252,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(resetLanguageModelPromise); resetLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1603,9 +1260,6 @@ describe('SpeechToTextV1', () => { }); describe('upgradeLanguageModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1613,7 +1267,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.upgradeLanguageModel(params); + const upgradeLanguageModelResult = speechToText.upgradeLanguageModel(params); + + // all methods should return a Promise + expectToBePromise(upgradeLanguageModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1643,35 +1300,9 @@ describe('SpeechToTextV1', () => { speechToText.upgradeLanguageModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const upgradeLanguageModelPromise = speechToText.upgradeLanguageModel(params); - expectToBePromise(upgradeLanguageModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.upgradeLanguageModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1683,7 +1314,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1695,7 +1326,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(upgradeLanguageModelPromise); upgradeLanguageModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1703,9 +1334,6 @@ describe('SpeechToTextV1', () => { }); describe('listCorpora', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1713,7 +1341,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.listCorpora(params); + const listCorporaResult = speechToText.listCorpora(params); + + // all methods should return a Promise + expectToBePromise(listCorporaResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1743,35 +1374,9 @@ describe('SpeechToTextV1', () => { speechToText.listCorpora(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const listCorporaPromise = speechToText.listCorpora(params); - expectToBePromise(listCorporaPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.listCorpora(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1783,7 +1388,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1795,7 +1400,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(listCorporaPromise); listCorporaPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1803,9 +1408,6 @@ describe('SpeechToTextV1', () => { }); describe('addCorpus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1819,7 +1421,10 @@ describe('SpeechToTextV1', () => { allowOverwrite, }; - speechToText.addCorpus(params); + const addCorpusResult = speechToText.addCorpus(params); + + // all methods should return a Promise + expectToBePromise(addCorpusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1861,39 +1466,9 @@ describe('SpeechToTextV1', () => { speechToText.addCorpus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const corpusName = 'fake_corpusName'; - const corpusFile = 'fake_corpusFile'; - const params = { - customizationId, - corpusName, - corpusFile, - }; - - // invoke method - const addCorpusPromise = speechToText.addCorpus(params); - expectToBePromise(addCorpusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.addCorpus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'corpusName', 'corpusFile']; @@ -1905,7 +1480,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1917,7 +1492,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(addCorpusPromise); addCorpusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1925,9 +1500,6 @@ describe('SpeechToTextV1', () => { }); describe('getCorpus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1937,7 +1509,10 @@ describe('SpeechToTextV1', () => { corpusName, }; - speechToText.getCorpus(params); + const getCorpusResult = speechToText.getCorpus(params); + + // all methods should return a Promise + expectToBePromise(getCorpusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1974,37 +1549,9 @@ describe('SpeechToTextV1', () => { speechToText.getCorpus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const corpusName = 'fake_corpusName'; - const params = { - customizationId, - corpusName, - }; - - // invoke method - const getCorpusPromise = speechToText.getCorpus(params); - expectToBePromise(getCorpusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getCorpus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'corpusName']; @@ -2016,7 +1563,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2028,7 +1575,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getCorpusPromise); getCorpusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2036,9 +1583,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteCorpus', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2048,7 +1592,10 @@ describe('SpeechToTextV1', () => { corpusName, }; - speechToText.deleteCorpus(params); + const deleteCorpusResult = speechToText.deleteCorpus(params); + + // all methods should return a Promise + expectToBePromise(deleteCorpusResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2085,37 +1632,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteCorpus(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const corpusName = 'fake_corpusName'; - const params = { - customizationId, - corpusName, - }; - - // invoke method - const deleteCorpusPromise = speechToText.deleteCorpus(params); - expectToBePromise(deleteCorpusPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteCorpus(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'corpusName']; @@ -2127,7 +1646,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2139,7 +1658,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteCorpusPromise); deleteCorpusPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2147,9 +1666,6 @@ describe('SpeechToTextV1', () => { }); describe('listWords', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2161,7 +1677,10 @@ describe('SpeechToTextV1', () => { sort, }; - speechToText.listWords(params); + const listWordsResult = speechToText.listWords(params); + + // all methods should return a Promise + expectToBePromise(listWordsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2193,35 +1712,9 @@ describe('SpeechToTextV1', () => { speechToText.listWords(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const listWordsPromise = speechToText.listWords(params); - expectToBePromise(listWordsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.listWords(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -2233,7 +1726,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2245,7 +1738,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(listWordsPromise); listWordsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2253,9 +1746,6 @@ describe('SpeechToTextV1', () => { }); describe('addWords', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2265,7 +1755,10 @@ describe('SpeechToTextV1', () => { words, }; - speechToText.addWords(params); + const addWordsResult = speechToText.addWords(params); + + // all methods should return a Promise + expectToBePromise(addWordsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2298,37 +1791,9 @@ describe('SpeechToTextV1', () => { speechToText.addWords(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const words = 'fake_words'; - const params = { - customizationId, - words, - }; - - // invoke method - const addWordsPromise = speechToText.addWords(params); - expectToBePromise(addWordsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.addWords(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'words']; @@ -2340,7 +1805,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2352,7 +1817,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(addWordsPromise); addWordsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2360,9 +1825,6 @@ describe('SpeechToTextV1', () => { }); describe('addWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2378,7 +1840,10 @@ describe('SpeechToTextV1', () => { displayAs, }; - speechToText.addWord(params); + const addWordResult = speechToText.addWord(params); + + // all methods should return a Promise + expectToBePromise(addWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2418,37 +1883,9 @@ describe('SpeechToTextV1', () => { speechToText.addWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const wordName = 'fake_wordName'; - const params = { - customizationId, - wordName, - }; - - // invoke method - const addWordPromise = speechToText.addWord(params); - expectToBePromise(addWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.addWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'wordName']; @@ -2460,7 +1897,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2472,7 +1909,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(addWordPromise); addWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2480,9 +1917,6 @@ describe('SpeechToTextV1', () => { }); describe('getWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2492,7 +1926,10 @@ describe('SpeechToTextV1', () => { wordName, }; - speechToText.getWord(params); + const getWordResult = speechToText.getWord(params); + + // all methods should return a Promise + expectToBePromise(getWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2529,37 +1966,9 @@ describe('SpeechToTextV1', () => { speechToText.getWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const wordName = 'fake_wordName'; - const params = { - customizationId, - wordName, - }; - - // invoke method - const getWordPromise = speechToText.getWord(params); - expectToBePromise(getWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'wordName']; @@ -2571,7 +1980,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2583,7 +1992,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getWordPromise); getWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2591,9 +2000,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2603,7 +2009,10 @@ describe('SpeechToTextV1', () => { wordName, }; - speechToText.deleteWord(params); + const deleteWordResult = speechToText.deleteWord(params); + + // all methods should return a Promise + expectToBePromise(deleteWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2640,37 +2049,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const wordName = 'fake_wordName'; - const params = { - customizationId, - wordName, - }; - - // invoke method - const deleteWordPromise = speechToText.deleteWord(params); - expectToBePromise(deleteWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'wordName']; @@ -2682,7 +2063,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2694,7 +2075,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteWordPromise); deleteWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2702,9 +2083,6 @@ describe('SpeechToTextV1', () => { }); describe('listGrammars', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2712,7 +2090,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.listGrammars(params); + const listGrammarsResult = speechToText.listGrammars(params); + + // all methods should return a Promise + expectToBePromise(listGrammarsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2742,35 +2123,9 @@ describe('SpeechToTextV1', () => { speechToText.listGrammars(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const listGrammarsPromise = speechToText.listGrammars(params); - expectToBePromise(listGrammarsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.listGrammars(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -2782,7 +2137,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2794,7 +2149,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(listGrammarsPromise); listGrammarsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2802,9 +2157,6 @@ describe('SpeechToTextV1', () => { }); describe('addGrammar', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2820,7 +2172,10 @@ describe('SpeechToTextV1', () => { allowOverwrite, }; - speechToText.addGrammar(params); + const addGrammarResult = speechToText.addGrammar(params); + + // all methods should return a Promise + expectToBePromise(addGrammarResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2864,41 +2219,9 @@ describe('SpeechToTextV1', () => { speechToText.addGrammar(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const grammarName = 'fake_grammarName'; - const grammarFile = 'fake_grammarFile'; - const contentType = 'fake_contentType'; - const params = { - customizationId, - grammarName, - grammarFile, - contentType, - }; - - // invoke method - const addGrammarPromise = speechToText.addGrammar(params); - expectToBePromise(addGrammarPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.addGrammar(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'grammarName', 'grammarFile', 'contentType']; @@ -2910,7 +2233,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -2922,7 +2245,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(addGrammarPromise); addGrammarPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -2930,9 +2253,6 @@ describe('SpeechToTextV1', () => { }); describe('getGrammar', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -2942,7 +2262,10 @@ describe('SpeechToTextV1', () => { grammarName, }; - speechToText.getGrammar(params); + const getGrammarResult = speechToText.getGrammar(params); + + // all methods should return a Promise + expectToBePromise(getGrammarResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -2979,37 +2302,9 @@ describe('SpeechToTextV1', () => { speechToText.getGrammar(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const grammarName = 'fake_grammarName'; - const params = { - customizationId, - grammarName, - }; - - // invoke method - const getGrammarPromise = speechToText.getGrammar(params); - expectToBePromise(getGrammarPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getGrammar(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'grammarName']; @@ -3021,7 +2316,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3033,7 +2328,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getGrammarPromise); getGrammarPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3041,9 +2336,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteGrammar', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3053,7 +2345,10 @@ describe('SpeechToTextV1', () => { grammarName, }; - speechToText.deleteGrammar(params); + const deleteGrammarResult = speechToText.deleteGrammar(params); + + // all methods should return a Promise + expectToBePromise(deleteGrammarResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3086,41 +2381,13 @@ describe('SpeechToTextV1', () => { 'Content-Type': userContentType, }, }; - - speechToText.deleteGrammar(params); - checkMediaHeaders(createRequestMock, userAccept, userContentType); - }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const grammarName = 'fake_grammarName'; - const params = { - customizationId, - grammarName, - }; - - // invoke method - const deleteGrammarPromise = speechToText.deleteGrammar(params); - expectToBePromise(deleteGrammarPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); - }); - - describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteGrammar(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); + + speechToText.deleteGrammar(params); + checkMediaHeaders(createRequestMock, userAccept, userContentType); }); + }); + describe('negative tests', () => { test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'grammarName']; @@ -3132,7 +2399,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3144,7 +2411,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteGrammarPromise); deleteGrammarPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3152,9 +2419,6 @@ describe('SpeechToTextV1', () => { }); describe('createAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -3166,7 +2430,10 @@ describe('SpeechToTextV1', () => { description, }; - speechToText.createAcousticModel(params); + const createAcousticModelResult = speechToText.createAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(createAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3200,37 +2467,9 @@ describe('SpeechToTextV1', () => { speechToText.createAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const name = 'fake_name'; - const baseModelName = 'fake_baseModelName'; - const params = { - name, - baseModelName, - }; - - // invoke method - const createAcousticModelPromise = speechToText.createAcousticModel(params); - expectToBePromise(createAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.createAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['name', 'baseModelName']; @@ -3242,7 +2481,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3254,7 +2493,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(createAcousticModelPromise); createAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3262,9 +2501,6 @@ describe('SpeechToTextV1', () => { }); describe('listAcousticModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const language = 'fake_language'; @@ -3272,7 +2508,10 @@ describe('SpeechToTextV1', () => { language, }; - speechToText.listAcousticModels(params); + const listAcousticModelsResult = speechToText.listAcousticModels(params); + + // all methods should return a Promise + expectToBePromise(listAcousticModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3301,21 +2540,10 @@ describe('SpeechToTextV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listAcousticModelsPromise = speechToText.listAcousticModels(params); - expectToBePromise(listAcousticModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method speechToText.listAcousticModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -3328,9 +2556,6 @@ describe('SpeechToTextV1', () => { }); describe('getAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3338,7 +2563,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.getAcousticModel(params); + const getAcousticModelResult = speechToText.getAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(getAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3368,35 +2596,9 @@ describe('SpeechToTextV1', () => { speechToText.getAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const getAcousticModelPromise = speechToText.getAcousticModel(params); - expectToBePromise(getAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3408,7 +2610,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3420,7 +2622,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getAcousticModelPromise); getAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3428,9 +2630,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3438,7 +2637,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.deleteAcousticModel(params); + const deleteAcousticModelResult = speechToText.deleteAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(deleteAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3468,35 +2670,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const deleteAcousticModelPromise = speechToText.deleteAcousticModel(params); - expectToBePromise(deleteAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3508,7 +2684,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3520,7 +2696,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteAcousticModelPromise); deleteAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3528,9 +2704,6 @@ describe('SpeechToTextV1', () => { }); describe('trainAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3540,7 +2713,10 @@ describe('SpeechToTextV1', () => { customLanguageModelId, }; - speechToText.trainAcousticModel(params); + const trainAcousticModelResult = speechToText.trainAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(trainAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3571,35 +2747,9 @@ describe('SpeechToTextV1', () => { speechToText.trainAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const trainAcousticModelPromise = speechToText.trainAcousticModel(params); - expectToBePromise(trainAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.trainAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3611,7 +2761,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3623,7 +2773,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(trainAcousticModelPromise); trainAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3631,9 +2781,6 @@ describe('SpeechToTextV1', () => { }); describe('resetAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3641,7 +2788,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.resetAcousticModel(params); + const resetAcousticModelResult = speechToText.resetAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(resetAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3671,35 +2821,9 @@ describe('SpeechToTextV1', () => { speechToText.resetAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const resetAcousticModelPromise = speechToText.resetAcousticModel(params); - expectToBePromise(resetAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.resetAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3711,7 +2835,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3723,7 +2847,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(resetAcousticModelPromise); resetAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3731,9 +2855,6 @@ describe('SpeechToTextV1', () => { }); describe('upgradeAcousticModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3745,7 +2866,10 @@ describe('SpeechToTextV1', () => { force, }; - speechToText.upgradeAcousticModel(params); + const upgradeAcousticModelResult = speechToText.upgradeAcousticModel(params); + + // all methods should return a Promise + expectToBePromise(upgradeAcousticModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3781,35 +2905,9 @@ describe('SpeechToTextV1', () => { speechToText.upgradeAcousticModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const upgradeAcousticModelPromise = speechToText.upgradeAcousticModel(params); - expectToBePromise(upgradeAcousticModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.upgradeAcousticModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3821,7 +2919,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3833,7 +2931,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(upgradeAcousticModelPromise); upgradeAcousticModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3841,9 +2939,6 @@ describe('SpeechToTextV1', () => { }); describe('listAudio', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3851,7 +2946,10 @@ describe('SpeechToTextV1', () => { customizationId, }; - speechToText.listAudio(params); + const listAudioResult = speechToText.listAudio(params); + + // all methods should return a Promise + expectToBePromise(listAudioResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -3881,35 +2979,9 @@ describe('SpeechToTextV1', () => { speechToText.listAudio(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const listAudioPromise = speechToText.listAudio(params); - expectToBePromise(listAudioPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.listAudio(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -3921,7 +2993,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -3933,7 +3005,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(listAudioPromise); listAudioPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -3941,9 +3013,6 @@ describe('SpeechToTextV1', () => { }); describe('addAudio', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -3961,7 +3030,10 @@ describe('SpeechToTextV1', () => { allowOverwrite, }; - speechToText.addAudio(params); + const addAudioResult = speechToText.addAudio(params); + + // all methods should return a Promise + expectToBePromise(addAudioResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4004,39 +3076,9 @@ describe('SpeechToTextV1', () => { speechToText.addAudio(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const audioName = 'fake_audioName'; - const audioResource = 'fake_audioResource'; - const params = { - customizationId, - audioName, - audioResource, - }; - - // invoke method - const addAudioPromise = speechToText.addAudio(params); - expectToBePromise(addAudioPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.addAudio(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'audioName', 'audioResource']; @@ -4048,7 +3090,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4060,7 +3102,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(addAudioPromise); addAudioPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4068,9 +3110,6 @@ describe('SpeechToTextV1', () => { }); describe('getAudio', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -4080,7 +3119,10 @@ describe('SpeechToTextV1', () => { audioName, }; - speechToText.getAudio(params); + const getAudioResult = speechToText.getAudio(params); + + // all methods should return a Promise + expectToBePromise(getAudioResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4117,37 +3159,9 @@ describe('SpeechToTextV1', () => { speechToText.getAudio(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const audioName = 'fake_audioName'; - const params = { - customizationId, - audioName, - }; - - // invoke method - const getAudioPromise = speechToText.getAudio(params); - expectToBePromise(getAudioPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.getAudio(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'audioName']; @@ -4159,7 +3173,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4171,7 +3185,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(getAudioPromise); getAudioPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4179,9 +3193,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteAudio', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -4191,7 +3202,10 @@ describe('SpeechToTextV1', () => { audioName, }; - speechToText.deleteAudio(params); + const deleteAudioResult = speechToText.deleteAudio(params); + + // all methods should return a Promise + expectToBePromise(deleteAudioResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4228,37 +3242,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteAudio(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const audioName = 'fake_audioName'; - const params = { - customizationId, - audioName, - }; - - // invoke method - const deleteAudioPromise = speechToText.deleteAudio(params); - expectToBePromise(deleteAudioPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteAudio(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'audioName']; @@ -4270,7 +3256,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4282,7 +3268,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteAudioPromise); deleteAudioPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -4290,9 +3276,6 @@ describe('SpeechToTextV1', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -4300,7 +3283,10 @@ describe('SpeechToTextV1', () => { customerId, }; - speechToText.deleteUserData(params); + const deleteUserDataResult = speechToText.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -4330,35 +3316,9 @@ describe('SpeechToTextV1', () => { speechToText.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = speechToText.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - speechToText.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -4370,7 +3330,7 @@ describe('SpeechToTextV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -4382,7 +3342,7 @@ describe('SpeechToTextV1', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/text-to-speech.v1.test.js b/test/unit/text-to-speech.v1.test.js index fee31fd1e5..21241ea8e7 100644 --- a/test/unit/text-to-speech.v1.test.js +++ b/test/unit/text-to-speech.v1.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,17 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const TextToSpeechV1 = require('../../dist/text-to-speech/v1'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,27 +34,25 @@ const service = { const textToSpeech = new TextToSpeechV1(service); const createRequestMock = jest.spyOn(textToSpeech, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('TextToSpeechV1', () => { describe('listVoices', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - textToSpeech.listVoices(params); + const listVoicesResult = textToSpeech.listVoices(params); + + // all methods should return a Promise + expectToBePromise(listVoicesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -88,21 +80,10 @@ describe('TextToSpeechV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listVoicesPromise = textToSpeech.listVoices(params); - expectToBePromise(listVoicesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method textToSpeech.listVoices({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -115,9 +96,6 @@ describe('TextToSpeechV1', () => { }); describe('getVoice', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const voice = 'fake_voice'; @@ -127,7 +105,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.getVoice(params); + const getVoiceResult = textToSpeech.getVoice(params); + + // all methods should return a Promise + expectToBePromise(getVoiceResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -158,35 +139,9 @@ describe('TextToSpeechV1', () => { textToSpeech.getVoice(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const voice = 'fake_voice'; - const params = { - voice, - }; - - // invoke method - const getVoicePromise = textToSpeech.getVoice(params); - expectToBePromise(getVoicePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.getVoice(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['voice']; @@ -198,7 +153,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -210,7 +165,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(getVoicePromise); getVoicePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -218,9 +173,6 @@ describe('TextToSpeechV1', () => { }); describe('synthesize', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const text = 'fake_text'; @@ -234,7 +186,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.synthesize(params); + const synthesizeResult = textToSpeech.synthesize(params); + + // all methods should return a Promise + expectToBePromise(synthesizeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -268,35 +223,9 @@ describe('TextToSpeechV1', () => { textToSpeech.synthesize(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const text = 'fake_text'; - const params = { - text, - }; - - // invoke method - const synthesizePromise = textToSpeech.synthesize(params); - expectToBePromise(synthesizePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.synthesize(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['text']; @@ -308,7 +237,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -320,7 +249,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(synthesizePromise); synthesizePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -328,9 +257,6 @@ describe('TextToSpeechV1', () => { }); describe('getPronunciation', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const text = 'fake_text'; @@ -344,7 +270,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.getPronunciation(params); + const getPronunciationResult = textToSpeech.getPronunciation(params); + + // all methods should return a Promise + expectToBePromise(getPronunciationResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -377,35 +306,9 @@ describe('TextToSpeechV1', () => { textToSpeech.getPronunciation(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const text = 'fake_text'; - const params = { - text, - }; - - // invoke method - const getPronunciationPromise = textToSpeech.getPronunciation(params); - expectToBePromise(getPronunciationPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.getPronunciation(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['text']; @@ -417,7 +320,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -429,7 +332,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(getPronunciationPromise); getPronunciationPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -437,9 +340,6 @@ describe('TextToSpeechV1', () => { }); describe('createVoiceModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -451,7 +351,10 @@ describe('TextToSpeechV1', () => { description, }; - textToSpeech.createVoiceModel(params); + const createVoiceModelResult = textToSpeech.createVoiceModel(params); + + // all methods should return a Promise + expectToBePromise(createVoiceModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -483,35 +386,9 @@ describe('TextToSpeechV1', () => { textToSpeech.createVoiceModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const name = 'fake_name'; - const params = { - name, - }; - - // invoke method - const createVoiceModelPromise = textToSpeech.createVoiceModel(params); - expectToBePromise(createVoiceModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.createVoiceModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['name']; @@ -523,7 +400,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -535,7 +412,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(createVoiceModelPromise); createVoiceModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -543,9 +420,6 @@ describe('TextToSpeechV1', () => { }); describe('listVoiceModels', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const language = 'fake_language'; @@ -553,7 +427,10 @@ describe('TextToSpeechV1', () => { language, }; - textToSpeech.listVoiceModels(params); + const listVoiceModelsResult = textToSpeech.listVoiceModels(params); + + // all methods should return a Promise + expectToBePromise(listVoiceModelsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -582,21 +459,10 @@ describe('TextToSpeechV1', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listVoiceModelsPromise = textToSpeech.listVoiceModels(params); - expectToBePromise(listVoiceModelsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method textToSpeech.listVoiceModels({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -609,9 +475,6 @@ describe('TextToSpeechV1', () => { }); describe('updateVoiceModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -625,7 +488,10 @@ describe('TextToSpeechV1', () => { words, }; - textToSpeech.updateVoiceModel(params); + const updateVoiceModelResult = textToSpeech.updateVoiceModel(params); + + // all methods should return a Promise + expectToBePromise(updateVoiceModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -658,35 +524,9 @@ describe('TextToSpeechV1', () => { textToSpeech.updateVoiceModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const updateVoiceModelPromise = textToSpeech.updateVoiceModel(params); - expectToBePromise(updateVoiceModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.updateVoiceModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -698,7 +538,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -710,7 +550,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(updateVoiceModelPromise); updateVoiceModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -718,9 +558,6 @@ describe('TextToSpeechV1', () => { }); describe('getVoiceModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -728,7 +565,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.getVoiceModel(params); + const getVoiceModelResult = textToSpeech.getVoiceModel(params); + + // all methods should return a Promise + expectToBePromise(getVoiceModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -758,35 +598,9 @@ describe('TextToSpeechV1', () => { textToSpeech.getVoiceModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const getVoiceModelPromise = textToSpeech.getVoiceModel(params); - expectToBePromise(getVoiceModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.getVoiceModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -798,7 +612,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -810,7 +624,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(getVoiceModelPromise); getVoiceModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -818,9 +632,6 @@ describe('TextToSpeechV1', () => { }); describe('deleteVoiceModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -828,7 +639,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.deleteVoiceModel(params); + const deleteVoiceModelResult = textToSpeech.deleteVoiceModel(params); + + // all methods should return a Promise + expectToBePromise(deleteVoiceModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -858,35 +672,9 @@ describe('TextToSpeechV1', () => { textToSpeech.deleteVoiceModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const deleteVoiceModelPromise = textToSpeech.deleteVoiceModel(params); - expectToBePromise(deleteVoiceModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.deleteVoiceModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -898,7 +686,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -910,7 +698,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(deleteVoiceModelPromise); deleteVoiceModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -918,9 +706,6 @@ describe('TextToSpeechV1', () => { }); describe('addWords', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -930,7 +715,10 @@ describe('TextToSpeechV1', () => { words, }; - textToSpeech.addWords(params); + const addWordsResult = textToSpeech.addWords(params); + + // all methods should return a Promise + expectToBePromise(addWordsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -963,37 +751,9 @@ describe('TextToSpeechV1', () => { textToSpeech.addWords(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const words = 'fake_words'; - const params = { - customizationId, - words, - }; - - // invoke method - const addWordsPromise = textToSpeech.addWords(params); - expectToBePromise(addWordsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.addWords(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'words']; @@ -1005,7 +765,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1017,7 +777,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(addWordsPromise); addWordsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1025,9 +785,6 @@ describe('TextToSpeechV1', () => { }); describe('listWords', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1035,7 +792,10 @@ describe('TextToSpeechV1', () => { customizationId, }; - textToSpeech.listWords(params); + const listWordsResult = textToSpeech.listWords(params); + + // all methods should return a Promise + expectToBePromise(listWordsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1065,35 +825,9 @@ describe('TextToSpeechV1', () => { textToSpeech.listWords(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const params = { - customizationId, - }; - - // invoke method - const listWordsPromise = textToSpeech.listWords(params); - expectToBePromise(listWordsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.listWords(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId']; @@ -1105,7 +839,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1117,7 +851,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(listWordsPromise); listWordsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1125,9 +859,6 @@ describe('TextToSpeechV1', () => { }); describe('addWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1141,7 +872,10 @@ describe('TextToSpeechV1', () => { partOfSpeech, }; - textToSpeech.addWord(params); + const addWordResult = textToSpeech.addWord(params); + + // all methods should return a Promise + expectToBePromise(addWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1178,39 +912,9 @@ describe('TextToSpeechV1', () => { textToSpeech.addWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const word = 'fake_word'; - const translation = 'fake_translation'; - const params = { - customizationId, - word, - translation, - }; - - // invoke method - const addWordPromise = textToSpeech.addWord(params); - expectToBePromise(addWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.addWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'word', 'translation']; @@ -1222,7 +926,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1234,7 +938,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(addWordPromise); addWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1242,9 +946,6 @@ describe('TextToSpeechV1', () => { }); describe('getWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1254,7 +955,10 @@ describe('TextToSpeechV1', () => { word, }; - textToSpeech.getWord(params); + const getWordResult = textToSpeech.getWord(params); + + // all methods should return a Promise + expectToBePromise(getWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1287,37 +991,9 @@ describe('TextToSpeechV1', () => { textToSpeech.getWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const word = 'fake_word'; - const params = { - customizationId, - word, - }; - - // invoke method - const getWordPromise = textToSpeech.getWord(params); - expectToBePromise(getWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.getWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'word']; @@ -1329,7 +1005,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1341,7 +1017,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(getWordPromise); getWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1349,9 +1025,6 @@ describe('TextToSpeechV1', () => { }); describe('deleteWord', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customizationId = 'fake_customizationId'; @@ -1361,7 +1034,10 @@ describe('TextToSpeechV1', () => { word, }; - textToSpeech.deleteWord(params); + const deleteWordResult = textToSpeech.deleteWord(params); + + // all methods should return a Promise + expectToBePromise(deleteWordResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1394,37 +1070,9 @@ describe('TextToSpeechV1', () => { textToSpeech.deleteWord(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customizationId = 'fake_customizationId'; - const word = 'fake_word'; - const params = { - customizationId, - word, - }; - - // invoke method - const deleteWordPromise = textToSpeech.deleteWord(params); - expectToBePromise(deleteWordPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.deleteWord(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customizationId', 'word']; @@ -1436,7 +1084,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1448,7 +1096,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(deleteWordPromise); deleteWordPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1456,9 +1104,6 @@ describe('TextToSpeechV1', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -1466,7 +1111,10 @@ describe('TextToSpeechV1', () => { customerId, }; - textToSpeech.deleteUserData(params); + const deleteUserDataResult = textToSpeech.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1496,35 +1144,9 @@ describe('TextToSpeechV1', () => { textToSpeech.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = textToSpeech.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - textToSpeech.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -1536,7 +1158,7 @@ describe('TextToSpeechV1', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1548,7 +1170,7 @@ describe('TextToSpeechV1', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/tone-analyzer.v3.test.js b/test/unit/tone-analyzer.v3.test.js index aa2ac05c8e..175884d00f 100644 --- a/test/unit/tone-analyzer.v3.test.js +++ b/test/unit/tone-analyzer.v3.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const ToneAnalyzerV3 = require('../../dist/tone-analyzer/v3'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, -} = utils; +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const toneAnalyzer = new ToneAnalyzerV3(service); const createRequestMock = jest.spyOn(toneAnalyzer, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('ToneAnalyzerV3', () => { describe('tone', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const toneInput = 'fake_toneInput'; @@ -73,7 +62,10 @@ describe('ToneAnalyzerV3', () => { acceptLanguage, }; - toneAnalyzer.tone(params); + const toneResult = toneAnalyzer.tone(params); + + // all methods should return a Promise + expectToBePromise(toneResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -108,35 +100,9 @@ describe('ToneAnalyzerV3', () => { toneAnalyzer.tone(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const toneInput = 'fake_toneInput'; - const params = { - toneInput, - }; - - // invoke method - const tonePromise = toneAnalyzer.tone(params); - expectToBePromise(tonePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - toneAnalyzer.tone(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['toneInput']; @@ -148,7 +114,7 @@ describe('ToneAnalyzerV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -160,7 +126,7 @@ describe('ToneAnalyzerV3', () => { expectToBePromise(tonePromise); tonePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -168,9 +134,6 @@ describe('ToneAnalyzerV3', () => { }); describe('toneChat', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const utterances = 'fake_utterances'; @@ -182,7 +145,10 @@ describe('ToneAnalyzerV3', () => { acceptLanguage, }; - toneAnalyzer.toneChat(params); + const toneChatResult = toneAnalyzer.toneChat(params); + + // all methods should return a Promise + expectToBePromise(toneChatResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -214,35 +180,9 @@ describe('ToneAnalyzerV3', () => { toneAnalyzer.toneChat(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const utterances = 'fake_utterances'; - const params = { - utterances, - }; - - // invoke method - const toneChatPromise = toneAnalyzer.toneChat(params); - expectToBePromise(toneChatPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - toneAnalyzer.toneChat(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['utterances']; @@ -254,7 +194,7 @@ describe('ToneAnalyzerV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -266,7 +206,7 @@ describe('ToneAnalyzerV3', () => { expectToBePromise(toneChatPromise); toneChatPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/visual-recognition.v3.test.js b/test/unit/visual-recognition.v3.test.js index fe8aee8ba9..b9f97e9bb1 100644 --- a/test/unit/visual-recognition.v3.test.js +++ b/test/unit/visual-recognition.v3.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,23 +15,17 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const VisualRecognitionV3 = require('../../dist/visual-recognition/v3'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, checkUserHeader, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -41,22 +35,17 @@ const service = { const visualRecognition = new VisualRecognitionV3(service); const createRequestMock = jest.spyOn(visualRecognition, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('VisualRecognitionV3', () => { describe('classify', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const imagesFile = 'fake_imagesFile'; @@ -78,7 +67,10 @@ describe('VisualRecognitionV3', () => { acceptLanguage, }; - visualRecognition.classify(params); + const classifyResult = visualRecognition.classify(params); + + // all methods should return a Promise + expectToBePromise(classifyResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -114,21 +106,10 @@ describe('VisualRecognitionV3', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const classifyPromise = visualRecognition.classify(params); - expectToBePromise(classifyPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method visualRecognition.classify({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -141,9 +122,6 @@ describe('VisualRecognitionV3', () => { }); describe('createClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -157,7 +135,10 @@ describe('VisualRecognitionV3', () => { negativeExamplesFilename, }; - visualRecognition.createClassifier(params); + const createClassifierResult = visualRecognition.createClassifier(params); + + // all methods should return a Promise + expectToBePromise(createClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -169,10 +150,12 @@ describe('VisualRecognitionV3', () => { const expectedContentType = 'multipart/form-data'; checkMediaHeaders(createRequestMock, expectedAccept, expectedContentType); expect(options.formData['name']).toEqual(name); - expect(options.formData['fake_positive_examples'].data).toEqual(positiveExamples['fake']); - expect(options.formData['fake_positive_examples'].contentType).toEqual( - 'application/octet-stream' + expect(options.formData['${key}_positive_examples'.replace('${key}', 'fake')].data).toEqual( + positiveExamples['fake'] ); + expect( + options.formData['${key}_positive_examples'.replace('${key}', 'fake')].contentType + ).toEqual('application/octet-stream'); expect(options.formData['negative_examples'].data).toEqual(negativeExamples); expect(options.formData['negative_examples'].filename).toEqual(negativeExamplesFilename); expect(options.formData['negative_examples'].contentType).toEqual( @@ -198,37 +181,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.createClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const name = 'fake_name'; - const positiveExamples = { fake: 'fake_positiveExamples' }; - const params = { - name, - positiveExamples, - }; - - // invoke method - const createClassifierPromise = visualRecognition.createClassifier(params); - expectToBePromise(createClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.createClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['name', 'positiveExamples']; @@ -240,7 +195,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -252,7 +207,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(createClassifierPromise); createClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -260,9 +215,6 @@ describe('VisualRecognitionV3', () => { }); describe('listClassifiers', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const verbose = 'fake_verbose'; @@ -270,7 +222,10 @@ describe('VisualRecognitionV3', () => { verbose, }; - visualRecognition.listClassifiers(params); + const listClassifiersResult = visualRecognition.listClassifiers(params); + + // all methods should return a Promise + expectToBePromise(listClassifiersResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -299,21 +254,10 @@ describe('VisualRecognitionV3', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listClassifiersPromise = visualRecognition.listClassifiers(params); - expectToBePromise(listClassifiersPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method visualRecognition.listClassifiers({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -326,9 +270,6 @@ describe('VisualRecognitionV3', () => { }); describe('getClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -336,7 +277,10 @@ describe('VisualRecognitionV3', () => { classifierId, }; - visualRecognition.getClassifier(params); + const getClassifierResult = visualRecognition.getClassifier(params); + + // all methods should return a Promise + expectToBePromise(getClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -366,35 +310,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.getClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const getClassifierPromise = visualRecognition.getClassifier(params); - expectToBePromise(getClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.getClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -406,7 +324,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -418,7 +336,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(getClassifierPromise); getClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -426,9 +344,6 @@ describe('VisualRecognitionV3', () => { }); describe('updateClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -442,7 +357,10 @@ describe('VisualRecognitionV3', () => { negativeExamplesFilename, }; - visualRecognition.updateClassifier(params); + const updateClassifierResult = visualRecognition.updateClassifier(params); + + // all methods should return a Promise + expectToBePromise(updateClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -453,10 +371,12 @@ describe('VisualRecognitionV3', () => { const expectedAccept = 'application/json'; const expectedContentType = 'multipart/form-data'; checkMediaHeaders(createRequestMock, expectedAccept, expectedContentType); - expect(options.formData['fake_positive_examples'].data).toEqual(positiveExamples['fake']); - expect(options.formData['fake_positive_examples'].contentType).toEqual( - 'application/octet-stream' + expect(options.formData['${key}_positive_examples'.replace('${key}', 'fake')].data).toEqual( + positiveExamples['fake'] ); + expect( + options.formData['${key}_positive_examples'.replace('${key}', 'fake')].contentType + ).toEqual('application/octet-stream'); expect(options.formData['negative_examples'].data).toEqual(negativeExamples); expect(options.formData['negative_examples'].filename).toEqual(negativeExamplesFilename); expect(options.formData['negative_examples'].contentType).toEqual( @@ -481,35 +401,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.updateClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const updateClassifierPromise = visualRecognition.updateClassifier(params); - expectToBePromise(updateClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.updateClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -521,7 +415,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -533,7 +427,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(updateClassifierPromise); updateClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -541,9 +435,6 @@ describe('VisualRecognitionV3', () => { }); describe('deleteClassifier', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -551,7 +442,10 @@ describe('VisualRecognitionV3', () => { classifierId, }; - visualRecognition.deleteClassifier(params); + const deleteClassifierResult = visualRecognition.deleteClassifier(params); + + // all methods should return a Promise + expectToBePromise(deleteClassifierResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -581,35 +475,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.deleteClassifier(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const deleteClassifierPromise = visualRecognition.deleteClassifier(params); - expectToBePromise(deleteClassifierPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.deleteClassifier(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -621,7 +489,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -633,7 +501,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(deleteClassifierPromise); deleteClassifierPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -641,9 +509,6 @@ describe('VisualRecognitionV3', () => { }); describe('getCoreMlModel', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const classifierId = 'fake_classifierId'; @@ -651,7 +516,10 @@ describe('VisualRecognitionV3', () => { classifierId, }; - visualRecognition.getCoreMlModel(params); + const getCoreMlModelResult = visualRecognition.getCoreMlModel(params); + + // all methods should return a Promise + expectToBePromise(getCoreMlModelResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -682,35 +550,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.getCoreMlModel(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const classifierId = 'fake_classifierId'; - const params = { - classifierId, - }; - - // invoke method - const getCoreMlModelPromise = visualRecognition.getCoreMlModel(params); - expectToBePromise(getCoreMlModelPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.getCoreMlModel(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['classifierId']; @@ -722,7 +564,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -734,7 +576,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(getCoreMlModelPromise); getCoreMlModelPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -742,9 +584,6 @@ describe('VisualRecognitionV3', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -752,7 +591,10 @@ describe('VisualRecognitionV3', () => { customerId, }; - visualRecognition.deleteUserData(params); + const deleteUserDataResult = visualRecognition.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -782,35 +624,9 @@ describe('VisualRecognitionV3', () => { visualRecognition.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = visualRecognition.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -822,7 +638,7 @@ describe('VisualRecognitionV3', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -834,7 +650,7 @@ describe('VisualRecognitionV3', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/test/unit/visual-recognition.v4.test.js b/test/unit/visual-recognition.v4.test.js index 92ceaa10f5..39bda62857 100644 --- a/test/unit/visual-recognition.v4.test.js +++ b/test/unit/visual-recognition.v4.test.js @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,22 +15,16 @@ */ 'use strict'; -const helper = require('ibm-cloud-sdk-core'); // for mocking `getMissingParams` -const { NoAuthAuthenticator } = require('ibm-cloud-sdk-core'); +const { NoAuthAuthenticator, unitTestUtils } = require('ibm-cloud-sdk-core'); const VisualRecognitionV4 = require('../../dist/visual-recognition/v4'); -const utils = require('../resources/unitTestUtils'); const { getOptions, checkUrlAndMethod, checkMediaHeaders, - missingParamsSuccess, expectToBePromise, - missingParamsError, - checkForEmptyObject, - checkRequiredParamsHandling, - checkDefaultSuccessArgs, -} = utils; + checkForSuccessfulExecution, +} = unitTestUtils; const service = { authenticator: new NoAuthAuthenticator(), @@ -40,22 +34,17 @@ const service = { const visualRecognition = new VisualRecognitionV4(service); const createRequestMock = jest.spyOn(visualRecognition, 'createRequest'); -const missingParamsMock = jest.spyOn(helper, 'getMissingParams'); // dont actually create a request createRequestMock.mockImplementation(() => Promise.resolve()); afterEach(() => { createRequestMock.mockClear(); - missingParamsMock.mockClear(); }); describe('VisualRecognitionV4', () => { describe('analyze', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionIds = 'fake_collectionIds'; @@ -71,7 +60,10 @@ describe('VisualRecognitionV4', () => { threshold, }; - visualRecognition.analyze(params); + const analyzeResult = visualRecognition.analyze(params); + + // all methods should return a Promise + expectToBePromise(analyzeResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -107,37 +99,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.analyze(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionIds = 'fake_collectionIds'; - const features = 'fake_features'; - const params = { - collectionIds, - features, - }; - - // invoke method - const analyzePromise = visualRecognition.analyze(params); - expectToBePromise(analyzePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.analyze(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionIds', 'features']; @@ -149,7 +113,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -161,7 +125,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(analyzePromise); analyzePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -169,9 +133,6 @@ describe('VisualRecognitionV4', () => { }); describe('createCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const name = 'fake_name'; @@ -181,7 +142,10 @@ describe('VisualRecognitionV4', () => { description, }; - visualRecognition.createCollection(params); + const createCollectionResult = visualRecognition.createCollection(params); + + // all methods should return a Promise + expectToBePromise(createCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -211,21 +175,10 @@ describe('VisualRecognitionV4', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const createCollectionPromise = visualRecognition.createCollection(params); - expectToBePromise(createCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method visualRecognition.createCollection({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -238,14 +191,14 @@ describe('VisualRecognitionV4', () => { }); describe('listCollections', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const params = {}; - visualRecognition.listCollections(params); + const listCollectionsResult = visualRecognition.listCollections(params); + + // all methods should return a Promise + expectToBePromise(listCollectionsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -273,21 +226,10 @@ describe('VisualRecognitionV4', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const listCollectionsPromise = visualRecognition.listCollections(params); - expectToBePromise(listCollectionsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method visualRecognition.listCollections({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -300,9 +242,6 @@ describe('VisualRecognitionV4', () => { }); describe('getCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -310,7 +249,10 @@ describe('VisualRecognitionV4', () => { collectionId, }; - visualRecognition.getCollection(params); + const getCollectionResult = visualRecognition.getCollection(params); + + // all methods should return a Promise + expectToBePromise(getCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -340,35 +282,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.getCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const getCollectionPromise = visualRecognition.getCollection(params); - expectToBePromise(getCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.getCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -380,7 +296,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -392,7 +308,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(getCollectionPromise); getCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -400,9 +316,6 @@ describe('VisualRecognitionV4', () => { }); describe('updateCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -414,7 +327,10 @@ describe('VisualRecognitionV4', () => { description, }; - visualRecognition.updateCollection(params); + const updateCollectionResult = visualRecognition.updateCollection(params); + + // all methods should return a Promise + expectToBePromise(updateCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -446,35 +362,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.updateCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const updateCollectionPromise = visualRecognition.updateCollection(params); - expectToBePromise(updateCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.updateCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -486,7 +376,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -498,7 +388,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(updateCollectionPromise); updateCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -506,9 +396,6 @@ describe('VisualRecognitionV4', () => { }); describe('deleteCollection', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -516,7 +403,10 @@ describe('VisualRecognitionV4', () => { collectionId, }; - visualRecognition.deleteCollection(params); + const deleteCollectionResult = visualRecognition.deleteCollection(params); + + // all methods should return a Promise + expectToBePromise(deleteCollectionResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -546,35 +436,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.deleteCollection(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const deleteCollectionPromise = visualRecognition.deleteCollection(params); - expectToBePromise(deleteCollectionPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.deleteCollection(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -586,7 +450,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -598,7 +462,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(deleteCollectionPromise); deleteCollectionPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -606,9 +470,6 @@ describe('VisualRecognitionV4', () => { }); describe('addImages', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -622,7 +483,10 @@ describe('VisualRecognitionV4', () => { trainingData, }; - visualRecognition.addImages(params); + const addImagesResult = visualRecognition.addImages(params); + + // all methods should return a Promise + expectToBePromise(addImagesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -655,35 +519,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.addImages(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const addImagesPromise = visualRecognition.addImages(params); - expectToBePromise(addImagesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.addImages(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -695,7 +533,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -707,7 +545,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(addImagesPromise); addImagesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -715,9 +553,6 @@ describe('VisualRecognitionV4', () => { }); describe('listImages', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -725,7 +560,10 @@ describe('VisualRecognitionV4', () => { collectionId, }; - visualRecognition.listImages(params); + const listImagesResult = visualRecognition.listImages(params); + + // all methods should return a Promise + expectToBePromise(listImagesResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -755,35 +593,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.listImages(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const listImagesPromise = visualRecognition.listImages(params); - expectToBePromise(listImagesPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.listImages(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -795,7 +607,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -807,7 +619,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(listImagesPromise); listImagesPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -815,9 +627,6 @@ describe('VisualRecognitionV4', () => { }); describe('getImageDetails', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -827,7 +636,10 @@ describe('VisualRecognitionV4', () => { imageId, }; - visualRecognition.getImageDetails(params); + const getImageDetailsResult = visualRecognition.getImageDetails(params); + + // all methods should return a Promise + expectToBePromise(getImageDetailsResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -860,37 +672,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.getImageDetails(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const imageId = 'fake_imageId'; - const params = { - collectionId, - imageId, - }; - - // invoke method - const getImageDetailsPromise = visualRecognition.getImageDetails(params); - expectToBePromise(getImageDetailsPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.getImageDetails(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId', 'imageId']; @@ -902,7 +686,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -914,7 +698,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(getImageDetailsPromise); getImageDetailsPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -922,9 +706,6 @@ describe('VisualRecognitionV4', () => { }); describe('deleteImage', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -934,7 +715,10 @@ describe('VisualRecognitionV4', () => { imageId, }; - visualRecognition.deleteImage(params); + const deleteImageResult = visualRecognition.deleteImage(params); + + // all methods should return a Promise + expectToBePromise(deleteImageResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -967,37 +751,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.deleteImage(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const imageId = 'fake_imageId'; - const params = { - collectionId, - imageId, - }; - - // invoke method - const deleteImagePromise = visualRecognition.deleteImage(params); - expectToBePromise(deleteImagePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.deleteImage(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId', 'imageId']; @@ -1009,7 +765,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1021,7 +777,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(deleteImagePromise); deleteImagePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1029,9 +785,6 @@ describe('VisualRecognitionV4', () => { }); describe('getJpegImage', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -1043,7 +796,10 @@ describe('VisualRecognitionV4', () => { size, }; - visualRecognition.getJpegImage(params); + const getJpegImageResult = visualRecognition.getJpegImage(params); + + // all methods should return a Promise + expectToBePromise(getJpegImageResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1078,37 +834,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.getJpegImage(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const imageId = 'fake_imageId'; - const params = { - collectionId, - imageId, - }; - - // invoke method - const getJpegImagePromise = visualRecognition.getJpegImage(params); - expectToBePromise(getJpegImagePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.getJpegImage(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId', 'imageId']; @@ -1120,7 +848,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1132,7 +860,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(getJpegImagePromise); getJpegImagePromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1140,9 +868,6 @@ describe('VisualRecognitionV4', () => { }); describe('train', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -1150,7 +875,10 @@ describe('VisualRecognitionV4', () => { collectionId, }; - visualRecognition.train(params); + const trainResult = visualRecognition.train(params); + + // all methods should return a Promise + expectToBePromise(trainResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1180,35 +908,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.train(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const params = { - collectionId, - }; - - // invoke method - const trainPromise = visualRecognition.train(params); - expectToBePromise(trainPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.train(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId']; @@ -1220,7 +922,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1232,7 +934,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(trainPromise); trainPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1240,9 +942,6 @@ describe('VisualRecognitionV4', () => { }); describe('addImageTrainingData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const collectionId = 'fake_collectionId'; @@ -1254,7 +953,10 @@ describe('VisualRecognitionV4', () => { objects, }; - visualRecognition.addImageTrainingData(params); + const addImageTrainingDataResult = visualRecognition.addImageTrainingData(params); + + // all methods should return a Promise + expectToBePromise(addImageTrainingDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1292,37 +994,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.addImageTrainingData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const collectionId = 'fake_collectionId'; - const imageId = 'fake_imageId'; - const params = { - collectionId, - imageId, - }; - - // invoke method - const addImageTrainingDataPromise = visualRecognition.addImageTrainingData(params); - expectToBePromise(addImageTrainingDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.addImageTrainingData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['collectionId', 'imageId']; @@ -1334,7 +1008,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1346,7 +1020,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(addImageTrainingDataPromise); addImageTrainingDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); @@ -1354,9 +1028,6 @@ describe('VisualRecognitionV4', () => { }); describe('getTrainingUsage', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const startTime = 'fake_startTime'; @@ -1366,7 +1037,10 @@ describe('VisualRecognitionV4', () => { endTime, }; - visualRecognition.getTrainingUsage(params); + const getTrainingUsageResult = visualRecognition.getTrainingUsage(params); + + // all methods should return a Promise + expectToBePromise(getTrainingUsageResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1396,21 +1070,10 @@ describe('VisualRecognitionV4', () => { checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - test('should return a promise when no callback is given', () => { - // parameters - const params = {}; - - // invoke method - const getTrainingUsagePromise = visualRecognition.getTrainingUsage(params); - expectToBePromise(getTrainingUsagePromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); test('should not have any problems when no parameters are passed in', () => { // invoke the method visualRecognition.getTrainingUsage({}); - checkDefaultSuccessArgs(createRequestMock); + checkForSuccessfulExecution(createRequestMock); }); test('should use argument as callback function if only one is passed in', async () => { @@ -1423,9 +1086,6 @@ describe('VisualRecognitionV4', () => { }); describe('deleteUserData', () => { describe('positive tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsSuccess); - }); test('should pass the right params to createRequest', () => { // parameters const customerId = 'fake_customerId'; @@ -1433,7 +1093,10 @@ describe('VisualRecognitionV4', () => { customerId, }; - visualRecognition.deleteUserData(params); + const deleteUserDataResult = visualRecognition.deleteUserData(params); + + // all methods should return a Promise + expectToBePromise(deleteUserDataResult); // assert that create request was called expect(createRequestMock).toHaveBeenCalledTimes(1); @@ -1463,35 +1126,9 @@ describe('VisualRecognitionV4', () => { visualRecognition.deleteUserData(params); checkMediaHeaders(createRequestMock, userAccept, userContentType); }); - - test('should return a promise when no callback is given', () => { - // parameters - const customerId = 'fake_customerId'; - const params = { - customerId, - }; - - // invoke method - const deleteUserDataPromise = visualRecognition.deleteUserData(params); - expectToBePromise(deleteUserDataPromise); - - // assert that create request was called - expect(createRequestMock).toHaveBeenCalledTimes(1); - }); }); describe('negative tests', () => { - beforeAll(() => { - missingParamsMock.mockReturnValue(missingParamsError); - }); - - test('should convert a `null` value for `params` to an empty object', done => { - visualRecognition.deleteUserData(null).catch(() => { - checkForEmptyObject(missingParamsMock); - done(); - }); - }); - test('should enforce required parameters', async done => { // required parameters for this method const requiredParams = ['customerId']; @@ -1503,7 +1140,7 @@ describe('VisualRecognitionV4', () => { err = e; } - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); @@ -1515,7 +1152,7 @@ describe('VisualRecognitionV4', () => { expectToBePromise(deleteUserDataPromise); deleteUserDataPromise.catch(err => { - checkRequiredParamsHandling(requiredParams, err, missingParamsMock, createRequestMock); + expect(err.message).toMatch(/Missing required parameters/); done(); }); }); diff --git a/text-to-speech/v1-generated.ts b/text-to-speech/v1-generated.ts index 535955eefe..a126726082 100644 --- a/text-to-speech/v1-generated.ts +++ b/text-to-speech/v1-generated.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -39,9 +38,8 @@ import { getSdkHeaders } from '../lib/common'; class TextToSpeechV1 extends BaseService { - static URL: string = 'https://stream.watsonplatform.net/text-to-speech/api'; - name: string; // set by prototype to 'text_to_speech' - serviceVersion: string; // set by prototype to 'v1' + static DEFAULT_SERVICE_URL: string = 'https://stream.watsonplatform.net/text-to-speech/api'; + static DEFAULT_SERVICE_NAME: string = 'text_to_speech'; /** * Construct a TextToSpeechV1 object. @@ -49,16 +47,24 @@ class TextToSpeechV1 extends BaseService { * @param {Object} options - Options for the service. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/text-to-speech/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {TextToSpeechV1} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = TextToSpeechV1.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('text_to_speech'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } } /************************* @@ -76,16 +82,15 @@ class TextToSpeechV1 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listVoices(params?: TextToSpeechV1.ListVoicesParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'listVoices'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'listVoices'); const parameters = { options: { @@ -133,8 +138,8 @@ class TextToSpeechV1 extends BaseService { * information is to be returned. You must make the request with credentials for the instance of the service that owns * the custom model. Omit the parameter to see information about the specified voice with no customization. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getVoice(params: TextToSpeechV1.GetVoiceParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -142,7 +147,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['voice']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -160,7 +164,7 @@ class TextToSpeechV1 extends BaseService { 'voice': _params.voice }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'getVoice'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'getVoice'); const parameters = { options: { @@ -266,8 +270,8 @@ class TextToSpeechV1 extends BaseService { * indicated voice. You must make the request with credentials for the instance of the service that owns the custom * model. Omit the parameter to use the specified voice with no customization. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public synthesize(params: TextToSpeechV1.SynthesizeParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -275,7 +279,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -294,7 +297,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'synthesize'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'synthesize'); const parameters = { options: { @@ -341,7 +344,8 @@ class TextToSpeechV1 extends BaseService { * You can also request the pronunciation for a specific voice to see the default translation for the language of that * voice or for a specific custom voice model to see the translation for that voice model. * - * **Note:** This method is currently a beta release. + * **Note:** This method is currently a beta release. The method does not support the Arabic, Chinese, and Dutch + * languages. * * **See also:** [Querying a word from a * language](https://cloud.ibm.com/docs/services/text-to-speech?topic=text-to-speech-customWords#cuWordsQueryLanguage). @@ -358,8 +362,8 @@ class TextToSpeechV1 extends BaseService { * the custom model's language. You must make the request with credentials for the instance of the service that owns * the custom model. Omit the parameter to see the translation for the specified voice with no customization. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getPronunciation(params: TextToSpeechV1.GetPronunciationParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -367,7 +371,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['text']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -384,7 +387,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'getPronunciation'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'getPronunciation'); const parameters = { options: { @@ -428,7 +431,8 @@ class TextToSpeechV1 extends BaseService { * specify the language and a description for the new model. The model is owned by the instance of the service whose * credentials are used to create it. * - * **Note:** This method is currently a beta release. + * **Note:** This method is currently a beta release. The service does not support voice model customization for the + * Arabic, Chinese, and Dutch languages. * * **See also:** [Creating a custom * model](https://cloud.ibm.com/docs/services/text-to-speech?topic=text-to-speech-customModels#cuModelsCreate). @@ -440,8 +444,8 @@ class TextToSpeechV1 extends BaseService { * @param {string} [params.description] - A description of the new custom voice model. Specifying a description is * recommended. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createVoiceModel(params: TextToSpeechV1.CreateVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -449,7 +453,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['name']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -465,7 +468,7 @@ class TextToSpeechV1 extends BaseService { 'description': _params.description }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'createVoiceModel'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'createVoiceModel'); const parameters = { options: { @@ -516,20 +519,19 @@ class TextToSpeechV1 extends BaseService { * @param {string} [params.language] - The language for which custom voice models that are owned by the requesting * credentials are to be returned. Omit the parameter to see all custom voice models that are owned by the requester. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listVoiceModels(params?: TextToSpeechV1.ListVoiceModelsParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'language': _params.language }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'listVoiceModels'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'listVoiceModels'); const parameters = { options: { @@ -599,8 +601,8 @@ class TextToSpeechV1 extends BaseService { * @param {Word[]} [params.words] - An array of `Word` objects that provides the words and their translations that are * to be added or updated for the custom voice model. Pass an empty array to make no additions or updates. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateVoiceModel(params: TextToSpeechV1.UpdateVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -608,7 +610,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -628,7 +629,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'updateVoiceModel'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'updateVoiceModel'); const parameters = { options: { @@ -679,8 +680,8 @@ class TextToSpeechV1 extends BaseService { * @param {string} params.customizationId - The customization ID (GUID) of the custom voice model. You must make the * request with credentials for the instance of the service that owns the custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getVoiceModel(params: TextToSpeechV1.GetVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -688,7 +689,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -702,7 +702,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'getVoiceModel'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'getVoiceModel'); const parameters = { options: { @@ -750,8 +750,8 @@ class TextToSpeechV1 extends BaseService { * @param {string} params.customizationId - The customization ID (GUID) of the custom voice model. You must make the * request with credentials for the instance of the service that owns the custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteVoiceModel(params: TextToSpeechV1.DeleteVoiceModelParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -759,7 +759,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -773,7 +772,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'deleteVoiceModel'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteVoiceModel'); const parameters = { options: { @@ -847,8 +846,8 @@ class TextToSpeechV1 extends BaseService { * from the custom voice model. The words are listed in alphabetical order, with uppercase letters listed before * lowercase letters. The array is empty if the custom model contains no words. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addWords(params: TextToSpeechV1.AddWordsParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -856,7 +855,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId', 'words']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -874,7 +872,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'addWords'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'addWords'); const parameters = { options: { @@ -925,8 +923,8 @@ class TextToSpeechV1 extends BaseService { * @param {string} params.customizationId - The customization ID (GUID) of the custom voice model. You must make the * request with credentials for the instance of the service that owns the custom model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listWords(params: TextToSpeechV1.ListWordsParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -934,7 +932,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -948,7 +945,7 @@ class TextToSpeechV1 extends BaseService { 'customization_id': _params.customizationId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'listWords'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'listWords'); const parameters = { options: { @@ -1022,8 +1019,8 @@ class TextToSpeechV1 extends BaseService { * For more information, see [Working with Japanese * entries](https://cloud.ibm.com/docs/services/text-to-speech?topic=text-to-speech-rules#jaNotes). * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addWord(params: TextToSpeechV1.AddWordParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -1031,7 +1028,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId', 'word', 'translation']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1051,7 +1047,7 @@ class TextToSpeechV1 extends BaseService { 'word': _params.word }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'addWord'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'addWord'); const parameters = { options: { @@ -1102,8 +1098,8 @@ class TextToSpeechV1 extends BaseService { * request with credentials for the instance of the service that owns the custom model. * @param {string} params.word - The word that is to be queried from the custom voice model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getWord(params: TextToSpeechV1.GetWordParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -1111,7 +1107,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId', 'word']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1126,7 +1121,7 @@ class TextToSpeechV1 extends BaseService { 'word': _params.word }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'getWord'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'getWord'); const parameters = { options: { @@ -1175,8 +1170,8 @@ class TextToSpeechV1 extends BaseService { * request with credentials for the instance of the service that owns the custom model. * @param {string} params.word - The word that is to be deleted from the custom voice model. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteWord(params: TextToSpeechV1.DeleteWordParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -1184,7 +1179,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customizationId', 'word']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1199,7 +1193,7 @@ class TextToSpeechV1 extends BaseService { 'word': _params.word }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'deleteWord'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteWord'); const parameters = { options: { @@ -1252,8 +1246,8 @@ class TextToSpeechV1 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: TextToSpeechV1.DeleteUserDataParams, callback?: TextToSpeechV1.Callback): Promise> { const _params = extend({}, params); @@ -1261,7 +1255,6 @@ class TextToSpeechV1 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1275,7 +1268,7 @@ class TextToSpeechV1 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('text_to_speech', 'v1', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(TextToSpeechV1.DEFAULT_SERVICE_NAME, 'v1', 'deleteUserData'); const parameters = { options: { @@ -1309,9 +1302,6 @@ class TextToSpeechV1 extends BaseService { } -TextToSpeechV1.prototype.name = 'text_to_speech'; -TextToSpeechV1.prototype.serviceVersion = 'v1'; - /************************* * interfaces ************************/ @@ -1433,6 +1423,7 @@ namespace TextToSpeechV1 { } /** The voice to use for synthesis. */ export enum Voice { + AR_AR_OMARVOICE = 'ar-AR_OmarVoice', DE_DE_BIRGITVOICE = 'de-DE_BirgitVoice', DE_DE_BIRGITV3VOICE = 'de-DE_BirgitV3Voice', DE_DE_DIETERVOICE = 'de-DE_DieterVoice', @@ -1459,8 +1450,13 @@ namespace TextToSpeechV1 { IT_IT_FRANCESCAV3VOICE = 'it-IT_FrancescaV3Voice', JA_JP_EMIVOICE = 'ja-JP_EmiVoice', JA_JP_EMIV3VOICE = 'ja-JP_EmiV3Voice', + NL_NL_EMMAVOICE = 'nl-NL_EmmaVoice', + NL_NL_LIAMVOICE = 'nl-NL_LiamVoice', PT_BR_ISABELAVOICE = 'pt-BR_IsabelaVoice', PT_BR_ISABELAV3VOICE = 'pt-BR_IsabelaV3Voice', + ZH_CN_LINAVOICE = 'zh-CN_LiNaVoice', + ZH_CN_WANGWEIVOICE = 'zh-CN_WangWeiVoice', + ZH_CN_ZHANGJINGVOICE = 'zh-CN_ZhangJingVoice', } } diff --git a/tone-analyzer/v3.ts b/tone-analyzer/v3.ts index 8ecb4d1bb5..a492a936cf 100644 --- a/tone-analyzer/v3.ts +++ b/tone-analyzer/v3.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -33,9 +32,8 @@ import { getSdkHeaders } from '../lib/common'; class ToneAnalyzerV3 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/tone-analyzer/api'; - name: string; // set by prototype to 'tone_analyzer' - serviceVersion: string; // set by prototype to 'v3' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/tone-analyzer/api'; + static DEFAULT_SERVICE_NAME: string = 'tone_analyzer'; /** * Construct a ToneAnalyzerV3 object. @@ -49,17 +47,25 @@ class ToneAnalyzerV3 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/tone-analyzer/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {ToneAnalyzerV3} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = ToneAnalyzerV3.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('tone_analyzer'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -115,8 +121,8 @@ class ToneAnalyzerV3 extends BaseService { * regional variants are treated as their parent language; for example, `en-US` is interpreted as `en`. You can use * different languages for **Content-Language** and **Accept-Language**. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public tone(params: ToneAnalyzerV3.ToneParams, callback?: ToneAnalyzerV3.Callback): Promise> { const _params = extend({}, params); @@ -124,7 +130,6 @@ class ToneAnalyzerV3 extends BaseService { const requiredParams = ['toneInput']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -133,14 +138,14 @@ class ToneAnalyzerV3 extends BaseService { } return reject(missingParams); } - const body = _params.toneInput; + const body = _params.toneInput; const query = { 'sentences': _params.sentences, 'tones': _params.tones }; - const sdkHeaders = getSdkHeaders('tone_analyzer', 'v3', 'tone'); + const sdkHeaders = getSdkHeaders(ToneAnalyzerV3.DEFAULT_SERVICE_NAME, 'v3', 'tone'); const parameters = { options: { @@ -206,8 +211,8 @@ class ToneAnalyzerV3 extends BaseService { * regional variants are treated as their parent language; for example, `en-US` is interpreted as `en`. You can use * different languages for **Content-Language** and **Accept-Language**. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public toneChat(params: ToneAnalyzerV3.ToneChatParams, callback?: ToneAnalyzerV3.Callback): Promise> { const _params = extend({}, params); @@ -215,7 +220,6 @@ class ToneAnalyzerV3 extends BaseService { const requiredParams = ['utterances']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -229,7 +233,7 @@ class ToneAnalyzerV3 extends BaseService { 'utterances': _params.utterances }; - const sdkHeaders = getSdkHeaders('tone_analyzer', 'v3', 'toneChat'); + const sdkHeaders = getSdkHeaders(ToneAnalyzerV3.DEFAULT_SERVICE_NAME, 'v3', 'toneChat'); const parameters = { options: { @@ -267,9 +271,6 @@ class ToneAnalyzerV3 extends BaseService { } -ToneAnalyzerV3.prototype.name = 'tone_analyzer'; -ToneAnalyzerV3.prototype.serviceVersion = 'v3'; - /************************* * interfaces ************************/ diff --git a/visual-recognition/v3.ts b/visual-recognition/v3.ts index 4695223dcc..1834a39fe7 100644 --- a/visual-recognition/v3.ts +++ b/visual-recognition/v3.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2017, 2019. + * (C) Copyright IBM Corp. 2017, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,8 +16,7 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -28,9 +27,8 @@ import { getSdkHeaders } from '../lib/common'; class VisualRecognitionV3 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/visual-recognition/api'; - name: string; // set by prototype to 'watson_vision_combined' - serviceVersion: string; // set by prototype to 'v3' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/visual-recognition/api'; + static DEFAULT_SERVICE_NAME: string = 'watson_vision_combined'; /** * Construct a VisualRecognitionV3 object. @@ -44,17 +42,25 @@ class VisualRecognitionV3 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/visual-recognition/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {VisualRecognitionV3} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = VisualRecognitionV3.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('watson_vision_combined'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -105,8 +111,8 @@ class VisualRecognitionV3 extends BaseService { * @param {string} [params.acceptLanguage] - The desired language of parts of the response. See the response for * details. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public classify(params?: VisualRecognitionV3.ClassifyParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); @@ -125,7 +131,7 @@ class VisualRecognitionV3 extends BaseService { 'classifier_ids': Array.isArray(_params.classifierIds) ? _params.classifierIds.join(',') : _params.classifierIds }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'classify'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'classify'); const parameters = { options: { @@ -187,7 +193,8 @@ class VisualRecognitionV3 extends BaseService { * classifier. You can include more than one positive example file in a call. * * Specify the parameter name by appending `_positive_examples` to the class name. For example, - * `goldenretriever_positive_examples` creates the class **goldenretriever**. + * `goldenretriever_positive_examples` creates the class **goldenretriever**. The string cannot contain the following + * characters: ``$ * - { } \ | / ' " ` [ ]``. * * Include at least 10 images in .jpg or .png format. The minimum recommended image resolution is 32X32 pixels. The * maximum number of images is 10,000 images or 100 MB per .zip file. @@ -199,8 +206,8 @@ class VisualRecognitionV3 extends BaseService { * Encode special characters in the file name in UTF-8. * @param {string} [params.negativeExamplesFilename] - The filename for negativeExamples. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createClassifier(params: VisualRecognitionV3.CreateClassifierParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -208,7 +215,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['name', 'positiveExamples']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -217,6 +223,7 @@ class VisualRecognitionV3 extends BaseService { } return reject(missingParams); } + const formData = { 'name': _params.name, 'negative_examples': { @@ -234,7 +241,7 @@ class VisualRecognitionV3 extends BaseService { }; }); - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'createClassifier'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'createClassifier'); const parameters = { options: { @@ -275,20 +282,19 @@ class VisualRecognitionV3 extends BaseService { * @param {boolean} [params.verbose] - Specify `true` to return details about the classifiers. Omit this parameter to * return a brief list of classifiers. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listClassifiers(params?: VisualRecognitionV3.ListClassifiersParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'verbose': _params.verbose }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'listClassifiers'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'listClassifiers'); const parameters = { options: { @@ -329,8 +335,8 @@ class VisualRecognitionV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.classifierId - The ID of the classifier. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getClassifier(params: VisualRecognitionV3.GetClassifierParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -338,7 +344,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -352,7 +357,7 @@ class VisualRecognitionV3 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'getClassifier'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'getClassifier'); const parameters = { options: { @@ -413,7 +418,8 @@ class VisualRecognitionV3 extends BaseService { * positive example file in a call. * * Specify the parameter name by appending `_positive_examples` to the class name. For example, - * `goldenretriever_positive_examples` creates the class `goldenretriever`. + * `goldenretriever_positive_examples` creates the class `goldenretriever`. The string cannot contain the following + * characters: ``$ * - { } \ | / ' " ` [ ]``. * * Include at least 10 images in .jpg or .png format. The minimum recommended image resolution is 32X32 pixels. The * maximum number of images is 10,000 images or 100 MB per .zip file. @@ -425,8 +431,8 @@ class VisualRecognitionV3 extends BaseService { * Encode special characters in the file name in UTF-8. * @param {string} [params.negativeExamplesFilename] - The filename for negativeExamples. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateClassifier(params: VisualRecognitionV3.UpdateClassifierParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -434,7 +440,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -443,6 +448,7 @@ class VisualRecognitionV3 extends BaseService { } return reject(missingParams); } + const formData = { 'negative_examples': { data: _params.negativeExamples, @@ -463,7 +469,7 @@ class VisualRecognitionV3 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'updateClassifier'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'updateClassifier'); const parameters = { options: { @@ -504,8 +510,8 @@ class VisualRecognitionV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.classifierId - The ID of the classifier. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteClassifier(params: VisualRecognitionV3.DeleteClassifierParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -513,7 +519,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -527,7 +532,7 @@ class VisualRecognitionV3 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'deleteClassifier'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'deleteClassifier'); const parameters = { options: { @@ -573,8 +578,8 @@ class VisualRecognitionV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.classifierId - The ID of the classifier. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCoreMlModel(params: VisualRecognitionV3.GetCoreMlModelParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -582,7 +587,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['classifierId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -596,7 +600,7 @@ class VisualRecognitionV3 extends BaseService { 'classifier_id': _params.classifierId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'getCoreMlModel'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'getCoreMlModel'); const parameters = { options: { @@ -647,8 +651,8 @@ class VisualRecognitionV3 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: VisualRecognitionV3.DeleteUserDataParams, callback?: VisualRecognitionV3.Callback): Promise> { const _params = extend({}, params); @@ -656,7 +660,6 @@ class VisualRecognitionV3 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -670,7 +673,7 @@ class VisualRecognitionV3 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v3', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV3.DEFAULT_SERVICE_NAME, 'v3', 'deleteUserData'); const parameters = { options: { @@ -705,9 +708,6 @@ class VisualRecognitionV3 extends BaseService { } -VisualRecognitionV3.prototype.name = 'watson_vision_combined'; -VisualRecognitionV3.prototype.serviceVersion = 'v3'; - /************************* * interfaces ************************/ @@ -811,7 +811,8 @@ namespace VisualRecognitionV3 { * visual subject of a class in the new classifier. You can include more than one positive example file in a call. * * Specify the parameter name by appending `_positive_examples` to the class name. For example, - * `goldenretriever_positive_examples` creates the class **goldenretriever**. + * `goldenretriever_positive_examples` creates the class **goldenretriever**. The string cannot contain the + * following characters: ``$ * - { } \ | / ' " ` [ ]``. * * Include at least 10 images in .jpg or .png format. The minimum recommended image resolution is 32X32 pixels. The * maximum number of images is 10,000 images or 100 MB per .zip file. @@ -855,7 +856,8 @@ namespace VisualRecognitionV3 { * You can include more than one positive example file in a call. * * Specify the parameter name by appending `_positive_examples` to the class name. For example, - * `goldenretriever_positive_examples` creates the class `goldenretriever`. + * `goldenretriever_positive_examples` creates the class `goldenretriever`. The string cannot contain the following + * characters: ``$ * - { } \ | / ' " ` [ ]``. * * Include at least 10 images in .jpg or .png format. The minimum recommended image resolution is 32X32 pixels. The * maximum number of images is 10,000 images or 100 MB per .zip file. diff --git a/visual-recognition/v4.ts b/visual-recognition/v4.ts index 5ee59cd690..c01fbf676b 100644 --- a/visual-recognition/v4.ts +++ b/visual-recognition/v4.ts @@ -1,5 +1,5 @@ /** - * (C) Copyright IBM Corp. 2019. + * (C) Copyright IBM Corp. 2019, 2020. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,9 +16,8 @@ import * as extend from 'extend'; import { IncomingHttpHeaders, OutgoingHttpHeaders } from 'http'; -import { Authenticator, BaseService, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; +import { Authenticator, BaseService, getAuthenticatorFromEnvironment, getMissingParams, UserOptions } from 'ibm-cloud-sdk-core'; import { FileWithMetadata } from 'ibm-cloud-sdk-core'; -import { getAuthenticatorFromEnvironment } from 'ibm-cloud-sdk-core'; import { getSdkHeaders } from '../lib/common'; /** @@ -28,9 +27,8 @@ import { getSdkHeaders } from '../lib/common'; class VisualRecognitionV4 extends BaseService { - static URL: string = 'https://gateway.watsonplatform.net/visual-recognition/api'; - name: string; // set by prototype to 'watson_vision_combined' - serviceVersion: string; // set by prototype to 'v4' + static DEFAULT_SERVICE_URL: string = 'https://gateway.watsonplatform.net/visual-recognition/api'; + static DEFAULT_SERVICE_NAME: string = 'watson_vision_combined'; /** * Construct a VisualRecognitionV4 object. @@ -44,17 +42,25 @@ class VisualRecognitionV4 extends BaseService { * application is ready for a later version. * @param {string} [options.serviceUrl] - The base url to use when contacting the service (e.g. 'https://gateway.watsonplatform.net/visual-recognition/api'). The base url may differ between IBM Cloud regions. * @param {OutgoingHttpHeaders} [options.headers] - Default headers that shall be included with every request to the service. + * @param {string} [options.serviceName] - The name of the service to configure * @param {Authenticator} [options.authenticator] - The Authenticator object used to authenticate requests to the service. Defaults to environment if not set * @constructor * @returns {VisualRecognitionV4} * @throws {Error} */ constructor(options: UserOptions) { + if (!options.serviceName) { + options.serviceName = VisualRecognitionV4.DEFAULT_SERVICE_NAME; + } // If the caller didn't supply an authenticator, construct one from external configuration. if (!options.authenticator) { - options.authenticator = getAuthenticatorFromEnvironment('watson_vision_combined'); + options.authenticator = getAuthenticatorFromEnvironment(options.serviceName); } super(options); + this.configureService(options.serviceName); + if (options.serviceUrl) { + this.setServiceUrl(options.serviceUrl); + } // check if 'version' was provided if (typeof this.baseOptions.version === 'undefined') { throw new Error('Argument error: version was not specified'); @@ -93,8 +99,8 @@ class VisualRecognitionV4 extends BaseService { * You can also include images with the **images_file** parameter. * @param {number} [params.threshold] - The minimum score a feature must have to be returned. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public analyze(params: VisualRecognitionV4.AnalyzeParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -102,7 +108,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionIds', 'features']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -111,6 +116,7 @@ class VisualRecognitionV4 extends BaseService { } return reject(missingParams); } + const formData = { 'collection_ids': Array.isArray(_params.collectionIds) ? _params.collectionIds.join(',') : _params.collectionIds, 'features': Array.isArray(_params.features) ? _params.features.join(',') : _params.features, @@ -119,7 +125,7 @@ class VisualRecognitionV4 extends BaseService { 'threshold': _params.threshold }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'analyze'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'analyze'); const parameters = { options: { @@ -172,21 +178,20 @@ class VisualRecognitionV4 extends BaseService { * and dot characters. It cannot begin with the reserved prefix `sys-`. * @param {string} [params.description] - The description of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public createCollection(params?: VisualRecognitionV4.CreateCollectionParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const body = { 'name': _params.name, 'description': _params.description }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'createCollection'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'createCollection'); const parameters = { options: { @@ -227,16 +232,15 @@ class VisualRecognitionV4 extends BaseService { * * @param {Object} [params] - The parameters to send to the service. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listCollections(params?: VisualRecognitionV4.ListCollectionsParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'listCollections'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'listCollections'); const parameters = { options: { @@ -276,8 +280,8 @@ class VisualRecognitionV4 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.collectionId - The identifier of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getCollection(params: VisualRecognitionV4.GetCollectionParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -285,7 +289,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -299,7 +302,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'getCollection'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'getCollection'); const parameters = { options: { @@ -346,8 +349,8 @@ class VisualRecognitionV4 extends BaseService { * and dot characters. It cannot begin with the reserved prefix `sys-`. * @param {string} [params.description] - The description of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public updateCollection(params: VisualRecognitionV4.UpdateCollectionParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -355,7 +358,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -374,7 +376,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'updateCollection'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'updateCollection'); const parameters = { options: { @@ -417,8 +419,8 @@ class VisualRecognitionV4 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.collectionId - The identifier of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteCollection(params: VisualRecognitionV4.DeleteCollectionParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -426,7 +428,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -440,7 +441,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'deleteCollection'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'deleteCollection'); const parameters = { options: { @@ -506,8 +507,8 @@ class VisualRecognitionV4 extends BaseService { * The `object` property can contain alphanumeric, underscore, hyphen, space, and dot characters. It cannot begin with * the reserved prefix `sys-` and must be no longer than 32 characters. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addImages(params: VisualRecognitionV4.AddImagesParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -515,7 +516,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -524,6 +524,7 @@ class VisualRecognitionV4 extends BaseService { } return reject(missingParams); } + const formData = { 'images_file': _params.imagesFile, 'image_url': _params.imageUrl, @@ -534,7 +535,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'addImages'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'addImages'); const parameters = { options: { @@ -577,8 +578,8 @@ class VisualRecognitionV4 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.collectionId - The identifier of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public listImages(params: VisualRecognitionV4.ListImagesParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -586,7 +587,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -600,7 +600,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'listImages'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'listImages'); const parameters = { options: { @@ -642,8 +642,8 @@ class VisualRecognitionV4 extends BaseService { * @param {string} params.collectionId - The identifier of the collection. * @param {string} params.imageId - The identifier of the image. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getImageDetails(params: VisualRecognitionV4.GetImageDetailsParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -651,7 +651,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId', 'imageId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -666,7 +665,7 @@ class VisualRecognitionV4 extends BaseService { 'image_id': _params.imageId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'getImageDetails'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'getImageDetails'); const parameters = { options: { @@ -708,8 +707,8 @@ class VisualRecognitionV4 extends BaseService { * @param {string} params.collectionId - The identifier of the collection. * @param {string} params.imageId - The identifier of the image. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteImage(params: VisualRecognitionV4.DeleteImageParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -717,7 +716,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId', 'imageId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -732,7 +730,7 @@ class VisualRecognitionV4 extends BaseService { 'image_id': _params.imageId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'deleteImage'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'deleteImage'); const parameters = { options: { @@ -777,8 +775,8 @@ class VisualRecognitionV4 extends BaseService { * aspect ratio but is no larger than 200 pixels in the larger dimension. For example, an original 800 x 1000 image is * resized to 160 x 200 pixels. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getJpegImage(params: VisualRecognitionV4.GetJpegImageParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -786,7 +784,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId', 'imageId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -805,7 +802,7 @@ class VisualRecognitionV4 extends BaseService { 'image_id': _params.imageId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'getJpegImage'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'getJpegImage'); const parameters = { options: { @@ -854,8 +851,8 @@ class VisualRecognitionV4 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.collectionId - The identifier of the collection. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public train(params: VisualRecognitionV4.TrainParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -863,7 +860,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -877,7 +873,7 @@ class VisualRecognitionV4 extends BaseService { 'collection_id': _params.collectionId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'train'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'train'); const parameters = { options: { @@ -927,8 +923,8 @@ class VisualRecognitionV4 extends BaseService { * @param {string} params.imageId - The identifier of the image. * @param {TrainingDataObject[]} [params.objects] - Training data for specific objects. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public addImageTrainingData(params: VisualRecognitionV4.AddImageTrainingDataParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -936,7 +932,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['collectionId', 'imageId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -955,7 +950,7 @@ class VisualRecognitionV4 extends BaseService { 'image_id': _params.imageId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'addImageTrainingData'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'addImageTrainingData'); const parameters = { options: { @@ -1003,21 +998,20 @@ class VisualRecognitionV4 extends BaseService { * format. All events for the day are included. If empty or not specified, the current day is used. Specify the same * value as `start_time` to request events for a single day. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public getTrainingUsage(params?: VisualRecognitionV4.GetTrainingUsageParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = (typeof params === 'function' && !callback) ? {} : extend({}, params); const _callback = (typeof params === 'function' && !callback) ? params : callback; return new Promise((resolve, reject) => { - const query = { 'start_time': _params.startTime, 'end_time': _params.endTime }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'getTrainingUsage'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'getTrainingUsage'); const parameters = { options: { @@ -1067,8 +1061,8 @@ class VisualRecognitionV4 extends BaseService { * @param {Object} params - The parameters to send to the service. * @param {string} params.customerId - The customer ID for which all data is to be deleted. * @param {OutgoingHttpHeaders} [params.headers] - Custom request headers - * @param {Function} [callback] - The callback that handles the response. - * @returns {Promise|void} + * @param {Function} [callback] - The callback that handles the response + * @returns {Promise>} */ public deleteUserData(params: VisualRecognitionV4.DeleteUserDataParams, callback?: VisualRecognitionV4.Callback): Promise> { const _params = extend({}, params); @@ -1076,7 +1070,6 @@ class VisualRecognitionV4 extends BaseService { const requiredParams = ['customerId']; return new Promise((resolve, reject) => { - const missingParams = getMissingParams(_params, requiredParams); if (missingParams) { if (_callback) { @@ -1090,7 +1083,7 @@ class VisualRecognitionV4 extends BaseService { 'customer_id': _params.customerId }; - const sdkHeaders = getSdkHeaders('watson_vision_combined', 'v4', 'deleteUserData'); + const sdkHeaders = getSdkHeaders(VisualRecognitionV4.DEFAULT_SERVICE_NAME, 'v4', 'deleteUserData'); const parameters = { options: { @@ -1125,9 +1118,6 @@ class VisualRecognitionV4 extends BaseService { } -VisualRecognitionV4.prototype.name = 'watson_vision_combined'; -VisualRecognitionV4.prototype.serviceVersion = 'v4'; - /************************* * interfaces ************************/