refactor(core): Replace lodash's "soft-deprecated" individual packages with lodash to resolve CVE (no-changelog) (#6450)

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
This commit is contained in:
Chris Wu 2023-06-16 07:26:35 -07:00 committed by GitHub
parent 16f707d5c4
commit 1111c915f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
101 changed files with 213 additions and 1086 deletions

View file

@ -77,22 +77,7 @@
"@types/json-diff": "^0.5.1",
"@types/jsonwebtoken": "^9.0.1",
"@types/localtunnel": "^1.9.0",
"@types/lodash.debounce": "^4.0.7",
"@types/lodash.difference": "^4",
"@types/lodash.get": "^4.4.6",
"@types/lodash.intersection": "^4.4.7",
"@types/lodash.iteratee": "^4.7.7",
"@types/lodash.merge": "^4.6.6",
"@types/lodash.omit": "^4.5.7",
"@types/lodash.pick": "^4.4.7",
"@types/lodash.remove": "^4.7.7",
"@types/lodash.set": "^4.3.6",
"@types/lodash.split": "^4.4.7",
"@types/lodash.unionby": "^4.8.7",
"@types/lodash.uniq": "^4.5.7",
"@types/lodash.uniqby": "^4.7.7",
"@types/lodash.unset": "^4.5.7",
"@types/lodash.without": "^4.4.7",
"@types/lodash": "^4.14.195",
"@types/parseurl": "^1.3.1",
"@types/passport-jwt": "^3.0.6",
"@types/psl": "^1.1.0",
@ -109,7 +94,6 @@
"@types/yamljs": "^0.2.31",
"chokidar": "^3.5.2",
"concurrently": "^5.1.0",
"lodash.debounce": "^4.0.8",
"mock-jwks": "^1.0.9",
"nodemon": "^2.0.2",
"run-script-os": "^1.0.7",
@ -161,21 +145,7 @@
"jwks-rsa": "^3.0.1",
"ldapts": "^4.2.6",
"localtunnel": "^2.0.0",
"lodash.difference": "^4",
"lodash.get": "^4.4.2",
"lodash.intersection": "^4.4.0",
"lodash.iteratee": "^4.7.0",
"lodash.merge": "^4.6.2",
"lodash.omit": "^4.5.0",
"lodash.pick": "^4.4.0",
"lodash.remove": "^4.7.0",
"lodash.set": "^4.3.2",
"lodash.split": "^4.4.2",
"lodash.unionby": "^4.8.0",
"lodash.uniq": "^4.5.0",
"lodash.uniqby": "^4.7.0",
"lodash.unset": "^4.5.2",
"lodash.without": "^4.4.0",
"lodash": "^4.17.21",
"luxon": "^3.3.0",
"mysql2": "~2.3.3",
"n8n-core": "workspace:*",

View file

@ -7,7 +7,7 @@
/* eslint-disable @typescript-eslint/no-unsafe-call */
import { Credentials, NodeExecuteFunctions } from 'n8n-core';
import get from 'lodash.get';
import get from 'lodash/get';
import type {
ICredentialDataDecryptedObject,

View file

@ -1,6 +1,6 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import curlconverter from 'curlconverter';
import get from 'lodash.get';
import get from 'lodash/get';
import type { IDataObject } from 'n8n-workflow';
import { jsonParse } from 'n8n-workflow';

View file

@ -1,4 +1,4 @@
import uniq from 'lodash.uniq';
import uniq from 'lodash/uniq';
import glob from 'fast-glob';
import type { DirectoryLoader, Types } from 'n8n-core';
import {

View file

@ -1,6 +1,6 @@
import type { FindManyOptions, UpdateResult } from 'typeorm';
import { In } from 'typeorm';
import intersection from 'lodash.intersection';
import intersection from 'lodash/intersection';
import type { INode } from 'n8n-workflow';
import { v4 as uuid } from 'uuid';

View file

@ -11,7 +11,7 @@ export const reloadNodesAndCredentials = async (
push: Push,
) => {
// eslint-disable-next-line import/no-extraneous-dependencies
const { default: debounce } = await import('lodash.debounce');
const { default: debounce } = await import('lodash/debounce');
// eslint-disable-next-line import/no-extraneous-dependencies
const { watch } = await import('chokidar');

View file

@ -14,7 +14,7 @@
/* eslint-disable @typescript-eslint/no-non-null-assertion */
/* eslint-disable prefer-destructuring */
import type express from 'express';
import get from 'lodash.get';
import get from 'lodash/get';
import stream from 'stream';
import { promisify } from 'util';

View file

@ -42,7 +42,7 @@ import {
WorkflowHooks,
} from 'n8n-workflow';
import pick from 'lodash.pick';
import pick from 'lodash/pick';
import type { FindOptionsWhere } from 'typeorm';
import { LessThanOrEqual, In } from 'typeorm';
import { DateUtils } from 'typeorm/util/DateUtils';

View file

@ -31,7 +31,7 @@ import config from '@/config';
import type { WorkflowEntity } from '@db/entities/WorkflowEntity';
import type { User } from '@db/entities/User';
import { RoleRepository } from '@db/repositories';
import omit from 'lodash.omit';
import omit from 'lodash/omit';
import { PermissionChecker } from './UserManagement/PermissionChecker';
import { isWorkflowIdValid } from './utils';
import { UserService } from './user/user.service';

View file

@ -6,7 +6,7 @@ import type { ITaskData } from 'n8n-workflow';
import { sleep } from 'n8n-workflow';
import { sep } from 'path';
import { diff } from 'json-diff';
import pick from 'lodash.pick';
import pick from 'lodash/pick';
import { ActiveExecutions } from '@/ActiveExecutions';
import * as Db from '@/Db';

View file

@ -1,4 +1,4 @@
import pick from 'lodash.pick';
import pick from 'lodash/pick';
import { Authorized, Get, Post, Put, RestController } from '@/decorators';
import { getLdapConfig, getLdapSynchronizations, updateLdapConfig } from '@/Ldap/helpers';
import { LdapService } from '@/Ldap/LdapService.ee';

View file

@ -1,5 +1,5 @@
import { readFile } from 'fs/promises';
import get from 'lodash.get';
import get from 'lodash/get';
import { Request } from 'express';
import type { INodeTypeDescription, INodeTypeNameVersion } from 'n8n-workflow';
import { Authorized, Post, RestController } from '@/decorators';

View file

@ -2,11 +2,11 @@ import type { ClientOAuth2Options } from '@n8n/client-oauth2';
import { ClientOAuth2 } from '@n8n/client-oauth2';
import Csrf from 'csrf';
import express from 'express';
import get from 'lodash.get';
import omit from 'lodash.omit';
import set from 'lodash.set';
import split from 'lodash.split';
import unset from 'lodash.unset';
import get from 'lodash/get';
import omit from 'lodash/omit';
import set from 'lodash/set';
import split from 'lodash/split';
import unset from 'lodash/unset';
import { Credentials, UserSettings } from 'n8n-core';
import type {
WorkflowExecuteMode,

View file

@ -29,7 +29,7 @@ import { WorkflowEntity } from '@/databases/entities/WorkflowEntity';
import { WorkflowTagMapping } from '@/databases/entities/WorkflowTagMapping';
import { TagEntity } from '@/databases/entities/TagEntity';
import { ActiveWorkflowRunner } from '../../ActiveWorkflowRunner';
import without from 'lodash.without';
import without from 'lodash/without';
import type { VersionControllPullOptions } from './types/versionControlPullWorkFolder';
import { versionControlFoldersExistCheck } from './versionControlHelper.ee';
import { In } from 'typeorm';

View file

@ -15,7 +15,7 @@ import {
messageEventBusDestinationFromDb,
incrementPrometheusMetric,
} from '../MessageEventBusDestination/Helpers.ee';
import uniqby from 'lodash.uniqby';
import uniqby from 'lodash/uniqBy';
import type { EventMessageConfirmSource } from '../EventMessageClasses/EventMessageConfirm';
import type { EventMessageAuditOptions } from '../EventMessageClasses/EventMessageAudit';
import { EventMessageAudit } from '../EventMessageClasses/EventMessageAudit';

View file

@ -7,7 +7,7 @@ import { Worker } from 'worker_threads';
import { createReadStream, existsSync, rmSync } from 'fs';
import readline from 'readline';
import { jsonParse, LoggerProxy } from 'n8n-workflow';
import remove from 'lodash.remove';
import remove from 'lodash/remove';
import config from '@/config';
import { getEventMessageObjectByType } from '../EventMessageClasses/Helpers';
import type { EventMessageReturnMode } from '../MessageEventBus/MessageEventBus';

View file

@ -4,7 +4,7 @@ import type { INode, IPinData, JsonObject } from 'n8n-workflow';
import { NodeApiError, jsonParse, LoggerProxy, Workflow } from 'n8n-workflow';
import type { FindOptionsSelect, FindOptionsWhere, UpdateResult } from 'typeorm';
import { In } from 'typeorm';
import pick from 'lodash.pick';
import pick from 'lodash/pick';
import { v4 as uuid } from 'uuid';
import { ActiveWorkflowRunner } from '@/ActiveWorkflowRunner';
import * as Db from '@/Db';

View file

@ -5,7 +5,7 @@ import { existsSync } from 'fs';
import bodyParser from 'body-parser';
import { CronJob } from 'cron';
import express from 'express';
import set from 'lodash.set';
import set from 'lodash/set';
import { BinaryDataManager, UserSettings } from 'n8n-core';
import type {
ICredentialType,

View file

@ -38,8 +38,7 @@
"@types/cron": "~1.7.1",
"@types/crypto-js": "^4.0.1",
"@types/express": "^4.17.6",
"@types/lodash.get": "^4.4.6",
"@types/lodash.pick": "^4.4.7",
"@types/lodash": "^4.14.195",
"@types/mime-types": "^2.1.0",
"@types/request-promise-native": "~1.0.15",
"@types/uuid": "^8.3.2"
@ -54,8 +53,7 @@
"file-type": "^16.5.4",
"flatted": "^3.2.4",
"form-data": "^4.0.0",
"lodash.get": "^4.4.2",
"lodash.pick": "^4.4.0",
"lodash": "^4.17.21",
"mime-types": "^2.1.27",
"n8n-workflow": "workspace:*",
"oauth-1.0a": "^2.2.6",

View file

@ -79,7 +79,7 @@ import {
validateFieldType,
} from 'n8n-workflow';
import pick from 'lodash.pick';
import pick from 'lodash/pick';
import { Agent } from 'https';
import { IncomingMessage } from 'http';
import { stringify } from 'qs';
@ -92,7 +92,7 @@ import type {
} from '@n8n/client-oauth2';
import { ClientOAuth2 } from '@n8n/client-oauth2';
import crypto, { createHmac } from 'crypto';
import get from 'lodash.get';
import get from 'lodash/get';
import type { Request, Response } from 'express';
import FormData from 'form-data';
import path from 'path';

View file

@ -37,7 +37,7 @@ import type {
WorkflowExecuteMode,
} from 'n8n-workflow';
import { LoggerProxy as Logger, WorkflowOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
import * as NodeExecuteFunctions from './NodeExecuteFunctions';
export class WorkflowExecute {

View file

@ -1,4 +1,4 @@
import set from 'lodash.set';
import set from 'lodash/set';
import type {
ICredentialDataDecryptedObject,

View file

@ -2,8 +2,8 @@ import type { IDataObject, IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-
import type { OptionsWithUri } from 'request';
import flow from 'lodash.flow';
import omit from 'lodash.omit';
import flow from 'lodash/flow';
import omit from 'lodash/omit';
import type {
AllFieldsUi,

View file

@ -8,7 +8,7 @@ import type {
INodePropertyOptions,
} from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
/**
* Make an API request to Asana

View file

@ -12,7 +12,7 @@ import { jsonParse, NodeOperationError } from 'n8n-workflow';
import { awsApiRequestSOAP } from './GenericFunctions';
import get from 'lodash.get';
import get from 'lodash/get';
export class AwsSnsTrigger implements INodeType {
description: INodeTypeDescription = {

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import type {
IDataObject,

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import { parseString } from 'xml2js';

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import { parseString } from 'xml2js';

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import { parseString } from 'xml2js';

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import { parseString } from 'xml2js';

View file

@ -11,7 +11,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function awsApiRequest(
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions | IWebhookFunctions,

View file

@ -16,7 +16,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
function getEndpointForService(
service: string,

View file

@ -32,8 +32,8 @@ import type {
} from './descriptions/MemberDescription';
import { memberFields, memberOperations } from './descriptions/MemberDescription';
import isEmpty from 'lodash.isempty';
import partialRight from 'lodash.partialright';
import isEmpty from 'lodash/isEmpty';
import partialRight from 'lodash/partialRight';
export class Bitwarden implements INodeType {
description: INodeTypeDescription = {

View file

@ -12,7 +12,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import upperFirst from 'lodash.upperfirst';
import upperFirst from 'lodash/upperFirst';
import { createHash } from 'crypto';

View file

@ -1,14 +1,14 @@
import type { IDataObject, INodeExecutionData } from 'n8n-workflow';
import difference from 'lodash.difference';
import get from 'lodash.get';
import intersection from 'lodash.intersection';
import isEmpty from 'lodash.isempty';
import omit from 'lodash.omit';
import unset from 'lodash.unset';
import difference from 'lodash/difference';
import get from 'lodash/get';
import intersection from 'lodash/intersection';
import isEmpty from 'lodash/isEmpty';
import omit from 'lodash/omit';
import unset from 'lodash/unset';
import { cloneDeep } from 'lodash';
import set from 'lodash.set';
import union from 'lodash.union';
import set from 'lodash/set';
import union from 'lodash/union';
import { fuzzyCompare } from '../../utils/utilities';
type PairToMatch = {

View file

@ -14,8 +14,8 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import flow from 'lodash.flow';
import omit from 'lodash.omit';
import flow from 'lodash/flow';
import omit from 'lodash/omit';
import type {
AddressFixedCollection,

View file

@ -16,7 +16,7 @@ import { responderFields, respondersOperations } from './ResponderDescription';
import { jobFields, jobOperations } from './JobDescription';
import upperFirst from 'lodash.upperfirst';
import upperFirst from 'lodash/upperFirst';
import type { IJob } from './AnalyzerInterface';

View file

@ -1,4 +1,4 @@
import set from 'lodash.set';
import set from 'lodash/set';
import type {
IExecuteFunctions,

View file

@ -7,7 +7,7 @@ import type {
IHttpRequestOptions,
} from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function customerIoApiRequest(
this: IHookFunctions | IExecuteFunctions | ILoadOptionsFunctions,

View file

@ -12,7 +12,7 @@ import type {
import { deepCopy, NodeOperationError } from 'n8n-workflow';
import set from 'lodash.set';
import set from 'lodash/set';
import moment from 'moment-timezone';

View file

@ -1,6 +1,6 @@
import flow from 'lodash.flow';
import sortBy from 'lodash.sortby';
import uniqBy from 'lodash.uniqby';
import flow from 'lodash/flow';
import sortBy from 'lodash/sortBy';
import uniqBy from 'lodash/uniqBy';
export type DocumentProperties = {
customProperty: Array<{ field: string; value: string }>;

View file

@ -13,7 +13,7 @@ import { documentFields, documentOperations, indexFields, indexOperations } from
import type { DocumentGetAllOptions, FieldsUiValues } from './types';
import omit from 'lodash.omit';
import omit from 'lodash/omit';
export class Elasticsearch implements INodeType {
description: INodeTypeDescription = {

View file

@ -21,8 +21,8 @@ import { connect as imapConnect, getParts } from 'imap-simple';
import type { Source as ParserSource } from 'mailparser';
import { simpleParser } from 'mailparser';
import isEmpty from 'lodash.isempty';
import find from 'lodash.find';
import isEmpty from 'lodash/isEmpty';
import find from 'lodash/find';
export async function parseRawEmail(
this: ITriggerFunctions,

View file

@ -20,8 +20,8 @@ import { connect as imapConnect, getParts } from 'imap-simple';
import type { Source as ParserSource } from 'mailparser';
import { simpleParser } from 'mailparser';
import isEmpty from 'lodash.isempty';
import find from 'lodash.find';
import isEmpty from 'lodash/isEmpty';
import find from 'lodash/find';
import type { ICredentialsDataImap } from '../../../credentials/Imap.credentials';
import { isCredentialsDataImap } from '../../../credentials/Imap.credentials';

View file

@ -13,7 +13,7 @@ import { campaignFields, campaignOperations } from './CampaignDescription';
import { contactListFields, contactListOperations } from './ContactListDescription';
import isEmpty from 'lodash.isempty';
import isEmpty from 'lodash/isEmpty';
export class Emelia implements INodeType {
description: INodeTypeDescription = {

View file

@ -16,7 +16,7 @@ import type {
import type { OptionsWithUri } from 'request';
import omit from 'lodash.omit';
import { omit } from 'lodash';
export async function freshserviceApiRequest(
this: IExecuteFunctions | IHookFunctions | ILoadOptionsFunctions,

View file

@ -15,7 +15,7 @@ import type {
ViewsResponse,
} from './types';
import omit from 'lodash.omit';
import omit from 'lodash/omit';
export async function freshworksCrmApiRequest(
this: IExecuteFunctions | ILoadOptionsFunctions,

View file

@ -35,8 +35,8 @@ import {
loadWebinarSessions,
} from './GenericFunctions';
import isEmpty from 'lodash.isempty';
import omit from 'lodash.omit';
import isEmpty from 'lodash/isEmpty';
import omit from 'lodash/omit';
import moment from 'moment-timezone';

View file

@ -17,7 +17,7 @@ import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import { DateTime } from 'luxon';
import isEmpty from 'lodash.isempty';
import isEmpty from 'lodash/isEmpty';
export interface IEmail {
from?: string;

View file

@ -28,7 +28,7 @@ import { labelFields, labelOperations } from './LabelDescription';
import { draftFields, draftOperations } from './DraftDescription';
import isEmpty from 'lodash.isempty';
import isEmpty from 'lodash/isEmpty';
import { oldVersionNotice } from '../../../../utils/descriptions';

View file

@ -3,8 +3,8 @@ import { apiRequest } from './v2/transport';
import type { SheetDataRow, SheetRangeData } from './v2/helpers/GoogleSheets.types';
import * as XLSX from 'xlsx';
import isEqual from 'lodash.isequal';
import zip from 'lodash.zip';
import isEqual from 'lodash/isEqual';
import zip from 'lodash/zip';
export const BINARY_MIME_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';

View file

@ -5,7 +5,7 @@ import { googleApiRequest } from './GenericFunctions';
import { utils as xlsxUtils } from 'xlsx';
import get from 'lodash.get';
import get from 'lodash/get';
export interface ISheetOptions {
scope: string[];

View file

@ -7,7 +7,7 @@ import type {
import { NodeOperationError } from 'n8n-workflow';
import { apiRequest } from '../transport';
import { utils as xlsxUtils } from 'xlsx';
import get from 'lodash.get';
import get from 'lodash/get';
import type {
ILookupValues,
ISheetUpdateData,

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function helpscoutApiRequest(
this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IHookFunctions,

View file

@ -8,7 +8,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
type Cheerio = ReturnType<typeof cheerio>;

View file

@ -1,7 +1,7 @@
import type { IDataObject, INodeExecutionData, IOAuth2Options } from 'n8n-workflow';
import type { OptionsWithUri } from 'request-promise-native';
import set from 'lodash.set';
import set from 'lodash/set';
export type BodyParameter = { name: string; value: string };

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export const eventID: { [key: string]: string } = {
create_client: '1',

View file

@ -12,16 +12,16 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import isEmpty from 'lodash.isempty';
import isEqual from 'lodash.isequal';
import isObject from 'lodash.isobject';
import lt from 'lodash.lt';
import merge from 'lodash.merge';
import pick from 'lodash.pick';
import reduce from 'lodash.reduce';
import set from 'lodash.set';
import unset from 'lodash.unset';
import get from 'lodash/get';
import isEmpty from 'lodash/isEmpty';
import isEqual from 'lodash/isEqual';
import isObject from 'lodash/isObject';
import lt from 'lodash/lt';
import merge from 'lodash/merge';
import pick from 'lodash/pick';
import reduce from 'lodash/reduce';
import set from 'lodash/set';
import unset from 'lodash/unset';
const compareItems = (
obj: INodeExecutionData,

View file

@ -7,7 +7,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
type AggregationType =
| 'append'

View file

@ -12,16 +12,16 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError, deepCopy } from 'n8n-workflow';
import get from 'lodash.get';
import isEmpty from 'lodash.isempty';
import isEqual from 'lodash.isequal';
import isObject from 'lodash.isobject';
import lt from 'lodash.lt';
import merge from 'lodash.merge';
import pick from 'lodash.pick';
import reduce from 'lodash.reduce';
import set from 'lodash.set';
import unset from 'lodash.unset';
import get from 'lodash/get';
import isEmpty from 'lodash/isEmpty';
import isEqual from 'lodash/isEqual';
import isObject from 'lodash/isObject';
import lt from 'lodash/lt';
import merge from 'lodash/merge';
import pick from 'lodash/pick';
import reduce from 'lodash/reduce';
import set from 'lodash/set';
import unset from 'lodash/unset';
const compareItems = (
obj: INodeExecutionData,

View file

@ -7,7 +7,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
type AggregationType =
| 'append'

View file

@ -1,5 +1,5 @@
import type { Readable } from 'stream';
import mergeWith from 'lodash.mergewith';
import mergeWith from 'lodash/mergeWith';
import type {
IBinaryKeyData,

View file

@ -9,21 +9,21 @@ import type {
IWebhookFunctions,
} from 'n8n-workflow';
import set from 'lodash.set';
import concat from 'lodash.concat';
import split from 'lodash.split';
import every from 'lodash.every';
import toString from 'lodash.tostring';
import toNumber from 'lodash.tonumber';
import isString from 'lodash.isstring';
import compact from 'lodash.compact';
import first from 'lodash.first';
import last from 'lodash.last';
import clone from 'lodash.clone';
import some from 'lodash.some';
import isArray from 'lodash.isarray';
import trim from 'lodash.trim';
import escapeRegExp from 'lodash.escaperegexp';
import set from 'lodash/set';
import concat from 'lodash/concat';
import split from 'lodash/split';
import every from 'lodash/every';
import toString from 'lodash/toString';
import toNumber from 'lodash/toNumber';
import isString from 'lodash/isString';
import compact from 'lodash/compact';
import first from 'lodash/first';
import last from 'lodash/last';
import clone from 'lodash/clone';
import some from 'lodash/some';
import isArray from 'lodash/isArray';
import trim from 'lodash/trim';
import escapeRegExp from 'lodash/escapeRegExp';
export async function koBoToolboxApiRequest(
this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions,

View file

@ -22,8 +22,8 @@ import {
import { lemlistApiRequest, lemlistApiRequestAllItems } from './GenericFunctions';
import isEmpty from 'lodash.isempty';
import omit from 'lodash.omit';
import isEmpty from 'lodash/isEmpty';
import omit from 'lodash/omit';
export class Lemlist implements INodeType {
description: INodeTypeDescription = {

View file

@ -12,7 +12,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
import { query } from './Queries';

View file

@ -1,6 +1,6 @@
import type { OptionsWithUri } from 'request';
import map from 'lodash.map';
import map from 'lodash/map';
import type {
IExecuteFunctions,
IHookFunctions,

View file

@ -20,8 +20,8 @@ import {
import moment from 'moment';
import map from 'lodash.map';
import isEmpty from 'lodash.isempty';
import map from 'lodash/map';
import isEmpty from 'lodash/isEmpty';
interface Attachments {
type: string;

View file

@ -12,8 +12,8 @@ import { Converter } from 'showdown';
import { NodeHtmlMarkdown } from 'node-html-markdown';
import isEmpty from 'lodash.isempty';
import set from 'lodash.set';
import isEmpty from 'lodash/isEmpty';
import set from 'lodash/set';
export class Markdown implements INodeType {
description: INodeTypeDescription = {

View file

@ -1,5 +1,5 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import get from 'lodash.get';
import get from 'lodash/get';
import type {
IExecuteFunctions,

View file

@ -6,11 +6,11 @@ import type {
IPairedItemData,
} from 'n8n-workflow';
import assign from 'lodash.assign';
import assignWith from 'lodash.assignwith';
import get from 'lodash.get';
import merge from 'lodash.merge';
import mergeWith from 'lodash.mergewith';
import assign from 'lodash/assign';
import assignWith from 'lodash/assignWith';
import get from 'lodash/get';
import merge from 'lodash/merge';
import mergeWith from 'lodash/mergeWith';
import { fuzzyCompare } from '../../../utils/utilities';
type PairToMatch = {

View file

@ -1,6 +1,6 @@
/* eslint-disable n8n-nodes-base/node-filename-against-convention */
import merge from 'lodash.merge';
import merge from 'lodash/merge';
import type {
IExecuteFunctions,

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function mondayComApiRequest(
this: IExecuteFunctions | IWebhookFunctions | IHookFunctions | ILoadOptionsFunctions,

View file

@ -12,8 +12,8 @@ import type {
IMongoParametricCredentials,
} from './mongoDb.types';
import get from 'lodash.get';
import set from 'lodash.set';
import get from 'lodash/get';
import set from 'lodash/set';
/**
* Standard way of building the MongoDB connection string, unless overridden with a provided string

View file

@ -1,6 +1,6 @@
import get from 'lodash.get';
import set from 'lodash.set';
import unset from 'lodash.unset';
import get from 'lodash/get';
import set from 'lodash/set';
import unset from 'lodash/unset';
import prettyBytes from 'pretty-bytes';
import type {

View file

@ -13,8 +13,8 @@ import type { CustomField, GeneralAddress, Ref } from './descriptions/Shared.int
import { capitalCase } from 'change-case';
import omit from 'lodash.omit';
import pickBy from 'lodash.pickby';
import omit from 'lodash/omit';
import pickBy from 'lodash/pickBy';
import type { OptionsWithUri } from 'request';

View file

@ -47,7 +47,7 @@ import {
import { capitalCase } from 'change-case';
import isEmpty from 'lodash.isempty';
import isEmpty from 'lodash/isEmpty';
import type { QuickBooksOAuth2Credentials, TransactionFields, TransactionReport } from './types';

View file

@ -8,8 +8,8 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import isEmpty from 'lodash.isempty';
import omit from 'lodash.omit';
import isEmpty from 'lodash/isEmpty';
import omit from 'lodash/omit';
import { raindropApiRequest } from './GenericFunctions';

View file

@ -12,7 +12,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import set from 'lodash.set';
import set from 'lodash/set';
import redis from 'redis';
import util from 'util';

View file

@ -7,9 +7,9 @@ import type {
} from 'n8n-workflow';
import { deepCopy } from 'n8n-workflow';
import get from 'lodash.get';
import set from 'lodash.set';
import unset from 'lodash.unset';
import get from 'lodash/get';
import set from 'lodash/set';
import unset from 'lodash/unset';
interface IRenameKey {
currentKey: string;

View file

@ -1,7 +1,7 @@
import type { Request } from 'aws4';
import { sign } from 'aws4';
import get from 'lodash.get';
import get from 'lodash/get';
import type { OptionsWithUri } from 'request';

View file

@ -7,7 +7,7 @@ import type {
} from 'n8n-workflow';
import { deepCopy } from 'n8n-workflow';
import set from 'lodash.set';
import set from 'lodash/set';
export class Set implements INodeType {
description: INodeTypeDescription = {

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function slackApiRequest(
this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions,

View file

@ -9,7 +9,7 @@ import type {
import { NodeOperationError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function slackApiRequest(
this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions,

View file

@ -3,7 +3,7 @@ import type { OptionsWithUri } from 'request';
import type { IExecuteFunctions, IHookFunctions, IDataObject, JsonObject } from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
/**
* Make an API request to Spotify

View file

@ -9,7 +9,7 @@ import type {
} from 'n8n-workflow';
import { NodeOperationError } from 'n8n-workflow';
import isEmpty from 'lodash.isempty';
import isEmpty from 'lodash/isEmpty';
import {
adjustChargeFields,

View file

@ -1,6 +1,6 @@
import flow from 'lodash.flow';
import isEmpty from 'lodash.isempty';
import omit from 'lodash.omit';
import flow from 'lodash/flow';
import isEmpty from 'lodash/isEmpty';
import omit from 'lodash/omit';
import type {
IExecuteFunctions,
IHookFunctions,

View file

@ -34,7 +34,7 @@ import {
theHiveApiRequest,
} from './GenericFunctions';
import set from 'lodash.set';
import set from 'lodash/set';
export class TheHive implements INodeType {
description: INodeTypeDescription = {

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function travisciApiRequest(
this: IHookFunctions | IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions,

View file

@ -8,7 +8,7 @@ import type {
IPollFunctions,
} from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
export async function venafiApiRequest(
this: IExecuteFunctions | IExecuteSingleFunctions | ILoadOptionsFunctions | IPollFunctions,

View file

@ -10,7 +10,7 @@ import type {
} from 'n8n-workflow';
import { NodeApiError } from 'n8n-workflow';
import get from 'lodash.get';
import get from 'lodash/get';
import * as nacl_factory from 'js-nacl';

View file

@ -1,4 +1,4 @@
import set from 'lodash.set';
import set from 'lodash/set';
import type {
IDataObject,
IExecuteSingleFunctions,

View file

@ -33,7 +33,7 @@ import type {
} from './GenericFunctions';
import { wiseApiRequest } from './GenericFunctions';
import omit from 'lodash.omit';
import omit from 'lodash/omit';
import moment from 'moment-timezone';

View file

@ -16,7 +16,7 @@ import { createHash } from 'crypto';
import { snakeCase } from 'change-case';
import omit from 'lodash.omit';
import omit from 'lodash/omit';
export async function woocommerceApiRequest(
this:

View file

@ -8,7 +8,7 @@ import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import type { OptionsWithUri } from 'request';
import flow from 'lodash.flow';
import flow from 'lodash/flow';
import type { Zammad } from './types';

View file

@ -9,8 +9,8 @@ import type {
} from 'n8n-workflow';
import { NodeApiError, NodeOperationError } from 'n8n-workflow';
import flow from 'lodash.flow';
import sortBy from 'lodash.sortby';
import flow from 'lodash/flow';
import sortBy from 'lodash/sortBy';
import type {
AllFields,

View file

@ -756,47 +756,7 @@
"@types/imap-simple": "^4.2.0",
"@types/js-nacl": "^1.3.0",
"@types/jsonwebtoken": "^9.0.1",
"@types/lodash": "^4.14.191",
"@types/lodash.assign": "^4",
"@types/lodash.assignwith": "^4",
"@types/lodash.clone": "^4",
"@types/lodash.compact": "^3",
"@types/lodash.concat": "^4",
"@types/lodash.difference": "^4",
"@types/lodash.escaperegexp": "^4",
"@types/lodash.every": "^4",
"@types/lodash.find": "^4",
"@types/lodash.first": "^3",
"@types/lodash.flow": "^3",
"@types/lodash.get": "^4",
"@types/lodash.intersection": "^4",
"@types/lodash.isarray": "^4",
"@types/lodash.isempty": "^4",
"@types/lodash.isequal": "^4",
"@types/lodash.isobject": "^3",
"@types/lodash.isstring": "^4",
"@types/lodash.last": "^3",
"@types/lodash.lt": "^3",
"@types/lodash.map": "^4",
"@types/lodash.merge": "^4",
"@types/lodash.mergewith": "^4",
"@types/lodash.omit": "^4",
"@types/lodash.partialright": "^4",
"@types/lodash.pick": "^4",
"@types/lodash.pickby": "^4",
"@types/lodash.reduce": "^4",
"@types/lodash.set": "^4",
"@types/lodash.some": "^4",
"@types/lodash.sortby": "^4",
"@types/lodash.split": "^4",
"@types/lodash.tonumber": "^4",
"@types/lodash.tostring": "^4",
"@types/lodash.trim": "^4",
"@types/lodash.union": "^4",
"@types/lodash.uniqby": "^4",
"@types/lodash.unset": "^4",
"@types/lodash.upperfirst": "^4",
"@types/lodash.zip": "^4",
"@types/lodash": "^4.14.195",
"@types/lossless-json": "^1.0.0",
"@types/mailparser": "^2.7.3",
"@types/mime-types": "^2.1.0",
@ -842,46 +802,7 @@
"jsonwebtoken": "^9.0.0",
"kafkajs": "^1.14.0",
"ldapts": "^4.2.6",
"lodash.assign": "^4",
"lodash.assignwith": "^4",
"lodash.clone": "^4",
"lodash.compact": "^3",
"lodash.concat": "^4",
"lodash.difference": "^4",
"lodash.escaperegexp": "^4",
"lodash.every": "^4",
"lodash.find": "^4",
"lodash.first": "^3",
"lodash.flow": "^3",
"lodash.get": "^4",
"lodash.intersection": "^4",
"lodash.isarray": "^4",
"lodash.isempty": "^4",
"lodash.isequal": "^4",
"lodash.isobject": "^3",
"lodash.isstring": "^4",
"lodash.last": "^3",
"lodash.lt": "^3",
"lodash.map": "^4",
"lodash.merge": "^4",
"lodash.mergewith": "^4",
"lodash.omit": "^4",
"lodash.partialright": "^4",
"lodash.pick": "^4",
"lodash.pickby": "^4",
"lodash.reduce": "^4",
"lodash.set": "^4",
"lodash.some": "^4",
"lodash.sortby": "^4",
"lodash.split": "^4",
"lodash.tonumber": "^4",
"lodash.tostring": "^4",
"lodash.trim": "^4",
"lodash.union": "^4",
"lodash.uniqby": "^4",
"lodash.unset": "^4",
"lodash.upperfirst": "^4",
"lodash.zip": "^4",
"lodash": "^4.17.21",
"lossless-json": "^1.0.4",
"luxon": "^3.3.0",
"mailparser": "^3.2.0",

View file

@ -43,10 +43,7 @@
"@types/deep-equal": "^1.0.1",
"@types/express": "^4.17.6",
"@types/jmespath": "^0.15.0",
"@types/lodash.get": "^4.4.6",
"@types/lodash.isequal": "^4.5.6",
"@types/lodash.merge": "^4.6.6",
"@types/lodash.set": "^4.3.6",
"@types/lodash": "^4.14.195",
"@types/luxon": "^3.2.0",
"@types/xml2js": "^0.4.11"
},
@ -58,10 +55,7 @@
"esprima-next": "5.8.4",
"jmespath": "^0.16.0",
"js-base64": "^3.7.2",
"lodash.get": "^4.4.2",
"lodash.isequal": "^4.5.0",
"lodash.merge": "^4.6.2",
"lodash.set": "^4.3.2",
"lodash": "^4.17.21",
"luxon": "^3.3.0",
"recast": "^0.21.5",
"title-case": "^3.0.3",

View file

@ -12,8 +12,8 @@
/* eslint-disable prefer-spread */
/* eslint-disable no-restricted-syntax */
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
import get from 'lodash.get';
import isEqual from 'lodash.isequal';
import get from 'lodash/get';
import isEqual from 'lodash/isEqual';
import type {
IContextObject,

View file

@ -9,9 +9,9 @@
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
/* eslint-disable no-await-in-loop */
/* eslint-disable no-restricted-syntax */
import get from 'lodash.get';
import merge from 'lodash.merge';
import set from 'lodash.set';
import get from 'lodash/get';
import merge from 'lodash/merge';
import set from 'lodash/set';
import type {
ICredentialDataDecryptedObject,

View file

@ -1,4 +1,4 @@
import get from 'lodash.get';
import get from 'lodash/get';
import type {
CredentialInformation,
IAdditionalCredentialOptions,

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