From add9c30e38301595e8ff49177d09e564f78267ec Mon Sep 17 00:00:00 2001 From: Elvina Valieva Date: Sat, 15 Jan 2022 13:19:37 +0100 Subject: [PATCH 01/22] :sparkles: Add Jenkins Node (#2345) * feat: initial jenkins setup * feat: trigger job functionality * feat: copy a job * feat: basic Jenkins instance operations * feat: create job from xml * feat: trigger with params * feat: basic build list * feat: list build with params * feat: basic credentials test * chore: linting fixes * feat: use baseUrl from credentials * chore: naming fixes * feat: filters collection for getall buils * fix: better ui and credentials * chore: alphabetize params and fix typos * :zap: Small changes * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Some improvements Co-authored-by: ricardo Co-authored-by: Jan Oberhauser --- .../credentials/JenkinsApi.credentials.ts | 30 + .../nodes/Jenkins/GenericFunctions.ts | 45 ++ .../nodes/Jenkins/Jenkins.node.json | 20 + .../nodes-base/nodes/Jenkins/Jenkins.node.ts | 682 ++++++++++++++++++ packages/nodes-base/nodes/Jenkins/jenkins.svg | 72 ++ packages/nodes-base/package.json | 2 + 6 files changed, 851 insertions(+) create mode 100644 packages/nodes-base/credentials/JenkinsApi.credentials.ts create mode 100644 packages/nodes-base/nodes/Jenkins/GenericFunctions.ts create mode 100644 packages/nodes-base/nodes/Jenkins/Jenkins.node.json create mode 100644 packages/nodes-base/nodes/Jenkins/Jenkins.node.ts create mode 100644 packages/nodes-base/nodes/Jenkins/jenkins.svg diff --git a/packages/nodes-base/credentials/JenkinsApi.credentials.ts b/packages/nodes-base/credentials/JenkinsApi.credentials.ts new file mode 100644 index 0000000000..cdaea3961a --- /dev/null +++ b/packages/nodes-base/credentials/JenkinsApi.credentials.ts @@ -0,0 +1,30 @@ +import { + ICredentialType, + INodeProperties, +} from 'n8n-workflow'; + +export class JenkinsApi implements ICredentialType { + name = 'jenkinsApi'; + displayName = 'Jenkins API'; + documentationUrl = 'jenkins'; + properties: INodeProperties[] = [ + { + displayName: 'Jenking Username', + name: 'username', + type: 'string', + default: '', + }, + { + displayName: 'Personal API Token', + name: 'apiKey', + type: 'string', + default: '', + }, + { + displayName: 'Jenkins Instance URL', + name: 'baseUrl', + type: 'string', + default: '', + }, + ]; +} diff --git a/packages/nodes-base/nodes/Jenkins/GenericFunctions.ts b/packages/nodes-base/nodes/Jenkins/GenericFunctions.ts new file mode 100644 index 0000000000..85ad9b8eb9 --- /dev/null +++ b/packages/nodes-base/nodes/Jenkins/GenericFunctions.ts @@ -0,0 +1,45 @@ +import { + OptionsWithUri, +} from 'request'; + +import { + IExecuteFunctions, + IExecuteSingleFunctions, + IHookFunctions, + ILoadOptionsFunctions, +} from 'n8n-core'; + +import { + IDataObject, + NodeApiError, +} from 'n8n-workflow'; + +export async function jenkinsApiRequest(this: IHookFunctions | IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions, method: string, uri: string, qs: IDataObject = {}, body: any = '', option: IDataObject = {}): Promise { // tslint:disable-line:no-any + const credentials = await this.getCredentials('jenkinsApi') as IDataObject; + let options: OptionsWithUri = { + headers: { + 'Accept': 'application/json', + }, + method, + auth: { + username: credentials.username as string, + password: credentials.apiKey as string, + }, + uri: `${tolerateTrailingSlash(credentials.baseUrl as string)}${uri}`, + json: true, + qs, + body, + }; + options = Object.assign({}, options, option); + try { + return await this.helpers.request!(options); + } catch (error) { + throw new NodeApiError(this.getNode(), error); + } +} + +export function tolerateTrailingSlash(baseUrl: string) { + return baseUrl.endsWith('/') + ? baseUrl.substr(0, baseUrl.length - 1) + : baseUrl; +} diff --git a/packages/nodes-base/nodes/Jenkins/Jenkins.node.json b/packages/nodes-base/nodes/Jenkins/Jenkins.node.json new file mode 100644 index 0000000000..8848a7cf2b --- /dev/null +++ b/packages/nodes-base/nodes/Jenkins/Jenkins.node.json @@ -0,0 +1,20 @@ +{ + "node": "n8n-nodes-base.jenkins", + "nodeVersion": "1.0", + "codexVersion": "1.0", + "categories": [ + "Development" + ], + "resources": { + "credentialDocumentation": [ + { + "url": "https://docs.n8n.io/credentials/jenkins" + } + ], + "primaryDocumentation": [ + { + "url": "https://docs.n8n.io/nodes/n8n-nodes-base.jenkins/" + } + ] + } +} diff --git a/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts b/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts new file mode 100644 index 0000000000..b131070229 --- /dev/null +++ b/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts @@ -0,0 +1,682 @@ +import { + IExecuteFunctions, +} from 'n8n-core'; + +import { + ICredentialsDecrypted, + ICredentialTestFunctions, + IDataObject, + ILoadOptionsFunctions, + INodeExecutionData, + INodePropertyOptions, + INodeType, + INodeTypeDescription, + NodeApiError, + NodeCredentialTestResult, +} from 'n8n-workflow'; + +import { + jenkinsApiRequest, + tolerateTrailingSlash +} from './GenericFunctions'; + +export type JenkinsApiCredentials = { + username: string; + apiKey: string; + baseUrl: string; +}; + +export class Jenkins implements INodeType { + description: INodeTypeDescription = { + displayName: 'Jenkins', + name: 'jenkins', + icon: 'file:jenkins.svg', + group: ['output'], + version: 1, + subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}', + description: 'Consume Jenkins API', + defaults: { + name: 'Jenkins', + color: '#04AA51', + }, + inputs: ['main'], + outputs: ['main'], + credentials: [ + { + name: 'jenkinsApi', + required: true, + testedBy: 'jenkinApiCredentialTest', + }, + ], + properties: [ + { + displayName: 'Resource', + name: 'resource', + type: 'options', + options: [ + { + name: 'Build', + value: 'build', + }, + { + name: 'Instance', + value: 'instance', + }, + { + name: 'Job', + value: 'job', + }, + ], + default: 'job', + noDataExpression: true, + }, + + // -------------------------------------------------------------------------------------------------------- + // Job Operations + // -------------------------------------------------------------------------------------------------------- + { + displayName: 'Operation', + name: 'operation', + type: 'options', + displayOptions: { + show: { + resource: [ + 'job', + ], + }, + }, + options: [ + { + name: 'Copy', + value: 'copy', + description: 'Copy a specific job', + }, + { + name: 'Create', + value: 'create', + description: 'Create a new job', + }, + { + name: 'Trigger', + value: 'trigger', + description: 'Trigger a specific job', + }, + { + name: 'Trigger with Parameters', + value: 'triggerParams', + description: 'Trigger a specific job', + }, + ], + default: 'trigger', + description: 'Possible operations', + noDataExpression: true, + }, + { + displayName: 'Make sure the job is setup to support triggering with parameters. More info', + name: 'triggerParamsNotice', + type: 'notice', + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'triggerParams', + ], + }, + }, + default: '', + }, + { + displayName: 'Job Name', + name: 'job', + type: 'options', + typeOptions: { + loadOptionsMethod: 'getJobs', + }, + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'trigger', + 'triggerParams', + 'copy', + ], + }, + }, + required: true, + default: '', + description: 'Name of the job', + }, + + // -------------------------------------------------------------------------------------------------------- + // Trigger a Job + // -------------------------------------------------------------------------------------------------------- + { + displayName: 'Parameters', + name: 'param', + type: 'fixedCollection', + placeholder: 'Add Parameter', + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'triggerParams', + ], + }, + }, + required: true, + default: '', + typeOptions: { + multipleValues: true, + }, + options: [ + { + name: 'params', + displayName: 'Parameters', + values: [ + { + displayName: 'Name', + name: 'name', + type: 'options', + typeOptions: { + loadOptionsMethod: 'getJobParameters', + loadOptionsDependsOn: [ + 'job', + ], + }, + default: '', + }, + { + displayName: 'Value', + name: 'value', + type: 'string', + default: '', + }, + ], + }, + ], + description: 'Parameters for Jenkins job', + }, + + // -------------------------------------------------------------------------------------------------------- + // Copy or Create a Job + // -------------------------------------------------------------------------------------------------------- + { + displayName: 'New Job Name', + name: 'newJob', + type: 'string', + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'copy', + 'create', + ], + }, + }, + required: true, + default: '', + description: 'Name of the new Jenkins job', + }, + { + displayName: 'XML', + name: 'xml', + type: 'string', + typeOptions: { + alwaysOpenEditWindow: true, + }, + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'create', + ], + }, + }, + required: true, + default: '', + description: 'XML of Jenkins config', + }, + { + displayName: 'To get the XML of an existing job, add ‘config.xml’ to the end of the job URL', + name: 'createNotice', + type: 'notice', + default: '', + displayOptions: { + show: { + resource: [ + 'job', + ], + operation: [ + 'create', + ], + }, + }, + }, + + // -------------------------------------------------------------------------------------------------------- + // Jenkins operations + // -------------------------------------------------------------------------------------------------------- + { + displayName: 'Operation', + name: 'operation', + type: 'options', + displayOptions: { + show: { + resource: [ + 'instance', + ], + }, + }, + options: [ + { + name: 'Cancel Quiet Down', + value: 'cancelQuietDown', + description: 'Cancel quiet down state', + }, + { + name: 'Quiet Down', + value: 'quietDown', + description: 'Put Jenkins in quiet mode, no builds can be started, Jenkins is ready for shutdown', + }, + { + name: 'Restart', + value: 'restart', + description: 'Restart Jenkins immediately on environments where it is possible', + }, + { + name: 'Safely Restart', + value: 'safeRestart', + description: 'Restart Jenkins once no jobs are running on environments where it is possible', + }, + { + name: 'Safely Shutdown', + value: 'safeExit', + description: 'Shutdown once no jobs are running', + }, + { + name: 'Shutdown', + value: 'exit', + description: 'Shutdown Jenkins immediately', + }, + ], + default: 'safeRestart', + description: 'Jenkins instance operations', + noDataExpression: true, + }, + { + displayName: 'Reason', + name: 'reason', + type: 'string', + displayOptions: { + show: { + resource: [ + 'instance', + ], + operation: [ + 'quietDown', + ], + }, + }, + required: false, + default: '', + description: 'Freeform reason for quiet down mode', + }, + { + displayName: 'Instance operation can shutdown Jenkins instance and make it unresponsive. Some commands may not be available depending on instance implementation.', + name: 'instanceNotice', + type: 'notice', + default: '', + displayOptions: { + show: { + resource: [ + 'instance', + ], + }, + }, + }, + + // -------------------------------------------------------------------------------------------------------- + // Builds operations + // -------------------------------------------------------------------------------------------------------- + { + displayName: 'Operation', + name: 'operation', + type: 'options', + displayOptions: { + show: { + resource: [ + 'build', + ], + }, + }, + options: [ + { + name: 'Get All', + value: 'getAll', + description: 'List Builds', + }, + ], + default: 'getAll', + noDataExpression: true, + }, + { + displayName: 'Job Name', + name: 'job', + type: 'options', + typeOptions: { + loadOptionsMethod: 'getJobs', + }, + displayOptions: { + show: { + resource: [ + 'build', + ], + operation: [ + 'getAll', + ], + }, + }, + required: true, + default: '', + description: 'Name of the job', + }, + { + displayName: 'Return All', + name: 'returnAll', + type: 'boolean', + default: false, + displayOptions: { + show: { + resource: [ + 'build', + ], + operation: [ + 'getAll', + ], + }, + }, + description: 'Whether to return all results or only up to a given limit', + }, + { + displayName: 'Limit', + name: 'limit', + type: 'number', + default: 50, + typeOptions: { + minValue: 1, + }, + displayOptions: { + show: { + resource: [ + 'build', + ], + operation: [ + 'getAll', + ], + returnAll: [ + false, + ], + }, + }, + description: 'Max number of results to return', + }, + ], + }; + + methods = { + credentialTest: { + async jenkinApiCredentialTest( + this: ICredentialTestFunctions, + credential: ICredentialsDecrypted, + ): Promise { + const { baseUrl, username, apiKey } = credential.data as JenkinsApiCredentials; + + const url = tolerateTrailingSlash(baseUrl); + const endpoint = '/api/json'; + + const options = { + auth: { + username: username, + password: apiKey, + }, + method: 'GET', + body: {}, + qs: {}, + uri: `${url}${endpoint}`, + json: true, + }; + + try { + await this.helpers.request(options); + return { + status: 'OK', + message: 'Authentication successful', + }; + } catch (error) { + return { + status: 'Error', + message: error.message, + }; + } + }, + }, + loadOptions: { + async getJobs(this: ILoadOptionsFunctions): Promise { + const returnData: INodePropertyOptions[] = []; + const endpoint = `/api/json`; + const { jobs } = await jenkinsApiRequest.call(this, 'GET', endpoint); + for (const job of jobs) { + returnData.push({ + name: job.name, + value: job.name, + }); + } + returnData.sort((a, b) => { + if (a.name < b.name) { return -1; } + if (a.name > b.name) { return 1; } + return 0; + }); + + return returnData; + }, + async getJobParameters(this: ILoadOptionsFunctions): Promise { + const job = this.getCurrentNodeParameter('job') as string; + const returnData: INodePropertyOptions[] = []; + const endpoint = `/job/${job}/api/json?tree=actions[parameterDefinitions[*]]`; + const { actions } = await jenkinsApiRequest.call(this, 'GET', endpoint); + for (const { _class, parameterDefinitions } of actions) { + if (_class?.includes('ParametersDefinitionProperty')) { + for (const { name, type } of parameterDefinitions) { + returnData.push({ + name: `${name} - (${type})`, + value: name, + }); + } + } + } + returnData.sort((a, b) => { + if (a.name < b.name) { return -1; } + if (a.name > b.name) { return 1; } + return 0; + }); + + return returnData; + }, + }, + }; + + async execute(this: IExecuteFunctions): Promise { + const items = this.getInputData(); + const returnData: IDataObject[] = []; + const length = items.length as unknown as number; + let responseData; + const resource = this.getNodeParameter('resource', 0) as string; + const operation = this.getNodeParameter('operation', 0) as string; + + for (let i = 0; i < length; i++) { + try { + if (resource === 'job') { + if (operation === 'trigger') { + const job = this.getNodeParameter('job', i) as string; + const endpoint = `/job/${job}/build`; + await jenkinsApiRequest.call(this, 'POST', endpoint); + responseData = { success: true }; + } + if (operation === 'triggerParams') { + const job = this.getNodeParameter('job', i) as string; + const params = this.getNodeParameter('param.params', i, []) as []; + let body = {}; + if (params.length) { + body = params.reduce((body: IDataObject, param: { name: string; value: string }) => { + body[param.name] = param.value; + return body; + }, {}); + } + const endpoint = `/job/${job}/buildWithParameters`; + await jenkinsApiRequest.call(this, 'POST', endpoint, {}, {}, + { + form: body, + headers: { + 'content-type': 'application/x-www-form-urlencoded', + }, + }, + ); + responseData = { success: true }; + } + if (operation === 'copy') { + const job = this.getNodeParameter('job', i) as string; + const name = this.getNodeParameter('newJob', i) as string; + const queryParams = { + name, + mode: 'copy', + from: job, + }; + + const endpoint = `/createItem`; + try { + await jenkinsApiRequest.call(this, 'POST', endpoint, queryParams); + responseData = { success: true }; + } + catch (error) { + if (error.httpCode === '302') { + responseData = { success: true }; + } else { + throw new NodeApiError(this.getNode(), error); + } + } + } + if (operation === 'create') { + const name = this.getNodeParameter('newJob', i) as string; + const queryParams = { + name, + }; + const headers = { + 'content-type': 'application/xml', + }; + + const body = this.getNodeParameter('xml', i) as string; + + const endpoint = `/createItem`; + await jenkinsApiRequest.call(this, 'POST', endpoint, queryParams, body, { headers, json: false }); + responseData = { success: true }; + } + } + + if (resource === 'instance') { + if (operation === 'quietDown') { + const reason = this.getNodeParameter('reason', i) as string; + + let queryParams; + if (reason) { + queryParams = { + reason, + }; + } + + const endpoint = `/quietDown`; + await jenkinsApiRequest.call(this, 'POST', endpoint, queryParams); + responseData = { success: true }; + } + if (operation === 'cancelQuietDown') { + const endpoint = `/cancelQuietDown`; + await jenkinsApiRequest.call(this, 'POST', endpoint); + responseData = { success: true }; + } + if (operation === 'restart') { + const endpoint = `/restart`; + try { + await jenkinsApiRequest.call(this, 'POST', endpoint); + } catch (error) { + if (error.httpCode === '503') { + responseData = { success: true }; + } else { + throw new NodeApiError(this.getNode(), error); + } + } + } + if (operation === 'safeRestart') { + const endpoint = `/safeRestart`; + try { + await jenkinsApiRequest.call(this, 'POST', endpoint); + } catch (error) { + if (error.httpCode === '503') { + responseData = { success: true }; + } else { + throw new NodeApiError(this.getNode(), error); + } + } + } + if (operation === 'exit') { + const endpoint = `/exit`; + await jenkinsApiRequest.call(this, 'POST', endpoint); + responseData = { success: true }; + } + if (operation === 'safeExit') { + const endpoint = `/safeExit`; + await jenkinsApiRequest.call(this, 'POST', endpoint); + responseData = { success: true }; + } + } + + if (resource === 'build') { + if (operation === 'getAll') { + const job = this.getNodeParameter('job', i) as string; + let endpoint = `/job/${job}/api/json?tree=builds[*]`; + const returnAll = this.getNodeParameter('returnAll', i) as boolean; + + if (!returnAll) { + const limit = this.getNodeParameter('limit', i) as number; + endpoint += `{0,${limit}}`; + } + + responseData = await jenkinsApiRequest.call(this, 'GET', endpoint); + responseData = responseData.builds; + } + } + + if (Array.isArray(responseData)) { + returnData.push.apply(returnData, responseData as IDataObject[]); + } else { + returnData.push(responseData as IDataObject); + } + } catch (error) { + if (this.continueOnFail()) { + returnData.push({ error: error.message }); + continue; + } + throw error; + } + } + return [this.helpers.returnJsonArray(returnData)]; + } +} diff --git a/packages/nodes-base/nodes/Jenkins/jenkins.svg b/packages/nodes-base/nodes/Jenkins/jenkins.svg new file mode 100644 index 0000000000..ed609c41d5 --- /dev/null +++ b/packages/nodes-base/nodes/Jenkins/jenkins.svg @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 7cad706b2a..1ee9ff7b7d 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -149,6 +149,7 @@ "dist/credentials/IntercomApi.credentials.js", "dist/credentials/InvoiceNinjaApi.credentials.js", "dist/credentials/IterableApi.credentials.js", + "dist/credentials/JenkinsApi.credentials.js", "dist/credentials/JiraSoftwareCloudApi.credentials.js", "dist/credentials/JiraSoftwareServerApi.credentials.js", "dist/credentials/JotFormApi.credentials.js", @@ -472,6 +473,7 @@ "dist/nodes/InvoiceNinja/InvoiceNinjaTrigger.node.js", "dist/nodes/ItemLists/ItemLists.node.js", "dist/nodes/Iterable/Iterable.node.js", + "dist/nodes/Jenkins/Jenkins.node.js", "dist/nodes/Jira/Jira.node.js", "dist/nodes/Jira/JiraTrigger.node.js", "dist/nodes/JotForm/JotFormTrigger.node.js", From 7ff7c53fc193fc9edba594d8b00a8b4c7a4000a1 Mon Sep 17 00:00:00 2001 From: Harshil Agrawal Date: Sat, 15 Jan 2022 19:54:44 +0100 Subject: [PATCH 02/22] :zap: Add and update codex files (#2679) --- .../MicrosoftGraphSecurity.node.json | 20 +++++++++++++++++++ .../nodes/Supabase/Supabase.node.json | 20 +++++++++++++++++++ .../nodes-base/nodes/Switch/Switch.node.json | 5 +++-- .../nodes/SyncroMSP/SyncroMsp.node.json | 20 +++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 packages/nodes-base/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.json create mode 100644 packages/nodes-base/nodes/Supabase/Supabase.node.json create mode 100644 packages/nodes-base/nodes/SyncroMSP/SyncroMsp.node.json diff --git a/packages/nodes-base/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.json b/packages/nodes-base/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.json new file mode 100644 index 0000000000..17cf8f3d7d --- /dev/null +++ b/packages/nodes-base/nodes/Microsoft/GraphSecurity/MicrosoftGraphSecurity.node.json @@ -0,0 +1,20 @@ +{ + "node": "n8n-nodes-base.microsoftGraphSecurity", + "nodeVersion": "1.0", + "codexVersion": "1.0", + "categories": [ + "Development" + ], + "resources": { + "credentialDocumentation": [ + { + "url": "https://docs.n8n.io/credentials/microsoft" + } + ], + "primaryDocumentation": [ + { + "url": "https://docs.n8n.io/nodes/n8n-nodes-base.microsoftGraphSecurity/" + } + ] + } +} diff --git a/packages/nodes-base/nodes/Supabase/Supabase.node.json b/packages/nodes-base/nodes/Supabase/Supabase.node.json new file mode 100644 index 0000000000..54ccaa6aaf --- /dev/null +++ b/packages/nodes-base/nodes/Supabase/Supabase.node.json @@ -0,0 +1,20 @@ +{ + "node": "n8n-nodes-base.supabase", + "nodeVersion": "1.0", + "codexVersion": "1.0", + "categories": [ + "Data & Storage" + ], + "resources": { + "credentialDocumentation": [ + { + "url": "https://docs.n8n.io/credentials/supabase" + } + ], + "primaryDocumentation": [ + { + "url": "https://docs.n8n.io/nodes/n8n-nodes-base.supabase/" + } + ] + } +} diff --git a/packages/nodes-base/nodes/Switch/Switch.node.json b/packages/nodes-base/nodes/Switch/Switch.node.json index a777628151..3649b3d232 100644 --- a/packages/nodes-base/nodes/Switch/Switch.node.json +++ b/packages/nodes-base/nodes/Switch/Switch.node.json @@ -31,11 +31,12 @@ "Filter", "Condition", "Logic", - "Branch" + "Branch", + "Case" ], "subcategories": { "Core Nodes": [ "Flow" ] } -} \ No newline at end of file +} diff --git a/packages/nodes-base/nodes/SyncroMSP/SyncroMsp.node.json b/packages/nodes-base/nodes/SyncroMSP/SyncroMsp.node.json new file mode 100644 index 0000000000..2747004097 --- /dev/null +++ b/packages/nodes-base/nodes/SyncroMSP/SyncroMsp.node.json @@ -0,0 +1,20 @@ +{ + "node": "n8n-nodes-base.syncroMsp", + "nodeVersion": "1.0", + "codexVersion": "1.0", + "categories": [ + "Productivity" + ], + "resources": { + "credentialDocumentation": [ + { + "url": "https://docs.n8n.io/credentials/syncroMsp" + } + ], + "primaryDocumentation": [ + { + "url": "https://docs.n8n.io/nodes/n8n-nodes-base.syncroMsp/" + } + ] + } +} From 3d4c1cb23fcf66fb59c054a71f61582ddea1c41a Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sat, 15 Jan 2022 20:05:15 +0100 Subject: [PATCH 03/22] :sparkles: Add OAuth, basicAuth, digestAuth and queryAuth support to GraphQL node (#2673) * :sparkles: Add OAuth support to GraphQL node * :sparkles: Add basicAuth, digestAuth and queryAuth to GraphQL node --- .../nodes-base/nodes/GraphQL/GraphQL.node.ts | 116 +++++++++++++++++- 1 file changed, 112 insertions(+), 4 deletions(-) diff --git a/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts b/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts index e2f63ab38f..92df9d1814 100644 --- a/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts +++ b/packages/nodes-base/nodes/GraphQL/GraphQL.node.ts @@ -25,6 +25,28 @@ export class GraphQL implements INodeType { inputs: ['main'], outputs: ['main'], credentials: [ + { + name: 'httpBasicAuth', + required: true, + displayOptions: { + show: { + authentication: [ + 'basicAuth', + ], + }, + }, + }, + { + name: 'httpDigestAuth', + required: true, + displayOptions: { + show: { + authentication: [ + 'digestAuth', + ], + }, + }, + }, { name: 'httpHeaderAuth', required: true, @@ -36,6 +58,39 @@ export class GraphQL implements INodeType { }, }, }, + { + name: 'httpQueryAuth', + required: true, + displayOptions: { + show: { + authentication: [ + 'queryAuth', + ], + }, + }, + }, + { + name: 'oAuth1Api', + required: true, + displayOptions: { + show: { + authentication: [ + 'oAuth1', + ], + }, + }, + }, + { + name: 'oAuth2Api', + required: true, + displayOptions: { + show: { + authentication: [ + 'oAuth2', + ], + }, + }, + }, ], properties: [ { @@ -43,10 +98,30 @@ export class GraphQL implements INodeType { name: 'authentication', type: 'options', options: [ + { + name: 'Basic Auth', + value: 'basicAuth', + }, + { + name: 'Digest Auth', + value: 'digestAuth', + }, { name: 'Header Auth', value: 'headerAuth', }, + { + name: 'Query Auth', + value: 'queryAuth', + }, + { + name: 'OAuth1', + value: 'oAuth1', + }, + { + name: 'OAuth2', + value: 'oAuth2', + }, { name: 'None', value: 'none', @@ -229,7 +304,12 @@ export class GraphQL implements INodeType { async execute(this: IExecuteFunctions): Promise { const items = this.getInputData(); + const httpBasicAuth = await this.getCredentials('httpBasicAuth'); + const httpDigestAuth = await this.getCredentials('httpDigestAuth'); const httpHeaderAuth = await this.getCredentials('httpHeaderAuth'); + const httpQueryAuth = await this.getCredentials('httpQueryAuth'); + const oAuth1Api = await this.getCredentials('oAuth1Api'); + const oAuth2Api = await this.getCredentials('oAuth2Api'); let requestOptions: OptionsWithUri & RequestPromiseOptions; @@ -260,15 +340,35 @@ export class GraphQL implements INodeType { }; // Add credentials if any are set + if (httpBasicAuth !== undefined) { + requestOptions.auth = { + user: httpBasicAuth.user as string, + pass: httpBasicAuth.password as string, + }; + } if (httpHeaderAuth !== undefined) { requestOptions.headers![httpHeaderAuth.name as string] = httpHeaderAuth.value; } + if (httpQueryAuth !== undefined) { + if (!requestOptions.qs) { + requestOptions.qs = {}; + } + requestOptions.qs![httpQueryAuth.name as string] = httpQueryAuth.value; + } + if (httpDigestAuth !== undefined) { + requestOptions.auth = { + user: httpDigestAuth.user as string, + pass: httpDigestAuth.password as string, + sendImmediately: false, + }; + } const gqlQuery = this.getNodeParameter('query', itemIndex, '') as string; if (requestMethod === 'GET') { - requestOptions.qs = { - query: gqlQuery, - }; + if (!requestOptions.qs) { + requestOptions.qs = {}; + } + requestOptions.qs.query = gqlQuery; } else { if (requestFormat === 'json') { requestOptions.body = { @@ -292,7 +392,15 @@ export class GraphQL implements INodeType { } } - const response = await this.helpers.request(requestOptions); + let response; + // Now that the options are all set make the actual http request + if (oAuth1Api !== undefined) { + response = await this.helpers.requestOAuth1.call(this, 'oAuth1Api', requestOptions); + } else if (oAuth2Api !== undefined) { + response = await this.helpers.requestOAuth2.call(this, 'oAuth2Api', requestOptions, { tokenType: 'Bearer' }); + } else { + response = await this.helpers.request(requestOptions); + } if (responseFormat === 'string') { const dataPropertyName = this.getNodeParameter('dataPropertyName', 0) as string; From 27c5b218abb24fe30bd143ffcf5c2e2b6144d9e0 Mon Sep 17 00:00:00 2001 From: Jonathan Bennetts Date: Sat, 15 Jan 2022 19:12:32 +0000 Subject: [PATCH 04/22] :bug: Fix download for some files via Box node (#2669) --- packages/nodes-base/nodes/Box/Box.node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nodes-base/nodes/Box/Box.node.ts b/packages/nodes-base/nodes/Box/Box.node.ts index 59152804f1..b8ffd7b78a 100644 --- a/packages/nodes-base/nodes/Box/Box.node.ts +++ b/packages/nodes-base/nodes/Box/Box.node.ts @@ -130,7 +130,7 @@ export class Box implements INodeType { let mimeType: string | undefined; - responseData = await boxApiRequest.call(this, 'GET', `/files/${fileId}/content`, {}, {}, undefined, { resolveWithFullResponse: true }); + responseData = await boxApiRequest.call(this, 'GET', `/files/${fileId}/content`, {}, {}, undefined, { encoding: null, resolveWithFullResponse: true }); const newItem: INodeExecutionData = { json: items[i].json, From 806989c298c96a503d60ca43352b4aa453dfd4c7 Mon Sep 17 00:00:00 2001 From: Phil Clifford Date: Sat, 15 Jan 2022 19:29:27 +0000 Subject: [PATCH 05/22] :books: Fix typo in CONTRIBUTING.md (#2662) --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 493ae86266..08f7bdc47c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -87,7 +87,7 @@ npm install -g lerna ### Actual n8n setup -> **IMPORTANT**: All the steps bellow have to get executed at least once to get the development setup up and running! +> **IMPORTANT**: All the steps below have to get executed at least once to get the development setup up and running! Now that everything n8n requires to run is installed the actual n8n code can be checked out and set up: From ac1659959b86dd8864f8a838560ae3b33c43bd55 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sat, 15 Jan 2022 20:33:30 +0100 Subject: [PATCH 06/22] :shirt: Fix lint issue --- packages/nodes-base/nodes/Jenkins/Jenkins.node.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts b/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts index b131070229..b78a528acc 100644 --- a/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts +++ b/packages/nodes-base/nodes/Jenkins/Jenkins.node.ts @@ -446,7 +446,7 @@ export class Jenkins implements INodeType { const options = { auth: { - username: username, + username, password: apiKey, }, method: 'GET', From ba6822c4ac531c05f0998ddf32b48988de30d280 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Sat, 15 Jan 2022 20:34:13 +0100 Subject: [PATCH 07/22] :shirt: Remove redundant linting options (#2626) --- packages/core/tsconfig.json | 2 -- packages/editor-ui/tsconfig.json | 2 -- packages/node-dev/tsconfig.json | 2 -- packages/nodes-base/tsconfig.json | 2 -- packages/workflow/tsconfig.json | 2 -- 5 files changed, 10 deletions(-) diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 106cde5c0b..15c303bcbe 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -8,9 +8,7 @@ "jest" ], "module": "commonjs", - "noImplicitAny": true, "removeComments": true, - "strictNullChecks": true, "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, "strict": true, diff --git a/packages/editor-ui/tsconfig.json b/packages/editor-ui/tsconfig.json index 7d45462c8f..dc9f79a4e3 100644 --- a/packages/editor-ui/tsconfig.json +++ b/packages/editor-ui/tsconfig.json @@ -2,9 +2,7 @@ "compilerOptions": { "target": "esnext", "module": "esnext", - "noImplicitAny": true, "removeComments": true, - "strictNullChecks": true, "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, "strict": true, diff --git a/packages/node-dev/tsconfig.json b/packages/node-dev/tsconfig.json index 7d4292fde8..ae576c96f1 100644 --- a/packages/node-dev/tsconfig.json +++ b/packages/node-dev/tsconfig.json @@ -8,9 +8,7 @@ ], "module": "commonjs", "esModuleInterop": true, - "noImplicitAny": true, "removeComments": true, - "strictNullChecks": true, "strict": true, "preserveConstEnums": true, "declaration": true, diff --git a/packages/nodes-base/tsconfig.json b/packages/nodes-base/tsconfig.json index 2dbcc429d8..09d91632df 100644 --- a/packages/nodes-base/tsconfig.json +++ b/packages/nodes-base/tsconfig.json @@ -10,9 +10,7 @@ "jest" ], "module": "commonjs", - "noImplicitAny": true, "removeComments": true, - "strictNullChecks": true, "strict": true, "preserveConstEnums": true, "resolveJsonModule": true, diff --git a/packages/workflow/tsconfig.json b/packages/workflow/tsconfig.json index fb10176448..873c637da9 100644 --- a/packages/workflow/tsconfig.json +++ b/packages/workflow/tsconfig.json @@ -9,9 +9,7 @@ "jest" ], "module": "commonjs", - "noImplicitAny": true, "removeComments": true, - "strictNullChecks": true, "forceConsistentCasingInFileNames": true, "noImplicitReturns": true, "strict": true, From 7efb73053d9dff80a898a6389cf4c1e9273187d1 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 14:04:42 +0100 Subject: [PATCH 08/22] :zap: Allow to use execute command with workflows that do not have an ID --- packages/cli/commands/execute.ts | 11 ++++++++--- packages/core/src/Constants.ts | 1 + 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/cli/commands/execute.ts b/packages/cli/commands/execute.ts index 3861030f80..51a24bea2c 100644 --- a/packages/cli/commands/execute.ts +++ b/packages/cli/commands/execute.ts @@ -2,7 +2,12 @@ /* eslint-disable no-console */ import { promises as fs } from 'fs'; import { Command, flags } from '@oclif/command'; -import { BinaryDataManager, IBinaryDataConfig, UserSettings } from 'n8n-core'; +import { + BinaryDataManager, + IBinaryDataConfig, + UserSettings, + PLACEHOLDER_EMPTY_WORKFLOW_ID, +} from 'n8n-core'; import { INode, LoggerProxy } from 'n8n-workflow'; import { @@ -96,8 +101,8 @@ export class Execute extends Command { console.info(`The file "${flags.file}" does not contain valid workflow data.`); return; } - // eslint-disable-next-line @typescript-eslint/no-non-null-assertion - workflowId = workflowData.id!.toString(); + + workflowId = workflowData.id ? workflowData.id.toString() : PLACEHOLDER_EMPTY_WORKFLOW_ID; } // Wait till the database is ready diff --git a/packages/core/src/Constants.ts b/packages/core/src/Constants.ts index 4e72f53f9c..43103df5ac 100644 --- a/packages/core/src/Constants.ts +++ b/packages/core/src/Constants.ts @@ -6,5 +6,6 @@ export const USER_FOLDER_ENV_OVERWRITE = 'N8N_USER_FOLDER'; export const USER_SETTINGS_FILE_NAME = 'config'; export const USER_SETTINGS_SUBFOLDER = '.n8n'; export const PLACEHOLDER_EMPTY_EXECUTION_ID = '__UNKOWN__'; +export const PLACEHOLDER_EMPTY_WORKFLOW_ID = '__EMPTY__'; export const TUNNEL_SUBDOMAIN_ENV = 'N8N_TUNNEL_SUBDOMAIN'; export const WAIT_TIME_UNLIMITED = '3000-01-01T00:00:00.000Z'; From 6066b6670ebf37be6586e596151f4c339f3092cb Mon Sep 17 00:00:00 2001 From: Ricardo Espinoza Date: Sun, 16 Jan 2022 08:27:20 -0500 Subject: [PATCH 09/22] :bug: Fix bug filtering date and datetime fields on Salesforce node (#2565) --- packages/nodes-base/nodes/Salesforce/GenericFunctions.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/nodes-base/nodes/Salesforce/GenericFunctions.ts b/packages/nodes-base/nodes/Salesforce/GenericFunctions.ts index 11f26e66e0..94e0ee37c1 100644 --- a/packages/nodes-base/nodes/Salesforce/GenericFunctions.ts +++ b/packages/nodes-base/nodes/Salesforce/GenericFunctions.ts @@ -146,7 +146,7 @@ export function getConditions(options: IDataObject) { const conditions = (options.conditionsUi as IDataObject || {}).conditionValues as IDataObject[]; let data = undefined; if (Array.isArray(conditions) && conditions.length !== 0) { - data = conditions.map((condition: IDataObject) => `${condition.field}${(condition.operation) === 'equal' ? '=' : condition.operation}${getValue(condition.value)}`); + data = conditions.map((condition: IDataObject) => `${condition.field} ${(condition.operation) === 'equal' ? '=' : condition.operation} ${getValue(condition.value)}`); data = `WHERE ${data.join(' AND ')}`; } return data; @@ -191,7 +191,9 @@ export function getQuery(options: IDataObject, sobject: string, returnAll: boole } export function getValue(value: any) { // tslint:disable-line:no-any - if (typeof value === 'string') { + if (moment(value).isValid()) { + return value; + } else if (typeof value === 'string') { return `'${value}'`; } else { return value; From 279052317dd9212431ba8923c3a07771d8c4af76 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 14:37:06 +0100 Subject: [PATCH 10/22] :arrow_up: Update package-lock.json file --- package-lock.json | 1082 ++++++++++++++++----------------------------- 1 file changed, 369 insertions(+), 713 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9023673df5..43a1c3e771 100644 --- a/package-lock.json +++ b/package-lock.json @@ -315,9 +315,9 @@ } }, "@babel/helper-define-polyfill-provider": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz", - "integrity": "sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "requires": { "@babel/helper-compilation-targets": "^7.13.0", "@babel/helper-module-imports": "^7.12.13", @@ -1139,11 +1139,11 @@ }, "dependencies": { "babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", + "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", + "@babel/helper-define-polyfill-provider": "^0.3.1", "core-js-compat": "^3.20.0" } } @@ -1299,11 +1299,11 @@ }, "dependencies": { "babel-plugin-polyfill-corejs3": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.0.tgz", - "integrity": "sha512-Hcrgnmkf+4JTj73GbK3bBhlVPiLL47owUAnoJIf69Hakl3q+KfodbDXiZWGMM7iqCZTxCG3Z2VRfPNYES4rXqQ==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz", + "integrity": "sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0", + "@babel/helper-define-polyfill-provider": "^0.3.1", "core-js-compat": "^3.20.0" } } @@ -10337,16 +10337,16 @@ "integrity": "sha512-/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q==" }, "@storybook/addon-actions": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.12.tgz", - "integrity": "sha512-R3Ia2dvaPiwJmXcPra8e/gmpU84YovROBdpDttUzZEXMNEbfwHj00aRjZvH9nTKqHUSzrx8ZzGEDDqCMTqVcTg==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-actions/-/addon-actions-6.4.13.tgz", + "integrity": "sha512-Bf/M3Kdq60xj48oXnRCm7+qstWL9wT8rjFPFm7+A0NSfVSlox6pFU5SfPuOI4Za/6Ll2XDaYwsaF3QYHX0jQAA==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.12", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -10362,17 +10362,17 @@ } }, "@storybook/addon-backgrounds": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.12.tgz", - "integrity": "sha512-w26A41spqJJoPdWz3eZgoGzg7NYkVh0/per6eQmurqRzc2v4qEUptWSZglGrMjo44gS/38tUEhJ1kYeTSHPdyA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-backgrounds/-/addon-backgrounds-6.4.13.tgz", + "integrity": "sha512-U+TowEgEHCWifdnaJE5P7kgRHjYrztwpjp/8tX4iXHlCVFBFid+v4EKqXQGbvTzX66g2Yfv/h68NGEpcFW/svQ==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.12", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -10382,28 +10382,28 @@ } }, "@storybook/addon-controls": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.12.tgz", - "integrity": "sha512-rLCPdk4MykUlbvA68kmLLOBL59Fy+wF3qt3cvTnSvyasRmtXl9VBpBQ0/rQeoFkGlFQj4Ss4IO4mj6+jUHRS4Q==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-controls/-/addon-controls-6.4.13.tgz", + "integrity": "sha512-XDaeYcwCi4qQ8hGXn4Mbdb6CQGGfZoBm5UjUaWBjDJdo54AyZv3VYdNgWFdiitqk5LRyh2omHD54EditM774NQ==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-common": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-common": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/node-logger": "6.4.12", - "@storybook/store": "6.4.12", - "@storybook/theming": "6.4.12", + "@storybook/node-logger": "6.4.13", + "@storybook/store": "6.4.13", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "lodash": "^4.17.21", "ts-dedent": "^2.0.0" } }, "@storybook/addon-docs": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.12.tgz", - "integrity": "sha512-xeaxa2mtuoy6KA3NSoKEHEzVK8WAwTmxo2o0o5A7gISkdIzp7cxBACcTWoYdVJkqLlWG+OBmQWL1bmWRIDXr0Q==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-6.4.13.tgz", + "integrity": "sha512-frsHcZD3jabIXxYkenwigJhAiqmbeBztc1cUTMWSZ9kVDJN6h2msq/vD0LEotfjcvDe3XS2HZgBjdDJ1UUUj/g==", "requires": { "@babel/core": "^7.12.10", "@babel/generator": "^7.12.11", @@ -10414,21 +10414,21 @@ "@mdx-js/loader": "^1.6.22", "@mdx-js/mdx": "^1.6.22", "@mdx-js/react": "^1.6.22", - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/builder-webpack4": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/builder-webpack4": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.12", - "@storybook/node-logger": "6.4.12", - "@storybook/postinstall": "6.4.12", - "@storybook/preview-web": "6.4.12", - "@storybook/source-loader": "6.4.12", - "@storybook/store": "6.4.12", - "@storybook/theming": "6.4.12", + "@storybook/csf-tools": "6.4.13", + "@storybook/node-logger": "6.4.13", + "@storybook/postinstall": "6.4.13", + "@storybook/preview-web": "6.4.13", + "@storybook/source-loader": "6.4.13", + "@storybook/store": "6.4.13", + "@storybook/theming": "6.4.13", "acorn": "^7.4.1", "acorn-jsx": "^5.3.1", "acorn-walk": "^7.2.0", @@ -10443,7 +10443,7 @@ "lodash": "^4.17.21", "nanoid": "^3.1.23", "p-limit": "^3.1.0", - "prettier": "^2.2.1", + "prettier": "<=2.3.0", "prop-types": "^15.7.2", "react-element-to-jsx-string": "^14.3.4", "regenerator-runtime": "^0.13.7", @@ -10475,40 +10475,45 @@ "requires": { "yocto-queue": "^0.1.0" } + }, + "prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==" } } }, "@storybook/addon-essentials": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.12.tgz", - "integrity": "sha512-UvHiW7Lz730ATdd2AVCbShiJ459AefGebvp1E2fRfgIJksMgFtYFYRC8E4gmuKtqEfUVCbCm/5oNh5XPhR70+g==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-essentials/-/addon-essentials-6.4.13.tgz", + "integrity": "sha512-ekvyeVckKkffGQMzp6cT0/Mi8Wo1fqF/DGp3vJIcIrExfvuZa/qi8PoHyx+cr8dfI0b8Jf8Lv7qcLIxNnkA5Bg==", "requires": { - "@storybook/addon-actions": "6.4.12", - "@storybook/addon-backgrounds": "6.4.12", - "@storybook/addon-controls": "6.4.12", - "@storybook/addon-docs": "6.4.12", - "@storybook/addon-measure": "6.4.12", - "@storybook/addon-outline": "6.4.12", - "@storybook/addon-toolbars": "6.4.12", - "@storybook/addon-viewport": "6.4.12", - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/node-logger": "6.4.12", + "@storybook/addon-actions": "6.4.13", + "@storybook/addon-backgrounds": "6.4.13", + "@storybook/addon-controls": "6.4.13", + "@storybook/addon-docs": "6.4.13", + "@storybook/addon-measure": "6.4.13", + "@storybook/addon-outline": "6.4.13", + "@storybook/addon-toolbars": "6.4.13", + "@storybook/addon-viewport": "6.4.13", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/node-logger": "6.4.13", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" } }, "@storybook/addon-links": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.12.tgz", - "integrity": "sha512-4azfzgcI/3FuVG5jdatCZ2uAHwT8Ic1NIshqhTw1OI4SGATgKvaF/bY6TnRPAZfp6dikgachViIlgcO7mQSl0g==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-6.4.13.tgz", + "integrity": "sha512-d/uxMZoEjgCRhVvJXYIKJ0VtHARA7p7/oDxBMiexBDGZ2FzZWtq/nejdER539X71JMUkjkaqTs+ekTunZe0eMg==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.12", + "@storybook/router": "6.4.13", "@types/qs": "^6.9.5", "core-js": "^3.8.2", "global": "^4.4.0", @@ -10519,30 +10524,30 @@ } }, "@storybook/addon-measure": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.12.tgz", - "integrity": "sha512-2wpkFsH6f53JouE6NwmEiwQGq0p4jJUFMx2pdEIeo9ax1iEZ1Y0b9cxscnT/1l+f8pyTE2ABBQLSpRWpL2eyoQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-measure/-/addon-measure-6.4.13.tgz", + "integrity": "sha512-uOnJrSWNlMznScCfeXkhqlenLoz6DBgNgBxuP7P6TiF5cxq7Xwv23RX3Hj1nzybP+wvUPEj08FBCh8BqgGOsOA==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0" } }, "@storybook/addon-outline": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.12.tgz", - "integrity": "sha512-wZNWpLb5nInhUOxsAwIzY/TSTQGxHf33Z3JHCnFE20GPBdOIN6RYprCqaPzjWT6qkrnvRHXwHPXXjQdKj07pBg==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-outline/-/addon-outline-6.4.13.tgz", + "integrity": "sha512-9BR70PRQeHtED/NkDp6JPRPrpKA43AubgRu4PHUJ0sbaD7o2DMHPKtt2AcsZoL7JSeGDl30cYzfn3pVZDPVxEA==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -10551,29 +10556,29 @@ } }, "@storybook/addon-toolbars": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.12.tgz", - "integrity": "sha512-FB908gujC4XB3Gf5KepaWyKiTR3NSGs2Nltcf2LpkC7RDgdeegucuPBnZLFsVkzpt8aOuMgNO/YciBhc4JH2Qg==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-toolbars/-/addon-toolbars-6.4.13.tgz", + "integrity": "sha512-57/bO5MsVnRjmxff+JjQzqjWCzX1KDHR8zla1RpaGsW5ejXcQumW38Xbp0OCscD7wGLL/b58GM/9OIk38LqBwA==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/theming": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "regenerator-runtime": "^0.13.7" } }, "@storybook/addon-viewport": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.12.tgz", - "integrity": "sha512-tCwVanwONQssQAMtMIOcVghmPgZN28xfUmTkGYtlmFNoDQp0G2vO/173Ynz9oe0nDwlDsqgtil12FCKulbrS7w==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addon-viewport/-/addon-viewport-6.4.13.tgz", + "integrity": "sha512-EzgPyLRTDgezSlZ7yCKDhR/VcKBECEdd7JCLiuVbfrThVhaKzM9gCx5pDnc0qTflx0DagqkIWFHNVPQt2KnQ3g==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", - "@storybook/theming": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "global": "^4.4.0", "memoizerific": "^1.11.3", @@ -10582,17 +10587,17 @@ } }, "@storybook/addons": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.12.tgz", - "integrity": "sha512-oxRE9cKq104sCPmII9xCZwZb7WevzoXnW7o4/v/a+uhzRCDNSGimh5GDCWQtMViRgw8JuFWKwCxGDSvlhueLOg==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/addons/-/addons-6.4.13.tgz", + "integrity": "sha512-2oxZ/VOuXUpOvtKGy+fR1FNwyfaTkzKs9I6cZq2zbEGK2q/5x6rtczwNRm5PjK35At+VurMq0E+IHH10JO9vHw==", "requires": { - "@storybook/api": "6.4.12", - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/api": "6.4.13", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.12", - "@storybook/theming": "6.4.12", + "@storybook/router": "6.4.13", + "@storybook/theming": "6.4.13", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -10600,17 +10605,17 @@ } }, "@storybook/api": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.12.tgz", - "integrity": "sha512-xdip9JXC7+0JUvsZ07YMS3ktQYJ24/nYNp8Y7OEhHyh/6S/WfIN+gJZ5kCDTtIv94VXw2Ur6QdvzX9OJNzKDdQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/api/-/api-6.4.13.tgz", + "integrity": "sha512-Hr5/dL4tLnQPjrUlVdhsYMSAuJmsZcu3jdfqpjbsDC9S2HNaVtyHGBhQ33jD8+xtXoorsuS7t4SfWzLOgPPflg==", "requires": { - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/router": "6.4.12", + "@storybook/router": "6.4.13", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.12", + "@storybook/theming": "6.4.13", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -10635,9 +10640,9 @@ } }, "@storybook/builder-webpack4": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.12.tgz", - "integrity": "sha512-TS9rZdykeaURiLRA6JaP9AtrT9VF7O+UTMBZbSlKk3L/v67/WqfpsXsjB9DYHd8xlAlQJ/EBrWqPCIjORpwMAQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/builder-webpack4/-/builder-webpack4-6.4.13.tgz", + "integrity": "sha512-Vjvje/XpFirVY6bOU+ahS2niapjA0Qams5jBE8YnPUhbigqsLOMMpnJ+C505xC6S5VW0lMkhJpCQ1NQyva3sRw==", "requires": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-class-properties": "^7.12.1", @@ -10660,22 +10665,22 @@ "@babel/preset-env": "^7.12.11", "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/channel-postmessage": "6.4.12", - "@storybook/channels": "6.4.12", - "@storybook/client-api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-common": "6.4.12", - "@storybook/core-events": "6.4.12", - "@storybook/node-logger": "6.4.12", - "@storybook/preview-web": "6.4.12", - "@storybook/router": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/channel-postmessage": "6.4.13", + "@storybook/channels": "6.4.13", + "@storybook/client-api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-common": "6.4.13", + "@storybook/core-events": "6.4.13", + "@storybook/node-logger": "6.4.13", + "@storybook/preview-web": "6.4.13", + "@storybook/router": "6.4.13", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.12", - "@storybook/theming": "6.4.12", - "@storybook/ui": "6.4.12", + "@storybook/store": "6.4.13", + "@storybook/theming": "6.4.13", + "@storybook/ui": "6.4.13", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "autoprefixer": "^9.8.6", @@ -10697,7 +10702,6 @@ "postcss-flexbugs-fixes": "^4.2.1", "postcss-loader": "^4.2.0", "raw-loader": "^4.0.2", - "react-dev-utils": "^11.0.4", "stable": "^0.1.8", "style-loader": "^1.3.0", "terser-webpack-plugin": "^4.2.3", @@ -11004,13 +11008,13 @@ } }, "@storybook/channel-postmessage": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.12.tgz", - "integrity": "sha512-zVHOa++JmcBYb8kNvaqkwLtNXWyaJ2jFZpZ/VJpe+q+pzMoM199DqRfahZ0xasPJC3gMlRxFNYCWZCqIIYFPoQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/channel-postmessage/-/channel-postmessage-6.4.13.tgz", + "integrity": "sha512-fyju7H/t2oDp9yci6KImRDPr9FnGV6B0juJ+2kEtVAmeDo55BScjT96SQuS/uk4c0wo6NZMrCt6HiC4zOmrD6g==", "requires": { - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "core-js": "^3.8.2", "global": "^4.4.0", "qs": "^6.10.0", @@ -11018,21 +11022,21 @@ } }, "@storybook/channel-websocket": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.12.tgz", - "integrity": "sha512-uwO7KOR2EMdnDRneWTEIOMbIXNDDTAPpy3hJOO8JGTbGtVbimQBvlQG2ZkbZxxTl0bALQTvi8BvePMEcWlu8sw==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/channel-websocket/-/channel-websocket-6.4.13.tgz", + "integrity": "sha512-edc/KRF2dpMyCI67ik8loo2cNh7TUP8HoO/YJBVPTEGmOQxMWgmYs+loTd1xoZAFBdkVKvLXBiu8umPpdh2MpA==", "requires": { - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", "core-js": "^3.8.2", "global": "^4.4.0", "telejson": "^5.3.2" } }, "@storybook/channels": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.12.tgz", - "integrity": "sha512-7vAsG4QG8+yLzqps9eI6QCYN03Jc2oeJINfsVdUFB9VOfEGRZ3JFBdC5MSaaMnUPSLUYZraAZ4FxM6nIKgJ1IA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/channels/-/channels-6.4.13.tgz", + "integrity": "sha512-QWvm2TiqPZVPQLBq7ETcABNi17HIhNaXhJJUyNFBBXFtAHcbzMRFEBi6gkCVXK7QdtFo3Z68TU5htDkwjYVerg==", "requires": { "core-js": "^3.8.2", "ts-dedent": "^2.0.0", @@ -11040,17 +11044,17 @@ } }, "@storybook/client-api": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.12.tgz", - "integrity": "sha512-WLHkXnIOJzzmaTHAeOR94LIUMbgpQnQGokFOuda/tJ5HwhDFXVFUKgoK45eAfOyYVTcDaXSEFjpCF++qB/txFA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/client-api/-/client-api-6.4.13.tgz", + "integrity": "sha512-YoF0iKeOTv06HFTLSg1M8Fs9JZwFcNhGFHXv7/LtuTZ9n6ATgaZm7eTTdKrn1d8Qjxql7c7Lm/7mdZgus9ByBA==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/channel-postmessage": "6.4.12", - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/channel-postmessage": "6.4.13", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.12", + "@storybook/store": "6.4.13", "@types/qs": "^6.9.5", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", @@ -11067,23 +11071,23 @@ } }, "@storybook/client-logger": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.12.tgz", - "integrity": "sha512-OxGfjjJkfIHAGgtRalUIkTG5ECGgZIU8jxvtfnB6SQKKR7cO6ldYsf+UatqkY7+CtraoqGU9TMcv9BkXsdFnAw==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/client-logger/-/client-logger-6.4.13.tgz", + "integrity": "sha512-VPrrgJRURztXAKTeHOpzKMAHnNupkGApUDNlPIs0Qxyn5gaSiy806q4XPoROno3mVgEe+7Chf86hRiL8pJnlCA==", "requires": { "core-js": "^3.8.2", "global": "^4.4.0" } }, "@storybook/components": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.12.tgz", - "integrity": "sha512-k/br1xG3DsltqO8EE2MEmCTwXe3MjUhfw4aSCmfmvsRpuFYgfMxEBEUKeNWD3CtDow61BLYtGcKRBv4Y/OAlUQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/components/-/components-6.4.13.tgz", + "integrity": "sha512-edeoYycQMsPaXPyPvYV4Aoiz4A/9kPsZt0Wf2zBGMGX6cpaGV3aoy8pFBl6XSq2hPxIn8JdcB/8MK3/tj35h4w==", "requires": { "@popperjs/core": "^2.6.0", - "@storybook/client-logger": "6.4.12", + "@storybook/client-logger": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/theming": "6.4.12", + "@storybook/theming": "6.4.13", "@types/color-convert": "^2.0.0", "@types/overlayscrollbars": "^1.12.0", "@types/react-syntax-highlighter": "11.0.5", @@ -11122,29 +11126,29 @@ } }, "@storybook/core": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.12.tgz", - "integrity": "sha512-R9mtesIhQQw258QjfWYnTSGWKChwdyrWUku/9oDUswsJ18nDYRBQ588pEb2QSpVa5eD3+evVC6fYCDVnaE8PcA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/core/-/core-6.4.13.tgz", + "integrity": "sha512-OSbji5w4jrGNALbxJwktZhi8qw4bGgL88dL72O40173b8ROLBOGkEkkz/BpHbqx2PhS9sGVNVMK2b2BwAiiu7g==", "requires": { - "@storybook/core-client": "6.4.12", - "@storybook/core-server": "6.4.12" + "@storybook/core-client": "6.4.13", + "@storybook/core-server": "6.4.13" } }, "@storybook/core-client": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.12.tgz", - "integrity": "sha512-xKD3u/Taw2NafO6QQyl0q7jJ+C/8H8XQj6C5POVd5LUju/pT1K4Udg1wsAJpc1BtJU8Gtzj+8hxC0s9Zi+y0WQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/core-client/-/core-client-6.4.13.tgz", + "integrity": "sha512-1m7cAlF16mtVdSNmP8a4z00GCkw2dMyUyJX8snzgYGLD5FaqPLyNGJIidqllHsBUXBfEL2FSu+E9QygK12+O1w==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/channel-postmessage": "6.4.12", - "@storybook/channel-websocket": "6.4.12", - "@storybook/client-api": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/channel-postmessage": "6.4.13", + "@storybook/channel-websocket": "6.4.13", + "@storybook/client-api": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/preview-web": "6.4.12", - "@storybook/store": "6.4.12", - "@storybook/ui": "6.4.12", + "@storybook/preview-web": "6.4.13", + "@storybook/store": "6.4.13", + "@storybook/ui": "6.4.13", "airbnb-js-shims": "^2.2.1", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", @@ -11158,9 +11162,9 @@ } }, "@storybook/core-common": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.12.tgz", - "integrity": "sha512-4xxFCZChMB23xeq3xARtccUyQQQwYgKkzasWKuUaC4E9Zj1h04IxBa92rYMey5HNlGUvAvQ2I/kRo5mg2GRmZw==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/core-common/-/core-common-6.4.13.tgz", + "integrity": "sha512-KoFa4yktuqWsW+/O6uc7iba25X9eKhp80l9tHsa1RWE94mQdCBUo5VsNoe35JvqFSDOspQ+brCe6vBUaIYe+cQ==", "requires": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-class-properties": "^7.12.1", @@ -11183,7 +11187,7 @@ "@babel/preset-react": "^7.12.10", "@babel/preset-typescript": "^7.12.7", "@babel/register": "^7.12.1", - "@storybook/node-logger": "6.4.12", + "@storybook/node-logger": "6.4.13", "@storybook/semver": "^7.3.2", "@types/node": "^14.0.10", "@types/pretty-hrtime": "^1.0.0", @@ -11380,29 +11384,29 @@ } }, "@storybook/core-events": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.12.tgz", - "integrity": "sha512-sulwOkyoIXN2QrbOxOTnnZ+yuOK1IChhzPZ5silHv5PJApo1nMFhiR5A9UOr6lTtk+cpNipuL6W2l8qMOSqG+Q==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/core-events/-/core-events-6.4.13.tgz", + "integrity": "sha512-zNlzNv7qVXjLf7yfvY9KfLvDY8nVskxrjmz0+21rIqUefS9+7SWBrtJJURpCaoPf/BmACqh/6c1RnuOY7TESnw==", "requires": { "core-js": "^3.8.2" } }, "@storybook/core-server": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.12.tgz", - "integrity": "sha512-mn/gk6nuBvzb9opcPdDG37cnPoMuwIuyn1eaU4ew2oFjrveLHmgJwh6LZ1A/kfJXvcNE9Z/YI4N1Ctvfxqm7/A==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/core-server/-/core-server-6.4.13.tgz", + "integrity": "sha512-i3zrtHHkV6/b+jJF65BQu+YuXen+T/MF1f5J+li5nvJnLKhssVQmvpGvWyJezT3OgFkC1+BFBokFY6NXHHw77g==", "requires": { "@discoveryjs/json-ext": "^0.5.3", - "@storybook/builder-webpack4": "6.4.12", - "@storybook/core-client": "6.4.12", - "@storybook/core-common": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/builder-webpack4": "6.4.13", + "@storybook/core-client": "6.4.13", + "@storybook/core-common": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/csf-tools": "6.4.12", - "@storybook/manager-webpack4": "6.4.12", - "@storybook/node-logger": "6.4.12", + "@storybook/csf-tools": "6.4.13", + "@storybook/manager-webpack4": "6.4.13", + "@storybook/node-logger": "6.4.13", "@storybook/semver": "^7.3.2", - "@storybook/store": "6.4.12", + "@storybook/store": "6.4.13", "@types/node": "^14.0.10", "@types/node-fetch": "^2.5.7", "@types/pretty-hrtime": "^1.0.0", @@ -11480,23 +11484,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==" }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "detect-port": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", - "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", - "requires": { - "address": "^1.0.1", - "debug": "^2.6.0" - } - }, "fs-extra": { "version": "9.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", @@ -11527,11 +11514,6 @@ "universalify": "^2.0.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11565,9 +11547,9 @@ } }, "@storybook/csf-tools": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.12.tgz", - "integrity": "sha512-8fAqNSxNvEpO03ynjGDHY8rQbpJzs0aejWMFzHp9bqvtCWgYMNX+gcjFeVvJXjpi91+XmNtE0cS4UZGCy8AbhQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/csf-tools/-/csf-tools-6.4.13.tgz", + "integrity": "sha512-eEYQdr/N4bsiQFxNEUkfQ/KyqdnUecwFS7V1k16/m/dP7cfinwW2Yo+9t77uWe3Qmzj9RbM6jrdWxXEUZ6MwvQ==", "requires": { "@babel/core": "^7.12.10", "@babel/generator": "^7.12.11", @@ -11583,7 +11565,7 @@ "global": "^4.4.0", "js-string-escape": "^1.0.1", "lodash": "^4.17.21", - "prettier": "^2.2.1", + "prettier": "<=2.3.0", "regenerator-runtime": "^0.13.7", "ts-dedent": "^2.0.0" }, @@ -11608,6 +11590,11 @@ "universalify": "^2.0.0" } }, + "prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==" + }, "universalify": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", @@ -11616,19 +11603,19 @@ } }, "@storybook/manager-webpack4": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.12.tgz", - "integrity": "sha512-S1mCURQ+dV6a9qNrnzudrV5N4cQCgxNnw+MICGVSD275WfCiZQb3Wl3Vnet5Gmhb/4Y/ElUYGLY0d6bHqibTGA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/manager-webpack4/-/manager-webpack4-6.4.13.tgz", + "integrity": "sha512-aUUIvSf1nUSuPEdLFcbXbEbm+WlBrpX+Ce+Ee5zuMpggfiMeq4H4UB5QuluB8oLUcJA/ZoQZ9m4pPfUZDH0O0w==", "requires": { "@babel/core": "^7.12.10", "@babel/plugin-transform-template-literals": "^7.12.1", "@babel/preset-react": "^7.12.10", - "@storybook/addons": "6.4.12", - "@storybook/core-client": "6.4.12", - "@storybook/core-common": "6.4.12", - "@storybook/node-logger": "6.4.12", - "@storybook/theming": "6.4.12", - "@storybook/ui": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/core-client": "6.4.13", + "@storybook/core-common": "6.4.13", + "@storybook/node-logger": "6.4.13", + "@storybook/theming": "6.4.13", + "@storybook/ui": "6.4.13", "@types/node": "^14.0.10", "@types/webpack": "^4.41.26", "babel-loader": "^8.0.0", @@ -11876,9 +11863,9 @@ } }, "@storybook/node-logger": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.12.tgz", - "integrity": "sha512-oVWmafSzTEmqsb9lbhoDtKXslDC9pZcSvpKc1aK+8C0apUdirit1eH0sb5oT8roc9EPu9uFWO2HEgyMOdkHwnQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/node-logger/-/node-logger-6.4.13.tgz", + "integrity": "sha512-L0WJjJ3MTkdSpCaC1xSJ1/SJzblQ8E3tYKSI3M3890711gfxtSM/9CfuatQ6ibTXcm5d8bW6TUJayTD4I8vUPg==", "requires": { "@types/npmlog": "^4.1.2", "chalk": "^4.1.0", @@ -11933,24 +11920,24 @@ } }, "@storybook/postinstall": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.12.tgz", - "integrity": "sha512-zEnYXcxgH94PsKlQccpuU7Dmgx/UVt0fUzzbJ+NzdRDj3pokP3tuIsJw5lgsC8R/8LCq6ivVSJRODeY9cFPhaQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/postinstall/-/postinstall-6.4.13.tgz", + "integrity": "sha512-7SzFt0BDFOI0vFKc0Ba5slkQaur3AEN9211U7pBbzgp6HxBjiTT5fqLET+dvk30ke8YtOauj0LZ+uHx9TNYrBA==", "requires": { "core-js": "^3.8.2" } }, "@storybook/preview-web": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.12.tgz", - "integrity": "sha512-7m9d6Tk7mPsvJUiIE9p1/rmJhh97ba1vdPxR4Z1l9Z9b/UQgE4W5n4MtgtqIGGt7RXdmhTAjgEI/J8BBFDpCuA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/preview-web/-/preview-web-6.4.13.tgz", + "integrity": "sha512-z21N09iWrzi2sX5+06aNvxPVp0rzntO7seM7zIPxqpFiEsAoPodkVJka3YyJpgK3S2JtgipmIgvLJeLXENLr3g==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/channel-postmessage": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/channel-postmessage": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.12", + "@storybook/store": "6.4.13", "ansi-to-html": "^0.6.11", "core-js": "^3.8.2", "global": "^4.4.0", @@ -11964,11 +11951,11 @@ } }, "@storybook/router": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.12.tgz", - "integrity": "sha512-genly+1DOQ5O6MSa1RY5cY23FmvREXQGB5nxssR5XUZlZO2DL6kQwUgp+Aj/7P2QvYuiVfs7xeItspuONlhvnQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/router/-/router-6.4.13.tgz", + "integrity": "sha512-6KbIpSL8QhGglzGb+tWTvAF/2EVpmgwlU5VP6Xs3GANcOc3VeXWl1fcJD6CNPp2DHwjkblW+21dcoHqfljnTmg==", "requires": { - "@storybook/client-logger": "6.4.12", + "@storybook/client-logger": "6.4.13", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", "global": "^4.4.0", @@ -11982,19 +11969,19 @@ } }, "@storybook/source-loader": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.12.tgz", - "integrity": "sha512-K3gVGYjjZ3Azvy2SpwjyB7cQ3bZrBgTvdlRijXxLExjpgy7E9p4BzwpyaIBkUCSLBKTZLmhcUP3VJewoQuoUKA==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/source-loader/-/source-loader-6.4.13.tgz", + "integrity": "sha512-3M2VRt/ABGpm2G9MxkWAufvacPFDdHl+gvkNOq4lRhFw8uAh78xoXb1n0heOOuYGtJbw1+UHNOh4ahZGCWYxJg==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/client-logger": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/client-logger": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "estraverse": "^5.2.0", "global": "^4.4.0", "loader-utils": "^2.0.0", "lodash": "^4.17.21", - "prettier": "^2.2.1", + "prettier": "<=2.3.0", "regenerator-runtime": "^0.13.7" }, "dependencies": { @@ -12012,17 +11999,22 @@ "emojis-list": "^3.0.0", "json5": "^2.1.2" } + }, + "prettier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", + "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==" } } }, "@storybook/store": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.12.tgz", - "integrity": "sha512-Sgjo8i6pqeaEWaD5jMVo6Z2fhpDX9lmhnq6UFKpzXlni7qBNjgQPyETH95nTDoApOd5VLsgdvkGMWiKBLdFbUQ==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/store/-/store-6.4.13.tgz", + "integrity": "sha512-VUDYwn1PHTa92kaJFCWqP+QS5wsHO9us2prhHnD7k9qvvQrbxD2DewtGxdT7cRHbZI8jY5CiqMVKilZRaXSM3Q==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/core-events": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/core-events": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", "core-js": "^3.8.2", "fast-deep-equal": "^3.1.3", @@ -12038,14 +12030,14 @@ } }, "@storybook/theming": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.12.tgz", - "integrity": "sha512-f40OgKpI0ymnCiXaY2KeDqYUrHBVxxYYww1WfyQXMv8tv5Mx64nqD8IL/Vyf6t/Wdl5jLdgbgLITwqIij9WJPg==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/theming/-/theming-6.4.13.tgz", + "integrity": "sha512-oWRoNnvO4QnRnplZ74DVdU4k91eqw8y0Xqn6lzZBeC8hq6mYWldgfj1LZ24gJhVtEIa7ZKoyujGUygHaH8WXHw==", "requires": { "@emotion/core": "^10.1.1", "@emotion/is-prop-valid": "^0.8.6", "@emotion/styled": "^10.0.27", - "@storybook/client-logger": "6.4.12", + "@storybook/client-logger": "6.4.13", "core-js": "^3.8.2", "deep-object-diff": "^1.1.0", "emotion-theming": "^10.0.27", @@ -12057,20 +12049,20 @@ } }, "@storybook/ui": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.12.tgz", - "integrity": "sha512-POkMFc0pTH6u/EiRpZpLCD1iRUektWhuWnF2cQEgP00ZY8rveOS6lfLZSnmrFKfkmVW9OARH4fcnlzNpwu1y6A==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/ui/-/ui-6.4.13.tgz", + "integrity": "sha512-EvpWk2iHjfiWkuMuzYz5fXl4r7S9Q80EtFFVkaBEZfIoKjvIkxppGQ3kz892ZdXzuazzvni2qcb7OJA9S7AgLw==", "requires": { "@emotion/core": "^10.1.1", - "@storybook/addons": "6.4.12", - "@storybook/api": "6.4.12", - "@storybook/channels": "6.4.12", - "@storybook/client-logger": "6.4.12", - "@storybook/components": "6.4.12", - "@storybook/core-events": "6.4.12", - "@storybook/router": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/api": "6.4.13", + "@storybook/channels": "6.4.13", + "@storybook/client-logger": "6.4.13", + "@storybook/components": "6.4.13", + "@storybook/core-events": "6.4.13", + "@storybook/router": "6.4.13", "@storybook/semver": "^7.3.2", - "@storybook/theming": "6.4.12", + "@storybook/theming": "6.4.13", "copy-to-clipboard": "^3.3.1", "core-js": "^3.8.2", "core-js-pure": "^3.8.2", @@ -12103,15 +12095,15 @@ } }, "@storybook/vue": { - "version": "6.4.12", - "resolved": "https://registry.npmjs.org/@storybook/vue/-/vue-6.4.12.tgz", - "integrity": "sha512-jztY8d9YdVevsXlZeAoLTysnms3kP9KxQiYIsHA5+tUZbJvYV6sIe7AEj+2Ny3HS4ivkCJjGxP3za5Ki+wmTDw==", + "version": "6.4.13", + "resolved": "https://registry.npmjs.org/@storybook/vue/-/vue-6.4.13.tgz", + "integrity": "sha512-nrr60GUeRAXRdJHpbfsbETUX5xPAIL4z/HEGqPicWdPk7bRzeLPOevJYPBScekWS7+pxkk+gry8k+kqW+HLmAQ==", "requires": { - "@storybook/addons": "6.4.12", - "@storybook/core": "6.4.12", - "@storybook/core-common": "6.4.12", + "@storybook/addons": "6.4.13", + "@storybook/core": "6.4.13", + "@storybook/core-common": "6.4.13", "@storybook/csf": "0.0.2--canary.87bc651.0", - "@storybook/store": "6.4.12", + "@storybook/store": "6.4.13", "@types/webpack-env": "^1.16.0", "core-js": "^3.8.2", "global": "^4.4.0", @@ -15805,9 +15797,9 @@ "integrity": "sha512-uUbetCWczQHbsKyX1C99XpQHBM8SWfovvaZhPIj23/1uV7SQf0WeRZbiLpw0JZm+LHTChfNgrLfDJOVoU2kU+A==" }, "aws-sdk": { - "version": "2.1056.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1056.0.tgz", - "integrity": "sha512-ocpc4Sy9Lclt+v5bIRuvFq0WwJoLIU26ikdCQn+ke9lIDPC9+hGZbkFK7TiqTu3noEekgIubGHFGEkd/5V0HhQ==", + "version": "2.1058.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1058.0.tgz", + "integrity": "sha512-q6bTq1DBBeBaU6GKKoTHmJj16WOQHhOoK7jwV93IT8pO0P1XH99gesFofhew3eT0h8Ev7quVKutk4B1kfnIXPQ==", "requires": { "buffer": "4.9.2", "events": "1.1.1", @@ -16534,12 +16526,12 @@ } }, "babel-plugin-polyfill-corejs2": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz", - "integrity": "sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", "requires": { "@babel/compat-data": "^7.13.11", - "@babel/helper-define-polyfill-provider": "^0.3.0", + "@babel/helper-define-polyfill-provider": "^0.3.1", "semver": "^6.1.1" } }, @@ -16570,11 +16562,11 @@ } }, "babel-plugin-polyfill-regenerator": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz", - "integrity": "sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "requires": { - "@babel/helper-define-polyfill-provider": "^0.3.0" + "@babel/helper-define-polyfill-provider": "^0.3.1" } }, "babel-plugin-syntax-jsx": { @@ -19602,14 +19594,14 @@ } }, "core-js": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.2.tgz", - "integrity": "sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw==" + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.20.3.tgz", + "integrity": "sha512-vVl8j8ph6tRS3B8qir40H7yw7voy17xL0piAjlbBUsH7WIfzoedL/ZOr1OV9FyZQLWXsayOJyV4tnRyXR85/ag==" }, "core-js-compat": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.2.tgz", - "integrity": "sha512-qZEzVQ+5Qh6cROaTPFLNS4lkvQ6mBzE3R6A6EEpssj7Zr2egMHgsy4XapdifqJDGC9CBiNv7s+ejI96rLNQFdg==", + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.20.3.tgz", + "integrity": "sha512-c8M5h0IkNZ+I92QhIpuSijOxGAcj3lgpsWdkCqmUTZNwidujF4r3pi6x1DCN+Vcs5qTS2XWWMfWSuCqyupX8gw==", "requires": { "browserslist": "^4.19.1", "semver": "7.0.0" @@ -19623,9 +19615,9 @@ } }, "core-js-pure": { - "version": "3.20.2", - "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.2.tgz", - "integrity": "sha512-CmWHvSKn2vNL6p6StNp1EmMIfVY/pqn3JLAjfZQ8WZGPOlGoO92EkX9/Mk81i6GxvoPXjUqEQnpM3rJ5QxxIOg==" + "version": "3.20.3", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.20.3.tgz", + "integrity": "sha512-Q2H6tQ5MtPtcC7f3HxJ48i4Q7T9ybPKgvWyuH7JXIoNa2pm0KuBnycsET/qw1SLLZYfbsbrZQNMeIOClb+6WIA==" }, "core-util-is": { "version": "1.0.3", @@ -20821,10 +20813,10 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" }, - "detect-port-alt": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", - "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "detect-port": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/detect-port/-/detect-port-1.3.0.tgz", + "integrity": "sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ==", "requires": { "address": "^1.0.1", "debug": "^2.6.0" @@ -21236,9 +21228,9 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "electron-to-chromium": { - "version": "1.4.44", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz", - "integrity": "sha512-tHGWiUUmY7GABK8+DNcr474cnZDTzD8x1736SlDosVH8+/vRJeqfaIBAEHFtMjddz/0T4rKKYsxEc8BwQRdBpw==" + "version": "1.4.46", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.46.tgz", + "integrity": "sha512-UtV0xUA/dibCKKP2JMxOpDtXR74zABevuUEH4K0tvduFSIoxRVcYmQsbB51kXsFTX8MmOyWMt8tuZAlmDOqkrQ==" }, "element-resize-detector": { "version": "1.2.4", @@ -22677,9 +22669,9 @@ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" }, "fast-glob": { - "version": "3.2.10", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.10.tgz", - "integrity": "sha512-s9nFhFnvR63wls6/kM88kQqDhMu0AfdjqouE2l5GVQPbqLgyFjjU5ry/r2yKsJxpb9Py1EYNqieFrmMaX4v++A==", + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -22867,9 +22859,9 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" }, "filesize": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz", - "integrity": "sha512-LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==" + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" }, "fill-range": { "version": "7.0.1", @@ -24870,21 +24862,25 @@ } }, "global-modules": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", - "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", "requires": { - "global-prefix": "^3.0.0" + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" } }, "global-prefix": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", - "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", "requires": { - "ini": "^1.3.5", - "kind-of": "^6.0.2", - "which": "^1.3.1" + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" } }, "globals": { @@ -26273,11 +26269,6 @@ } } }, - "immer": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/immer/-/immer-8.0.1.tgz", - "integrity": "sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==" - }, "immutable": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.0.0.tgz", @@ -27049,11 +27040,6 @@ "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", "integrity": "sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==" }, - "is-root": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", - "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==" - }, "is-set": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", @@ -32380,9 +32366,9 @@ "integrity": "sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==" }, "markdown-to-jsx": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.5.tgz", - "integrity": "sha512-YQEMMMCX3PYOWtUAQu8Fmz5/sH09s17eyQnDubwaAo8sWmnRTT1og96EFv1vL59l4nWfmtF3L91pqkuheVqRlA==" + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/markdown-to-jsx/-/markdown-to-jsx-7.1.6.tgz", + "integrity": "sha512-1wrIGZYwIG2gR3yfRmbr4FlQmhaAKoKTpRo4wur4fp9p0njU1Hi7vR8fj0AUKKIcPduiJmPprzmCB5B/GvlC7g==" }, "matchdep": { "version": "2.0.0", @@ -33469,9 +33455,9 @@ "integrity": "sha1-7K52QVDemYYexcgQ/V0Jaxg5Mqc=" }, "node-fetch": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.6.tgz", - "integrity": "sha512-Z8/6vRlTUChSdIgMa51jxQ4lrw/Jy5SOW10ObaA47/RElsAN2c5Pn8bTgFGWn/ibwzXTE8qwr1Yzx28vsecXEA==", + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", "requires": { "whatwg-url": "^5.0.0" } @@ -35715,46 +35701,6 @@ "find-up": "^4.0.0" } }, - "pkg-up": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", - "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", - "requires": { - "find-up": "^3.0.0" - }, - "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==", - "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==", - "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==", - "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=" - } - } - }, "plugin-error": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-0.1.2.tgz", @@ -36751,9 +36697,9 @@ } }, "prompts": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.0.tgz", - "integrity": "sha512-awZAKrk3vN6CroQukBL+R9051a4R3zCZBlJm/HBfrSZ8iTpYix3VX1vU4mveiLpiwmOJT4wokTF9m6HUk4KqWQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", "requires": { "kleur": "^3.0.3", "sisteransi": "^1.0.5" @@ -36779,9 +36725,9 @@ } }, "property-expr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.4.tgz", - "integrity": "sha512-sFPkHQjVKheDNnPvotjQmm3KD3uk1fWKUN7CrpdbwmUx3CrG3QiM8QpTSimvig5vTXmTvjz7+TDvXOI9+4rkcg==" + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.5.tgz", + "integrity": "sha512-IJUkICM5dP5znhCckHSv30Q4b5/JA5enCtkRHYaOVOAocnH/1BQEYTC5NMfT3AVl/iXKdr3aqQbQn9DxyWknwA==" }, "property-information": { "version": "5.6.0", @@ -37345,254 +37291,6 @@ "resolved": "https://registry.npmjs.org/react-colorful/-/react-colorful-5.5.1.tgz", "integrity": "sha512-M1TJH2X3RXEt12sWkpa6hLc/bbYS0H6F4rIqjQZ+RxNBstpY67d9TrFXtqdZwhpmBXcCwEi7stKqFue3ZRkiOg==" }, - "react-dev-utils": { - "version": "11.0.4", - "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.4.tgz", - "integrity": "sha512-dx0LvIGHcOPtKbeiSUM4jqpBl3TcY7CDjZdfOIcKeznE7BWr9dg0iPG90G5yfVQ+p/rGNMXdbfStvzQZEVEi4A==", - "requires": { - "@babel/code-frame": "7.10.4", - "address": "1.1.2", - "browserslist": "4.14.2", - "chalk": "2.4.2", - "cross-spawn": "7.0.3", - "detect-port-alt": "1.1.6", - "escape-string-regexp": "2.0.0", - "filesize": "6.1.0", - "find-up": "4.1.0", - "fork-ts-checker-webpack-plugin": "4.1.6", - "global-modules": "2.0.0", - "globby": "11.0.1", - "gzip-size": "5.1.1", - "immer": "8.0.1", - "is-root": "2.1.0", - "loader-utils": "2.0.0", - "open": "^7.0.2", - "pkg-up": "3.1.0", - "prompts": "2.4.0", - "react-error-overlay": "^6.0.9", - "recursive-readdir": "2.2.2", - "shell-quote": "1.7.2", - "strip-ansi": "6.0.0", - "text-table": "0.2.0" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "browserslist": { - "version": "4.14.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz", - "integrity": "sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==", - "requires": { - "caniuse-lite": "^1.0.30001125", - "electron-to-chromium": "^1.3.564", - "escalade": "^3.0.2", - "node-releases": "^1.1.61" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fork-ts-checker-webpack-plugin": { - "version": "4.1.6", - "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-4.1.6.tgz", - "integrity": "sha512-DUxuQaKoqfNne8iikd14SAkh5uw4+8vNifp6gmA73yYNS6ywLIWSLD/n/mBzHQRpW3J7rbATEakmiA8JvkTyZw==", - "requires": { - "@babel/code-frame": "^7.5.5", - "chalk": "^2.4.1", - "micromatch": "^3.1.10", - "minimatch": "^3.0.4", - "semver": "^5.6.0", - "tapable": "^1.0.0", - "worker-rpc": "^0.1.0" - } - }, - "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", - "requires": { - "array-union": "^2.1.0", - "dir-glob": "^3.0.1", - "fast-glob": "^3.1.1", - "ignore": "^5.1.4", - "merge2": "^1.3.0", - "slash": "^3.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" - }, - "loader-utils": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", - "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", - "requires": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" - } - }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - } - }, - "node-releases": { - "version": "1.1.77", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.77.tgz", - "integrity": "sha512-rB1DUFUNAN4Gn9keO2K1efO35IDK7yKHCdCaIMvFO7yUYmmZYeDjnGKle26G4rwj+LKRQpjyUUvMkPglwGCYNQ==" - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "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=", - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "requires": { - "isexe": "^2.0.0" - } - } - } - }, "react-dom": { "version": "16.14.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.14.0.tgz", @@ -37635,11 +37333,6 @@ } } }, - "react-error-overlay": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.10.tgz", - "integrity": "sha512-mKR90fX7Pm5seCOfz8q9F+66VCc1PGsWSBxKbITjfKVQHMNF2zudxHnMdJiB1fRCb+XsbQV9sO9DCkgsMQgBIA==" - }, "react-fast-compare": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.0.tgz", @@ -37969,14 +37662,6 @@ "resolve": "^1.1.6" } }, - "recursive-readdir": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", - "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", - "requires": { - "minimatch": "3.0.4" - } - }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -38093,9 +37778,9 @@ } }, "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.1.tgz", + "integrity": "sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==", "requires": { "call-bind": "^1.0.2", "define-properties": "^1.1.3" @@ -38615,30 +38300,6 @@ "requires": { "expand-tilde": "^2.0.0", "global-modules": "^1.0.0" - }, - "dependencies": { - "global-modules": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", - "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", - "requires": { - "global-prefix": "^1.0.1", - "is-windows": "^1.0.1", - "resolve-dir": "^1.0.0" - } - }, - "global-prefix": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", - "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", - "requires": { - "expand-tilde": "^2.0.2", - "homedir-polyfill": "^1.0.1", - "ini": "^1.3.4", - "is-windows": "^1.0.1", - "which": "^1.2.14" - } - } } }, "resolve-from": { @@ -39355,9 +39016,9 @@ "integrity": "sha1-aP0CXrBJC09WegJ/C/IkgLX4QTM=" }, "shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==" + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.3.tgz", + "integrity": "sha512-Vpfqwm4EnqGdlsBFNmHhxhElJYrdfcxPThu+ryKS5J8L/fhAwLazFZtq+S+TWZ9ANj2piSQLGj6NQg+lKPmxrw==" }, "shelljs": { "version": "0.3.0", @@ -40638,9 +40299,9 @@ }, "dependencies": { "ajv": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz", - "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==", + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz", + "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==", "requires": { "fast-deep-equal": "^3.1.1", "json-schema-traverse": "^1.0.0", @@ -42623,9 +42284,9 @@ } }, "vue-docgen-api": { - "version": "4.43.2", - "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.43.2.tgz", - "integrity": "sha512-eWnUf86IOFeWWrgGYirwsrTwJF1sBkj1ooEZ089EF14uLZZfsQMnl4dQzLeIi+wJn+4UBYqljNzo96GeBCDFPw==", + "version": "4.43.3", + "resolved": "https://registry.npmjs.org/vue-docgen-api/-/vue-docgen-api-4.43.3.tgz", + "integrity": "sha512-HGnhGWMXnO21ETpjQzNgbk89O1ACaRPkwadE6uoeW++xIUcrbWGxJSjeO6KUMkmN0pIMUeFmKHnKGbVvu8IaAw==", "requires": { "@babel/parser": "^7.13.12", "@babel/types": "^7.13.12", @@ -42637,7 +42298,7 @@ "pug": "^3.0.2", "recast": "0.20.5", "ts-map": "^1.0.3", - "vue-inbrowser-compiler-utils": "^4.43.2" + "vue-inbrowser-compiler-utils": "^4.43.3" }, "dependencies": { "lru-cache": { @@ -42713,9 +42374,9 @@ "integrity": "sha512-BN2OXolO15AKS95yNF8oOtARibaO6RxyKkAYNV4XpOmL7S4eVZYMIDtyvDv+XGZaiUmBJSH9mdNqzexvGMnK2A==" }, "vue-inbrowser-compiler-utils": { - "version": "4.43.2", - "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.43.2.tgz", - "integrity": "sha512-kilHO+VZBiXGxaeSElEFplMilD1EqAxKh9SybFb0ZShC1pzGQC6z1EhCVjW1OBLQdkSHJE0hARVnZoqYjHhQIQ==", + "version": "4.43.3", + "resolved": "https://registry.npmjs.org/vue-inbrowser-compiler-utils/-/vue-inbrowser-compiler-utils-4.43.3.tgz", + "integrity": "sha512-rpjzM9I7h0KtUQ7vjUw1w0pZ1rV6lKato11IBsfTBpQXrpCoD3jjSTJ3O+8Y4rIiCuTeeDB9U4QXvCiU1gd5/w==", "requires": { "camelcase": "^5.3.1" } @@ -43305,11 +42966,6 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==" - }, "ws": { "version": "6.2.2", "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.2.tgz", @@ -44101,9 +43757,9 @@ } }, "ws": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.0.tgz", - "integrity": "sha512-IHVsKe2pjajSUIl4KYMQOdlyliovpEPquKkqbwswulszzI7r0SfQrxnXdWAEqOlDCLrVSJzo+O1hAwdog2sKSQ==" + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==" }, "xdg-basedir": { "version": "4.0.0", From 035d19da647750b2063d97d20db3e87a308d1676 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:38:43 +0000 Subject: [PATCH 11/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n-workflow@0.?= =?UTF-8?q?83.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/workflow/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/workflow/package.json b/packages/workflow/package.json index 447c694619..933bb753c1 100644 --- a/packages/workflow/package.json +++ b/packages/workflow/package.json @@ -1,6 +1,6 @@ { "name": "n8n-workflow", - "version": "0.82.0", + "version": "0.83.0", "description": "Workflow base code of n8n", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 1234ccbc43045cf79dd13f22ded340b18899a7fe Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:38:53 +0000 Subject: [PATCH 12/22] :arrow_up: Set n8n-workflow@0.83.0 on n8n-core --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index 9ea621cfc4..d85330cd12 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -51,7 +51,7 @@ "form-data": "^4.0.0", "lodash.get": "^4.4.2", "mime-types": "^2.1.27", - "n8n-workflow": "~0.82.0", + "n8n-workflow": "~0.83.0", "oauth-1.0a": "^2.2.6", "p-cancelable": "^2.0.0", "qs": "^6.10.1", From 7a73bc98205431837c2ade3e0bb42e27b2ad007e Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:38:53 +0000 Subject: [PATCH 13/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n-core@0.101.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/package.json b/packages/core/package.json index d85330cd12..f36a8c3e88 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "n8n-core", - "version": "0.100.0", + "version": "0.101.0", "description": "Core functionality of n8n", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 755c1c2d5ba77a9c57bd6a048e8ca6f148d7a31e Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:03 +0000 Subject: [PATCH 14/22] :arrow_up: Set n8n-core@0.101.0 and n8n-workflow@0.83.0 on n8n-node-dev --- packages/node-dev/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/node-dev/package.json b/packages/node-dev/package.json index 5a5298b29f..302d3f7e30 100644 --- a/packages/node-dev/package.json +++ b/packages/node-dev/package.json @@ -61,8 +61,8 @@ "change-case": "^4.1.1", "copyfiles": "^2.1.1", "inquirer": "^7.0.1", - "n8n-core": "~0.100.0", - "n8n-workflow": "~0.82.0", + "n8n-core": "~0.101.0", + "n8n-workflow": "~0.83.0", "oauth-1.0a": "^2.2.6", "replace-in-file": "^6.0.0", "request": "^2.88.2", From a328d56940514ee18ff33701a79e697186818809 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:03 +0000 Subject: [PATCH 15/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n-node-dev@0.?= =?UTF-8?q?40.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/node-dev/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/node-dev/package.json b/packages/node-dev/package.json index 302d3f7e30..c9af78d62b 100644 --- a/packages/node-dev/package.json +++ b/packages/node-dev/package.json @@ -1,6 +1,6 @@ { "name": "n8n-node-dev", - "version": "0.39.0", + "version": "0.40.0", "description": "CLI to simplify n8n credentials/node development", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 35931071add182cbd0c8e355cee2b1994e055cb7 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:12 +0000 Subject: [PATCH 16/22] :arrow_up: Set n8n-core@0.101.0 and n8n-workflow@0.83.0 on n8n-nodes-base --- packages/nodes-base/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index 1ee9ff7b7d..adc33ec9df 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -691,7 +691,7 @@ "@types/xml2js": "^0.4.3", "gulp": "^4.0.0", "jest": "^26.4.2", - "n8n-workflow": "~0.82.0", + "n8n-workflow": "~0.83.0", "nodelinter": "^0.1.9", "ts-jest": "^26.3.0", "tslint": "^6.1.2", @@ -733,7 +733,7 @@ "mqtt": "4.2.6", "mssql": "^6.2.0", "mysql2": "~2.3.0", - "n8n-core": "~0.100.0", + "n8n-core": "~0.101.0", "node-ssh": "^12.0.0", "nodemailer": "^6.5.0", "pdf-parse": "^1.1.1", From 8c25fb676adf42a9e05526304f3dc616082a644f Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:12 +0000 Subject: [PATCH 17/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n-nodes-base@?= =?UTF-8?q?0.157.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/nodes-base/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nodes-base/package.json b/packages/nodes-base/package.json index adc33ec9df..200a9643f0 100644 --- a/packages/nodes-base/package.json +++ b/packages/nodes-base/package.json @@ -1,6 +1,6 @@ { "name": "n8n-nodes-base", - "version": "0.156.0", + "version": "0.157.0", "description": "Base nodes of n8n", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 23c46ae78d3b87208373e5010159e207d9d7d19e Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:51 +0000 Subject: [PATCH 18/22] :arrow_up: Set n8n-workflow@0.83.0 on n8n-editor-ui --- packages/editor-ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index e49c4f7345..afc7ef7fea 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -75,7 +75,7 @@ "lodash.debounce": "^4.0.8", "lodash.get": "^4.4.2", "lodash.set": "^4.3.2", - "n8n-workflow": "~0.82.0", + "n8n-workflow": "~0.83.0", "monaco-editor-webpack-plugin": "^5.0.0", "normalize-wheel": "^1.0.1", "prismjs": "^1.17.1", From 4829ae5c4206fc31e9b7f59478508f67a5c198b3 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:39:51 +0000 Subject: [PATCH 19/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n-editor-ui@0?= =?UTF-8?q?.126.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/editor-ui/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/editor-ui/package.json b/packages/editor-ui/package.json index afc7ef7fea..f95f27766c 100644 --- a/packages/editor-ui/package.json +++ b/packages/editor-ui/package.json @@ -1,6 +1,6 @@ { "name": "n8n-editor-ui", - "version": "0.125.0", + "version": "0.126.0", "description": "Workflow Editor UI for n8n", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 93187a7d7993fc9226ae7c38e7e443063a64e9b2 Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:41:08 +0000 Subject: [PATCH 20/22] :arrow_up: Set n8n-core@0.101.0, n8n-editor-ui@0.126.0, n8n-nodes-base@0.157.0 and n8n-workflow@0.83.0 on n8n --- packages/cli/package.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index 7ad602d1da..dbd74d4177 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -111,10 +111,10 @@ "localtunnel": "^2.0.0", "lodash.get": "^4.4.2", "mysql2": "~2.3.0", - "n8n-core": "~0.100.0", - "n8n-editor-ui": "~0.125.0", - "n8n-nodes-base": "~0.156.0", - "n8n-workflow": "~0.82.0", + "n8n-core": "~0.101.0", + "n8n-editor-ui": "~0.126.0", + "n8n-nodes-base": "~0.157.0", + "n8n-workflow": "~0.83.0", "oauth-1.0a": "^2.2.6", "open": "^7.0.0", "pg": "^8.3.0", From 737d56711146b723081ce2ced4d69e6496bce7ed Mon Sep 17 00:00:00 2001 From: Jan Oberhauser Date: Sun, 16 Jan 2022 13:41:09 +0000 Subject: [PATCH 21/22] =?UTF-8?q?:bookmark:=20Release=C2=A0n8n@0.159.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/cli/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index dbd74d4177..ea917eaf73 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "n8n", - "version": "0.158.0", + "version": "0.159.0", "description": "n8n Workflow Automation Tool", "license": "SEE LICENSE IN LICENSE.md", "homepage": "https://n8n.io", From 58c98319567f335b3fad8c45e7ab65696067b654 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Mon, 17 Jan 2022 10:31:12 +0100 Subject: [PATCH 22/22] :books: Minor i18n docs fixes (#2689) --- .../editor-ui/src/plugins/i18n/docs/README.md | 31 ++++++------------- 1 file changed, 9 insertions(+), 22 deletions(-) diff --git a/packages/editor-ui/src/plugins/i18n/docs/README.md b/packages/editor-ui/src/plugins/i18n/docs/README.md index 4cc00f39a1..cdee3d747d 100644 --- a/packages/editor-ui/src/plugins/i18n/docs/README.md +++ b/packages/editor-ui/src/plugins/i18n/docs/README.md @@ -72,7 +72,7 @@ The base text file for each locale is located at `/packages/editor-ui/src/plugin cp ./packages/editor-ui/src/plugins/i18n/locales/en.json ./packages/editor-ui/src/plugins/i18n/locales/de.json ``` -2. Find in the UI a string to translate, and search for it in the newly created base text file. Alternatively,find in `/editor-ui` a call to `$locale.baseText(key)`, e.g. `$locale.baseText('workflowActivator.deactivateWorkflow')`, and take note of the key and find it in the newly created base text file. +2. Find in the UI a string to translate, and search for it in the newly created base text file. Alternatively, find in `/editor-ui` a call to `$locale.baseText(key)`, e.g. `$locale.baseText('workflowActivator.deactivateWorkflow')`, and take note of the key and find it in the newly created base text file. > **Note**: If you cannot find a string in the new base text file, either it does not belong to base text (i.e., the string might be part of header text, credential text, or node text), or the string might belong to the backend, where i18n is currently unsupported. @@ -99,8 +99,8 @@ A credential translation file is placed at `/nodes-base/credentials/translations credentials └── translations └── de - ├── githubApi.json - └── githubOAuth2Api.json + ├── githubApi.json + └── githubOAuth2Api.json ``` Every credential must have its own credential translation file. @@ -124,8 +124,8 @@ GitHub ├── GitHubTrigger.node.ts └── translations └── de - ├── github.json - └── githubTrigger.json + ├── github.json + └── githubTrigger.json ``` Every node must have its own node translation file. @@ -180,14 +180,6 @@ export class GithubApi implements ICredentialType { } ``` -```json -{ - "server": {...}, - "user": {...}, - "accessToken": {...}, -} -``` - The object for each node credential parameter allows for the keys `displayName`, `description`, and `placeholder`. ```json @@ -215,14 +207,7 @@ Only existing parameters are translatable. If a credential parameter does not ha > **Note**: All keys are optional. Missing translations trigger a fallback to the `en` locale strings. -Each node translation file is an object that allows for two keys, `header` and `nodeView`, which are the _sections_ of each node translation: - -```json -{ - "header": { ... }, - "nodeView": { ... }, -} -``` +Each node translation file is an object that allows for two keys, `header` and `nodeView`, which are the _sections_ of each node translation. The `header` section points to an object that may contain only two keys, `displayName` and `description`, matching the node's `description.displayName` and `description.description`. @@ -280,7 +265,9 @@ export class Github implements INodeType { ```json { "nodeView": { - "resource": {...}, + "resource": { + "displayName": "🇩🇪 Resource", + }, }, } ```