👕 Fix lint issue

This commit is contained in:
Jan Oberhauser 2020-10-22 15:46:03 +02:00
parent 5b7efd67ca
commit 40c2acd77b
491 changed files with 4045 additions and 3936 deletions

View file

@ -10,8 +10,8 @@ import * as config from '../config';
import { import {
ActiveExecutions, ActiveExecutions,
ActiveWorkflowRunner, ActiveWorkflowRunner,
CredentialTypes,
CredentialsOverwrites, CredentialsOverwrites,
CredentialTypes,
Db, Db,
ExternalHooks, ExternalHooks,
GenericHelpers, GenericHelpers,

View file

@ -10,58 +10,58 @@ const config = convict({
doc: 'Type of database to use', doc: 'Type of database to use',
format: ['sqlite', 'mariadb', 'mongodb', 'mysqldb', 'postgresdb'], format: ['sqlite', 'mariadb', 'mongodb', 'mysqldb', 'postgresdb'],
default: 'sqlite', default: 'sqlite',
env: 'DB_TYPE' env: 'DB_TYPE',
}, },
mongodb: { mongodb: {
connectionUrl: { connectionUrl: {
doc: 'MongoDB Connection URL', doc: 'MongoDB Connection URL',
format: '*', format: '*',
default: 'mongodb://user:password@localhost:27017/database', default: 'mongodb://user:password@localhost:27017/database',
env: 'DB_MONGODB_CONNECTION_URL' env: 'DB_MONGODB_CONNECTION_URL',
} },
}, },
tablePrefix: { tablePrefix: {
doc: 'Prefix for table names', doc: 'Prefix for table names',
format: '*', format: '*',
default: '', default: '',
env: 'DB_TABLE_PREFIX' env: 'DB_TABLE_PREFIX',
}, },
postgresdb: { postgresdb: {
database: { database: {
doc: 'PostgresDB Database', doc: 'PostgresDB Database',
format: String, format: String,
default: 'n8n', default: 'n8n',
env: 'DB_POSTGRESDB_DATABASE' env: 'DB_POSTGRESDB_DATABASE',
}, },
host: { host: {
doc: 'PostgresDB Host', doc: 'PostgresDB Host',
format: String, format: String,
default: 'localhost', default: 'localhost',
env: 'DB_POSTGRESDB_HOST' env: 'DB_POSTGRESDB_HOST',
}, },
password: { password: {
doc: 'PostgresDB Password', doc: 'PostgresDB Password',
format: String, format: String,
default: '', default: '',
env: 'DB_POSTGRESDB_PASSWORD' env: 'DB_POSTGRESDB_PASSWORD',
}, },
port: { port: {
doc: 'PostgresDB Port', doc: 'PostgresDB Port',
format: Number, format: Number,
default: 5432, default: 5432,
env: 'DB_POSTGRESDB_PORT' env: 'DB_POSTGRESDB_PORT',
}, },
user: { user: {
doc: 'PostgresDB User', doc: 'PostgresDB User',
format: String, format: String,
default: 'root', default: 'root',
env: 'DB_POSTGRESDB_USER' env: 'DB_POSTGRESDB_USER',
}, },
schema: { schema: {
doc: 'PostgresDB Schema', doc: 'PostgresDB Schema',
format: String, format: String,
default: 'public', default: 'public',
env: 'DB_POSTGRESDB_SCHEMA' env: 'DB_POSTGRESDB_SCHEMA',
}, },
ssl: { ssl: {
@ -89,7 +89,7 @@ const config = convict({
default: true, default: true,
env: 'DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED', env: 'DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED',
}, },
} },
}, },
mysqldb: { mysqldb: {
@ -97,31 +97,31 @@ const config = convict({
doc: 'MySQL Database', doc: 'MySQL Database',
format: String, format: String,
default: 'n8n', default: 'n8n',
env: 'DB_MYSQLDB_DATABASE' env: 'DB_MYSQLDB_DATABASE',
}, },
host: { host: {
doc: 'MySQL Host', doc: 'MySQL Host',
format: String, format: String,
default: 'localhost', default: 'localhost',
env: 'DB_MYSQLDB_HOST' env: 'DB_MYSQLDB_HOST',
}, },
password: { password: {
doc: 'MySQL Password', doc: 'MySQL Password',
format: String, format: String,
default: '', default: '',
env: 'DB_MYSQLDB_PASSWORD' env: 'DB_MYSQLDB_PASSWORD',
}, },
port: { port: {
doc: 'MySQL Port', doc: 'MySQL Port',
format: Number, format: Number,
default: 3306, default: 3306,
env: 'DB_MYSQLDB_PORT' env: 'DB_MYSQLDB_PORT',
}, },
user: { user: {
doc: 'MySQL User', doc: 'MySQL User',
format: String, format: String,
default: 'root', default: 'root',
env: 'DB_MYSQLDB_USER' env: 'DB_MYSQLDB_USER',
}, },
}, },
}, },
@ -136,7 +136,7 @@ const config = convict({
doc: 'Overwrites for credentials', doc: 'Overwrites for credentials',
format: '*', format: '*',
default: '{}', default: '{}',
env: 'CREDENTIALS_OVERWRITE_DATA' env: 'CREDENTIALS_OVERWRITE_DATA',
}, },
endpoint: { endpoint: {
doc: 'Fetch credentials from API', doc: 'Fetch credentials from API',
@ -156,7 +156,7 @@ const config = convict({
doc: 'In what process workflows should be executed', doc: 'In what process workflows should be executed',
format: ['main', 'own'], format: ['main', 'own'],
default: 'own', default: 'own',
env: 'EXECUTIONS_PROCESS' env: 'EXECUTIONS_PROCESS',
}, },
// A Workflow times out and gets canceled after this time (seconds). // A Workflow times out and gets canceled after this time (seconds).
@ -174,13 +174,13 @@ const config = convict({
doc: 'Max run time (seconds) before stopping the workflow execution', doc: 'Max run time (seconds) before stopping the workflow execution',
format: Number, format: Number,
default: -1, default: -1,
env: 'EXECUTIONS_TIMEOUT' env: 'EXECUTIONS_TIMEOUT',
}, },
maxTimeout: { maxTimeout: {
doc: 'Max execution time (seconds) that can be set for a workflow individually', doc: 'Max execution time (seconds) that can be set for a workflow individually',
format: Number, format: Number,
default: 3600, default: 3600,
env: 'EXECUTIONS_TIMEOUT_MAX' env: 'EXECUTIONS_TIMEOUT_MAX',
}, },
// If a workflow executes all the data gets saved by default. This // If a workflow executes all the data gets saved by default. This
@ -193,13 +193,13 @@ const config = convict({
doc: 'What workflow execution data to save on error', doc: 'What workflow execution data to save on error',
format: ['all', 'none'], format: ['all', 'none'],
default: 'all', default: 'all',
env: 'EXECUTIONS_DATA_SAVE_ON_ERROR' env: 'EXECUTIONS_DATA_SAVE_ON_ERROR',
}, },
saveDataOnSuccess: { saveDataOnSuccess: {
doc: 'What workflow execution data to save on success', doc: 'What workflow execution data to save on success',
format: ['all', 'none'], format: ['all', 'none'],
default: 'all', default: 'all',
env: 'EXECUTIONS_DATA_SAVE_ON_SUCCESS' env: 'EXECUTIONS_DATA_SAVE_ON_SUCCESS',
}, },
// If the executions of workflows which got started via the editor // If the executions of workflows which got started via the editor
@ -211,7 +211,7 @@ const config = convict({
doc: 'Save data of executions when started manually via editor', doc: 'Save data of executions when started manually via editor',
format: 'Boolean', format: 'Boolean',
default: false, default: false,
env: 'EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS' env: 'EXECUTIONS_DATA_SAVE_MANUAL_EXECUTIONS',
}, },
// To not exceed the database's capacity and keep its size moderate // To not exceed the database's capacity and keep its size moderate
@ -223,19 +223,19 @@ const config = convict({
doc: 'Delete data of past executions on a rolling basis', doc: 'Delete data of past executions on a rolling basis',
format: 'Boolean', format: 'Boolean',
default: false, default: false,
env: 'EXECUTIONS_DATA_PRUNE' env: 'EXECUTIONS_DATA_PRUNE',
}, },
pruneDataMaxAge: { pruneDataMaxAge: {
doc: 'How old (hours) the execution data has to be to get deleted', doc: 'How old (hours) the execution data has to be to get deleted',
format: Number, format: Number,
default: 336, default: 336,
env: 'EXECUTIONS_DATA_MAX_AGE' env: 'EXECUTIONS_DATA_MAX_AGE',
}, },
pruneDataTimeout: { pruneDataTimeout: {
doc: 'Timeout (seconds) after execution data has been pruned', doc: 'Timeout (seconds) after execution data has been pruned',
format: Number, format: Number,
default: 3600, default: 3600,
env: 'EXECUTIONS_DATA_PRUNE_TIMEOUT' env: 'EXECUTIONS_DATA_PRUNE_TIMEOUT',
}, },
}, },
@ -248,7 +248,7 @@ const config = convict({
doc: 'The timezone to use', doc: 'The timezone to use',
format: '*', format: '*',
default: 'America/New_York', default: 'America/New_York',
env: 'GENERIC_TIMEZONE' env: 'GENERIC_TIMEZONE',
}, },
}, },
@ -258,45 +258,45 @@ const config = convict({
default: '/', default: '/',
arg: 'path', arg: 'path',
env: 'N8N_PATH', env: 'N8N_PATH',
doc: 'Path n8n is deployed to' doc: 'Path n8n is deployed to',
}, },
host: { host: {
format: String, format: String,
default: 'localhost', default: 'localhost',
arg: 'host', arg: 'host',
env: 'N8N_HOST', env: 'N8N_HOST',
doc: 'Host name n8n can be reached' doc: 'Host name n8n can be reached',
}, },
port: { port: {
format: Number, format: Number,
default: 5678, default: 5678,
arg: 'port', arg: 'port',
env: 'N8N_PORT', env: 'N8N_PORT',
doc: 'HTTP port n8n can be reached' doc: 'HTTP port n8n can be reached',
}, },
listen_address: { listen_address: {
format: String, format: String,
default: '0.0.0.0', default: '0.0.0.0',
env: 'N8N_LISTEN_ADDRESS', env: 'N8N_LISTEN_ADDRESS',
doc: 'IP address n8n should listen on' doc: 'IP address n8n should listen on',
}, },
protocol: { protocol: {
format: ['http', 'https'], format: ['http', 'https'],
default: 'http', default: 'http',
env: 'N8N_PROTOCOL', env: 'N8N_PROTOCOL',
doc: 'HTTP Protocol via which n8n can be reached' doc: 'HTTP Protocol via which n8n can be reached',
}, },
ssl_key: { ssl_key: {
format: String, format: String,
default: '', default: '',
env: 'N8N_SSL_KEY', env: 'N8N_SSL_KEY',
doc: 'SSL Key for HTTPS Protocol' doc: 'SSL Key for HTTPS Protocol',
}, },
ssl_cert: { ssl_cert: {
format: String, format: String,
default: '', default: '',
env: 'N8N_SSL_CERT', env: 'N8N_SSL_CERT',
doc: 'SSL Cert for HTTPS Protocol' doc: 'SSL Cert for HTTPS Protocol',
}, },
security: { security: {
@ -304,82 +304,82 @@ const config = convict({
doc: 'Additional endpoints to exclude auth checks. Multiple endpoints can be separated by colon (":")', doc: 'Additional endpoints to exclude auth checks. Multiple endpoints can be separated by colon (":")',
format: String, format: String,
default: '', default: '',
env: 'N8N_AUTH_EXCLUDE_ENDPOINTS' env: 'N8N_AUTH_EXCLUDE_ENDPOINTS',
}, },
basicAuth: { basicAuth: {
active: { active: {
format: 'Boolean', format: 'Boolean',
default: false, default: false,
env: 'N8N_BASIC_AUTH_ACTIVE', env: 'N8N_BASIC_AUTH_ACTIVE',
doc: 'If basic auth should be activated for editor and REST-API' doc: 'If basic auth should be activated for editor and REST-API',
}, },
user: { user: {
format: String, format: String,
default: '', default: '',
env: 'N8N_BASIC_AUTH_USER', env: 'N8N_BASIC_AUTH_USER',
doc: 'The name of the basic auth user' doc: 'The name of the basic auth user',
}, },
password: { password: {
format: String, format: String,
default: '', default: '',
env: 'N8N_BASIC_AUTH_PASSWORD', env: 'N8N_BASIC_AUTH_PASSWORD',
doc: 'The password of the basic auth user' doc: 'The password of the basic auth user',
}, },
hash: { hash: {
format: 'Boolean', format: 'Boolean',
default: false, default: false,
env: 'N8N_BASIC_AUTH_HASH', env: 'N8N_BASIC_AUTH_HASH',
doc: 'If password for basic auth is hashed' doc: 'If password for basic auth is hashed',
} },
}, },
jwtAuth: { jwtAuth: {
active: { active: {
format: 'Boolean', format: 'Boolean',
default: false, default: false,
env: 'N8N_JWT_AUTH_ACTIVE', env: 'N8N_JWT_AUTH_ACTIVE',
doc: 'If JWT auth should be activated for editor and REST-API' doc: 'If JWT auth should be activated for editor and REST-API',
}, },
jwtHeader: { jwtHeader: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_AUTH_HEADER', env: 'N8N_JWT_AUTH_HEADER',
doc: 'The request header containing a signed JWT' doc: 'The request header containing a signed JWT',
}, },
jwtHeaderValuePrefix: { jwtHeaderValuePrefix: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_AUTH_HEADER_VALUE_PREFIX', env: 'N8N_JWT_AUTH_HEADER_VALUE_PREFIX',
doc: 'The request header value prefix to strip (optional)' doc: 'The request header value prefix to strip (optional)',
}, },
jwksUri: { jwksUri: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWKS_URI', env: 'N8N_JWKS_URI',
doc: 'The URI to fetch JWK Set for JWT authentication' doc: 'The URI to fetch JWK Set for JWT authentication',
}, },
jwtIssuer: { jwtIssuer: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_ISSUER', env: 'N8N_JWT_ISSUER',
doc: 'JWT issuer to expect (optional)' doc: 'JWT issuer to expect (optional)',
}, },
jwtNamespace: { jwtNamespace: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_NAMESPACE', env: 'N8N_JWT_NAMESPACE',
doc: 'JWT namespace to expect (optional)' doc: 'JWT namespace to expect (optional)',
}, },
jwtAllowedTenantKey: { jwtAllowedTenantKey: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_ALLOWED_TENANT_KEY', env: 'N8N_JWT_ALLOWED_TENANT_KEY',
doc: 'JWT tenant key name to inspect within JWT namespace (optional)' doc: 'JWT tenant key name to inspect within JWT namespace (optional)',
}, },
jwtAllowedTenant: { jwtAllowedTenant: {
format: String, format: String,
default: '', default: '',
env: 'N8N_JWT_ALLOWED_TENANT', env: 'N8N_JWT_ALLOWED_TENANT',
doc: 'JWT tenant to allow (optional)' doc: 'JWT tenant to allow (optional)',
}, },
}, },
}, },
@ -389,19 +389,19 @@ const config = convict({
format: String, format: String,
default: 'rest', default: 'rest',
env: 'N8N_ENDPOINT_REST', env: 'N8N_ENDPOINT_REST',
doc: 'Path for rest endpoint' doc: 'Path for rest endpoint',
}, },
webhook: { webhook: {
format: String, format: String,
default: 'webhook', default: 'webhook',
env: 'N8N_ENDPOINT_WEBHOOK', env: 'N8N_ENDPOINT_WEBHOOK',
doc: 'Path for webhook endpoint' doc: 'Path for webhook endpoint',
}, },
webhookTest: { webhookTest: {
format: String, format: String,
default: 'webhook-test', default: 'webhook-test',
env: 'N8N_ENDPOINT_WEBHOOK_TEST', env: 'N8N_ENDPOINT_WEBHOOK_TEST',
doc: 'Path for test-webhook endpoint' doc: 'Path for test-webhook endpoint',
}, },
}, },
@ -409,7 +409,7 @@ const config = convict({
doc: 'Files containing external hooks. Multiple files can be separated by colon (":")', doc: 'Files containing external hooks. Multiple files can be separated by colon (":")',
format: String, format: String,
default: '', default: '',
env: 'EXTERNAL_HOOK_FILES' env: 'EXTERNAL_HOOK_FILES',
}, },
nodes: { nodes: {
@ -433,13 +433,13 @@ const config = convict({
} }
}, },
default: '[]', default: '[]',
env: 'NODES_EXCLUDE' env: 'NODES_EXCLUDE',
}, },
errorTriggerType: { errorTriggerType: {
doc: 'Node Type to use as Error Trigger', doc: 'Node Type to use as Error Trigger',
format: String, format: String,
default: 'n8n-nodes-base.errorTrigger', default: 'n8n-nodes-base.errorTrigger',
env: 'NODES_ERROR_TRIGGER_TYPE' env: 'NODES_ERROR_TRIGGER_TYPE',
}, },
}, },

View file

@ -7,8 +7,8 @@ import {
} from 'n8n-core'; } from 'n8n-core';
import { import {
IExecutionsCurrentSummary,
IExecutingWorkflowData, IExecutingWorkflowData,
IExecutionsCurrentSummary,
IWorkflowExecutionDataProcess, IWorkflowExecutionDataProcess,
} from '.'; } from '.';

View file

@ -1,17 +1,17 @@
import { import {
IActivationError,
Db, Db,
NodeTypes, IActivationError,
IResponseCallbackData, IResponseCallbackData,
IWebhookDb,
IWorkflowDb, IWorkflowDb,
IWorkflowExecutionDataProcess, IWorkflowExecutionDataProcess,
NodeTypes,
ResponseHelper, ResponseHelper,
WebhookHelpers, WebhookHelpers,
WorkflowCredentials, WorkflowCredentials,
WorkflowExecuteAdditionalData,
WorkflowHelpers, WorkflowHelpers,
WorkflowRunner, WorkflowRunner,
WorkflowExecuteAdditionalData,
IWebhookDb,
} from './'; } from './';
import { import {
@ -26,8 +26,8 @@ import {
INode, INode,
INodeExecutionData, INodeExecutionData,
IRunExecutionData, IRunExecutionData,
NodeHelpers,
IWorkflowExecuteAdditionalData as IWorkflowExecuteAdditionalDataWorkflow, IWorkflowExecuteAdditionalData as IWorkflowExecuteAdditionalDataWorkflow,
NodeHelpers,
WebhookHttpMethod, WebhookHttpMethod,
Workflow, Workflow,
WorkflowExecuteMode, WorkflowExecuteMode,
@ -352,8 +352,8 @@ export class ActiveWorkflowRunner {
node, node,
data: { data: {
main: data, main: data,
} },
} },
]; ];
const executionData: IRunExecutionData = { const executionData: IRunExecutionData = {

View file

@ -9,8 +9,8 @@ import {
INodeParameters, INodeParameters,
INodeProperties, INodeProperties,
INodeType, INodeType,
INodeTypes,
INodeTypeData, INodeTypeData,
INodeTypes,
NodeHelpers, NodeHelpers,
Workflow, Workflow,
} from 'n8n-workflow'; } from 'n8n-workflow';

View file

@ -4,8 +4,8 @@ import {
import { import {
CredentialTypes, CredentialTypes,
ICredentialsOverwrite,
GenericHelpers, GenericHelpers,
ICredentialsOverwrite,
} from './'; } from './';

View file

@ -33,27 +33,27 @@ export let collections: IDatabaseCollections = {
}; };
import { import {
CreateIndexStoppedAt1594828256133,
InitialMigration1587669153312, InitialMigration1587669153312,
WebhookModel1589476000887, WebhookModel1589476000887,
CreateIndexStoppedAt1594828256133,
} from './databases/postgresdb/migrations'; } from './databases/postgresdb/migrations';
import { import {
CreateIndexStoppedAt1594910478695,
InitialMigration1587563438936, InitialMigration1587563438936,
WebhookModel1592679094242, WebhookModel1592679094242,
CreateIndexStoppedAt1594910478695,
} from './databases/mongodb/migrations'; } from './databases/mongodb/migrations';
import { import {
CreateIndexStoppedAt1594902918301,
InitialMigration1588157391238, InitialMigration1588157391238,
WebhookModel1592447867632, WebhookModel1592447867632,
CreateIndexStoppedAt1594902918301,
} from './databases/mysqldb/migrations'; } from './databases/mysqldb/migrations';
import { import {
CreateIndexStoppedAt1594825041918,
InitialMigration1588102412422, InitialMigration1588102412422,
WebhookModel1592445003908, WebhookModel1592445003908,
CreateIndexStoppedAt1594825041918,
} from './databases/sqlite/migrations'; } from './databases/sqlite/migrations';
import * as path from 'path'; import * as path from 'path';
@ -154,7 +154,7 @@ export async function init(): Promise<IDatabaseCollections> {
migrations: [ migrations: [
InitialMigration1588102412422, InitialMigration1588102412422,
WebhookModel1592445003908, WebhookModel1592445003908,
CreateIndexStoppedAt1594825041918 CreateIndexStoppedAt1594825041918,
], ],
migrationsRun: true, migrationsRun: true,
migrationsTableName: `${entityPrefix}migrations`, migrationsTableName: `${entityPrefix}migrations`,

View file

@ -1,7 +1,7 @@
import { import {
Db, Db,
IExternalHooksFunctions,
IExternalHooksClass, IExternalHooksClass,
IExternalHooksFunctions,
} from './'; } from './';
import * as config from '../config'; import * as config from '../config';

View file

@ -1,7 +1,7 @@
import { import {
INodeType, INodeType,
INodeTypes,
INodeTypeData, INodeTypeData,
INodeTypes,
NodeHelpers, NodeHelpers,
} from 'n8n-workflow'; } from 'n8n-workflow';

View file

@ -67,7 +67,7 @@ export function sendSuccessResponse(res: Response, data: any, raw?: boolean, res
res.json(data); res.json(data);
} else { } else {
res.json({ res.json({
data data,
}); });
} }
} }
@ -183,7 +183,7 @@ export function unflattenExecutionData(fullExecutionData: IExecutionFlattedDb):
mode: fullExecutionData.mode, mode: fullExecutionData.mode,
startedAt: fullExecutionData.startedAt, startedAt: fullExecutionData.startedAt,
stoppedAt: fullExecutionData.stoppedAt, stoppedAt: fullExecutionData.stoppedAt,
finished: fullExecutionData.finished ? fullExecutionData.finished : false finished: fullExecutionData.finished ? fullExecutionData.finished : false,
}); });
return returnData; return returnData;

View file

@ -26,15 +26,18 @@ import {
ActiveExecutions, ActiveExecutions,
ActiveWorkflowRunner, ActiveWorkflowRunner,
CredentialsHelper, CredentialsHelper,
CredentialsOverwrites,
CredentialTypes, CredentialTypes,
Db, Db,
ExternalHooks, ExternalHooks,
GenericHelpers,
IActivationError, IActivationError,
ICustomRequest,
ICredentialsDb, ICredentialsDb,
ICredentialsDecryptedDb, ICredentialsDecryptedDb,
ICredentialsDecryptedResponse, ICredentialsDecryptedResponse,
ICredentialsOverwrite,
ICredentialsResponse, ICredentialsResponse,
ICustomRequest,
IExecutionDeleteFilter, IExecutionDeleteFilter,
IExecutionFlatted, IExecutionFlatted,
IExecutionFlattedDb, IExecutionFlattedDb,
@ -47,21 +50,18 @@ import {
IN8nUISettings, IN8nUISettings,
IPackageVersions, IPackageVersions,
IWorkflowBase, IWorkflowBase,
IWorkflowShortResponse,
IWorkflowResponse,
IWorkflowExecutionDataProcess, IWorkflowExecutionDataProcess,
IWorkflowResponse,
IWorkflowShortResponse,
LoadNodesAndCredentials,
NodeTypes, NodeTypes,
Push, Push,
ResponseHelper, ResponseHelper,
TestWebhooks, TestWebhooks,
WorkflowCredentials,
WebhookHelpers, WebhookHelpers,
WorkflowCredentials,
WorkflowExecuteAdditionalData, WorkflowExecuteAdditionalData,
WorkflowRunner, WorkflowRunner,
GenericHelpers,
CredentialsOverwrites,
ICredentialsOverwrite,
LoadNodesAndCredentials,
} from './'; } from './';
import { import {
@ -75,9 +75,9 @@ import {
ICredentialType, ICredentialType,
IDataObject, IDataObject,
INodeCredentials, INodeCredentials,
INodeTypeDescription,
INodeParameters, INodeParameters,
INodePropertyOptions, INodePropertyOptions,
INodeTypeDescription,
IRunData, IRunData,
IWorkflowCredentials, IWorkflowCredentials,
Workflow, Workflow,
@ -172,7 +172,7 @@ class App {
oauthCallbackUrls: { oauthCallbackUrls: {
'oauth1': urlBaseWebhook + `${this.restEndpoint}/oauth1-credential/callback`, 'oauth1': urlBaseWebhook + `${this.restEndpoint}/oauth1-credential/callback`,
'oauth2': urlBaseWebhook + `${this.restEndpoint}/oauth2-credential/callback`, 'oauth2': urlBaseWebhook + `${this.restEndpoint}/oauth2-credential/callback`,
} },
}; };
} }
@ -313,7 +313,7 @@ class App {
const jwtVerifyOptions: jwt.VerifyOptions = { const jwtVerifyOptions: jwt.VerifyOptions = {
issuer: jwtIssuer !== '' ? jwtIssuer : undefined, issuer: jwtIssuer !== '' ? jwtIssuer : undefined,
ignoreExpiration: false ignoreExpiration: false,
}; };
jwt.verify(token, getKey, jwtVerifyOptions, (err: jwt.VerifyErrors, decoded: object) => { jwt.verify(token, getKey, jwtVerifyOptions, (err: jwt.VerifyErrors, decoded: object) => {
@ -355,7 +355,7 @@ class App {
limit: '16mb', verify: (req, res, buf) => { limit: '16mb', verify: (req, res, buf) => {
// @ts-ignore // @ts-ignore
req.rawBody = buf; req.rawBody = buf;
} },
})); }));
// Support application/xml type post data // Support application/xml type post data
@ -365,14 +365,14 @@ class App {
normalize: true, // Trim whitespace inside text nodes normalize: true, // Trim whitespace inside text nodes
normalizeTags: true, // Transform tags to lowercase normalizeTags: true, // Transform tags to lowercase
explicitArray: false, // Only put properties in array if length > 1 explicitArray: false, // Only put properties in array if length > 1
} },
})); }));
this.app.use(bodyParser.text({ this.app.use(bodyParser.text({
limit: '16mb', verify: (req, res, buf) => { limit: '16mb', verify: (req, res, buf) => {
// @ts-ignore // @ts-ignore
req.rawBody = buf; req.rawBody = buf;
} },
})); }));
// Make sure that Vue history mode works properly // Make sure that Vue history mode works properly
@ -382,9 +382,9 @@ class App {
from: new RegExp(`^\/(${this.restEndpoint}|healthz|css|js|${this.endpointWebhook}|${this.endpointWebhookTest})\/?.*$`), from: new RegExp(`^\/(${this.restEndpoint}|healthz|css|js|${this.endpointWebhook}|${this.endpointWebhookTest})\/?.*$`),
to: (context) => { to: (context) => {
return context.parsedUrl!.pathname!.toString(); return context.parsedUrl!.pathname!.toString();
} },
} },
] ],
})); }));
//support application/x-www-form-urlencoded post data //support application/x-www-form-urlencoded post data
@ -392,7 +392,7 @@ class App {
verify: (req, res, buf) => { verify: (req, res, buf) => {
// @ts-ignore // @ts-ignore
req.rawBody = buf; req.rawBody = buf;
} },
})); }));
if (process.env['NODE_ENV'] !== 'production') { if (process.env['NODE_ENV'] !== 'production') {
@ -1074,7 +1074,7 @@ class App {
}; };
const oauthRequestData = { const oauthRequestData = {
oauth_callback: `${WebhookHelpers.getWebhookBaseUrl()}${this.restEndpoint}/oauth1-credential/callback?cid=${req.query.id}` oauth_callback: `${WebhookHelpers.getWebhookBaseUrl()}${this.restEndpoint}/oauth1-credential/callback?cid=${req.query.id}`,
}; };
await this.externalHooks.run('oauth1.authenticate', [oAuthOptions, oauthRequestData]); await this.externalHooks.run('oauth1.authenticate', [oAuthOptions, oauthRequestData]);
@ -1153,7 +1153,7 @@ class App {
qs: { qs: {
oauth_token, oauth_token,
oauth_verifier, oauth_verifier,
} },
}; };
let oauthToken; let oauthToken;
@ -1329,7 +1329,7 @@ class App {
accessTokenUri: _.get(oauthCredentials, 'accessTokenUrl', '') as string, accessTokenUri: _.get(oauthCredentials, 'accessTokenUrl', '') as string,
authorizationUri: _.get(oauthCredentials, 'authUrl', '') as string, authorizationUri: _.get(oauthCredentials, 'authUrl', '') as string,
redirectUri: `${WebhookHelpers.getWebhookBaseUrl()}${this.restEndpoint}/oauth2-credential/callback`, redirectUri: `${WebhookHelpers.getWebhookBaseUrl()}${this.restEndpoint}/oauth2-credential/callback`,
scopes: _.split(_.get(oauthCredentials, 'scope', 'openid,') as string, ',') scopes: _.split(_.get(oauthCredentials, 'scope', 'openid,') as string, ','),
}; };
if (_.get(oauthCredentials, 'authentication', 'header') as string === 'body') { if (_.get(oauthCredentials, 'authentication', 'header') as string === 'body') {
@ -1877,7 +1877,7 @@ class App {
// got used // got used
res.setHeader('Last-Modified', startTime); res.setHeader('Last-Modified', startTime);
} }
} },
})); }));
} }

View file

@ -10,10 +10,10 @@ import {
IWorkflowDb, IWorkflowDb,
IWorkflowExecutionDataProcess, IWorkflowExecutionDataProcess,
ResponseHelper, ResponseHelper,
WorkflowHelpers,
WorkflowRunner,
WorkflowCredentials, WorkflowCredentials,
WorkflowExecuteAdditionalData, WorkflowExecuteAdditionalData,
WorkflowHelpers,
WorkflowRunner,
} from './'; } from './';
import { import {
@ -252,7 +252,7 @@ export function getWorkflowWebhooksBasic(workflow: Workflow): IWebhookData[] {
data: { data: {
main: webhookResultData.workflowData, main: webhookResultData.workflowData,
}, },
}, }
); );
const runExecutionData: IRunExecutionData = { const runExecutionData: IRunExecutionData = {

View file

@ -25,8 +25,8 @@ import {
IExecuteData, IExecuteData,
IExecuteWorkflowInfo, IExecuteWorkflowInfo,
INode, INode,
INodeParameters,
INodeExecutionData, INodeExecutionData,
INodeParameters,
IRun, IRun,
IRunExecutionData, IRunExecutionData,
ITaskData, ITaskData,
@ -74,7 +74,7 @@ function executeErrorWorkflow(workflowData: IWorkflowBase, fullRunData: IRun, mo
workflow: { workflow: {
id: workflowData.id !== undefined ? workflowData.id.toString() as string : undefined, id: workflowData.id !== undefined ? workflowData.id.toString() as string : undefined,
name: workflowData.name, name: workflowData.name,
} },
}; };
// Run the error workflow // Run the error workflow
WorkflowHelpers.executeErrorWorkflow(workflowData.settings.errorWorkflow as string, workflowErrorData); WorkflowHelpers.executeErrorWorkflow(workflowData.settings.errorWorkflow as string, workflowErrorData);
@ -191,13 +191,13 @@ function hookFunctionsPush(): IWorkflowExecuteHooks {
workflowId: this.workflowData.id as string, workflowId: this.workflowData.id as string,
workflowName: this.workflowData.name, workflowName: this.workflowData.name,
}); });
} },
], ],
workflowExecuteAfter: [ workflowExecuteAfter: [
async function (this: WorkflowHooks, fullRunData: IRun, newStaticData: IDataObject): Promise<void> { async function (this: WorkflowHooks, fullRunData: IRun, newStaticData: IDataObject): Promise<void> {
pushExecutionFinished(this.mode, fullRunData, this.executionId, undefined, this.retryOf); pushExecutionFinished(this.mode, fullRunData, this.executionId, undefined, this.retryOf);
}, },
] ],
}; };
} }
@ -298,7 +298,7 @@ function hookFunctionsSave(parentProcessMode?: string): IWorkflowExecuteHooks {
} }
} }
}, },
] ],
}; };
} }
@ -374,8 +374,8 @@ export async function executeWorkflow(workflowInfo: IExecuteWorkflowInfo, additi
// Always start with empty data if no inputData got supplied // Always start with empty data if no inputData got supplied
inputData = inputData || [ inputData = inputData || [
{ {
json: {} json: {},
} },
]; ];
// Initialize the incoming data // Initialize the incoming data
@ -386,7 +386,7 @@ export async function executeWorkflow(workflowInfo: IExecuteWorkflowInfo, additi
data: { data: {
main: [inputData], main: [inputData],
}, },
}, }
); );
const runExecutionData: IRunExecutionData = { const runExecutionData: IRunExecutionData = {

View file

@ -3,8 +3,8 @@ import {
Db, Db,
ICredentialsTypeData, ICredentialsTypeData,
ITransferNodeTypes, ITransferNodeTypes,
IWorkflowExecutionDataProcess,
IWorkflowErrorData, IWorkflowErrorData,
IWorkflowExecutionDataProcess,
NodeTypes, NodeTypes,
WorkflowCredentials, WorkflowCredentials,
WorkflowRunner, WorkflowRunner,
@ -120,12 +120,12 @@ export async function executeErrorWorkflow(workflowId: string, workflowErrorData
main: [ main: [
[ [
{ {
json: workflowErrorData json: workflowErrorData,
} },
] ],
], ],
}, },
}, }
); );
const runExecutionData: IRunExecutionData = { const runExecutionData: IRunExecutionData = {

View file

@ -24,8 +24,8 @@ import {
IExecutionError, IExecutionError,
IRun, IRun,
Workflow, Workflow,
WorkflowHooks,
WorkflowExecuteMode, WorkflowExecuteMode,
WorkflowHooks,
} from 'n8n-workflow'; } from 'n8n-workflow';
import * as config from '../config'; import * as config from '../config';

View file

@ -135,13 +135,13 @@ export class WorkflowRunnerProcess {
workflowExecuteBefore: [ workflowExecuteBefore: [
async (): Promise<void> => { async (): Promise<void> => {
this.sendHookToParentProcess('workflowExecuteBefore', []); this.sendHookToParentProcess('workflowExecuteBefore', []);
} },
], ],
workflowExecuteAfter: [ workflowExecuteAfter: [
async (fullRunData: IRun, newStaticData?: IDataObject): Promise<void> => { async (fullRunData: IRun, newStaticData?: IDataObject): Promise<void> => {
this.sendHookToParentProcess('workflowExecuteAfter', [fullRunData, newStaticData]); this.sendHookToParentProcess('workflowExecuteAfter', [fullRunData, newStaticData]);
}, },
] ],
}; };
return new WorkflowHooks(hookFunctions, this.data!.executionMode, this.data!.executionId, this.data!.workflowData, { sessionId: this.data!.sessionId, retryOf: this.data!.retryOf as string }); return new WorkflowHooks(hookFunctions, this.data!.executionMode, this.data!.executionId, this.data!.workflowData, { sessionId: this.data!.sessionId, retryOf: this.data!.retryOf as string });

View file

@ -20,7 +20,7 @@ export class CredentialsEntity implements ICredentialsDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;
@ -29,7 +29,7 @@ export class CredentialsEntity implements ICredentialsDb {
@Index() @Index()
@Column({ @Column({
length: 32 length: 32,
}) })
type: string; type: string;

View file

@ -22,7 +22,7 @@ export class WorkflowEntity implements IWorkflowDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;

View file

@ -20,7 +20,7 @@ export class CredentialsEntity implements ICredentialsDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;
@ -29,7 +29,7 @@ export class CredentialsEntity implements ICredentialsDb {
@Index() @Index()
@Column({ @Column({
length: 32 length: 32,
}) })
type: string; type: string;

View file

@ -22,7 +22,7 @@ export class WorkflowEntity implements IWorkflowDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;

View file

@ -20,7 +20,7 @@ export class CredentialsEntity implements ICredentialsDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;
@ -29,7 +29,7 @@ export class CredentialsEntity implements ICredentialsDb {
@Index() @Index()
@Column({ @Column({
length: 32 length: 32,
}) })
type: string; type: string;

View file

@ -22,7 +22,7 @@ export class WorkflowEntity implements IWorkflowDb {
id: number; id: number;
@Column({ @Column({
length: 128 length: 128,
}) })
name: string; name: string;

View file

@ -46,6 +46,11 @@
"forin": true, "forin": true,
"jsdoc-format": true, "jsdoc-format": true,
"label-position": true, "label-position": true,
"indent": [
true,
"tabs",
2
],
"member-access": [ "member-access": [
true, true,
"no-public" "no-public"
@ -60,6 +65,13 @@
"no-default-export": true, "no-default-export": true,
"no-duplicate-variable": true, "no-duplicate-variable": true,
"no-inferrable-types": true, "no-inferrable-types": true,
"ordered-imports": [
true,
{
"import-sources-order": "any",
"named-imports-order": "case-insensitive"
}
],
"no-namespace": [ "no-namespace": [
true, true,
"allow-declarations" "allow-declarations"
@ -82,6 +94,18 @@
"ignore-bound-class-methods" "ignore-bound-class-methods"
], ],
"switch-default": true, "switch-default": true,
"trailing-comma": [
true,
{
"multiline": {
"objects": "always",
"arrays": "always",
"functions": "never",
"typeLiterals": "ignore"
},
"esSpecCompliant": true
}
],
"triple-equals": [ "triple-equals": [
true, true,
"allow-null-check" "allow-null-check"

View file

@ -5,7 +5,7 @@ import {
ICredentialsEncrypted, ICredentialsEncrypted,
} from 'n8n-workflow'; } from 'n8n-workflow';
import { enc, AES } from 'crypto-js'; import { AES, enc } from 'crypto-js';
export class Credentials extends ICredentials { export class Credentials extends ICredentials {

View file

@ -9,13 +9,13 @@ import {
ILoadOptionsFunctions as ILoadOptionsFunctionsBase, ILoadOptionsFunctions as ILoadOptionsFunctionsBase,
INodeExecutionData, INodeExecutionData,
INodeType, INodeType,
IOAuth2Options,
IPollFunctions as IPollFunctionsBase, IPollFunctions as IPollFunctionsBase,
IPollResponse, IPollResponse,
ITriggerFunctions as ITriggerFunctionsBase, ITriggerFunctions as ITriggerFunctionsBase,
ITriggerResponse, ITriggerResponse,
IWebhookFunctions as IWebhookFunctionsBase, IWebhookFunctions as IWebhookFunctionsBase,
IWorkflowSettings as IWorkflowSettingsWorkflow, IWorkflowSettings as IWorkflowSettingsWorkflow,
IOAuth2Options,
} from 'n8n-workflow'; } from 'n8n-workflow';

View file

@ -36,7 +36,7 @@ export class LoadNodeParameterOptions {
position: [ position: [
0, 0,
0, 0,
] ],
}; };
if (credentials) { if (credentials) {

View file

@ -1,9 +1,9 @@
import { import {
BINARY_ENCODING,
IHookFunctions, IHookFunctions,
ILoadOptionsFunctions, ILoadOptionsFunctions,
IResponseError, IResponseError,
IWorkflowSettings, IWorkflowSettings,
BINARY_ENCODING,
} from './'; } from './';
import { import {
@ -19,6 +19,7 @@ import {
INodeExecutionData, INodeExecutionData,
INodeParameters, INodeParameters,
INodeType, INodeType,
IOAuth2Options,
IPollFunctions, IPollFunctions,
IRunExecutionData, IRunExecutionData,
ITaskDataConnections, ITaskDataConnections,
@ -34,7 +35,6 @@ import {
Workflow, Workflow,
WorkflowDataProxy, WorkflowDataProxy,
WorkflowExecuteMode, WorkflowExecuteMode,
IOAuth2Options,
} from 'n8n-workflow'; } from 'n8n-workflow';
import * as clientOAuth1 from 'oauth-1.0a'; import * as clientOAuth1 from 'oauth-1.0a';
@ -43,7 +43,7 @@ import * as clientOAuth2 from 'client-oauth2';
import { get } from 'lodash'; import { get } from 'lodash';
import * as express from 'express'; import * as express from 'express';
import * as path from 'path'; import * as path from 'path';
import { OptionsWithUrl, OptionsWithUri } from 'request'; import { OptionsWithUri, OptionsWithUrl } from 'request';
import * as requestPromise from 'request-promise-native'; import * as requestPromise from 'request-promise-native';
import { createHmac } from 'crypto'; import { createHmac } from 'crypto';
import { fromBuffer } from 'file-type'; import { fromBuffer } from 'file-type';
@ -91,7 +91,7 @@ export async function prepareBinaryData(binaryData: Buffer, filePath?: string, m
// TODO: Should program it in a way that it does not have to converted to base64 // TODO: Should program it in a way that it does not have to converted to base64
// It should only convert to and from base64 when saved in database because // It should only convert to and from base64 when saved in database because
// of for example an error or when there is a wait node. // of for example an error or when there is a wait node.
data: binaryData.toString(BINARY_ENCODING) data: binaryData.toString(BINARY_ENCODING),
}; };
if (filePath) { if (filePath) {

View file

@ -1,10 +1,10 @@
import { import {
ENCRYPTION_KEY_ENV_OVERWRITE, ENCRYPTION_KEY_ENV_OVERWRITE,
EXTENSIONS_SUBDIRECTORY, EXTENSIONS_SUBDIRECTORY,
IUserSettings,
USER_FOLDER_ENV_OVERWRITE, USER_FOLDER_ENV_OVERWRITE,
USER_SETTINGS_FILE_NAME, USER_SETTINGS_FILE_NAME,
USER_SETTINGS_SUBFOLDER, USER_SETTINGS_SUBFOLDER,
IUserSettings,
} from '.'; } from '.';

View file

@ -15,8 +15,8 @@ import {
ITaskDataConnections, ITaskDataConnections,
IWaitingForExecution, IWaitingForExecution,
IWorkflowExecuteAdditionalData, IWorkflowExecuteAdditionalData,
WorkflowExecuteMode,
Workflow, Workflow,
WorkflowExecuteMode,
} from 'n8n-workflow'; } from 'n8n-workflow';
import { import {
NodeExecuteFunctions, NodeExecuteFunctions,
@ -84,7 +84,7 @@ export class WorkflowExecute {
], ],
], ],
}, },
} },
]; ];
this.runExecutionData = { this.runExecutionData = {
@ -137,8 +137,8 @@ export class WorkflowExecute {
// If it has no incoming data add the default empty data // If it has no incoming data add the default empty data
incomingData.push([ incomingData.push([
{ {
json: {} json: {},
} },
]); ]);
} else { } else {
// Get the data of the incoming connections // Get the data of the incoming connections
@ -156,7 +156,7 @@ export class WorkflowExecute {
node: workflow.getNode(startNode) as INode, node: workflow.getNode(startNode) as INode,
data: { data: {
main: incomingData, main: incomingData,
} },
}; };
nodeExecutionStack.push(executeData); nodeExecutionStack.push(executeData);
@ -252,7 +252,7 @@ export class WorkflowExecute {
if (this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] === undefined) { if (this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] === undefined) {
// Node does not have data for runIndex yet so create also empty one and init it // Node does not have data for runIndex yet so create also empty one and init it
this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] = { this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] = {
main: [] main: [],
}; };
for (let i = 0; i < workflow.connectionsByDestinationNode[connectionData.node]['main'].length; i++) { for (let i = 0; i < workflow.connectionsByDestinationNode[connectionData.node]['main'].length; i++) {
this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex].main.push(null); this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex].main.push(null);
@ -282,7 +282,7 @@ export class WorkflowExecute {
// So add it to the execution stack // So add it to the execution stack
this.runExecutionData.executionData!.nodeExecutionStack.push({ this.runExecutionData.executionData!.nodeExecutionStack.push({
node: workflow.nodes[connectionData.node], node: workflow.nodes[connectionData.node],
data: this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] data: this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex],
}); });
// Remove the data from waiting // Remove the data from waiting
@ -426,15 +426,15 @@ export class WorkflowExecute {
this.runExecutionData.executionData!.waitingExecution[connectionData.node] = {}; this.runExecutionData.executionData!.waitingExecution[connectionData.node] = {};
} }
this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] = { this.runExecutionData.executionData!.waitingExecution[connectionData.node][runIndex] = {
main: connectionDataArray main: connectionDataArray,
}; };
} else { } else {
// All data is there so add it directly to stack // All data is there so add it directly to stack
this.runExecutionData.executionData!.nodeExecutionStack.push({ this.runExecutionData.executionData!.nodeExecutionStack.push({
node: workflow.nodes[connectionData.node], node: workflow.nodes[connectionData.node],
data: { data: {
main: connectionDataArray main: connectionDataArray,
} },
}); });
} }
} }
@ -608,7 +608,7 @@ export class WorkflowExecute {
nodeSuccessData[0] = [ nodeSuccessData[0] = [
{ {
json: {}, json: {},
} },
]; ];
} }
} }
@ -639,7 +639,7 @@ export class WorkflowExecute {
} }
taskData = { taskData = {
startTime, startTime,
executionTime: (new Date().getTime()) - startTime executionTime: (new Date().getTime()) - startTime,
}; };
if (executionError !== undefined) { if (executionError !== undefined) {
@ -669,7 +669,7 @@ export class WorkflowExecute {
// Node executed successfully. So add data and go on. // Node executed successfully. So add data and go on.
taskData.data = ({ taskData.data = ({
'main': nodeSuccessData 'main': nodeSuccessData,
} as ITaskDataConnections); } as ITaskDataConnections);
this.executeHook('nodeExecuteAfter', [executionNode.name, taskData]); this.executeHook('nodeExecuteAfter', [executionNode.name, taskData]);

View file

@ -51,7 +51,7 @@ describe('Credentials', () => {
nodeType: 'base.noOp', nodeType: 'base.noOp',
user: 'userName', user: 'userName',
date: new Date(), date: new Date(),
} },
]; ];
const credentials = new Credentials('testName', 'testType', nodeAccess); const credentials = new Credentials('testName', 'testType', nodeAccess);

View file

@ -7,8 +7,8 @@ import {
INodeExecutionData, INodeExecutionData,
INodeParameters, INodeParameters,
INodeType, INodeType,
INodeTypes,
INodeTypeData, INodeTypeData,
INodeTypes,
IRun, IRun,
ITaskData, ITaskData,
IWorkflowBase, IWorkflowBase,
@ -87,7 +87,7 @@ class NodeTypesClass implements INodeTypes {
displayOptions: { displayOptions: {
show: { show: {
mode: [ mode: [
'passThrough' 'passThrough',
], ],
}, },
}, },
@ -104,7 +104,7 @@ class NodeTypesClass implements INodeTypes {
default: 'input1', default: 'input1',
description: 'Defines of which input the data should be used as output of node.', description: 'Defines of which input the data should be used as output of node.',
}, },
] ],
}, },
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> { async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
// const itemsInput2 = this.getInputData(1); // const itemsInput2 = this.getInputData(1);
@ -131,7 +131,7 @@ class NodeTypesClass implements INodeTypes {
} }
return [returnData]; return [returnData];
} },
}, },
}, },
'n8n-nodes-base.set': { 'n8n-nodes-base.set': {
@ -186,11 +186,11 @@ class NodeTypesClass implements INodeTypes {
default: 0, default: 0,
description: 'The number value to write in the property.', description: 'The number value to write in the property.',
}, },
] ],
}, },
], ],
}, },
] ],
}, },
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> { execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData(); const items = this.getInputData();
@ -213,7 +213,7 @@ class NodeTypesClass implements INodeTypes {
} }
return this.prepareOutputData(returnData); return this.prepareOutputData(returnData);
} },
}, },
}, },
'n8n-nodes-base.start': { 'n8n-nodes-base.start': {
@ -231,7 +231,7 @@ class NodeTypesClass implements INodeTypes {
}, },
inputs: [], inputs: [],
outputs: ['main'], outputs: ['main'],
properties: [] properties: [],
}, },
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> { execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
const items = this.getInputData(); const items = this.getInputData();

View file

@ -47,8 +47,8 @@ describe('WorkflowExecute', () => {
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
100, 100,
300 300,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -56,19 +56,19 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value1", "name": "value1",
"value": 1 "value": 1,
} },
] ],
} },
}, },
"name": "Set", "name": "Set",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
280, 280,
300 300,
] ],
} },
], ],
"connections": { "connections": {
"Start": { "Start": {
@ -77,12 +77,12 @@ describe('WorkflowExecute', () => {
{ {
"node": "Set", "node": "Set",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
} },
} },
}, },
}, },
output: { output: {
@ -115,8 +115,8 @@ describe('WorkflowExecute', () => {
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
100, 100,
300 300,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -124,18 +124,18 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value1", "name": "value1",
"value": 1 "value": 1,
} },
] ],
} },
}, },
"name": "Set1", "name": "Set1",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
300, 300,
250 250,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -143,19 +143,19 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value2", "name": "value2",
"value": 2 "value": 2,
} },
] ],
} },
}, },
"name": "Set2", "name": "Set2",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
500, 500,
400 400,
] ],
} },
], ],
"connections": { "connections": {
"Start": { "Start": {
@ -164,15 +164,15 @@ describe('WorkflowExecute', () => {
{ {
"node": "Set1", "node": "Set1",
"type": "main", "type": "main",
"index": 0 "index": 0,
}, },
{ {
"node": "Set2", "node": "Set2",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Set1": { "Set1": {
"main": [ "main": [
@ -180,12 +180,12 @@ describe('WorkflowExecute', () => {
{ {
"node": "Set2", "node": "Set2",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
} },
} },
}, },
}, },
output: { output: {
@ -201,7 +201,7 @@ describe('WorkflowExecute', () => {
{ {
value1: 1, value1: 1,
}, },
] ],
], ],
Set2: [ Set2: [
[ [
@ -228,15 +228,15 @@ describe('WorkflowExecute', () => {
"nodes": [ "nodes": [
{ {
"parameters": { "parameters": {
"mode": "passThrough" "mode": "passThrough",
}, },
"name": "Merge4", "name": "Merge4",
"type": "n8n-nodes-base.merge", "type": "n8n-nodes-base.merge",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
1150, 1150,
500 500,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -244,18 +244,18 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value2", "name": "value2",
"value": 2 "value": 2,
} },
] ],
} },
}, },
"name": "Set2", "name": "Set2",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
290, 290,
400 400,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -263,18 +263,18 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value4", "name": "value4",
"value": 4 "value": 4,
} },
] ],
} },
}, },
"name": "Set4", "name": "Set4",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
850, 850,
200 200,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -282,30 +282,30 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value3", "name": "value3",
"value": 3 "value": 3,
} },
] ],
} },
}, },
"name": "Set3", "name": "Set3",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
650, 650,
200 200,
] ],
}, },
{ {
"parameters": { "parameters": {
"mode": "passThrough" "mode": "passThrough",
}, },
"name": "Merge4", "name": "Merge4",
"type": "n8n-nodes-base.merge", "type": "n8n-nodes-base.merge",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
1150, 1150,
500 500,
] ],
}, },
{ {
"parameters": {}, "parameters": {},
@ -314,21 +314,21 @@ describe('WorkflowExecute', () => {
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
1000, 1000,
400 400,
] ],
}, },
{ {
"parameters": { "parameters": {
"mode": "passThrough", "mode": "passThrough",
"output": "input2" "output": "input2",
}, },
"name": "Merge2", "name": "Merge2",
"type": "n8n-nodes-base.merge", "type": "n8n-nodes-base.merge",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
700, 700,
400 400,
] ],
}, },
{ {
"parameters": {}, "parameters": {},
@ -337,8 +337,8 @@ describe('WorkflowExecute', () => {
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
500, 500,
300 300,
] ],
}, },
{ {
"parameters": { "parameters": {
@ -346,18 +346,18 @@ describe('WorkflowExecute', () => {
"number": [ "number": [
{ {
"name": "value1", "name": "value1",
"value": 1 "value": 1,
} },
] ],
} },
}, },
"name": "Set1", "name": "Set1",
"type": "n8n-nodes-base.set", "type": "n8n-nodes-base.set",
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
300, 300,
200 200,
] ],
}, },
{ {
"parameters": {}, "parameters": {},
@ -366,9 +366,9 @@ describe('WorkflowExecute', () => {
"typeVersion": 1, "typeVersion": 1,
"position": [ "position": [
100, 100,
300 300,
] ],
} },
], ],
"connections": { "connections": {
"Set2": { "Set2": {
@ -377,15 +377,15 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge1", "node": "Merge1",
"type": "main", "type": "main",
"index": 1 "index": 1,
}, },
{ {
"node": "Merge2", "node": "Merge2",
"type": "main", "type": "main",
"index": 1 "index": 1,
} },
] ],
] ],
}, },
"Set4": { "Set4": {
"main": [ "main": [
@ -393,10 +393,10 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge3", "node": "Merge3",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Set3": { "Set3": {
"main": [ "main": [
@ -404,10 +404,10 @@ describe('WorkflowExecute', () => {
{ {
"node": "Set4", "node": "Set4",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Merge3": { "Merge3": {
"main": [ "main": [
@ -415,10 +415,10 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge4", "node": "Merge4",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Merge2": { "Merge2": {
"main": [ "main": [
@ -426,10 +426,10 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge3", "node": "Merge3",
"type": "main", "type": "main",
"index": 1 "index": 1,
} },
] ],
] ],
}, },
"Merge1": { "Merge1": {
"main": [ "main": [
@ -437,10 +437,10 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge2", "node": "Merge2",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Set1": { "Set1": {
"main": [ "main": [
@ -448,15 +448,15 @@ describe('WorkflowExecute', () => {
{ {
"node": "Merge1", "node": "Merge1",
"type": "main", "type": "main",
"index": 0 "index": 0,
}, },
{ {
"node": "Set3", "node": "Set3",
"type": "main", "type": "main",
"index": 0 "index": 0,
} },
] ],
] ],
}, },
"Start": { "Start": {
"main": [ "main": [
@ -464,22 +464,22 @@ describe('WorkflowExecute', () => {
{ {
"node": "Set1", "node": "Set1",
"type": "main", "type": "main",
"index": 0 "index": 0,
}, },
{ {
"node": "Set2", "node": "Set2",
"type": "main", "type": "main",
"index": 0 "index": 0,
}, },
{ {
"node": "Merge4", "node": "Merge4",
"type": "main", "type": "main",
"index": 1 "index": 1,
} },
] ],
] ],
} },
} },
}, },
}, },
output: { output: {
@ -534,14 +534,14 @@ describe('WorkflowExecute', () => {
{ {
value2: 2, value2: 2,
}, },
] ],
], ],
Merge2: [ Merge2: [
[ [
{ {
value2: 2, value2: 2,
}, },
] ],
], ],
Merge3: [ Merge3: [
[ [
@ -553,7 +553,7 @@ describe('WorkflowExecute', () => {
{ {
value2: 2, value2: 2,
}, },
] ],
], ],
Merge4: [ Merge4: [
[ [
@ -565,7 +565,7 @@ describe('WorkflowExecute', () => {
{ {
value2: 2, value2: 2,
}, },
] ],
], ],
}, },
}, },

View file

@ -46,6 +46,11 @@
"forin": true, "forin": true,
"jsdoc-format": true, "jsdoc-format": true,
"label-position": true, "label-position": true,
"indent": [
true,
"tabs",
2
],
"member-access": [ "member-access": [
true, true,
"no-public" "no-public"
@ -60,6 +65,13 @@
"no-default-export": true, "no-default-export": true,
"no-duplicate-variable": true, "no-duplicate-variable": true,
"no-inferrable-types": true, "no-inferrable-types": true,
"ordered-imports": [
true,
{
"import-sources-order": "any",
"named-imports-order": "case-insensitive"
}
],
"no-namespace": [ "no-namespace": [
true, true,
"allow-declarations" "allow-declarations"
@ -82,6 +94,18 @@
"ignore-bound-class-methods" "ignore-bound-class-methods"
], ],
"switch-default": true, "switch-default": true,
"trailing-comma": [
true,
{
"multiline": {
"objects": "always",
"arrays": "always",
"functions": "always",
"typeLiterals": "ignore"
},
"esSpecCompliant": true
}
],
"triple-equals": [ "triple-equals": [
true, true,
"allow-null-check" "allow-null-check"

View file

@ -15,7 +15,7 @@ import Vue from 'vue';
export default Vue.extend( export default Vue.extend(
{ {
name: 'PageContentWrapper', name: 'PageContentWrapper',
} },
); );
</script> </script>

View file

@ -47,6 +47,7 @@
"forin": true, "forin": true,
"jsdoc-format": true, "jsdoc-format": true,
"label-position": true, "label-position": true,
"indent": [true, "tabs", 2],
"member-access": [ "member-access": [
true, true,
"no-public" "no-public"
@ -83,6 +84,18 @@
"ignore-bound-class-methods" "ignore-bound-class-methods"
], ],
"switch-default": true, "switch-default": true,
"trailing-comma": [
true,
{
"multiline": {
"objects": "always",
"arrays": "always",
"functions": "always",
"typeLiterals": "ignore"
},
"esSpecCompliant": true
}
],
"triple-equals": [ "triple-equals": [
true, true,
"allow-null-check" "allow-null-check"

View file

@ -23,7 +23,7 @@ export async function createTemplate(sourceFilePath: string, destinationFilePath
// Replace the variables in the template file // Replace the variables in the template file
const options: ReplaceInFileConfig = { const options: ReplaceInFileConfig = {
files: [ files: [
destinationFilePath destinationFilePath,
], ],
from: [], from: [],
to: [], to: [],

View file

@ -46,6 +46,11 @@
"forin": true, "forin": true,
"jsdoc-format": true, "jsdoc-format": true,
"label-position": true, "label-position": true,
"indent": [
true,
"tabs",
2
],
"member-access": [ "member-access": [
true, true,
"no-public" "no-public"
@ -60,6 +65,13 @@
"no-default-export": true, "no-default-export": true,
"no-duplicate-variable": true, "no-duplicate-variable": true,
"no-inferrable-types": true, "no-inferrable-types": true,
"ordered-imports": [
true,
{
"import-sources-order": "any",
"named-imports-order": "case-insensitive"
}
],
"no-namespace": [ "no-namespace": [
true, true,
"allow-declarations" "allow-declarations"
@ -82,6 +94,18 @@
"ignore-bound-class-methods" "ignore-bound-class-methods"
], ],
"switch-default": true, "switch-default": true,
"trailing-comma": [
true,
{
"multiline": {
"objects": "always",
"arrays": "always",
"functions": "always",
"typeLiterals": "ignore"
},
"esSpecCompliant": true
}
],
"triple-equals": [ "triple-equals": [
true, true,
"allow-null-check" "allow-null-check"

View file

@ -31,7 +31,7 @@ export class AcuitySchedulingOAuth2Api implements ICredentialType {
name: 'scope', name: 'scope',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'api-v1', default: 'api-v1',
required: true required: true,
}, },
{ {
displayName: 'Auth URI Query Parameters', displayName: 'Auth URI Query Parameters',

View file

@ -13,7 +13,7 @@ export class DisqusApi implements ICredentialType {
name: 'accessToken', name: 'accessToken',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'Visit your account details page, and grab the Access Token. See <a href="https://disqus.com/api/docs/auth/">Disqus auth</a>.' description: 'Visit your account details page, and grab the Access Token. See <a href="https://disqus.com/api/docs/auth/">Disqus auth</a>.',
}, },
]; ];
} }

View file

@ -13,7 +13,7 @@ export class DriftApi implements ICredentialType {
name: 'accessToken', name: 'accessToken',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'Visit your account details page, and grab the Access Token. See <a href="https://devdocs.drift.com/docs/quick-start">Drift auth</a>.' description: 'Visit your account details page, and grab the Access Token. See <a href="https://devdocs.drift.com/docs/quick-start">Drift auth</a>.',
}, },
]; ];
} }

View file

@ -42,7 +42,7 @@ export class EventbriteOAuth2Api implements ICredentialType {
displayName: 'Authentication', displayName: 'Authentication',
name: 'authentication', name: 'authentication',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'body' default: 'body',
}, },
]; ];
} }

View file

@ -21,7 +21,7 @@ export class FreshdeskApi implements ICredentialType {
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
placeholder: 'company', placeholder: 'company',
description: 'If the URL you get displayed on Freshdesk is "https://company.freshdesk.com" enter "company"', description: 'If the URL you get displayed on Freshdesk is "https://company.freshdesk.com" enter "company"',
default: '' default: '',
}, },
]; ];
} }

View file

@ -14,7 +14,7 @@ export class Ftp implements ICredentialType {
required: true, required: true,
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
placeholder: 'localhost' placeholder: 'localhost',
}, },
{ {
displayName: 'Port', displayName: 'Port',

View file

@ -13,7 +13,7 @@ export class GitlabApi implements ICredentialType {
displayName: 'Gitlab Server', displayName: 'Gitlab Server',
name: 'server', name: 'server',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: 'https://gitlab.com' default: 'https://gitlab.com',
}, },
{ {
displayName: 'Access Token', displayName: 'Access Token',

View file

@ -16,7 +16,7 @@ export class GitlabOAuth2Api implements ICredentialType {
displayName: 'Gitlab Server', displayName: 'Gitlab Server',
name: 'server', name: 'server',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: 'https://gitlab.com' default: 'https://gitlab.com',
}, },
{ {
displayName: 'Authorization URL', displayName: 'Authorization URL',

View file

@ -17,7 +17,7 @@ export class GoogleTasksOAuth2Api implements ICredentialType {
displayName: 'Scope', displayName: 'Scope',
name: 'scope', name: 'scope',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: scopes.join(' ') default: scopes.join(' '),
}, },
]; ];
} }

View file

@ -13,14 +13,14 @@ export class HarvestApi implements ICredentialType {
name: 'accountId', name: 'accountId',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'Visit your account details page, and grab the Account ID. See <a href="https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/">Harvest Personal Access Tokens</a>.' description: 'Visit your account details page, and grab the Account ID. See <a href="https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/">Harvest Personal Access Tokens</a>.',
}, },
{ {
displayName: 'Access Token', displayName: 'Access Token',
name: 'accessToken', name: 'accessToken',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'Visit your account details page, and grab the Access Token. See <a href="https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/">Harvest Personal Access Tokens</a>.' description: 'Visit your account details page, and grab the Access Token. See <a href="https://help.getharvest.com/api-v2/authentication-api/authentication/authentication/">Harvest Personal Access Tokens</a>.',
}, },
]; ];
} }

View file

@ -38,7 +38,7 @@ export class LinkedInOAuth2Api implements ICredentialType {
name: 'scope', name: 'scope',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: '=r_liteprofile,r_emailaddress,w_member_social{{$parameter["organizationSupport"] === true ? ",w_organization_social":""}}', default: '=r_liteprofile,r_emailaddress,w_member_social{{$parameter["organizationSupport"] === true ? ",w_organization_social":""}}',
description: 'Standard scopes for posting on behalf of a user or organization. See <a href="https://docs.microsoft.com/en-us/linkedin/marketing/getting-started#available-permissions"> this resource </a>.' description: 'Standard scopes for posting on behalf of a user or organization. See <a href="https://docs.microsoft.com/en-us/linkedin/marketing/getting-started#available-permissions"> this resource </a>.',
}, },
{ {
displayName: 'Auth URI Query Parameters', displayName: 'Auth URI Query Parameters',

View file

@ -9,7 +9,7 @@ export class MessageBirdApi implements ICredentialType {
displayName: 'API Key', displayName: 'API Key',
name: 'accessKey', name: 'accessKey',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '' default: '',
} },
]; ];
} }

View file

@ -9,40 +9,40 @@ export class MicrosoftSql implements ICredentialType {
displayName: 'Server', displayName: 'Server',
name: 'server', name: 'server',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: 'localhost' default: 'localhost',
}, },
{ {
displayName: 'Database', displayName: 'Database',
name: 'database', name: 'database',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: 'master' default: 'master',
}, },
{ {
displayName: 'User', displayName: 'User',
name: 'user', name: 'user',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: 'sa' default: 'sa',
}, },
{ {
displayName: 'Password', displayName: 'Password',
name: 'password', name: 'password',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
typeOptions: { typeOptions: {
password: true password: true,
}, },
default: '' default: '',
}, },
{ {
displayName: 'Port', displayName: 'Port',
name: 'port', name: 'port',
type: 'number' as NodePropertyTypes, type: 'number' as NodePropertyTypes,
default: 1433 default: 1433,
}, },
{ {
displayName: 'Domain', displayName: 'Domain',
name: 'domain', name: 'domain',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '' default: '',
} },
]; ];
} }

View file

@ -39,7 +39,7 @@ export class MongoDb implements ICredentialType {
placeholder: 'mongodb://<USERNAME>:<PASSWORD>@localhost:27017/?authSource=admin&readPreference=primary&appname=n8n&ssl=false', placeholder: 'mongodb://<USERNAME>:<PASSWORD>@localhost:27017/?authSource=admin&readPreference=primary&appname=n8n&ssl=false',
required: false, required: false,
description: `If provided, the value here will be used as a MongoDB connection string,<br /> description: `If provided, the value here will be used as a MongoDB connection string,<br />
and the MongoDB credentials will be ignored` and the MongoDB credentials will be ignored`,
}, },
{ {
displayName: 'Host', displayName: 'Host',
@ -52,14 +52,14 @@ export class MongoDb implements ICredentialType {
], ],
}, },
}, },
default: 'localhost' default: 'localhost',
}, },
{ {
displayName: 'Database', displayName: 'Database',
name: 'database', name: 'database',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'Note: the database should still be provided even if using an override connection string' description: 'Note: the database should still be provided even if using an override connection string',
}, },
{ {
displayName: 'User', displayName: 'User',
@ -72,14 +72,14 @@ export class MongoDb implements ICredentialType {
], ],
}, },
}, },
default: '' default: '',
}, },
{ {
displayName: 'Password', displayName: 'Password',
name: 'password', name: 'password',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
typeOptions: { typeOptions: {
password: true password: true,
}, },
displayOptions: { displayOptions: {
show: { show: {
@ -88,7 +88,7 @@ export class MongoDb implements ICredentialType {
], ],
}, },
}, },
default: '' default: '',
}, },
{ {
displayName: 'Port', displayName: 'Port',
@ -101,7 +101,7 @@ export class MongoDb implements ICredentialType {
], ],
}, },
}, },
default: 27017 default: 27017,
}, },
]; ];
} }

View file

@ -50,15 +50,15 @@ export class OAuth1Api implements ICredentialType {
options: [ options: [
{ {
name: 'HMAC-SHA1', name: 'HMAC-SHA1',
value: 'HMAC-SHA1' value: 'HMAC-SHA1',
}, },
{ {
name: 'HMAC-SHA256', name: 'HMAC-SHA256',
value: 'HMAC-SHA256' value: 'HMAC-SHA256',
}, },
{ {
name: 'HMAC-SHA512', name: 'HMAC-SHA512',
value: 'HMAC-SHA512' value: 'HMAC-SHA512',
}, },
], ],
default: '', default: '',

View file

@ -29,13 +29,13 @@ export class PayPalApi implements ICredentialType {
options: [ options: [
{ {
name: 'Sanbox', name: 'Sanbox',
value: 'sanbox' value: 'sanbox',
}, },
{ {
name: 'Live', name: 'Live',
value: 'live' value: 'live',
}, },
] ],
}, },
]; ];
} }

View file

@ -74,7 +74,7 @@ export class Postgres implements ICredentialType {
{ {
name: 'verify-full (not implemented)', name: 'verify-full (not implemented)',
value: 'verify-full', value: 'verify-full',
} },
], ],
default: 'disable', default: 'disable',
}, },

View file

@ -13,7 +13,7 @@ export class S3 implements ICredentialType {
displayName: 'S3 endpoint', displayName: 'S3 endpoint',
name: 'endpoint', name: 'endpoint',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '' default: '',
}, },
{ {
displayName: 'Region', displayName: 'Region',
@ -40,7 +40,7 @@ export class S3 implements ICredentialType {
displayName: 'Force path style', displayName: 'Force path style',
name: 'forcePathStyle', name: 'forcePathStyle',
type: 'boolean' as NodePropertyTypes, type: 'boolean' as NodePropertyTypes,
default: false default: false,
}, },
]; ];
} }

View file

@ -13,7 +13,7 @@ export class Signl4Api implements ICredentialType {
name: 'teamSecret', name: 'teamSecret',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '', default: '',
description: 'The team secret is the last part of your SIGNL4 webhook URL.' description: 'The team secret is the last part of your SIGNL4 webhook URL.',
}, },
]; ];
} }

View file

@ -11,7 +11,7 @@ const userScopes = [
'stars:read', 'stars:read',
'stars:write', 'stars:write',
'users.profile:read', 'users.profile:read',
'users.profile:write' 'users.profile:write',
]; ];
export class SlackOAuth2Api implements ICredentialType { export class SlackOAuth2Api implements ICredentialType {

View file

@ -29,7 +29,7 @@ export class StravaOAuth2Api implements ICredentialType {
name: 'scope', name: 'scope',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'activity:read_all,activity:write', default: 'activity:read_all,activity:write',
required: true required: true,
}, },
{ {
displayName: 'Auth URI Query Parameters', displayName: 'Auth URI Query Parameters',

View file

@ -50,7 +50,7 @@ export class SurveyMonkeyOAuth2Api implements ICredentialType {
displayName: 'Authentication', displayName: 'Authentication',
name: 'authentication', name: 'authentication',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'body' default: 'body',
}, },
]; ];
} }

View file

@ -9,7 +9,7 @@ export class ZoomApi implements ICredentialType {
displayName: 'JWT Token', displayName: 'JWT Token',
name: 'accessToken', name: 'accessToken',
type: 'string' as NodePropertyTypes, type: 'string' as NodePropertyTypes,
default: '' default: '',
} },
]; ];
} }

View file

@ -13,31 +13,31 @@ export class ZoomOAuth2Api implements ICredentialType {
displayName: 'Authorization URL', displayName: 'Authorization URL',
name: 'authUrl', name: 'authUrl',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'https://zoom.us/oauth/authorize' default: 'https://zoom.us/oauth/authorize',
}, },
{ {
displayName: 'Access Token URL', displayName: 'Access Token URL',
name: 'accessTokenUrl', name: 'accessTokenUrl',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'https://zoom.us/oauth/token' default: 'https://zoom.us/oauth/token',
}, },
{ {
displayName: 'Scope', displayName: 'Scope',
name: 'scope', name: 'scope',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: '' default: '',
}, },
{ {
displayName: 'Auth URI Query Parameters', displayName: 'Auth URI Query Parameters',
name: 'authQueryParameters', name: 'authQueryParameters',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: '' default: '',
}, },
{ {
displayName: 'Authentication', displayName: 'Authentication',
name: 'authentication', name: 'authentication',
type: 'hidden' as NodePropertyTypes, type: 'hidden' as NodePropertyTypes,
default: 'header' default: 'header',
} },
]; ];
} }

View file

@ -142,7 +142,7 @@ export class ActiveCampaign implements INodeType {
}, },
{ {
name: 'Connection', name: 'Connection',
value: 'connection' value: 'connection',
}, },
{ {
name: 'Deal', name: 'Deal',
@ -158,7 +158,7 @@ export class ActiveCampaign implements INodeType {
}, },
{ {
name: 'E-commerce Order Products', name: 'E-commerce Order Products',
value: 'ecommerceOrderProducts' value: 'ecommerceOrderProducts',
}, },
{ {
name: 'Tag', name: 'Tag',

View file

@ -35,7 +35,7 @@ export class ActiveCampaignTrigger implements INodeType {
{ {
name: 'activeCampaignApi', name: 'activeCampaignApi',
required: true, required: true,
} },
], ],
webhooks: [ webhooks: [
{ {
@ -103,7 +103,7 @@ export class ActiveCampaignTrigger implements INodeType {
} }
return returnData; return returnData;
}, },
} },
}; };
// @ts-ignore // @ts-ignore
webhookMethods = { webhookMethods = {
@ -132,7 +132,7 @@ export class ActiveCampaignTrigger implements INodeType {
url: webhookUrl, url: webhookUrl,
events, events,
sources, sources,
} },
}; };
const { webhook } = await activeCampaignApiRequest.call(this, 'POST', '/api/3/webhooks', body); const { webhook } = await activeCampaignApiRequest.call(this, 'POST', '/api/3/webhooks', body);
webhookData.webhookId = webhook.id; webhookData.webhookId = webhook.id;
@ -155,7 +155,7 @@ export class ActiveCampaignTrigger implements INodeType {
const req = this.getRequestObject(); const req = this.getRequestObject();
return { return {
workflowData: [ workflowData: [
this.helpers.returnJsonArray(req.body) this.helpers.returnJsonArray(req.body),
], ],
}; };
} }

View file

@ -234,7 +234,7 @@ export const connectionFields = [
default: 1, default: 1,
description: 'The status of a sync triggered on the connection (0 = sync stopped; 1 = sync running).', description: 'The status of a sync triggered on the connection (0 = sync stopped; 1 = sync running).',
}, },
] ],
}, },
// ---------------------------------- // ----------------------------------

View file

@ -138,7 +138,7 @@ export const contactFields = [
default: '', default: '',
description: 'Value of the field to set.', description: 'Value of the field to set.',
}, },
] ],
}, },
], ],
}, },
@ -237,7 +237,7 @@ export const contactFields = [
default: '', default: '',
description: 'Value of the field to set.', description: 'Value of the field to set.',
}, },
] ],
}, },
], ],
}, },

View file

@ -232,7 +232,7 @@ export const dealFields = [
default: 0, default: 0,
description: 'The status of the deal', description: 'The status of the deal',
}, },
] ],
}, },
// ---------------------------------- // ----------------------------------
@ -345,7 +345,7 @@ export const dealFields = [
default: 0, default: 0,
description: 'The status of the deal', description: 'The status of the deal',
}, },
] ],
}, },
// ---------------------------------- // ----------------------------------

View file

@ -247,7 +247,7 @@ export const ecomOrderFields = [
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'create' 'create',
], ],
resource: [ resource: [
'ecommerceOrder', 'ecommerceOrder',
@ -391,7 +391,7 @@ export const ecomOrderFields = [
description: 'The order number. This can be different than the externalid.', description: 'The order number. This can be different than the externalid.',
}, },
] ],
}, },
// ---------------------------------- // ----------------------------------
@ -632,7 +632,7 @@ export const ecomOrderFields = [
], ],
}, },
] ],
}, },
// ---------------------------------- // ----------------------------------

View file

@ -42,7 +42,7 @@ export async function activeCampaignApiRequest(this: IHookFunctions | IExecuteFu
method, method,
qs: query, qs: query,
uri: `${credentials.apiUrl}${endpoint}`, uri: `${credentials.apiUrl}${endpoint}`,
json: true json: true,
}; };
if (Object.keys(body).length !== 0) { if (Object.keys(body).length !== 0) {

View file

@ -228,5 +228,5 @@ export const tagFields = [
// ---------------------------------- // ----------------------------------
// tag:getAll // tag:getAll
// ---------------------------------- // ----------------------------------
...activeCampaignDefaultGetAllProperties('tag', 'getAll') ...activeCampaignDefaultGetAllProperties('tag', 'getAll'),
] as INodeProperties[]; ] as INodeProperties[];

View file

@ -169,5 +169,5 @@ export const allCurrencies = [
{ name: 'Yemeni Rial', value: 'yer' }, { name: 'Yemeni Rial', value: 'yer' },
{ name: 'South African Rand', value: 'zar' }, { name: 'South African Rand', value: 'zar' },
{ name: 'Zambian Kwacha', value: 'zmw' }, { name: 'Zambian Kwacha', value: 'zmw' },
{ name: 'Zimbabwean Dollar', value: 'zwl' } { name: 'Zimbabwean Dollar', value: 'zwl' },
]; ];

View file

@ -20,7 +20,7 @@ export async function acuitySchedulingApiRequest(this: IHookFunctions | IExecute
qs, qs,
body, body,
uri: uri ||`https://acuityscheduling.com/api/v1${resource}`, uri: uri ||`https://acuityscheduling.com/api/v1${resource}`,
json: true json: true,
}; };
try { try {

View file

@ -49,7 +49,7 @@ export class Affinity implements INodeType {
{ {
name: 'affinityApi', name: 'affinityApi',
required: true, required: true,
} },
], ],
properties: [ properties: [
{ {

View file

@ -29,7 +29,7 @@ export async function affinityApiRequest(this: IExecuteFunctions | IWebhookFunct
body, body,
qs: query, qs: query,
uri: uri || `${endpoint}${resource}`, uri: uri || `${endpoint}${resource}`,
json: true json: true,
}; };
if (!Object.keys(body).length) { if (!Object.keys(body).length) {
delete options.body; delete options.body;

View file

@ -62,7 +62,7 @@ export const organizationFields = [
], ],
operation: [ operation: [
'create', 'create',
] ],
}, },
}, },
description: 'The name of the organization.', description: 'The name of the organization.',
@ -80,7 +80,7 @@ export const organizationFields = [
], ],
operation: [ operation: [
'create', 'create',
] ],
}, },
}, },
description: 'The domain name of the organization.', description: 'The domain name of the organization.',
@ -130,7 +130,7 @@ export const organizationFields = [
], ],
operation: [ operation: [
'update', 'update',
] ],
}, },
}, },
description: 'Unique identifier for the organization.', description: 'Unique identifier for the organization.',
@ -176,7 +176,7 @@ export const organizationFields = [
default: [], default: [],
description: 'Persons that the new organization will be associated with.', description: 'Persons that the new organization will be associated with.',
}, },
] ],
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* organization:get */ /* organization:get */
@ -194,7 +194,7 @@ export const organizationFields = [
], ],
operation: [ operation: [
'get', 'get',
] ],
}, },
}, },
description: 'Unique identifier for the organization.', description: 'Unique identifier for the organization.',
@ -223,7 +223,7 @@ export const organizationFields = [
default: false, default: false,
description: 'When true, interaction dates will be present on the returned resources.', description: 'When true, interaction dates will be present on the returned resources.',
}, },
] ],
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* organization:getAll */ /* organization:getAll */
@ -300,7 +300,7 @@ export const organizationFields = [
default: false, default: false,
description: 'When true, interaction dates will be present on the returned resources.', description: 'When true, interaction dates will be present on the returned resources.',
}, },
] ],
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* organization:delete */ /* organization:delete */
@ -318,7 +318,7 @@ export const organizationFields = [
], ],
operation: [ operation: [
'delete', 'delete',
] ],
}, },
}, },
description: 'Unique identifier for the organization.', description: 'Unique identifier for the organization.',

View file

@ -62,7 +62,7 @@ export const personFields = [
], ],
operation: [ operation: [
'create', 'create',
] ],
}, },
}, },
description: 'The first name of the person.', description: 'The first name of the person.',
@ -80,7 +80,7 @@ export const personFields = [
], ],
operation: [ operation: [
'create', 'create',
] ],
}, },
}, },
description: 'The last name of the person.', description: 'The last name of the person.',
@ -130,7 +130,7 @@ export const personFields = [
], ],
operation: [ operation: [
'create', 'create',
] ],
}, },
}, },
placeholder: 'info@example.com', placeholder: 'info@example.com',
@ -152,7 +152,7 @@ export const personFields = [
], ],
operation: [ operation: [
'update', 'update',
] ],
}, },
}, },
description: 'Unique identifier for the person.', description: 'Unique identifier for the person.',
@ -198,7 +198,7 @@ export const personFields = [
default: [], default: [],
description: 'Organizations that the person is associated with.', description: 'Organizations that the person is associated with.',
}, },
] ],
}, },
{ {
displayName: 'Emails', displayName: 'Emails',
@ -216,7 +216,7 @@ export const personFields = [
], ],
operation: [ operation: [
'update', 'update',
] ],
}, },
}, },
placeholder: 'info@example.com', placeholder: 'info@example.com',
@ -238,7 +238,7 @@ export const personFields = [
], ],
operation: [ operation: [
'get', 'get',
] ],
}, },
}, },
description: 'Unique identifier for the person.', description: 'Unique identifier for the person.',
@ -267,7 +267,7 @@ export const personFields = [
default: false, default: false,
description: 'When true, interaction dates will be present on the returned resources.', description: 'When true, interaction dates will be present on the returned resources.',
}, },
] ],
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* person:getAll */ /* person:getAll */
@ -344,7 +344,7 @@ export const personFields = [
default: false, default: false,
description: 'When true, interaction dates will be present on the returned resources.', description: 'When true, interaction dates will be present on the returned resources.',
}, },
] ],
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* person:delete */ /* person:delete */
@ -362,7 +362,7 @@ export const personFields = [
], ],
operation: [ operation: [
'delete', 'delete',
] ],
}, },
}, },
description: 'Unique identifier for the person.', description: 'Unique identifier for the person.',

View file

@ -44,7 +44,7 @@ export class AgileCrm implements INodeType {
{ {
name: 'agileCrmApi', name: 'agileCrmApi',
required: true, required: true,
} },
], ],
properties: [ properties: [
// Node properties which the user gets displayed and // Node properties which the user gets displayed and
@ -56,15 +56,15 @@ export class AgileCrm implements INodeType {
options: [ options: [
{ {
name: 'Company', name: 'Company',
value: 'company' value: 'company',
}, },
{ {
name: 'Contact', name: 'Contact',
value: 'contact' value: 'contact',
}, },
{ {
name: 'Deal', name: 'Deal',
value: 'deal' value: 'deal',
}, },
], ],
default: 'contact', default: 'contact',
@ -80,7 +80,7 @@ export class AgileCrm implements INodeType {
// DEAL // DEAL
...dealOperations, ...dealOperations,
...dealFields ...dealFields,
], ],
}; };
@ -174,28 +174,28 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'first_name', name: 'first_name',
value: additionalFields.firstName as string value: additionalFields.firstName as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.lastName) { if (additionalFields.lastName) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'last_name', name: 'last_name',
value: additionalFields.lastName as string value: additionalFields.lastName as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.company) { if (additionalFields.company) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'company', name: 'company',
value: additionalFields.company as string value: additionalFields.company as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.title) { if (additionalFields.title) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'title', name: 'title',
value: additionalFields.title as string value: additionalFields.title as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.emailOptions) { if (additionalFields.emailOptions) {
@ -205,7 +205,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'email', name: 'email',
value: property.email as string value: property.email as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -216,7 +216,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'address', name: 'address',
value: property.address as string value: property.address as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -228,7 +228,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'phone', name: 'phone',
value: property.number as string value: property.number as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -237,7 +237,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'email', name: 'email',
value: additionalFields.email as string value: additionalFields.email as string,
} as IDataObject); } as IDataObject);
} }
@ -245,7 +245,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'address', name: 'address',
value: additionalFields.address as string value: additionalFields.address as string,
} as IDataObject); } as IDataObject);
} }
@ -253,7 +253,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'phone', name: 'phone',
value: additionalFields.phone as string value: additionalFields.phone as string,
} as IDataObject); } as IDataObject);
} }
@ -266,7 +266,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'webiste', name: 'webiste',
value: property.url as string value: property.url as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -278,7 +278,7 @@ export class AgileCrm implements INodeType {
type: 'CUSTOM', type: 'CUSTOM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: property.name, name: property.name,
value: property.value as string value: property.value as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -329,28 +329,28 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'first_name', name: 'first_name',
value: additionalFields.firstName as string value: additionalFields.firstName as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.lastName) { if (additionalFields.lastName) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'last_name', name: 'last_name',
value: additionalFields.lastName as string value: additionalFields.lastName as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.company) { if (additionalFields.company) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'company', name: 'company',
value: additionalFields.company as string value: additionalFields.company as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.title) { if (additionalFields.title) {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'title', name: 'title',
value: additionalFields.title as string value: additionalFields.title as string,
} as IDataObject); } as IDataObject);
} }
if (additionalFields.emailOptions) { if (additionalFields.emailOptions) {
@ -360,7 +360,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'email', name: 'email',
value: property.email as string value: property.email as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -371,7 +371,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'address', name: 'address',
value: property.address as string value: property.address as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -383,7 +383,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'phone', name: 'phone',
value: property.number as string value: property.number as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -392,7 +392,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'email', name: 'email',
value: additionalFields.email as string value: additionalFields.email as string,
} as IDataObject); } as IDataObject);
} }
@ -400,7 +400,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'address', name: 'address',
value: additionalFields.address as string value: additionalFields.address as string,
} as IDataObject); } as IDataObject);
} }
@ -408,7 +408,7 @@ export class AgileCrm implements INodeType {
properties.push({ properties.push({
type: 'SYSTEM', type: 'SYSTEM',
name: 'phone', name: 'phone',
value: additionalFields.phone as string value: additionalFields.phone as string,
} as IDataObject); } as IDataObject);
} }
@ -421,7 +421,7 @@ export class AgileCrm implements INodeType {
type: 'SYSTEM', type: 'SYSTEM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: 'webiste', name: 'webiste',
value: property.url as string value: property.url as string,
} as IDataObject); } as IDataObject);
}); });
} }
@ -432,7 +432,7 @@ export class AgileCrm implements INodeType {
type: 'CUSTOM', type: 'CUSTOM',
subtype: property.subtype as string, subtype: property.subtype as string,
name: property.name, name: property.name,
value: property.value as string value: property.value as string,
} as IDataObject); } as IDataObject);
}); });
} }

View file

@ -104,7 +104,7 @@ export const companyFields = [
false, false,
], ],
}, },
} },
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */
/* company:create */ /* company:create */
@ -206,29 +206,29 @@ export const companyFields = [
options: [ options: [
{ {
name: '0', name: '0',
value: 0 value: 0,
}, },
{ {
name: '1', name: '1',
value: 1 value: 1,
}, },
{ {
name: '2', name: '2',
value: 2 value: 2,
}, },
{ {
name: '3', name: '3',
value: 3 value: 3,
}, },
{ {
name: '4', name: '4',
value: 4 value: 4,
}, },
{ {
name: '5', name: '5',
value: 5 value: 5,
}, },
] ],
}, },
{ {
displayName: 'Tags', displayName: 'Tags',
@ -339,7 +339,7 @@ export const companyFields = [
type: 'string', type: 'string',
required: true, required: true,
default: '', default: '',
description: 'Property name.' description: 'Property name.',
}, },
{ {
displayName: 'Sub Type', displayName: 'Sub Type',
@ -653,7 +653,7 @@ export const companyFields = [
}, },
], ],
}, },
] ],
}, },
], ],
}, },

View file

@ -205,7 +205,7 @@ export const contactFields = [
}, },
{ {
name: 'Office', name: 'Office',
value: 'office' value: 'office',
}, },
], ],
}, },
@ -656,15 +656,15 @@ export const contactFields = [
options: [ options: [
{ {
name: 'Home', name: 'Home',
value: 'home' value: 'home',
}, },
{ {
name: 'Office', name: 'Office',
value: 'office' value: 'office',
}, },
{ {
name: 'Postal', name: 'Postal',
value: 'postal' value: 'postal',
}, },
], ],
}, },
@ -715,8 +715,8 @@ export const contactFields = [
{ {
name: 'Personal', name: 'Personal',
value: 'personal', value: 'personal',
} },
] ],
}, },
{ {
displayName: 'Email', displayName: 'Email',
@ -752,7 +752,7 @@ export const contactFields = [
description: 'Lead score of contact', description: 'Lead score of contact',
typeOptions: { typeOptions: {
minValue: 0, minValue: 0,
} },
}, },
{ {
displayName: 'Star Value', displayName: 'Star Value',
@ -966,7 +966,7 @@ export const contactFields = [
type: 'string', type: 'string',
required: true, required: true,
default: '', default: '',
description: 'Property name.' description: 'Property name.',
}, },
{ {
displayName: 'Sub Type', displayName: 'Sub Type',

View file

@ -143,7 +143,7 @@ export const dealFields = [
required: true, required: true,
typeOptions: { typeOptions: {
minValue: 0, minValue: 0,
maxValue: 1000000000000 maxValue: 1000000000000,
}, },
displayOptions: { displayOptions: {
show: { show: {
@ -210,7 +210,7 @@ export const dealFields = [
required: true, required: true,
typeOptions: { typeOptions: {
minValue: 0, minValue: 0,
maxValue: 100 maxValue: 100,
}, },
displayOptions: { displayOptions: {
show: { show: {
@ -318,7 +318,7 @@ export const dealFields = [
type: 'string', type: 'string',
required: true, required: true,
default: '', default: '',
description: 'Property name.' description: 'Property name.',
}, },
{ {
displayName: 'Value', displayName: 'Value',
@ -444,7 +444,7 @@ export const dealFields = [
type: 'number', type: 'number',
typeOptions: { typeOptions: {
minValue: 0, minValue: 0,
maxValue: 10000 maxValue: 10000,
}, },
default: '', default: '',
description: 'Expected Value of deal.', description: 'Expected Value of deal.',
@ -462,7 +462,7 @@ export const dealFields = [
type: 'number', type: 'number',
typeOptions: { typeOptions: {
minValue: 0, minValue: 0,
maxValue: 100 maxValue: 100,
}, },
default: 50, default: 50,
description: 'Expected Value of deal.', description: 'Expected Value of deal.',
@ -497,7 +497,7 @@ export const dealFields = [
type: 'string', type: 'string',
required: true, required: true,
default: '', default: '',
description: 'Property name.' description: 'Property name.',
}, },
{ {
displayName: 'Value', displayName: 'Value',
@ -510,6 +510,6 @@ export const dealFields = [
}, },
], ],
}, },
] ],
}, },
] as INodeProperties[]; ] as INodeProperties[];

View file

@ -25,7 +25,7 @@ export async function agileCrmApiRequest(this: IHookFunctions | IExecuteFunction
}, },
auth: { auth: {
username: credentials!.email as string, username: credentials!.email as string,
password: credentials!.apiKey as string password: credentials!.apiKey as string,
}, },
uri: uri || `https://${credentials!.subdomain}.agilecrm.com/dev/${endpoint}`, uri: uri || `https://${credentials!.subdomain}.agilecrm.com/dev/${endpoint}`,
json: true, json: true,

View file

@ -31,7 +31,7 @@ export class Airtable implements INodeType {
{ {
name: 'airtableApi', name: 'airtableApi',
required: true, required: true,
} },
], ],
properties: [ properties: [
{ {
@ -47,22 +47,22 @@ export class Airtable implements INodeType {
{ {
name: 'Delete', name: 'Delete',
value: 'delete', value: 'delete',
description: 'Delete data from a table' description: 'Delete data from a table',
}, },
{ {
name: 'List', name: 'List',
value: 'list', value: 'list',
description: 'List data from a table' description: 'List data from a table',
}, },
{ {
name: 'Read', name: 'Read',
value: 'read', value: 'read',
description: 'Read data from a table' description: 'Read data from a table',
}, },
{ {
name: 'Update', name: 'Update',
value: 'update', value: 'update',
description: 'Update data in a table' description: 'Update data in a table',
}, },
], ],
default: 'read', default: 'read',
@ -196,7 +196,7 @@ export class Airtable implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'list' 'list',
], ],
}, },
}, },
@ -259,13 +259,13 @@ export class Airtable implements INodeType {
{ {
name: 'DESC', name: 'DESC',
value: 'desc', value: 'desc',
description: 'Sort in descending order (large -> small)' description: 'Sort in descending order (large -> small)',
}, },
], ],
default: 'asc', default: 'asc',
description: 'The sort direction.', description: 'The sort direction.',
}, },
] ],
}, },
], ],
}, },

View file

@ -98,6 +98,6 @@ export async function apiRequestAllItems(this: IHookFunctions | IExecuteFunction
); );
return { return {
records: returnData records: returnData,
}; };
} }

View file

@ -59,7 +59,7 @@ export class Amqp implements INodeType {
}, },
], ],
}, },
] ],
}; };
async executeSingle(this: IExecuteSingleFunctions): Promise<INodeExecutionData> { async executeSingle(this: IExecuteSingleFunctions): Promise<INodeExecutionData> {
@ -107,7 +107,7 @@ export class Amqp implements INodeType {
const message = { const message = {
application_properties: headerProperties, application_properties: headerProperties,
body body,
}; };
const sendResult = context.sender.send(message); const sendResult = context.sender.send(message);

View file

@ -77,7 +77,7 @@ export class AmqpTrigger implements INodeType {
}, },
], ],
}, },
] ],
}; };
@ -109,7 +109,7 @@ export class AmqpTrigger implements INodeType {
port: credentials.port, port: credentials.port,
reconnect: true, // this id the default anyway reconnect: true, // this id the default anyway
reconnect_limit: 50, // try for max 50 times, based on a back-off algorithm reconnect_limit: 50, // try for max 50 times, based on a back-off algorithm
container_id: (durable ? clientname : null) container_id: (durable ? clientname : null),
}; };
if (credentials.username || credentials.password) { if (credentials.username || credentials.password) {
container.options.username = credentials.username; container.options.username = credentials.username;
@ -146,16 +146,16 @@ export class AmqpTrigger implements INodeType {
source: { source: {
address: sink, address: sink,
durable: 2, durable: 2,
expiry_policy: 'never' expiry_policy: 'never',
}, },
credit_window: 1 // prefetch 1 credit_window: 1, // prefetch 1
}; };
} else { } else {
clientOptions = { clientOptions = {
source: { source: {
address: sink, address: sink,
}, },
credit_window: 1 // prefetch 1 credit_window: 1, // prefetch 1
}; };
} }
connection.open_receiver(clientOptions); connection.open_receiver(clientOptions);

View file

@ -1218,7 +1218,7 @@ export class Asana implements INodeType {
} }
return returnData; return returnData;
} },
}, },
}; };

View file

@ -248,7 +248,7 @@ export class AsanaTrigger implements INodeType {
return { return {
workflowData: [ workflowData: [
this.helpers.returnJsonArray(req.body.events) this.helpers.returnJsonArray(req.body.events),
], ],
}; };
} }

View file

@ -63,7 +63,7 @@ export class Automizy implements INodeType {
}, },
], ],
default: 'contact', default: 'contact',
description: 'The resource to operate on.' description: 'The resource to operate on.',
}, },
...contactOperations, ...contactOperations,
@ -86,12 +86,12 @@ export class Automizy implements INodeType {
this, this,
'smartLists', 'smartLists',
'GET', 'GET',
`/smart-lists`, `/smart-lists`
); );
for (const list of lists) { for (const list of lists) {
returnData.push({ returnData.push({
name: list.name, name: list.name,
value: list.id value: list.id,
}); });
} }
return returnData; return returnData;
@ -109,7 +109,7 @@ export class Automizy implements INodeType {
for (const tag of tags) { for (const tag of tags) {
returnData.push({ returnData.push({
name: tag.name, name: tag.name,
value: tag.name value: tag.name,
}); });
} }
return returnData; return returnData;
@ -122,12 +122,12 @@ export class Automizy implements INodeType {
this, this,
'customFields', 'customFields',
'GET', 'GET',
'/custom-fields', '/custom-fields'
); );
for (const customField of customFields) { for (const customField of customFields) {
returnData.push({ returnData.push({
name: customField.name, name: customField.name,
value: customField.id value: customField.id,
}); });
} }
return returnData; return returnData;
@ -178,7 +178,7 @@ export class Automizy implements INodeType {
this, this,
'POST', 'POST',
`/smart-lists/${listId}/contacts`, `/smart-lists/${listId}/contacts`,
body, body
); );
} }
@ -188,7 +188,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call( responseData = await automizyApiRequest.call(
this, this,
'DELETE', 'DELETE',
`/contacts/${contactId}`, `/contacts/${contactId}`
); );
responseData = { success: true }; responseData = { success: true };
@ -200,7 +200,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call( responseData = await automizyApiRequest.call(
this, this,
'GET', 'GET',
`/contacts/${contactId}`, `/contacts/${contactId}`
); );
} }
@ -227,7 +227,7 @@ export class Automizy implements INodeType {
'GET', 'GET',
`/smart-lists/${listId}/contacts`, `/smart-lists/${listId}/contacts`,
{}, {},
qs, qs
); );
} else { } else {
@ -238,7 +238,7 @@ export class Automizy implements INodeType {
'GET', 'GET',
`/smart-lists/${listId}/contacts`, `/smart-lists/${listId}/contacts`,
{}, {},
qs, qs
); );
responseData = responseData.contacts; responseData = responseData.contacts;
@ -272,7 +272,7 @@ export class Automizy implements INodeType {
this, this,
'PATCH', 'PATCH',
`/contacts/${email}`, `/contacts/${email}`,
body, body
); );
} }
} }
@ -290,7 +290,7 @@ export class Automizy implements INodeType {
this, this,
'POST', 'POST',
`/smart-lists`, `/smart-lists`,
body, body
); );
} }
@ -300,7 +300,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call( responseData = await automizyApiRequest.call(
this, this,
'DELETE', 'DELETE',
`/smart-lists/${listId}`, `/smart-lists/${listId}`
); );
responseData = { success: true }; responseData = { success: true };
@ -312,7 +312,7 @@ export class Automizy implements INodeType {
responseData = await automizyApiRequest.call( responseData = await automizyApiRequest.call(
this, this,
'GET', 'GET',
`/smart-lists/${listId}`, `/smart-lists/${listId}`
); );
} }
@ -337,7 +337,7 @@ export class Automizy implements INodeType {
'GET', 'GET',
`/smart-lists`, `/smart-lists`,
{}, {},
qs, qs
); );
} else { } else {
@ -348,7 +348,7 @@ export class Automizy implements INodeType {
'GET', 'GET',
`/smart-lists`, `/smart-lists`,
{}, {},
qs, qs
); );
responseData = responseData.smartLists; responseData = responseData.smartLists;
@ -368,7 +368,7 @@ export class Automizy implements INodeType {
this, this,
'PATCH', 'PATCH',
`/smart-lists/${listId}`, `/smart-lists/${listId}`,
body, body
); );
} }
} }

View file

@ -204,7 +204,7 @@ export const contactFields = [
}, },
}, },
default: '', default: '',
description: 'Can be ID or email.' description: 'Can be ID or email.',
}, },
/* -------------------------------------------------------------------------- */ /* -------------------------------------------------------------------------- */

View file

@ -29,7 +29,7 @@ export class AwsLambda implements INodeType {
{ {
name: 'aws', name: 'aws',
required: true, required: true,
} },
], ],
properties: [ properties: [
{ {
@ -145,7 +145,7 @@ export class AwsLambda implements INodeType {
}); });
} }
return returnData; return returnData;
} },
}, },
}; };
@ -173,7 +173,7 @@ export class AwsLambda implements INodeType {
{ {
'X-Amz-Invocation-Type': params.InvocationType, 'X-Amz-Invocation-Type': params.InvocationType,
'Content-Type': 'application/x-amz-json-1.0', 'Content-Type': 'application/x-amz-json-1.0',
}, }
); );
} catch (err) { } catch (err) {
throw new Error(`AWS Error: ${err}`); throw new Error(`AWS Error: ${err}`);

View file

@ -29,7 +29,7 @@ export class AwsSns implements INodeType {
{ {
name: 'aws', name: 'aws',
required: true, required: true,
} },
], ],
properties: [ properties: [
{ {
@ -133,7 +133,7 @@ export class AwsSns implements INodeType {
} }
return returnData; return returnData;
} },
}, },
}; };

View file

@ -93,7 +93,7 @@ export class AwsSnsTrigger implements INodeType {
}); });
} }
return returnData; return returnData;
} },
}, },
}; };
// @ts-ignore // @ts-ignore

View file

@ -96,7 +96,7 @@ export class AwsRekognition implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'analyze' 'analyze',
], ],
resource: [ resource: [
'image', 'image',
@ -110,7 +110,7 @@ export class AwsRekognition implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'analyze' 'analyze',
], ],
resource: [ resource: [
'image', 'image',
@ -132,7 +132,7 @@ export class AwsRekognition implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'analyze' 'analyze',
], ],
resource: [ resource: [
'image', 'image',
@ -153,7 +153,7 @@ export class AwsRekognition implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'analyze' 'analyze',
], ],
resource: [ resource: [
'image', 'image',

View file

@ -65,7 +65,7 @@ export class AwsS3 implements INodeType {
{ {
name: 'aws', name: 'aws',
required: true, required: true,
} },
], ],
properties: [ properties: [
{ {
@ -148,7 +148,7 @@ export class AwsS3 implements INodeType {
'$': { '$': {
xmlns: 'http://s3.amazonaws.com/doc/2006-03-01/', xmlns: 'http://s3.amazonaws.com/doc/2006-03-01/',
}, },
} },
}; };
let data = ''; let data = '';
// if credentials has the S3 defaul region (us-east-1) the body (XML) does not have to be sent. // if credentials has the S3 defaul region (us-east-1) the body (XML) does not have to be sent.
@ -282,7 +282,7 @@ export class AwsS3 implements INodeType {
for (const childObject of responseData) { for (const childObject of responseData) {
//@ts-ignore //@ts-ignore
(body.Delete.Object as IDataObject[]).push({ (body.Delete.Object as IDataObject[]).push({
Key: childObject.Key as string Key: childObject.Key as string,
}); });
} }

View file

@ -113,19 +113,19 @@ export const fileFields = [
options: [ options: [
{ {
name: 'Authenticated Read', name: 'Authenticated Read',
value: 'authenticatedRead' value: 'authenticatedRead',
}, },
{ {
name: 'AWS Exec Read', name: 'AWS Exec Read',
value: 'awsExecRead' value: 'awsExecRead',
}, },
{ {
name: 'Bucket Owner Full Control', name: 'Bucket Owner Full Control',
value: 'bucketOwnerFullControl' value: 'bucketOwnerFullControl',
}, },
{ {
name: 'Bucket Owner Read', name: 'Bucket Owner Read',
value: 'bucketOwnerRead' value: 'bucketOwnerRead',
}, },
{ {
name: 'Private', name: 'Private',
@ -133,15 +133,15 @@ export const fileFields = [
}, },
{ {
name: 'Public Read', name: 'Public Read',
value: 'publicRead' value: 'publicRead',
}, },
{ {
name: 'Public Read Write', name: 'Public Read Write',
value: 'publicReadWrite' value: 'publicReadWrite',
}, },
], ],
default: 'private', default: 'private',
description: 'The canned ACL to apply to the object.' description: 'The canned ACL to apply to the object.',
}, },
{ {
displayName: 'Grant Full Control', displayName: 'Grant Full Control',
@ -399,7 +399,7 @@ export const fileFields = [
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'upload' 'upload',
], ],
resource: [ resource: [
'file', 'file',
@ -416,13 +416,13 @@ export const fileFields = [
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'upload' 'upload',
], ],
resource: [ resource: [
'file', 'file',
], ],
binaryData: [ binaryData: [
false false,
], ],
}, },
}, },
@ -438,13 +438,13 @@ export const fileFields = [
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'upload' 'upload',
], ],
resource: [ resource: [
'file', 'file',
], ],
binaryData: [ binaryData: [
true true,
], ],
}, },
@ -476,19 +476,19 @@ export const fileFields = [
options: [ options: [
{ {
name: 'Authenticated Read', name: 'Authenticated Read',
value: 'authenticatedRead' value: 'authenticatedRead',
}, },
{ {
name: 'AWS Exec Read', name: 'AWS Exec Read',
value: 'awsExecRead' value: 'awsExecRead',
}, },
{ {
name: 'Bucket Owner Full Control', name: 'Bucket Owner Full Control',
value: 'bucketOwnerFullControl' value: 'bucketOwnerFullControl',
}, },
{ {
name: 'Bucket Owner Read', name: 'Bucket Owner Read',
value: 'bucketOwnerRead' value: 'bucketOwnerRead',
}, },
{ {
name: 'Private', name: 'Private',
@ -496,15 +496,15 @@ export const fileFields = [
}, },
{ {
name: 'Public Read', name: 'Public Read',
value: 'publicRead' value: 'publicRead',
}, },
{ {
name: 'Public Read Write', name: 'Public Read Write',
value: 'publicReadWrite' value: 'publicReadWrite',
}, },
], ],
default: 'private', default: 'private',
description: 'The canned ACL to apply to the object.' description: 'The canned ACL to apply to the object.',
}, },
{ {
displayName: 'Grant Full Control', displayName: 'Grant Full Control',
@ -705,7 +705,7 @@ export const fileFields = [
description: '', description: '',
}, },
], ],
} },
], ],
description: 'Optional extra headers to add to the message (most headers are allowed).', description: 'Optional extra headers to add to the message (most headers are allowed).',
}, },
@ -755,7 +755,7 @@ export const fileFields = [
displayOptions: { displayOptions: {
show: { show: {
operation: [ operation: [
'download' 'download',
], ],
resource: [ resource: [
'file', 'file',

View file

@ -97,7 +97,7 @@ export const folderFields = [
name: 'parentFolderKey', name: 'parentFolderKey',
type: 'string', type: 'string',
default: '', default: '',
description: 'Parent folder you want to create the folder in' description: 'Parent folder you want to create the folder in',
}, },
{ {
displayName: 'Requester Pays', displayName: 'Requester Pays',
@ -141,7 +141,7 @@ export const folderFields = [
}, },
], ],
default: 'standard', default: 'standard',
description: 'Amazon S3 storage classes.' description: 'Amazon S3 storage classes.',
}, },
], ],
}, },

View file

@ -585,7 +585,7 @@ export class AwsSes implements INodeType {
} }
return returnData; return returnData;
} },
}, },
}; };
@ -756,7 +756,7 @@ export class AwsSes implements INodeType {
const params = [ const params = [
`Template.TemplateName=${templateName}`, `Template.TemplateName=${templateName}`,
`Template.SubjectPart=${subjectPart}`, `Template.SubjectPart=${subjectPart}`,
`Template.HtmlPart=<h1>${htmlPart}</h1>` `Template.HtmlPart=<h1>${htmlPart}</h1>`,
]; ];
if (additionalFields.textPart) { if (additionalFields.textPart) {

View file

@ -181,7 +181,7 @@ export const imageFields = [
type: 'string', type: 'string',
default: '', default: '',
description: 'Replacement image url you want to use (must be publicly viewable)', description: 'Replacement image url you want to use (must be publicly viewable)',
} },
], ],
}, },
], ],
@ -202,7 +202,7 @@ export const imageFields = [
], ],
operation: [ operation: [
'get', 'get',
] ],
}, },
}, },
description: 'Unique identifier for the image.', description: 'Unique identifier for the image.',

View file

@ -49,7 +49,7 @@ export const templateFields = [
], ],
operation: [ operation: [
'get', 'get',
] ],
}, },
}, },
description: 'Unique identifier for the template.', description: 'Unique identifier for the template.',

View file

@ -35,7 +35,7 @@ export class BitbucketTrigger implements INodeType {
{ {
name: 'bitbucketApi', name: 'bitbucketApi',
required: true, required: true,
} },
], ],
webhooks: [ webhooks: [
{ {
@ -75,9 +75,9 @@ export class BitbucketTrigger implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
resource: [ resource: [
'user' 'user',
] ],
} },
}, },
typeOptions: { typeOptions: {
loadOptionsMethod: 'getUsersEvents', loadOptionsMethod: 'getUsersEvents',
@ -94,9 +94,9 @@ export class BitbucketTrigger implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
resource: [ resource: [
'team' 'team',
] ],
} },
}, },
typeOptions: { typeOptions: {
loadOptionsMethod: 'getTeams', loadOptionsMethod: 'getTeams',
@ -112,9 +112,9 @@ export class BitbucketTrigger implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
resource: [ resource: [
'team' 'team',
] ],
} },
}, },
typeOptions: { typeOptions: {
loadOptionsMethod: 'getTeamEvents', loadOptionsMethod: 'getTeamEvents',
@ -131,9 +131,9 @@ export class BitbucketTrigger implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
resource: [ resource: [
'repository' 'repository',
] ],
} },
}, },
typeOptions: { typeOptions: {
loadOptionsMethod: 'getRepositories', loadOptionsMethod: 'getRepositories',
@ -149,9 +149,9 @@ export class BitbucketTrigger implements INodeType {
displayOptions: { displayOptions: {
show: { show: {
resource: [ resource: [
'repository' 'repository',
] ],
} },
}, },
typeOptions: { typeOptions: {
loadOptionsMethod: 'getRepositoriesEvents', loadOptionsMethod: 'getRepositoriesEvents',
@ -351,7 +351,7 @@ export class BitbucketTrigger implements INodeType {
} }
return { return {
workflowData: [ workflowData: [
this.helpers.returnJsonArray(req.body) this.helpers.returnJsonArray(req.body),
], ],
}; };
} }

View file

@ -21,7 +21,7 @@ export async function bitbucketApiRequest(this: IHookFunctions | IExecuteFunctio
qs, qs,
body, body,
uri: uri ||`https://api.bitbucket.org/2.0${resource}`, uri: uri ||`https://api.bitbucket.org/2.0${resource}`,
json: true json: true,
}; };
options = Object.assign({}, options, option); options = Object.assign({}, options, option);
if (Object.keys(options.body).length === 0) { if (Object.keys(options.body).length === 0) {

Some files were not shown because too many files have changed in this diff Show more