n8n-nodes-base 1.96.1 → 1.97.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js +18 -13
  2. package/dist/nodes/Evaluation/EvaluationTrigger/EvaluationTrigger.node.ee.js.map +1 -1
  3. package/dist/nodes/Form/Form.node.js +3 -3
  4. package/dist/nodes/Form/Form.node.js.map +1 -1
  5. package/dist/nodes/Form/formCompletionUtils.js.map +1 -0
  6. package/dist/nodes/Form/formNodeUtils.js.map +1 -0
  7. package/dist/nodes/Form/{utils/utils.js → utils.js} +7 -21
  8. package/dist/nodes/Form/utils.js.map +1 -0
  9. package/dist/nodes/Form/v1/FormTriggerV1.node.js +1 -1
  10. package/dist/nodes/Form/v1/FormTriggerV1.node.js.map +1 -1
  11. package/dist/nodes/Form/v2/FormTriggerV2.node.js +1 -1
  12. package/dist/nodes/Form/v2/FormTriggerV2.node.js.map +1 -1
  13. package/dist/nodes/Google/Gmail/GenericFunctions.js +1 -1
  14. package/dist/nodes/Google/Gmail/GenericFunctions.js.map +1 -1
  15. package/dist/nodes/Google/Gmail/v2/DraftDescription.js +7 -0
  16. package/dist/nodes/Google/Gmail/v2/DraftDescription.js.map +1 -1
  17. package/dist/nodes/Google/Gmail/v2/GmailV2.node.js +4 -0
  18. package/dist/nodes/Google/Gmail/v2/GmailV2.node.js.map +1 -1
  19. package/dist/nodes/Google/Gmail/v2/utils/draft.js +44 -0
  20. package/dist/nodes/Google/Gmail/v2/utils/draft.js.map +1 -0
  21. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js +10 -4
  22. package/dist/nodes/HttpRequest/V3/HttpRequestV3.node.js.map +1 -1
  23. package/dist/nodes/HttpRequest/V3/utils/binaryData.js +37 -0
  24. package/dist/nodes/HttpRequest/V3/utils/binaryData.js.map +1 -0
  25. package/dist/nodes/HttpRequest/V3/utils/parse.js +34 -0
  26. package/dist/nodes/HttpRequest/V3/utils/parse.js.map +1 -0
  27. package/dist/nodes/Linear/CommentDescription.js +105 -0
  28. package/dist/nodes/Linear/CommentDescription.js.map +1 -0
  29. package/dist/nodes/Linear/IssueDescription.js +23 -1
  30. package/dist/nodes/Linear/IssueDescription.js.map +1 -1
  31. package/dist/nodes/Linear/Linear.node.js +37 -0
  32. package/dist/nodes/Linear/Linear.node.js.map +1 -1
  33. package/dist/nodes/Linear/Queries.js +17 -0
  34. package/dist/nodes/Linear/Queries.js.map +1 -1
  35. package/dist/nodes/Linear/test/workflow/apiRequest.js +280 -0
  36. package/dist/nodes/Linear/test/workflow/apiRequest.js.map +1 -0
  37. package/dist/nodes/Linear/test/workflow/apiResponses.js +198 -0
  38. package/dist/nodes/Linear/test/workflow/apiResponses.js.map +1 -0
  39. package/dist/nodes/Postgres/transport/index.js +55 -60
  40. package/dist/nodes/Postgres/transport/index.js.map +1 -1
  41. package/dist/nodes/Wait/Wait.node.js +1 -1
  42. package/dist/nodes/Wait/Wait.node.js.map +1 -1
  43. package/dist/types/nodes.json +4 -4
  44. package/dist/utils/connection-pool-manager.js +42 -30
  45. package/dist/utils/connection-pool-manager.js.map +1 -1
  46. package/dist/utils/sendAndWait/utils.js +1 -1
  47. package/dist/utils/sendAndWait/utils.js.map +1 -1
  48. package/package.json +7 -7
  49. package/dist/nodes/Form/utils/formCompletionUtils.js.map +0 -1
  50. package/dist/nodes/Form/utils/formNodeUtils.js.map +0 -1
  51. package/dist/nodes/Form/utils/utils.js.map +0 -1
  52. /package/dist/nodes/Form/{utils/formCompletionUtils.js → formCompletionUtils.js} +0 -0
  53. /package/dist/nodes/Form/{utils/formNodeUtils.js → formNodeUtils.js} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../nodes/HttpRequest/V3/HttpRequestV3.node.ts"],"sourcesContent":["import set from 'lodash/set';\nimport type {\n\tIBinaryKeyData,\n\tIDataObject,\n\tIExecuteFunctions,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeBaseDescription,\n\tINodeTypeDescription,\n\tIRequestOptionsSimplified,\n\tPaginationOptions,\n\tJsonObject,\n\tIRequestOptions,\n\tIHttpRequestMethods,\n} from 'n8n-workflow';\nimport {\n\tBINARY_ENCODING,\n\tNodeApiError,\n\tNodeConnectionTypes,\n\tNodeOperationError,\n\tjsonParse,\n\tremoveCircularRefs,\n\tsleep,\n} from 'n8n-workflow';\nimport type { Readable } from 'stream';\n\nimport { keysToLowercase } from '@utils/utilities';\n\nimport { mainProperties } from './Description';\nimport type { BodyParameter, IAuthDataSanitizeKeys } from '../GenericFunctions';\nimport {\n\tbinaryContentTypes,\n\tgetOAuth2AdditionalParameters,\n\tgetSecrets,\n\tprepareRequestBody,\n\treduceAsync,\n\treplaceNullValues,\n\tsanitizeUiMessage,\n\tsetAgentOptions,\n} from '../GenericFunctions';\nimport { configureResponseOptimizer } from '../shared/optimizeResponse';\n\nfunction toText<T>(data: T) {\n\tif (typeof data === 'object' && data !== null) {\n\t\treturn JSON.stringify(data);\n\t}\n\treturn data;\n}\nexport class HttpRequestV3 implements INodeType {\n\tdescription: INodeTypeDescription;\n\n\tconstructor(baseDescription: INodeTypeBaseDescription) {\n\t\tthis.description = {\n\t\t\t...baseDescription,\n\t\t\tsubtitle: '={{$parameter[\"method\"] + \": \" + $parameter[\"url\"]}}',\n\t\t\tversion: [3, 4, 4.1, 4.2],\n\t\t\tdefaults: {\n\t\t\t\tname: 'HTTP Request',\n\t\t\t\tcolor: '#0004F5',\n\t\t\t},\n\t\t\tinputs: [NodeConnectionTypes.Main],\n\t\t\toutputs: [NodeConnectionTypes.Main],\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\tname: 'httpSslAuth',\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tprovideSslCertificates: [true],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tusableAsTool: {\n\t\t\t\treplacements: {\n\t\t\t\t\tcodex: {\n\t\t\t\t\t\tsubcategories: {\n\t\t\t\t\t\t\tTools: ['Recommended Tools'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tproperties: mainProperties,\n\t\t};\n\t}\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst items = this.getInputData();\n\t\tconst nodeVersion = this.getNode().typeVersion;\n\n\t\tconst fullResponseProperties = ['body', 'headers', 'statusCode', 'statusMessage'];\n\n\t\tlet authentication;\n\n\t\ttry {\n\t\t\tauthentication = this.getNodeParameter('authentication', 0) as\n\t\t\t\t| 'predefinedCredentialType'\n\t\t\t\t| 'genericCredentialType'\n\t\t\t\t| 'none';\n\t\t} catch {}\n\n\t\tlet httpBasicAuth;\n\t\tlet httpBearerAuth;\n\t\tlet httpDigestAuth;\n\t\tlet httpHeaderAuth;\n\t\tlet httpQueryAuth;\n\t\tlet httpCustomAuth;\n\t\tlet oAuth1Api;\n\t\tlet oAuth2Api;\n\t\tlet sslCertificates;\n\t\tlet nodeCredentialType: string | undefined;\n\t\tlet genericCredentialType: string | undefined;\n\n\t\tlet requestOptions: IRequestOptions = {\n\t\t\turi: '',\n\t\t};\n\n\t\tlet returnItems: INodeExecutionData[] = [];\n\t\tconst errorItems: { [key: string]: string } = {};\n\t\tconst requestPromises = [];\n\n\t\tlet fullResponse = false;\n\n\t\tlet autoDetectResponseFormat = false;\n\n\t\t// Can not be defined on a per item level\n\t\tconst pagination = this.getNodeParameter('options.pagination.pagination', 0, null, {\n\t\t\trawExpressions: true,\n\t\t}) as {\n\t\t\tpaginationMode: 'off' | 'updateAParameterInEachRequest' | 'responseContainsNextURL';\n\t\t\tnextURL?: string;\n\t\t\tparameters: {\n\t\t\t\tparameters: Array<{\n\t\t\t\t\ttype: 'body' | 'headers' | 'qs';\n\t\t\t\t\tname: string;\n\t\t\t\t\tvalue: string;\n\t\t\t\t}>;\n\t\t\t};\n\t\t\tpaginationCompleteWhen: 'responseIsEmpty' | 'receiveSpecificStatusCodes' | 'other';\n\t\t\tstatusCodesWhenComplete: string;\n\t\t\tcompleteExpression: string;\n\t\t\tlimitPagesFetched: boolean;\n\t\t\tmaxRequests: number;\n\t\t\trequestInterval: number;\n\t\t};\n\n\t\tconst requests: Array<{\n\t\t\toptions: IRequestOptions;\n\t\t\tauthKeys: IAuthDataSanitizeKeys;\n\t\t\tcredentialType?: string;\n\t\t}> = [];\n\n\t\tfor (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n\t\t\ttry {\n\t\t\t\tif (authentication === 'genericCredentialType') {\n\t\t\t\t\tgenericCredentialType = this.getNodeParameter('genericAuthType', 0) as string;\n\n\t\t\t\t\tif (genericCredentialType === 'httpBasicAuth') {\n\t\t\t\t\t\thttpBasicAuth = await this.getCredentials('httpBasicAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpBearerAuth') {\n\t\t\t\t\t\thttpBearerAuth = await this.getCredentials('httpBearerAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpDigestAuth') {\n\t\t\t\t\t\thttpDigestAuth = await this.getCredentials('httpDigestAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpHeaderAuth') {\n\t\t\t\t\t\thttpHeaderAuth = await this.getCredentials('httpHeaderAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpQueryAuth') {\n\t\t\t\t\t\thttpQueryAuth = await this.getCredentials('httpQueryAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpCustomAuth') {\n\t\t\t\t\t\thttpCustomAuth = await this.getCredentials('httpCustomAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'oAuth1Api') {\n\t\t\t\t\t\toAuth1Api = await this.getCredentials('oAuth1Api', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'oAuth2Api') {\n\t\t\t\t\t\toAuth2Api = await this.getCredentials('oAuth2Api', itemIndex);\n\t\t\t\t\t}\n\t\t\t\t} else if (authentication === 'predefinedCredentialType') {\n\t\t\t\t\tnodeCredentialType = this.getNodeParameter('nodeCredentialType', itemIndex) as string;\n\t\t\t\t}\n\n\t\t\t\tconst provideSslCertificates = this.getNodeParameter(\n\t\t\t\t\t'provideSslCertificates',\n\t\t\t\t\titemIndex,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\n\t\t\t\tif (provideSslCertificates) {\n\t\t\t\t\tsslCertificates = await this.getCredentials('httpSslAuth', itemIndex);\n\t\t\t\t}\n\n\t\t\t\tconst requestMethod = this.getNodeParameter('method', itemIndex) as IHttpRequestMethods;\n\n\t\t\t\tconst sendQuery = this.getNodeParameter('sendQuery', itemIndex, false) as boolean;\n\t\t\t\tconst queryParameters = this.getNodeParameter(\n\t\t\t\t\t'queryParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as [{ name: string; value: string }];\n\t\t\t\tconst specifyQuery = this.getNodeParameter('specifyQuery', itemIndex, 'keypair') as string;\n\t\t\t\tconst jsonQueryParameter = this.getNodeParameter('jsonQuery', itemIndex, '') as string;\n\n\t\t\t\tconst sendBody = this.getNodeParameter('sendBody', itemIndex, false) as boolean;\n\t\t\t\tconst bodyContentType = this.getNodeParameter('contentType', itemIndex, '') as string;\n\t\t\t\tconst specifyBody = this.getNodeParameter('specifyBody', itemIndex, '') as string;\n\t\t\t\tconst bodyParameters = this.getNodeParameter(\n\t\t\t\t\t'bodyParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as BodyParameter[];\n\t\t\t\tconst jsonBodyParameter = this.getNodeParameter('jsonBody', itemIndex, '') as string;\n\t\t\t\tconst body = this.getNodeParameter('body', itemIndex, '') as string;\n\n\t\t\t\tconst sendHeaders = this.getNodeParameter('sendHeaders', itemIndex, false) as boolean;\n\n\t\t\t\tconst headerParameters = this.getNodeParameter(\n\t\t\t\t\t'headerParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as [{ name: string; value: string }];\n\n\t\t\t\tconst specifyHeaders = this.getNodeParameter(\n\t\t\t\t\t'specifyHeaders',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t'keypair',\n\t\t\t\t) as string;\n\n\t\t\t\tconst jsonHeadersParameter = this.getNodeParameter('jsonHeaders', itemIndex, '') as string;\n\n\t\t\t\tconst {\n\t\t\t\t\tredirect,\n\t\t\t\t\tbatching,\n\t\t\t\t\tproxy,\n\t\t\t\t\ttimeout,\n\t\t\t\t\tallowUnauthorizedCerts,\n\t\t\t\t\tqueryParameterArrays,\n\t\t\t\t\tresponse,\n\t\t\t\t\tlowercaseHeaders,\n\t\t\t\t} = this.getNodeParameter('options', itemIndex, {}) as {\n\t\t\t\t\tbatching: { batch: { batchSize: number; batchInterval: number } };\n\t\t\t\t\tproxy: string;\n\t\t\t\t\ttimeout: number;\n\t\t\t\t\tallowUnauthorizedCerts: boolean;\n\t\t\t\t\tqueryParameterArrays: 'indices' | 'brackets' | 'repeat';\n\t\t\t\t\tresponse: {\n\t\t\t\t\t\tresponse: { neverError: boolean; responseFormat: string; fullResponse: boolean };\n\t\t\t\t\t};\n\t\t\t\t\tredirect: { redirect: { maxRedirects: number; followRedirects: boolean } };\n\t\t\t\t\tlowercaseHeaders: boolean;\n\t\t\t\t};\n\n\t\t\t\tconst url = this.getNodeParameter('url', itemIndex) as string;\n\n\t\t\t\tconst responseFormat = response?.response?.responseFormat || 'autodetect';\n\n\t\t\t\tfullResponse = response?.response?.fullResponse || false;\n\n\t\t\t\tautoDetectResponseFormat = responseFormat === 'autodetect';\n\n\t\t\t\t// defaults batch size to 1 of it's set to 0\n\t\t\t\tconst batchSize = batching?.batch?.batchSize > 0 ? batching?.batch?.batchSize : 1;\n\t\t\t\tconst batchInterval = batching?.batch.batchInterval;\n\n\t\t\t\tif (itemIndex > 0 && batchSize >= 0 && batchInterval > 0) {\n\t\t\t\t\tif (itemIndex % batchSize === 0) {\n\t\t\t\t\t\tawait sleep(batchInterval);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trequestOptions = {\n\t\t\t\t\theaders: {},\n\t\t\t\t\tmethod: requestMethod,\n\t\t\t\t\turi: url,\n\t\t\t\t\tgzip: true,\n\t\t\t\t\trejectUnauthorized: !allowUnauthorizedCerts || false,\n\t\t\t\t\tfollowRedirect: false,\n\t\t\t\t\tresolveWithFullResponse: true,\n\t\t\t\t};\n\n\t\t\t\tif (requestOptions.method !== 'GET' && nodeVersion >= 4.1) {\n\t\t\t\t\trequestOptions = { ...requestOptions, followAllRedirects: false };\n\t\t\t\t}\n\n\t\t\t\tconst defaultRedirect = nodeVersion >= 4 && redirect === undefined;\n\n\t\t\t\tif (redirect?.redirect?.followRedirects || defaultRedirect) {\n\t\t\t\t\trequestOptions.followRedirect = true;\n\t\t\t\t\trequestOptions.followAllRedirects = true;\n\t\t\t\t}\n\n\t\t\t\tif (redirect?.redirect?.maxRedirects || defaultRedirect) {\n\t\t\t\t\trequestOptions.maxRedirects = redirect?.redirect?.maxRedirects;\n\t\t\t\t}\n\n\t\t\t\tif (response?.response?.neverError) {\n\t\t\t\t\trequestOptions.simple = false;\n\t\t\t\t}\n\n\t\t\t\tif (proxy) {\n\t\t\t\t\trequestOptions.proxy = proxy;\n\t\t\t\t}\n\n\t\t\t\tif (timeout) {\n\t\t\t\t\trequestOptions.timeout = timeout;\n\t\t\t\t} else {\n\t\t\t\t\t// set default timeout to 5 minutes\n\t\t\t\t\trequestOptions.timeout = 300_000;\n\t\t\t\t}\n\t\t\t\tif (sendQuery && queryParameterArrays) {\n\t\t\t\t\tObject.assign(requestOptions, {\n\t\t\t\t\t\tqsStringifyOptions: { arrayFormat: queryParameterArrays },\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst parametersToKeyValue = async (\n\t\t\t\t\taccumulator: { [key: string]: any },\n\t\t\t\t\tcur: { name: string; value: string; parameterType?: string; inputDataFieldName?: string },\n\t\t\t\t) => {\n\t\t\t\t\tif (cur.parameterType === 'formBinaryData') {\n\t\t\t\t\t\tif (!cur.inputDataFieldName) return accumulator;\n\t\t\t\t\t\tconst binaryData = this.helpers.assertBinaryData(itemIndex, cur.inputDataFieldName);\n\t\t\t\t\t\tlet uploadData: Buffer | Readable;\n\t\t\t\t\t\tconst itemBinaryData = items[itemIndex].binary![cur.inputDataFieldName];\n\t\t\t\t\t\tif (itemBinaryData.id) {\n\t\t\t\t\t\t\tuploadData = await this.helpers.getBinaryStream(itemBinaryData.id);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tuploadData = Buffer.from(itemBinaryData.data, BINARY_ENCODING);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccumulator[cur.name] = {\n\t\t\t\t\t\t\tvalue: uploadData,\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tfilename: binaryData.fileName,\n\t\t\t\t\t\t\t\tcontentType: binaryData.mimeType,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[cur.name] = cur.value;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t};\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendBody && bodyParameters) {\n\t\t\t\t\tif (specifyBody === 'keypair' || bodyContentType === 'multipart-form-data') {\n\t\t\t\t\t\trequestOptions.body = await prepareRequestBody(\n\t\t\t\t\t\t\tbodyParameters,\n\t\t\t\t\t\t\tbodyContentType,\n\t\t\t\t\t\t\tnodeVersion,\n\t\t\t\t\t\t\tparametersToKeyValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (specifyBody === 'json') {\n\t\t\t\t\t\t// body is specified using JSON\n\t\t\t\t\t\tif (typeof jsonBodyParameter !== 'object' && jsonBodyParameter !== null) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tJSON.parse(jsonBodyParameter);\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trequestOptions.body = jsonParse(jsonBodyParameter);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trequestOptions.body = jsonBodyParameter;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (specifyBody === 'string') {\n\t\t\t\t\t\t//form urlencoded\n\t\t\t\t\t\trequestOptions.body = Object.fromEntries(new URLSearchParams(body));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Change the way data get send in case a different content-type than JSON got selected\n\t\t\t\tif (sendBody && ['PATCH', 'POST', 'PUT', 'GET'].includes(requestMethod)) {\n\t\t\t\t\tif (bodyContentType === 'multipart-form-data') {\n\t\t\t\t\t\trequestOptions.formData = requestOptions.body as IDataObject;\n\t\t\t\t\t\tdelete requestOptions.body;\n\t\t\t\t\t} else if (bodyContentType === 'form-urlencoded') {\n\t\t\t\t\t\trequestOptions.form = requestOptions.body as IDataObject;\n\t\t\t\t\t\tdelete requestOptions.body;\n\t\t\t\t\t} else if (bodyContentType === 'binaryData') {\n\t\t\t\t\t\tconst inputDataFieldName = this.getNodeParameter(\n\t\t\t\t\t\t\t'inputDataFieldName',\n\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t) as string;\n\n\t\t\t\t\t\tlet uploadData: Buffer | Readable;\n\t\t\t\t\t\tlet contentLength: number;\n\n\t\t\t\t\t\tconst itemBinaryData = this.helpers.assertBinaryData(itemIndex, inputDataFieldName);\n\n\t\t\t\t\t\tif (itemBinaryData.id) {\n\t\t\t\t\t\t\tuploadData = await this.helpers.getBinaryStream(itemBinaryData.id);\n\t\t\t\t\t\t\tconst metadata = await this.helpers.getBinaryMetadata(itemBinaryData.id);\n\t\t\t\t\t\t\tcontentLength = metadata.fileSize;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tuploadData = Buffer.from(itemBinaryData.data, BINARY_ENCODING);\n\t\t\t\t\t\t\tcontentLength = uploadData.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequestOptions.body = uploadData;\n\t\t\t\t\t\trequestOptions.headers = {\n\t\t\t\t\t\t\t...requestOptions.headers,\n\t\t\t\t\t\t\t'content-length': contentLength,\n\t\t\t\t\t\t\t'content-type': itemBinaryData.mimeType ?? 'application/octet-stream',\n\t\t\t\t\t\t};\n\t\t\t\t\t} else if (bodyContentType === 'raw') {\n\t\t\t\t\t\trequestOptions.body = body;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendQuery && queryParameters) {\n\t\t\t\t\tif (specifyQuery === 'keypair') {\n\t\t\t\t\t\trequestOptions.qs = await reduceAsync(queryParameters, parametersToKeyValue);\n\t\t\t\t\t} else if (specifyQuery === 'json') {\n\t\t\t\t\t\t// query is specified using JSON\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tJSON.parse(jsonQueryParameter);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trequestOptions.qs = jsonParse(jsonQueryParameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendHeaders && headerParameters) {\n\t\t\t\t\tlet additionalHeaders: IDataObject = {};\n\t\t\t\t\tif (specifyHeaders === 'keypair') {\n\t\t\t\t\t\tadditionalHeaders = await reduceAsync(\n\t\t\t\t\t\t\theaderParameters.filter((header) => header.name),\n\t\t\t\t\t\t\tparametersToKeyValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (specifyHeaders === 'json') {\n\t\t\t\t\t\t// body is specified using JSON\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tJSON.parse(jsonHeadersParameter);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadditionalHeaders = jsonParse(jsonHeadersParameter);\n\t\t\t\t\t}\n\t\t\t\t\trequestOptions.headers = {\n\t\t\t\t\t\t...requestOptions.headers,\n\t\t\t\t\t\t...(lowercaseHeaders === undefined || lowercaseHeaders\n\t\t\t\t\t\t\t? keysToLowercase(additionalHeaders)\n\t\t\t\t\t\t\t: additionalHeaders),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (autoDetectResponseFormat || responseFormat === 'file') {\n\t\t\t\t\trequestOptions.encoding = null;\n\t\t\t\t\trequestOptions.json = false;\n\t\t\t\t\trequestOptions.useStream = true;\n\t\t\t\t} else if (bodyContentType === 'raw') {\n\t\t\t\t\trequestOptions.json = false;\n\t\t\t\t\trequestOptions.useStream = true;\n\t\t\t\t} else {\n\t\t\t\t\trequestOptions.json = true;\n\t\t\t\t}\n\n\t\t\t\t// Add Content Type if any are set\n\t\t\t\tif (bodyContentType === 'raw') {\n\t\t\t\t\tif (requestOptions.headers === undefined) {\n\t\t\t\t\t\trequestOptions.headers = {};\n\t\t\t\t\t}\n\t\t\t\t\tconst rawContentType = this.getNodeParameter('rawContentType', itemIndex) as string;\n\t\t\t\t\trequestOptions.headers['content-type'] = rawContentType;\n\t\t\t\t}\n\n\t\t\t\tconst authDataKeys: IAuthDataSanitizeKeys = {};\n\n\t\t\t\t// Add SSL certificates if any are set\n\t\t\t\tsetAgentOptions(requestOptions, sslCertificates);\n\t\t\t\tif (requestOptions.agentOptions) {\n\t\t\t\t\tauthDataKeys.agentOptions = Object.keys(requestOptions.agentOptions);\n\t\t\t\t}\n\n\t\t\t\t// Add credentials if any are set\n\t\t\t\tif (httpBasicAuth !== undefined) {\n\t\t\t\t\trequestOptions.auth = {\n\t\t\t\t\t\tuser: httpBasicAuth.user as string,\n\t\t\t\t\t\tpass: httpBasicAuth.password as string,\n\t\t\t\t\t};\n\t\t\t\t\tauthDataKeys.auth = ['pass'];\n\t\t\t\t}\n\t\t\t\tif (httpBearerAuth !== undefined) {\n\t\t\t\t\trequestOptions.headers = requestOptions.headers ?? {};\n\t\t\t\t\trequestOptions.headers.Authorization = `Bearer ${String(httpBearerAuth.token)}`;\n\t\t\t\t\tauthDataKeys.headers = ['Authorization'];\n\t\t\t\t}\n\t\t\t\tif (httpHeaderAuth !== undefined) {\n\t\t\t\t\trequestOptions.headers![httpHeaderAuth.name as string] = httpHeaderAuth.value;\n\t\t\t\t\tauthDataKeys.headers = [httpHeaderAuth.name as string];\n\t\t\t\t}\n\t\t\t\tif (httpQueryAuth !== undefined) {\n\t\t\t\t\tif (!requestOptions.qs) {\n\t\t\t\t\t\trequestOptions.qs = {};\n\t\t\t\t\t}\n\t\t\t\t\trequestOptions.qs[httpQueryAuth.name as string] = httpQueryAuth.value;\n\t\t\t\t\tauthDataKeys.qs = [httpQueryAuth.name as string];\n\t\t\t\t}\n\n\t\t\t\tif (httpDigestAuth !== undefined) {\n\t\t\t\t\trequestOptions.auth = {\n\t\t\t\t\t\tuser: httpDigestAuth.user as string,\n\t\t\t\t\t\tpass: httpDigestAuth.password as string,\n\t\t\t\t\t\tsendImmediately: false,\n\t\t\t\t\t};\n\t\t\t\t\tauthDataKeys.auth = ['pass'];\n\t\t\t\t}\n\t\t\t\tif (httpCustomAuth !== undefined) {\n\t\t\t\t\tconst customAuth = jsonParse<IRequestOptionsSimplified>(\n\t\t\t\t\t\t(httpCustomAuth.json as string) || '{}',\n\t\t\t\t\t\t{ errorMessage: 'Invalid Custom Auth JSON' },\n\t\t\t\t\t);\n\t\t\t\t\tif (customAuth.headers) {\n\t\t\t\t\t\trequestOptions.headers = { ...requestOptions.headers, ...customAuth.headers };\n\t\t\t\t\t\tauthDataKeys.headers = Object.keys(customAuth.headers);\n\t\t\t\t\t}\n\t\t\t\t\tif (customAuth.body) {\n\t\t\t\t\t\trequestOptions.body = { ...(requestOptions.body as IDataObject), ...customAuth.body };\n\t\t\t\t\t\tauthDataKeys.body = Object.keys(customAuth.body);\n\t\t\t\t\t}\n\t\t\t\t\tif (customAuth.qs) {\n\t\t\t\t\t\trequestOptions.qs = { ...requestOptions.qs, ...customAuth.qs };\n\t\t\t\t\t\tauthDataKeys.qs = Object.keys(customAuth.qs);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (requestOptions.headers!.accept === undefined) {\n\t\t\t\t\tif (responseFormat === 'json') {\n\t\t\t\t\t\trequestOptions.headers!.accept = 'application/json,text/*;q=0.99';\n\t\t\t\t\t} else if (responseFormat === 'text') {\n\t\t\t\t\t\trequestOptions.headers!.accept =\n\t\t\t\t\t\t\t'application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, */*;q=0.1';\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestOptions.headers!.accept =\n\t\t\t\t\t\t\t'application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trequests.push({\n\t\t\t\t\toptions: requestOptions,\n\t\t\t\t\tauthKeys: authDataKeys,\n\t\t\t\t\tcredentialType: nodeCredentialType,\n\t\t\t\t});\n\n\t\t\t\tif (pagination && pagination.paginationMode !== 'off') {\n\t\t\t\t\tlet continueExpression = '={{false}}';\n\t\t\t\t\tif (pagination.paginationCompleteWhen === 'receiveSpecificStatusCodes') {\n\t\t\t\t\t\t// Split out comma separated list of status codes into array\n\t\t\t\t\t\tconst statusCodesWhenCompleted = pagination.statusCodesWhenComplete\n\t\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t\t.map((item) => parseInt(item.trim()));\n\n\t\t\t\t\t\tcontinueExpression = `={{ !${JSON.stringify(\n\t\t\t\t\t\t\tstatusCodesWhenCompleted,\n\t\t\t\t\t\t)}.includes($response.statusCode) }}`;\n\t\t\t\t\t} else if (pagination.paginationCompleteWhen === 'responseIsEmpty') {\n\t\t\t\t\t\tcontinueExpression =\n\t\t\t\t\t\t\t'={{ Array.isArray($response.body) ? $response.body.length : !!$response.body }}';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Other\n\t\t\t\t\t\tif (!pagination.completeExpression.length || pagination.completeExpression[0] !== '=') {\n\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid or empty Complete Expression');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinueExpression = `={{ !(${pagination.completeExpression.trim().slice(3, -2)}) }}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst paginationData: PaginationOptions = {\n\t\t\t\t\t\tcontinue: continueExpression,\n\t\t\t\t\t\trequest: {},\n\t\t\t\t\t\trequestInterval: pagination.requestInterval,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (pagination.paginationMode === 'updateAParameterInEachRequest') {\n\t\t\t\t\t\t// Iterate over all parameters and add them to the request\n\t\t\t\t\t\tpaginationData.request = {};\n\t\t\t\t\t\tconst { parameters } = pagination.parameters;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparameters.length === 1 &&\n\t\t\t\t\t\t\tparameters[0].name === '' &&\n\t\t\t\t\t\t\tparameters[0].value === ''\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\"At least one entry with 'Name' and 'Value' filled must be included in 'Parameters' to use 'Update a Parameter in Each Request' mode \",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpagination.parameters.parameters.forEach((parameter, index) => {\n\t\t\t\t\t\t\tif (!paginationData.request[parameter.type]) {\n\t\t\t\t\t\t\t\tpaginationData.request[parameter.type] = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parameterName = parameter.name;\n\t\t\t\t\t\t\tif (parameterName === '') {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t`Parameter name must be set for parameter [${index + 1}] in pagination settings`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parameterValue = parameter.value;\n\t\t\t\t\t\t\tif (parameterValue === '') {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t`Some value must be provided for parameter [${\n\t\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t\t}] in pagination settings, omitting it will result in an infinite loop`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpaginationData.request[parameter.type]![parameterName] = parameterValue;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (pagination.paginationMode === 'responseContainsNextURL') {\n\t\t\t\t\t\tpaginationData.request.url = pagination.nextURL;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pagination.limitPagesFetched) {\n\t\t\t\t\t\tpaginationData.maxRequests = pagination.maxRequests;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (responseFormat === 'file') {\n\t\t\t\t\t\tpaginationData.binaryResult = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst requestPromise = this.helpers.requestWithAuthenticationPaginated\n\t\t\t\t\t\t.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\tpaginationData,\n\t\t\t\t\t\t\tnodeCredentialType ?? genericCredentialType,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\t\tif (error instanceof NodeOperationError && error.type === 'invalid_url') {\n\t\t\t\t\t\t\t\tconst urlParameterName =\n\t\t\t\t\t\t\t\t\tpagination.paginationMode === 'responseContainsNextURL' ? 'Next URL' : 'URL';\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), error.message, {\n\t\t\t\t\t\t\t\t\tdescription: `Make sure the \"${urlParameterName}\" parameter evaluates to a valid URL.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t});\n\t\t\t\t\trequestPromises.push(requestPromise);\n\t\t\t\t} else if (authentication === 'genericCredentialType' || authentication === 'none') {\n\t\t\t\t\tif (oAuth1Api) {\n\t\t\t\t\t\tconst requestOAuth1 = this.helpers.requestOAuth1.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t'oAuth1Api',\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t);\n\t\t\t\t\t\trequestOAuth1.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(requestOAuth1);\n\t\t\t\t\t} else if (oAuth2Api) {\n\t\t\t\t\t\tconst requestOAuth2 = this.helpers.requestOAuth2.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t'oAuth2Api',\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttokenType: 'Bearer',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\trequestOAuth2.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(requestOAuth2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// bearerAuth, queryAuth, headerAuth, digestAuth, none\n\t\t\t\t\t\tconst request = this.helpers.request(requestOptions);\n\t\t\t\t\t\trequest.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(request);\n\t\t\t\t\t}\n\t\t\t\t} else if (authentication === 'predefinedCredentialType' && nodeCredentialType) {\n\t\t\t\t\tconst additionalOAuth2Options = getOAuth2AdditionalParameters(nodeCredentialType);\n\n\t\t\t\t\t// service-specific cred: OAuth1, OAuth2, plain\n\n\t\t\t\t\tconst requestWithAuthentication = this.helpers.requestWithAuthentication.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnodeCredentialType,\n\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\tadditionalOAuth2Options && { oauth2: additionalOAuth2Options },\n\t\t\t\t\t\titemIndex,\n\t\t\t\t\t);\n\t\t\t\t\trequestWithAuthentication.catch(() => {});\n\t\t\t\t\trequestPromises.push(requestWithAuthentication);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!this.continueOnFail()) throw error;\n\n\t\t\t\trequestPromises.push(Promise.reject(error).catch(() => {}));\n\n\t\t\t\terrorItems[itemIndex] = error.message;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tconst sanitizedRequests: IDataObject[] = [];\n\t\tconst promisesResponses = await Promise.allSettled(\n\t\t\trequestPromises.map(\n\t\t\t\tasync (requestPromise, itemIndex) =>\n\t\t\t\t\tawait requestPromise\n\t\t\t\t\t\t.then((response) => response)\n\t\t\t\t\t\t.finally(async () => {\n\t\t\t\t\t\t\tif (errorItems[itemIndex]) return;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// Secrets need to be read after the request because secrets could have changed\n\t\t\t\t\t\t\t\t// For example: OAuth token refresh, preAuthentication\n\t\t\t\t\t\t\t\tconst { options, authKeys, credentialType } = requests[itemIndex];\n\t\t\t\t\t\t\t\tlet secrets: string[] = [];\n\t\t\t\t\t\t\t\tif (credentialType) {\n\t\t\t\t\t\t\t\t\tconst properties = this.getCredentialsProperties(credentialType);\n\t\t\t\t\t\t\t\t\tconst credentials = await this.getCredentials(credentialType, itemIndex);\n\t\t\t\t\t\t\t\t\tsecrets = getSecrets(properties, credentials);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst sanitizedRequestOptions = sanitizeUiMessage(options, authKeys, secrets);\n\t\t\t\t\t\t\t\tsanitizedRequests.push(sanitizedRequestOptions);\n\t\t\t\t\t\t\t\tthis.sendMessageToUI(sanitizedRequestOptions);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}),\n\t\t\t),\n\t\t);\n\n\t\tlet responseData: any;\n\t\tfor (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n\t\t\tresponseData = promisesResponses.shift();\n\n\t\t\tif (errorItems[itemIndex]) {\n\t\t\t\treturnItems.push({\n\t\t\t\t\tjson: { error: errorItems[itemIndex] },\n\t\t\t\t\tpairedItem: { item: itemIndex },\n\t\t\t\t});\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (responseData!.status !== 'fulfilled') {\n\t\t\t\tif (responseData.reason.statusCode === 429) {\n\t\t\t\t\tresponseData.reason.message =\n\t\t\t\t\t\t\"Try spacing your requests out using the batching settings under 'Options'\";\n\t\t\t\t}\n\t\t\t\tif (!this.continueOnFail()) {\n\t\t\t\t\tif (autoDetectResponseFormat && responseData.reason.error instanceof Buffer) {\n\t\t\t\t\t\tresponseData.reason.error = Buffer.from(responseData.reason.error as Buffer).toString();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet error;\n\t\t\t\t\tif (responseData?.reason instanceof NodeApiError) {\n\t\t\t\t\t\terror = responseData.reason;\n\t\t\t\t\t\tset(error, 'context.itemIndex', itemIndex);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorData = (\n\t\t\t\t\t\t\tresponseData.reason ? responseData.reason : responseData\n\t\t\t\t\t\t) as JsonObject;\n\t\t\t\t\t\terror = new NodeApiError(this.getNode(), errorData, { itemIndex });\n\t\t\t\t\t}\n\n\t\t\t\t\tset(error, 'context.request', sanitizedRequests[itemIndex]);\n\n\t\t\t\t\tthrow error;\n\t\t\t\t} else {\n\t\t\t\t\tremoveCircularRefs(responseData.reason as JsonObject);\n\t\t\t\t\t// Return the actual reason as error\n\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\terror: responseData.reason,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet responses: any[];\n\t\t\tif (Array.isArray(responseData.value)) {\n\t\t\t\tresponses = responseData.value;\n\t\t\t} else {\n\t\t\t\tresponses = [responseData.value];\n\t\t\t}\n\n\t\t\tlet responseFormat = this.getNodeParameter(\n\t\t\t\t'options.response.response.responseFormat',\n\t\t\t\t0,\n\t\t\t\t'autodetect',\n\t\t\t) as string;\n\n\t\t\tfullResponse = this.getNodeParameter(\n\t\t\t\t'options.response.response.fullResponse',\n\t\t\t\t0,\n\t\t\t\tfalse,\n\t\t\t) as boolean;\n\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tfor (let [index, response] of Object.entries(responses)) {\n\t\t\t\tif (response?.request?.constructor.name === 'ClientRequest') delete response.request;\n\n\t\t\t\tif (this.getMode() === 'manual' && index === '0') {\n\t\t\t\t\t// For manual executions save the first response in the context\n\t\t\t\t\t// so that we can use it in the frontend and so make it easier for\n\t\t\t\t\t// the users to create the required pagination expressions\n\t\t\t\t\tconst nodeContext = this.getContext('node');\n\t\t\t\t\tif (pagination && pagination.paginationMode !== 'off') {\n\t\t\t\t\t\tnodeContext.response = responseData.value[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnodeContext.response = responseData.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst responseContentType = response.headers['content-type'] ?? '';\n\t\t\t\tif (autoDetectResponseFormat) {\n\t\t\t\t\tif (responseContentType.includes('application/json')) {\n\t\t\t\t\t\tresponseFormat = 'json';\n\t\t\t\t\t\tif (!response.__bodyResolved) {\n\t\t\t\t\t\t\tconst neverError = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'options.response.response.neverError',\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t) as boolean;\n\n\t\t\t\t\t\t\tconst data = await this.helpers.binaryToString(response.body as Buffer | Readable);\n\t\t\t\t\t\t\tresponse.body = jsonParse(data, {\n\t\t\t\t\t\t\t\t...(neverError\n\t\t\t\t\t\t\t\t\t? { fallbackValue: {} }\n\t\t\t\t\t\t\t\t\t: { errorMessage: 'Invalid JSON in response body' }),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (binaryContentTypes.some((e) => responseContentType.includes(e))) {\n\t\t\t\t\t\tresponseFormat = 'file';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresponseFormat = 'text';\n\t\t\t\t\t\tif (!response.__bodyResolved) {\n\t\t\t\t\t\t\tconst data = await this.helpers.binaryToString(response.body as Buffer | Readable);\n\t\t\t\t\t\t\tresponse.body = !data ? undefined : data;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// This is a no-op outside of tool usage\n\t\t\t\tconst optimizeResponse = configureResponseOptimizer(this, itemIndex);\n\n\t\t\t\tif (autoDetectResponseFormat && !fullResponse) {\n\t\t\t\t\tdelete response.headers;\n\t\t\t\t\tdelete response.statusCode;\n\t\t\t\t\tdelete response.statusMessage;\n\t\t\t\t}\n\t\t\t\tif (!fullResponse) {\n\t\t\t\t\tresponse = optimizeResponse(response.body);\n\t\t\t\t} else {\n\t\t\t\t\tresponse.body = optimizeResponse(response.body);\n\t\t\t\t}\n\t\t\t\tif (responseFormat === 'file') {\n\t\t\t\t\tconst outputPropertyName = this.getNodeParameter(\n\t\t\t\t\t\t'options.response.response.outputPropertyName',\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t'data',\n\t\t\t\t\t) as string;\n\n\t\t\t\t\tconst newItem: INodeExecutionData = {\n\t\t\t\t\t\tjson: {},\n\t\t\t\t\t\tbinary: {},\n\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tif (items[itemIndex].binary !== undefined) {\n\t\t\t\t\t\t// Create a shallow copy of the binary data so that the old\n\t\t\t\t\t\t// data references which do not get changed still stay behind\n\t\t\t\t\t\t// but the incoming data does not get changed.\n\t\t\t\t\t\tObject.assign(newItem.binary as IBinaryKeyData, items[itemIndex].binary);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet binaryData: Buffer | Readable;\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\tif (property === 'body') {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnewItem.json = returnItem;\n\t\t\t\t\t\tbinaryData = response?.body;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewItem.json = items[itemIndex].json;\n\t\t\t\t\t\tbinaryData = response;\n\t\t\t\t\t}\n\t\t\t\t\tconst preparedBinaryData = await this.helpers.prepareBinaryData(\n\t\t\t\t\t\tbinaryData,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tresponseContentType || undefined,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (\n\t\t\t\t\t\t!preparedBinaryData.fileName &&\n\t\t\t\t\t\tpreparedBinaryData.fileExtension &&\n\t\t\t\t\t\ttypeof requestOptions.uri === 'string' &&\n\t\t\t\t\t\trequestOptions.uri.endsWith(preparedBinaryData.fileExtension)\n\t\t\t\t\t) {\n\t\t\t\t\t\tpreparedBinaryData.fileName = requestOptions.uri.split('/').pop();\n\t\t\t\t\t}\n\n\t\t\t\t\tnewItem.binary![outputPropertyName] = preparedBinaryData;\n\n\t\t\t\t\treturnItems.push(newItem);\n\t\t\t\t} else if (responseFormat === 'text') {\n\t\t\t\t\tconst outputPropertyName = this.getNodeParameter(\n\t\t\t\t\t\t'options.response.response.outputPropertyName',\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t'data',\n\t\t\t\t\t) as string;\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\tif (property === 'body') {\n\t\t\t\t\t\t\t\treturnItem[outputPropertyName] = toText(response[property]);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: returnItem,\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\t\t[outputPropertyName]: toText(response),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// responseFormat: 'json'\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (responseFormat === 'json' && typeof returnItem.body === 'string') {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\treturnItem.body = JSON.parse(returnItem.body);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'Response body is not valid JSON. Change \"Response Format\" to \"Text\"',\n\t\t\t\t\t\t\t\t\t{ itemIndex },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: returnItem,\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (responseFormat === 'json' && typeof response === 'string') {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (typeof response !== 'object') {\n\t\t\t\t\t\t\t\t\tresponse = JSON.parse(response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'Response body is not valid JSON. Change \"Response Format\" to \"Text\"',\n\t\t\t\t\t\t\t\t\t{ itemIndex },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (Array.isArray(response)) {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-loop-func\n\t\t\t\t\t\t\tresponse.forEach((item) =>\n\t\t\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\t\t\tjson: item,\n\t\t\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\t\tjson: response,\n\t\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturnItems = returnItems.map(replaceNullValues);\n\n\t\tif (\n\t\t\treturnItems.length === 1 &&\n\t\t\treturnItems[0].json.data &&\n\t\t\tArray.isArray(returnItems[0].json.data)\n\t\t) {\n\t\t\tconst message =\n\t\t\t\t'To split the contents of ‘data’ into separate items for easier processing, add a ‘Split Out’ node after this one';\n\n\t\t\tif (this.addExecutionHints) {\n\t\t\t\tthis.addExecutionHints({\n\t\t\t\t\tmessage,\n\t\t\t\t\tlocation: 'outputPane',\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.logger.info(message);\n\t\t\t}\n\t\t}\n\n\t\treturn [returnItems];\n\t}\n}\n"],"mappings":"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","names":["set"]}
1
+ {"version":3,"sources":["../../../../nodes/HttpRequest/V3/HttpRequestV3.node.ts"],"sourcesContent":["import set from 'lodash/set';\nimport type {\n\tIBinaryKeyData,\n\tIDataObject,\n\tIExecuteFunctions,\n\tINodeExecutionData,\n\tINodeType,\n\tINodeTypeBaseDescription,\n\tINodeTypeDescription,\n\tIRequestOptionsSimplified,\n\tPaginationOptions,\n\tJsonObject,\n\tIRequestOptions,\n\tIHttpRequestMethods,\n} from 'n8n-workflow';\nimport {\n\tBINARY_ENCODING,\n\tNodeApiError,\n\tNodeConnectionTypes,\n\tNodeOperationError,\n\tjsonParse,\n\tremoveCircularRefs,\n\tsleep,\n} from 'n8n-workflow';\nimport type { Readable } from 'stream';\n\nimport { keysToLowercase } from '@utils/utilities';\n\nimport { mainProperties } from './Description';\nimport { setFilename } from './utils/binaryData';\nimport { mimeTypeFromResponse } from './utils/parse';\nimport type { BodyParameter, IAuthDataSanitizeKeys } from '../GenericFunctions';\nimport {\n\tbinaryContentTypes,\n\tgetOAuth2AdditionalParameters,\n\tgetSecrets,\n\tprepareRequestBody,\n\treduceAsync,\n\treplaceNullValues,\n\tsanitizeUiMessage,\n\tsetAgentOptions,\n} from '../GenericFunctions';\nimport { configureResponseOptimizer } from '../shared/optimizeResponse';\n\nfunction toText<T>(data: T) {\n\tif (typeof data === 'object' && data !== null) {\n\t\treturn JSON.stringify(data);\n\t}\n\treturn data;\n}\nexport class HttpRequestV3 implements INodeType {\n\tdescription: INodeTypeDescription;\n\n\tconstructor(baseDescription: INodeTypeBaseDescription) {\n\t\tthis.description = {\n\t\t\t...baseDescription,\n\t\t\tsubtitle: '={{$parameter[\"method\"] + \": \" + $parameter[\"url\"]}}',\n\t\t\tversion: [3, 4, 4.1, 4.2],\n\t\t\tdefaults: {\n\t\t\t\tname: 'HTTP Request',\n\t\t\t\tcolor: '#0004F5',\n\t\t\t},\n\t\t\tinputs: [NodeConnectionTypes.Main],\n\t\t\toutputs: [NodeConnectionTypes.Main],\n\t\t\tcredentials: [\n\t\t\t\t{\n\t\t\t\t\tname: 'httpSslAuth',\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdisplayOptions: {\n\t\t\t\t\t\tshow: {\n\t\t\t\t\t\t\tprovideSslCertificates: [true],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t],\n\t\t\tusableAsTool: {\n\t\t\t\treplacements: {\n\t\t\t\t\tcodex: {\n\t\t\t\t\t\tsubcategories: {\n\t\t\t\t\t\t\tTools: ['Recommended Tools'],\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tproperties: mainProperties,\n\t\t};\n\t}\n\n\tasync execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {\n\t\tconst items = this.getInputData();\n\t\tconst nodeVersion = this.getNode().typeVersion;\n\n\t\tconst fullResponseProperties = ['body', 'headers', 'statusCode', 'statusMessage'];\n\n\t\tlet authentication;\n\n\t\ttry {\n\t\t\tauthentication = this.getNodeParameter('authentication', 0) as\n\t\t\t\t| 'predefinedCredentialType'\n\t\t\t\t| 'genericCredentialType'\n\t\t\t\t| 'none';\n\t\t} catch {}\n\n\t\tlet httpBasicAuth;\n\t\tlet httpBearerAuth;\n\t\tlet httpDigestAuth;\n\t\tlet httpHeaderAuth;\n\t\tlet httpQueryAuth;\n\t\tlet httpCustomAuth;\n\t\tlet oAuth1Api;\n\t\tlet oAuth2Api;\n\t\tlet sslCertificates;\n\t\tlet nodeCredentialType: string | undefined;\n\t\tlet genericCredentialType: string | undefined;\n\n\t\tlet requestOptions: IRequestOptions = {\n\t\t\turi: '',\n\t\t};\n\n\t\tlet returnItems: INodeExecutionData[] = [];\n\t\tconst errorItems: { [key: string]: string } = {};\n\t\tconst requestPromises = [];\n\n\t\tlet fullResponse = false;\n\n\t\tlet autoDetectResponseFormat = false;\n\n\t\tlet responseFileName: string | undefined;\n\n\t\t// Can not be defined on a per item level\n\t\tconst pagination = this.getNodeParameter('options.pagination.pagination', 0, null, {\n\t\t\trawExpressions: true,\n\t\t}) as {\n\t\t\tpaginationMode: 'off' | 'updateAParameterInEachRequest' | 'responseContainsNextURL';\n\t\t\tnextURL?: string;\n\t\t\tparameters: {\n\t\t\t\tparameters: Array<{\n\t\t\t\t\ttype: 'body' | 'headers' | 'qs';\n\t\t\t\t\tname: string;\n\t\t\t\t\tvalue: string;\n\t\t\t\t}>;\n\t\t\t};\n\t\t\tpaginationCompleteWhen: 'responseIsEmpty' | 'receiveSpecificStatusCodes' | 'other';\n\t\t\tstatusCodesWhenComplete: string;\n\t\t\tcompleteExpression: string;\n\t\t\tlimitPagesFetched: boolean;\n\t\t\tmaxRequests: number;\n\t\t\trequestInterval: number;\n\t\t};\n\n\t\tconst requests: Array<{\n\t\t\toptions: IRequestOptions;\n\t\t\tauthKeys: IAuthDataSanitizeKeys;\n\t\t\tcredentialType?: string;\n\t\t}> = [];\n\n\t\tfor (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n\t\t\ttry {\n\t\t\t\tif (authentication === 'genericCredentialType') {\n\t\t\t\t\tgenericCredentialType = this.getNodeParameter('genericAuthType', 0) as string;\n\n\t\t\t\t\tif (genericCredentialType === 'httpBasicAuth') {\n\t\t\t\t\t\thttpBasicAuth = await this.getCredentials('httpBasicAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpBearerAuth') {\n\t\t\t\t\t\thttpBearerAuth = await this.getCredentials('httpBearerAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpDigestAuth') {\n\t\t\t\t\t\thttpDigestAuth = await this.getCredentials('httpDigestAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpHeaderAuth') {\n\t\t\t\t\t\thttpHeaderAuth = await this.getCredentials('httpHeaderAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpQueryAuth') {\n\t\t\t\t\t\thttpQueryAuth = await this.getCredentials('httpQueryAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'httpCustomAuth') {\n\t\t\t\t\t\thttpCustomAuth = await this.getCredentials('httpCustomAuth', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'oAuth1Api') {\n\t\t\t\t\t\toAuth1Api = await this.getCredentials('oAuth1Api', itemIndex);\n\t\t\t\t\t} else if (genericCredentialType === 'oAuth2Api') {\n\t\t\t\t\t\toAuth2Api = await this.getCredentials('oAuth2Api', itemIndex);\n\t\t\t\t\t}\n\t\t\t\t} else if (authentication === 'predefinedCredentialType') {\n\t\t\t\t\tnodeCredentialType = this.getNodeParameter('nodeCredentialType', itemIndex) as string;\n\t\t\t\t}\n\n\t\t\t\tconst provideSslCertificates = this.getNodeParameter(\n\t\t\t\t\t'provideSslCertificates',\n\t\t\t\t\titemIndex,\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\n\t\t\t\tif (provideSslCertificates) {\n\t\t\t\t\tsslCertificates = await this.getCredentials('httpSslAuth', itemIndex);\n\t\t\t\t}\n\n\t\t\t\tconst requestMethod = this.getNodeParameter('method', itemIndex) as IHttpRequestMethods;\n\n\t\t\t\tconst sendQuery = this.getNodeParameter('sendQuery', itemIndex, false) as boolean;\n\t\t\t\tconst queryParameters = this.getNodeParameter(\n\t\t\t\t\t'queryParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as [{ name: string; value: string }];\n\t\t\t\tconst specifyQuery = this.getNodeParameter('specifyQuery', itemIndex, 'keypair') as string;\n\t\t\t\tconst jsonQueryParameter = this.getNodeParameter('jsonQuery', itemIndex, '') as string;\n\n\t\t\t\tconst sendBody = this.getNodeParameter('sendBody', itemIndex, false) as boolean;\n\t\t\t\tconst bodyContentType = this.getNodeParameter('contentType', itemIndex, '') as string;\n\t\t\t\tconst specifyBody = this.getNodeParameter('specifyBody', itemIndex, '') as string;\n\t\t\t\tconst bodyParameters = this.getNodeParameter(\n\t\t\t\t\t'bodyParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as BodyParameter[];\n\t\t\t\tconst jsonBodyParameter = this.getNodeParameter('jsonBody', itemIndex, '') as string;\n\t\t\t\tconst body = this.getNodeParameter('body', itemIndex, '') as string;\n\n\t\t\t\tconst sendHeaders = this.getNodeParameter('sendHeaders', itemIndex, false) as boolean;\n\n\t\t\t\tconst headerParameters = this.getNodeParameter(\n\t\t\t\t\t'headerParameters.parameters',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t[],\n\t\t\t\t) as [{ name: string; value: string }];\n\n\t\t\t\tconst specifyHeaders = this.getNodeParameter(\n\t\t\t\t\t'specifyHeaders',\n\t\t\t\t\titemIndex,\n\t\t\t\t\t'keypair',\n\t\t\t\t) as string;\n\n\t\t\t\tconst jsonHeadersParameter = this.getNodeParameter('jsonHeaders', itemIndex, '') as string;\n\n\t\t\t\tconst {\n\t\t\t\t\tredirect,\n\t\t\t\t\tbatching,\n\t\t\t\t\tproxy,\n\t\t\t\t\ttimeout,\n\t\t\t\t\tallowUnauthorizedCerts,\n\t\t\t\t\tqueryParameterArrays,\n\t\t\t\t\tresponse,\n\t\t\t\t\tlowercaseHeaders,\n\t\t\t\t} = this.getNodeParameter('options', itemIndex, {}) as {\n\t\t\t\t\tbatching: { batch: { batchSize: number; batchInterval: number } };\n\t\t\t\t\tproxy: string;\n\t\t\t\t\ttimeout: number;\n\t\t\t\t\tallowUnauthorizedCerts: boolean;\n\t\t\t\t\tqueryParameterArrays: 'indices' | 'brackets' | 'repeat';\n\t\t\t\t\tresponse: {\n\t\t\t\t\t\tresponse: {\n\t\t\t\t\t\t\tneverError: boolean;\n\t\t\t\t\t\t\tresponseFormat: string;\n\t\t\t\t\t\t\tfullResponse: boolean;\n\t\t\t\t\t\t\toutputPropertyName: string;\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t\tredirect: { redirect: { maxRedirects: number; followRedirects: boolean } };\n\t\t\t\t\tlowercaseHeaders: boolean;\n\t\t\t\t};\n\n\t\t\t\tresponseFileName = response?.response?.outputPropertyName;\n\n\t\t\t\tconst url = this.getNodeParameter('url', itemIndex) as string;\n\n\t\t\t\tconst responseFormat = response?.response?.responseFormat || 'autodetect';\n\n\t\t\t\tfullResponse = response?.response?.fullResponse || false;\n\n\t\t\t\tautoDetectResponseFormat = responseFormat === 'autodetect';\n\n\t\t\t\t// defaults batch size to 1 of it's set to 0\n\t\t\t\tconst batchSize = batching?.batch?.batchSize > 0 ? batching?.batch?.batchSize : 1;\n\t\t\t\tconst batchInterval = batching?.batch.batchInterval;\n\n\t\t\t\tif (itemIndex > 0 && batchSize >= 0 && batchInterval > 0) {\n\t\t\t\t\tif (itemIndex % batchSize === 0) {\n\t\t\t\t\t\tawait sleep(batchInterval);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trequestOptions = {\n\t\t\t\t\theaders: {},\n\t\t\t\t\tmethod: requestMethod,\n\t\t\t\t\turi: url,\n\t\t\t\t\tgzip: true,\n\t\t\t\t\trejectUnauthorized: !allowUnauthorizedCerts || false,\n\t\t\t\t\tfollowRedirect: false,\n\t\t\t\t\tresolveWithFullResponse: true,\n\t\t\t\t};\n\n\t\t\t\tif (requestOptions.method !== 'GET' && nodeVersion >= 4.1) {\n\t\t\t\t\trequestOptions = { ...requestOptions, followAllRedirects: false };\n\t\t\t\t}\n\n\t\t\t\tconst defaultRedirect = nodeVersion >= 4 && redirect === undefined;\n\n\t\t\t\tif (redirect?.redirect?.followRedirects || defaultRedirect) {\n\t\t\t\t\trequestOptions.followRedirect = true;\n\t\t\t\t\trequestOptions.followAllRedirects = true;\n\t\t\t\t}\n\n\t\t\t\tif (redirect?.redirect?.maxRedirects || defaultRedirect) {\n\t\t\t\t\trequestOptions.maxRedirects = redirect?.redirect?.maxRedirects;\n\t\t\t\t}\n\n\t\t\t\tif (response?.response?.neverError) {\n\t\t\t\t\trequestOptions.simple = false;\n\t\t\t\t}\n\n\t\t\t\tif (proxy) {\n\t\t\t\t\trequestOptions.proxy = proxy;\n\t\t\t\t}\n\n\t\t\t\tif (timeout) {\n\t\t\t\t\trequestOptions.timeout = timeout;\n\t\t\t\t} else {\n\t\t\t\t\t// set default timeout to 5 minutes\n\t\t\t\t\trequestOptions.timeout = 300_000;\n\t\t\t\t}\n\t\t\t\tif (sendQuery && queryParameterArrays) {\n\t\t\t\t\tObject.assign(requestOptions, {\n\t\t\t\t\t\tqsStringifyOptions: { arrayFormat: queryParameterArrays },\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tconst parametersToKeyValue = async (\n\t\t\t\t\taccumulator: { [key: string]: any },\n\t\t\t\t\tcur: { name: string; value: string; parameterType?: string; inputDataFieldName?: string },\n\t\t\t\t) => {\n\t\t\t\t\tif (cur.parameterType === 'formBinaryData') {\n\t\t\t\t\t\tif (!cur.inputDataFieldName) return accumulator;\n\t\t\t\t\t\tconst binaryData = this.helpers.assertBinaryData(itemIndex, cur.inputDataFieldName);\n\t\t\t\t\t\tlet uploadData: Buffer | Readable;\n\t\t\t\t\t\tconst itemBinaryData = items[itemIndex].binary![cur.inputDataFieldName];\n\t\t\t\t\t\tif (itemBinaryData.id) {\n\t\t\t\t\t\t\tuploadData = await this.helpers.getBinaryStream(itemBinaryData.id);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tuploadData = Buffer.from(itemBinaryData.data, BINARY_ENCODING);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\taccumulator[cur.name] = {\n\t\t\t\t\t\t\tvalue: uploadData,\n\t\t\t\t\t\t\toptions: {\n\t\t\t\t\t\t\t\tfilename: binaryData.fileName,\n\t\t\t\t\t\t\t\tcontentType: binaryData.mimeType,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn accumulator;\n\t\t\t\t\t}\n\t\t\t\t\taccumulator[cur.name] = cur.value;\n\t\t\t\t\treturn accumulator;\n\t\t\t\t};\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendBody && bodyParameters) {\n\t\t\t\t\tif (specifyBody === 'keypair' || bodyContentType === 'multipart-form-data') {\n\t\t\t\t\t\trequestOptions.body = await prepareRequestBody(\n\t\t\t\t\t\t\tbodyParameters,\n\t\t\t\t\t\t\tbodyContentType,\n\t\t\t\t\t\t\tnodeVersion,\n\t\t\t\t\t\t\tparametersToKeyValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (specifyBody === 'json') {\n\t\t\t\t\t\t// body is specified using JSON\n\t\t\t\t\t\tif (typeof jsonBodyParameter !== 'object' && jsonBodyParameter !== null) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tJSON.parse(jsonBodyParameter);\n\t\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\trequestOptions.body = jsonParse(jsonBodyParameter);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\trequestOptions.body = jsonBodyParameter;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (specifyBody === 'string') {\n\t\t\t\t\t\t//form urlencoded\n\t\t\t\t\t\trequestOptions.body = Object.fromEntries(new URLSearchParams(body));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Change the way data get send in case a different content-type than JSON got selected\n\t\t\t\tif (sendBody && ['PATCH', 'POST', 'PUT', 'GET'].includes(requestMethod)) {\n\t\t\t\t\tif (bodyContentType === 'multipart-form-data') {\n\t\t\t\t\t\trequestOptions.formData = requestOptions.body as IDataObject;\n\t\t\t\t\t\tdelete requestOptions.body;\n\t\t\t\t\t} else if (bodyContentType === 'form-urlencoded') {\n\t\t\t\t\t\trequestOptions.form = requestOptions.body as IDataObject;\n\t\t\t\t\t\tdelete requestOptions.body;\n\t\t\t\t\t} else if (bodyContentType === 'binaryData') {\n\t\t\t\t\t\tconst inputDataFieldName = this.getNodeParameter(\n\t\t\t\t\t\t\t'inputDataFieldName',\n\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t) as string;\n\n\t\t\t\t\t\tlet uploadData: Buffer | Readable;\n\t\t\t\t\t\tlet contentLength: number;\n\n\t\t\t\t\t\tconst itemBinaryData = this.helpers.assertBinaryData(itemIndex, inputDataFieldName);\n\n\t\t\t\t\t\tif (itemBinaryData.id) {\n\t\t\t\t\t\t\tuploadData = await this.helpers.getBinaryStream(itemBinaryData.id);\n\t\t\t\t\t\t\tconst metadata = await this.helpers.getBinaryMetadata(itemBinaryData.id);\n\t\t\t\t\t\t\tcontentLength = metadata.fileSize;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tuploadData = Buffer.from(itemBinaryData.data, BINARY_ENCODING);\n\t\t\t\t\t\t\tcontentLength = uploadData.length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\trequestOptions.body = uploadData;\n\t\t\t\t\t\trequestOptions.headers = {\n\t\t\t\t\t\t\t...requestOptions.headers,\n\t\t\t\t\t\t\t'content-length': contentLength,\n\t\t\t\t\t\t\t'content-type': itemBinaryData.mimeType ?? 'application/octet-stream',\n\t\t\t\t\t\t};\n\t\t\t\t\t} else if (bodyContentType === 'raw') {\n\t\t\t\t\t\trequestOptions.body = body;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendQuery && queryParameters) {\n\t\t\t\t\tif (specifyQuery === 'keypair') {\n\t\t\t\t\t\trequestOptions.qs = await reduceAsync(queryParameters, parametersToKeyValue);\n\t\t\t\t\t} else if (specifyQuery === 'json') {\n\t\t\t\t\t\t// query is specified using JSON\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tJSON.parse(jsonQueryParameter);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\trequestOptions.qs = jsonParse(jsonQueryParameter);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Get parameters defined in the UI\n\t\t\t\tif (sendHeaders && headerParameters) {\n\t\t\t\t\tlet additionalHeaders: IDataObject = {};\n\t\t\t\t\tif (specifyHeaders === 'keypair') {\n\t\t\t\t\t\tadditionalHeaders = await reduceAsync(\n\t\t\t\t\t\t\theaderParameters.filter((header) => header.name),\n\t\t\t\t\t\t\tparametersToKeyValue,\n\t\t\t\t\t\t);\n\t\t\t\t\t} else if (specifyHeaders === 'json') {\n\t\t\t\t\t\t// body is specified using JSON\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tJSON.parse(jsonHeadersParameter);\n\t\t\t\t\t\t} catch {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t'JSON parameter needs to be valid JSON',\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tadditionalHeaders = jsonParse(jsonHeadersParameter);\n\t\t\t\t\t}\n\t\t\t\t\trequestOptions.headers = {\n\t\t\t\t\t\t...requestOptions.headers,\n\t\t\t\t\t\t...(lowercaseHeaders === undefined || lowercaseHeaders\n\t\t\t\t\t\t\t? keysToLowercase(additionalHeaders)\n\t\t\t\t\t\t\t: additionalHeaders),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (autoDetectResponseFormat || responseFormat === 'file') {\n\t\t\t\t\trequestOptions.encoding = null;\n\t\t\t\t\trequestOptions.json = false;\n\t\t\t\t\trequestOptions.useStream = true;\n\t\t\t\t} else if (bodyContentType === 'raw') {\n\t\t\t\t\trequestOptions.json = false;\n\t\t\t\t\trequestOptions.useStream = true;\n\t\t\t\t} else {\n\t\t\t\t\trequestOptions.json = true;\n\t\t\t\t}\n\n\t\t\t\t// Add Content Type if any are set\n\t\t\t\tif (bodyContentType === 'raw') {\n\t\t\t\t\tif (requestOptions.headers === undefined) {\n\t\t\t\t\t\trequestOptions.headers = {};\n\t\t\t\t\t}\n\t\t\t\t\tconst rawContentType = this.getNodeParameter('rawContentType', itemIndex) as string;\n\t\t\t\t\trequestOptions.headers['content-type'] = rawContentType;\n\t\t\t\t}\n\n\t\t\t\tconst authDataKeys: IAuthDataSanitizeKeys = {};\n\n\t\t\t\t// Add SSL certificates if any are set\n\t\t\t\tsetAgentOptions(requestOptions, sslCertificates);\n\t\t\t\tif (requestOptions.agentOptions) {\n\t\t\t\t\tauthDataKeys.agentOptions = Object.keys(requestOptions.agentOptions);\n\t\t\t\t}\n\n\t\t\t\t// Add credentials if any are set\n\t\t\t\tif (httpBasicAuth !== undefined) {\n\t\t\t\t\trequestOptions.auth = {\n\t\t\t\t\t\tuser: httpBasicAuth.user as string,\n\t\t\t\t\t\tpass: httpBasicAuth.password as string,\n\t\t\t\t\t};\n\t\t\t\t\tauthDataKeys.auth = ['pass'];\n\t\t\t\t}\n\t\t\t\tif (httpBearerAuth !== undefined) {\n\t\t\t\t\trequestOptions.headers = requestOptions.headers ?? {};\n\t\t\t\t\trequestOptions.headers.Authorization = `Bearer ${String(httpBearerAuth.token)}`;\n\t\t\t\t\tauthDataKeys.headers = ['Authorization'];\n\t\t\t\t}\n\t\t\t\tif (httpHeaderAuth !== undefined) {\n\t\t\t\t\trequestOptions.headers![httpHeaderAuth.name as string] = httpHeaderAuth.value;\n\t\t\t\t\tauthDataKeys.headers = [httpHeaderAuth.name as string];\n\t\t\t\t}\n\t\t\t\tif (httpQueryAuth !== undefined) {\n\t\t\t\t\tif (!requestOptions.qs) {\n\t\t\t\t\t\trequestOptions.qs = {};\n\t\t\t\t\t}\n\t\t\t\t\trequestOptions.qs[httpQueryAuth.name as string] = httpQueryAuth.value;\n\t\t\t\t\tauthDataKeys.qs = [httpQueryAuth.name as string];\n\t\t\t\t}\n\n\t\t\t\tif (httpDigestAuth !== undefined) {\n\t\t\t\t\trequestOptions.auth = {\n\t\t\t\t\t\tuser: httpDigestAuth.user as string,\n\t\t\t\t\t\tpass: httpDigestAuth.password as string,\n\t\t\t\t\t\tsendImmediately: false,\n\t\t\t\t\t};\n\t\t\t\t\tauthDataKeys.auth = ['pass'];\n\t\t\t\t}\n\t\t\t\tif (httpCustomAuth !== undefined) {\n\t\t\t\t\tconst customAuth = jsonParse<IRequestOptionsSimplified>(\n\t\t\t\t\t\t(httpCustomAuth.json as string) || '{}',\n\t\t\t\t\t\t{ errorMessage: 'Invalid Custom Auth JSON' },\n\t\t\t\t\t);\n\t\t\t\t\tif (customAuth.headers) {\n\t\t\t\t\t\trequestOptions.headers = { ...requestOptions.headers, ...customAuth.headers };\n\t\t\t\t\t\tauthDataKeys.headers = Object.keys(customAuth.headers);\n\t\t\t\t\t}\n\t\t\t\t\tif (customAuth.body) {\n\t\t\t\t\t\trequestOptions.body = { ...(requestOptions.body as IDataObject), ...customAuth.body };\n\t\t\t\t\t\tauthDataKeys.body = Object.keys(customAuth.body);\n\t\t\t\t\t}\n\t\t\t\t\tif (customAuth.qs) {\n\t\t\t\t\t\trequestOptions.qs = { ...requestOptions.qs, ...customAuth.qs };\n\t\t\t\t\t\tauthDataKeys.qs = Object.keys(customAuth.qs);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (requestOptions.headers!.accept === undefined) {\n\t\t\t\t\tif (responseFormat === 'json') {\n\t\t\t\t\t\trequestOptions.headers!.accept = 'application/json,text/*;q=0.99';\n\t\t\t\t\t} else if (responseFormat === 'text') {\n\t\t\t\t\t\trequestOptions.headers!.accept =\n\t\t\t\t\t\t\t'application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, */*;q=0.1';\n\t\t\t\t\t} else {\n\t\t\t\t\t\trequestOptions.headers!.accept =\n\t\t\t\t\t\t\t'application/json,text/html,application/xhtml+xml,application/xml,text/*;q=0.9, image/*;q=0.8, */*;q=0.7';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\trequests.push({\n\t\t\t\t\toptions: requestOptions,\n\t\t\t\t\tauthKeys: authDataKeys,\n\t\t\t\t\tcredentialType: nodeCredentialType,\n\t\t\t\t});\n\n\t\t\t\tif (pagination && pagination.paginationMode !== 'off') {\n\t\t\t\t\tlet continueExpression = '={{false}}';\n\t\t\t\t\tif (pagination.paginationCompleteWhen === 'receiveSpecificStatusCodes') {\n\t\t\t\t\t\t// Split out comma separated list of status codes into array\n\t\t\t\t\t\tconst statusCodesWhenCompleted = pagination.statusCodesWhenComplete\n\t\t\t\t\t\t\t.split(',')\n\t\t\t\t\t\t\t.map((item) => parseInt(item.trim()));\n\n\t\t\t\t\t\tcontinueExpression = `={{ !${JSON.stringify(\n\t\t\t\t\t\t\tstatusCodesWhenCompleted,\n\t\t\t\t\t\t)}.includes($response.statusCode) }}`;\n\t\t\t\t\t} else if (pagination.paginationCompleteWhen === 'responseIsEmpty') {\n\t\t\t\t\t\tcontinueExpression =\n\t\t\t\t\t\t\t'={{ Array.isArray($response.body) ? $response.body.length : !!$response.body }}';\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Other\n\t\t\t\t\t\tif (!pagination.completeExpression.length || pagination.completeExpression[0] !== '=') {\n\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), 'Invalid or empty Complete Expression');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcontinueExpression = `={{ !(${pagination.completeExpression.trim().slice(3, -2)}) }}`;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst paginationData: PaginationOptions = {\n\t\t\t\t\t\tcontinue: continueExpression,\n\t\t\t\t\t\trequest: {},\n\t\t\t\t\t\trequestInterval: pagination.requestInterval,\n\t\t\t\t\t};\n\n\t\t\t\t\tif (pagination.paginationMode === 'updateAParameterInEachRequest') {\n\t\t\t\t\t\t// Iterate over all parameters and add them to the request\n\t\t\t\t\t\tpaginationData.request = {};\n\t\t\t\t\t\tconst { parameters } = pagination.parameters;\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tparameters.length === 1 &&\n\t\t\t\t\t\t\tparameters[0].name === '' &&\n\t\t\t\t\t\t\tparameters[0].value === ''\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\"At least one entry with 'Name' and 'Value' filled must be included in 'Parameters' to use 'Update a Parameter in Each Request' mode \",\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpagination.parameters.parameters.forEach((parameter, index) => {\n\t\t\t\t\t\t\tif (!paginationData.request[parameter.type]) {\n\t\t\t\t\t\t\t\tpaginationData.request[parameter.type] = {};\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parameterName = parameter.name;\n\t\t\t\t\t\t\tif (parameterName === '') {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t`Parameter name must be set for parameter [${index + 1}] in pagination settings`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst parameterValue = parameter.value;\n\t\t\t\t\t\t\tif (parameterValue === '') {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t`Some value must be provided for parameter [${\n\t\t\t\t\t\t\t\t\t\tindex + 1\n\t\t\t\t\t\t\t\t\t}] in pagination settings, omitting it will result in an infinite loop`,\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tpaginationData.request[parameter.type]![parameterName] = parameterValue;\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (pagination.paginationMode === 'responseContainsNextURL') {\n\t\t\t\t\t\tpaginationData.request.url = pagination.nextURL;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (pagination.limitPagesFetched) {\n\t\t\t\t\t\tpaginationData.maxRequests = pagination.maxRequests;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (responseFormat === 'file') {\n\t\t\t\t\t\tpaginationData.binaryResult = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst requestPromise = this.helpers.requestWithAuthenticationPaginated\n\t\t\t\t\t\t.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t\titemIndex,\n\t\t\t\t\t\t\tpaginationData,\n\t\t\t\t\t\t\tnodeCredentialType ?? genericCredentialType,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\t\tif (error instanceof NodeOperationError && error.type === 'invalid_url') {\n\t\t\t\t\t\t\t\tconst urlParameterName =\n\t\t\t\t\t\t\t\t\tpagination.paginationMode === 'responseContainsNextURL' ? 'Next URL' : 'URL';\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(this.getNode(), error.message, {\n\t\t\t\t\t\t\t\t\tdescription: `Make sure the \"${urlParameterName}\" parameter evaluates to a valid URL.`,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthrow error;\n\t\t\t\t\t\t});\n\t\t\t\t\trequestPromises.push(requestPromise);\n\t\t\t\t} else if (authentication === 'genericCredentialType' || authentication === 'none') {\n\t\t\t\t\tif (oAuth1Api) {\n\t\t\t\t\t\tconst requestOAuth1 = this.helpers.requestOAuth1.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t'oAuth1Api',\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t);\n\t\t\t\t\t\trequestOAuth1.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(requestOAuth1);\n\t\t\t\t\t} else if (oAuth2Api) {\n\t\t\t\t\t\tconst requestOAuth2 = this.helpers.requestOAuth2.call(\n\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t'oAuth2Api',\n\t\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\ttokenType: 'Bearer',\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t);\n\t\t\t\t\t\trequestOAuth2.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(requestOAuth2);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// bearerAuth, queryAuth, headerAuth, digestAuth, none\n\t\t\t\t\t\tconst request = this.helpers.request(requestOptions);\n\t\t\t\t\t\trequest.catch(() => {});\n\t\t\t\t\t\trequestPromises.push(request);\n\t\t\t\t\t}\n\t\t\t\t} else if (authentication === 'predefinedCredentialType' && nodeCredentialType) {\n\t\t\t\t\tconst additionalOAuth2Options = getOAuth2AdditionalParameters(nodeCredentialType);\n\n\t\t\t\t\t// service-specific cred: OAuth1, OAuth2, plain\n\n\t\t\t\t\tconst requestWithAuthentication = this.helpers.requestWithAuthentication.call(\n\t\t\t\t\t\tthis,\n\t\t\t\t\t\tnodeCredentialType,\n\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\tadditionalOAuth2Options && { oauth2: additionalOAuth2Options },\n\t\t\t\t\t\titemIndex,\n\t\t\t\t\t);\n\t\t\t\t\trequestWithAuthentication.catch(() => {});\n\t\t\t\t\trequestPromises.push(requestWithAuthentication);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tif (!this.continueOnFail()) throw error;\n\n\t\t\t\trequestPromises.push(Promise.reject(error).catch(() => {}));\n\n\t\t\t\terrorItems[itemIndex] = error.message;\n\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\n\t\tconst sanitizedRequests: IDataObject[] = [];\n\t\tconst promisesResponses = await Promise.allSettled(\n\t\t\trequestPromises.map(\n\t\t\t\tasync (requestPromise, itemIndex) =>\n\t\t\t\t\tawait requestPromise\n\t\t\t\t\t\t.then((response) => response)\n\t\t\t\t\t\t.finally(async () => {\n\t\t\t\t\t\t\tif (errorItems[itemIndex]) return;\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// Secrets need to be read after the request because secrets could have changed\n\t\t\t\t\t\t\t\t// For example: OAuth token refresh, preAuthentication\n\t\t\t\t\t\t\t\tconst { options, authKeys, credentialType } = requests[itemIndex];\n\t\t\t\t\t\t\t\tlet secrets: string[] = [];\n\t\t\t\t\t\t\t\tif (credentialType) {\n\t\t\t\t\t\t\t\t\tconst properties = this.getCredentialsProperties(credentialType);\n\t\t\t\t\t\t\t\t\tconst credentials = await this.getCredentials(credentialType, itemIndex);\n\t\t\t\t\t\t\t\t\tsecrets = getSecrets(properties, credentials);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tconst sanitizedRequestOptions = sanitizeUiMessage(options, authKeys, secrets);\n\t\t\t\t\t\t\t\tsanitizedRequests.push(sanitizedRequestOptions);\n\t\t\t\t\t\t\t\tthis.sendMessageToUI(sanitizedRequestOptions);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}),\n\t\t\t),\n\t\t);\n\n\t\tlet responseData: any;\n\t\tfor (let itemIndex = 0; itemIndex < items.length; itemIndex++) {\n\t\t\tresponseData = promisesResponses.shift();\n\n\t\t\tif (errorItems[itemIndex]) {\n\t\t\t\treturnItems.push({\n\t\t\t\t\tjson: { error: errorItems[itemIndex] },\n\t\t\t\t\tpairedItem: { item: itemIndex },\n\t\t\t\t});\n\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (responseData!.status !== 'fulfilled') {\n\t\t\t\tif (responseData.reason.statusCode === 429) {\n\t\t\t\t\tresponseData.reason.message =\n\t\t\t\t\t\t\"Try spacing your requests out using the batching settings under 'Options'\";\n\t\t\t\t}\n\t\t\t\tif (!this.continueOnFail()) {\n\t\t\t\t\tif (autoDetectResponseFormat && responseData.reason.error instanceof Buffer) {\n\t\t\t\t\t\tresponseData.reason.error = Buffer.from(responseData.reason.error as Buffer).toString();\n\t\t\t\t\t}\n\n\t\t\t\t\tlet error;\n\t\t\t\t\tif (responseData?.reason instanceof NodeApiError) {\n\t\t\t\t\t\terror = responseData.reason;\n\t\t\t\t\t\tset(error, 'context.itemIndex', itemIndex);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst errorData = (\n\t\t\t\t\t\t\tresponseData.reason ? responseData.reason : responseData\n\t\t\t\t\t\t) as JsonObject;\n\t\t\t\t\t\terror = new NodeApiError(this.getNode(), errorData, { itemIndex });\n\t\t\t\t\t}\n\n\t\t\t\t\tset(error, 'context.request', sanitizedRequests[itemIndex]);\n\n\t\t\t\t\tthrow error;\n\t\t\t\t} else {\n\t\t\t\t\tremoveCircularRefs(responseData.reason as JsonObject);\n\t\t\t\t\t// Return the actual reason as error\n\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\terror: responseData.reason,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t},\n\t\t\t\t\t});\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet responses: any[];\n\t\t\tif (Array.isArray(responseData.value)) {\n\t\t\t\tresponses = responseData.value;\n\t\t\t} else {\n\t\t\t\tresponses = [responseData.value];\n\t\t\t}\n\n\t\t\tlet responseFormat = this.getNodeParameter(\n\t\t\t\t'options.response.response.responseFormat',\n\t\t\t\t0,\n\t\t\t\t'autodetect',\n\t\t\t) as string;\n\n\t\t\tfullResponse = this.getNodeParameter(\n\t\t\t\t'options.response.response.fullResponse',\n\t\t\t\t0,\n\t\t\t\tfalse,\n\t\t\t) as boolean;\n\n\t\t\t// eslint-disable-next-line prefer-const\n\t\t\tfor (let [index, response] of Object.entries(responses)) {\n\t\t\t\tif (response?.request?.constructor.name === 'ClientRequest') delete response.request;\n\n\t\t\t\tif (this.getMode() === 'manual' && index === '0') {\n\t\t\t\t\t// For manual executions save the first response in the context\n\t\t\t\t\t// so that we can use it in the frontend and so make it easier for\n\t\t\t\t\t// the users to create the required pagination expressions\n\t\t\t\t\tconst nodeContext = this.getContext('node');\n\t\t\t\t\tif (pagination && pagination.paginationMode !== 'off') {\n\t\t\t\t\t\tnodeContext.response = responseData.value[0];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnodeContext.response = responseData.value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst responseContentType = response.headers['content-type'] ?? '';\n\t\t\t\tif (autoDetectResponseFormat) {\n\t\t\t\t\tif (responseContentType.includes('application/json')) {\n\t\t\t\t\t\tresponseFormat = 'json';\n\t\t\t\t\t\tif (!response.__bodyResolved) {\n\t\t\t\t\t\t\tconst neverError = this.getNodeParameter(\n\t\t\t\t\t\t\t\t'options.response.response.neverError',\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tfalse,\n\t\t\t\t\t\t\t) as boolean;\n\n\t\t\t\t\t\t\tconst data = await this.helpers.binaryToString(response.body as Buffer | Readable);\n\t\t\t\t\t\t\tresponse.body = jsonParse(data, {\n\t\t\t\t\t\t\t\t...(neverError\n\t\t\t\t\t\t\t\t\t? { fallbackValue: {} }\n\t\t\t\t\t\t\t\t\t: { errorMessage: 'Invalid JSON in response body' }),\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} else if (binaryContentTypes.some((e) => responseContentType.includes(e))) {\n\t\t\t\t\t\tresponseFormat = 'file';\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresponseFormat = 'text';\n\t\t\t\t\t\tif (!response.__bodyResolved) {\n\t\t\t\t\t\t\tconst data = await this.helpers.binaryToString(response.body as Buffer | Readable);\n\t\t\t\t\t\t\tresponse.body = !data ? undefined : data;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// This is a no-op outside of tool usage\n\t\t\t\tconst optimizeResponse = configureResponseOptimizer(this, itemIndex);\n\n\t\t\t\tif (autoDetectResponseFormat && !fullResponse) {\n\t\t\t\t\tdelete response.headers;\n\t\t\t\t\tdelete response.statusCode;\n\t\t\t\t\tdelete response.statusMessage;\n\t\t\t\t}\n\t\t\t\tif (!fullResponse) {\n\t\t\t\t\tresponse = optimizeResponse(response.body);\n\t\t\t\t} else {\n\t\t\t\t\tresponse.body = optimizeResponse(response.body);\n\t\t\t\t}\n\t\t\t\tif (responseFormat === 'file') {\n\t\t\t\t\tconst outputPropertyName = this.getNodeParameter(\n\t\t\t\t\t\t'options.response.response.outputPropertyName',\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t'data',\n\t\t\t\t\t) as string;\n\n\t\t\t\t\tconst newItem: INodeExecutionData = {\n\t\t\t\t\t\tjson: {},\n\t\t\t\t\t\tbinary: {},\n\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\n\t\t\t\t\tif (items[itemIndex].binary !== undefined) {\n\t\t\t\t\t\t// Create a shallow copy of the binary data so that the old\n\t\t\t\t\t\t// data references which do not get changed still stay behind\n\t\t\t\t\t\t// but the incoming data does not get changed.\n\t\t\t\t\t\tObject.assign(newItem.binary as IBinaryKeyData, items[itemIndex].binary);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet binaryData: Buffer | Readable;\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\tif (property === 'body') {\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnewItem.json = returnItem;\n\t\t\t\t\t\tbinaryData = response?.body;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnewItem.json = items[itemIndex].json;\n\t\t\t\t\t\tbinaryData = response;\n\t\t\t\t\t}\n\t\t\t\t\tconst preparedBinaryData = await this.helpers.prepareBinaryData(\n\t\t\t\t\t\tbinaryData,\n\t\t\t\t\t\tundefined,\n\t\t\t\t\t\tmimeTypeFromResponse(responseContentType),\n\t\t\t\t\t);\n\n\t\t\t\t\tpreparedBinaryData.fileName = setFilename(\n\t\t\t\t\t\tpreparedBinaryData,\n\t\t\t\t\t\trequestOptions,\n\t\t\t\t\t\tresponseFileName,\n\t\t\t\t\t);\n\n\t\t\t\t\tnewItem.binary![outputPropertyName] = preparedBinaryData;\n\n\t\t\t\t\treturnItems.push(newItem);\n\t\t\t\t} else if (responseFormat === 'text') {\n\t\t\t\t\tconst outputPropertyName = this.getNodeParameter(\n\t\t\t\t\t\t'options.response.response.outputPropertyName',\n\t\t\t\t\t\t0,\n\t\t\t\t\t\t'data',\n\t\t\t\t\t) as string;\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\tif (property === 'body') {\n\t\t\t\t\t\t\t\treturnItem[outputPropertyName] = toText(response[property]);\n\t\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: returnItem,\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: {\n\t\t\t\t\t\t\t\t[outputPropertyName]: toText(response),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// responseFormat: 'json'\n\t\t\t\t\tif (fullResponse) {\n\t\t\t\t\t\tconst returnItem: IDataObject = {};\n\t\t\t\t\t\tfor (const property of fullResponseProperties) {\n\t\t\t\t\t\t\treturnItem[property] = response[property];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (responseFormat === 'json' && typeof returnItem.body === 'string') {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\treturnItem.body = JSON.parse(returnItem.body);\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'Response body is not valid JSON. Change \"Response Format\" to \"Text\"',\n\t\t\t\t\t\t\t\t\t{ itemIndex },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\tjson: returnItem,\n\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (responseFormat === 'json' && typeof response === 'string') {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tif (typeof response !== 'object') {\n\t\t\t\t\t\t\t\t\tresponse = JSON.parse(response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\t\tthrow new NodeOperationError(\n\t\t\t\t\t\t\t\t\tthis.getNode(),\n\t\t\t\t\t\t\t\t\t'Response body is not valid JSON. Change \"Response Format\" to \"Text\"',\n\t\t\t\t\t\t\t\t\t{ itemIndex },\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (Array.isArray(response)) {\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-loop-func\n\t\t\t\t\t\t\tresponse.forEach((item) =>\n\t\t\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\t\t\tjson: item,\n\t\t\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturnItems.push({\n\t\t\t\t\t\t\t\tjson: response,\n\t\t\t\t\t\t\t\tpairedItem: {\n\t\t\t\t\t\t\t\t\titem: itemIndex,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturnItems = returnItems.map(replaceNullValues);\n\n\t\tif (\n\t\t\treturnItems.length === 1 &&\n\t\t\treturnItems[0].json.data &&\n\t\t\tArray.isArray(returnItems[0].json.data)\n\t\t) {\n\t\t\tconst message =\n\t\t\t\t'To split the contents of ‘data’ into separate items for easier processing, add a ‘Split Out’ node after this one';\n\n\t\t\tif (this.addExecutionHints) {\n\t\t\t\tthis.addExecutionHints({\n\t\t\t\t\tmessage,\n\t\t\t\t\tlocation: 'outputPane',\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.logger.info(message);\n\t\t\t}\n\t\t}\n\n\t\treturn [returnItems];\n\t}\n}\n"],"mappings":"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","names":["set"]}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var binaryData_exports = {};
20
+ __export(binaryData_exports, {
21
+ setFilename: () => setFilename
22
+ });
23
+ module.exports = __toCommonJS(binaryData_exports);
24
+ const setFilename = (preparedBinaryData, requestOptions, responseFileName) => {
25
+ if (!preparedBinaryData.fileName && preparedBinaryData.fileExtension && typeof requestOptions.uri === "string" && requestOptions.uri.endsWith(preparedBinaryData.fileExtension)) {
26
+ return requestOptions.uri.split("/").pop();
27
+ }
28
+ if (!preparedBinaryData.fileName && preparedBinaryData.fileExtension) {
29
+ return `${responseFileName ?? "data"}.${preparedBinaryData.fileExtension}`;
30
+ }
31
+ return preparedBinaryData.fileName;
32
+ };
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ setFilename
36
+ });
37
+ //# sourceMappingURL=binaryData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/HttpRequest/V3/utils/binaryData.ts"],"sourcesContent":["import type { IBinaryData, IRequestOptions } from 'n8n-workflow';\n\nexport const setFilename = (\n\tpreparedBinaryData: IBinaryData,\n\trequestOptions: IRequestOptions,\n\tresponseFileName: string | undefined,\n) => {\n\tif (\n\t\t!preparedBinaryData.fileName &&\n\t\tpreparedBinaryData.fileExtension &&\n\t\ttypeof requestOptions.uri === 'string' &&\n\t\trequestOptions.uri.endsWith(preparedBinaryData.fileExtension)\n\t) {\n\t\treturn requestOptions.uri.split('/').pop();\n\t}\n\n\tif (!preparedBinaryData.fileName && preparedBinaryData.fileExtension) {\n\t\treturn `${responseFileName ?? 'data'}.${preparedBinaryData.fileExtension}`;\n\t}\n\n\treturn preparedBinaryData.fileName;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,cAAc,CAC1B,oBACA,gBACA,qBACI;AACJ,MACC,CAAC,mBAAmB,YACpB,mBAAmB,iBACnB,OAAO,eAAe,QAAQ,YAC9B,eAAe,IAAI,SAAS,mBAAmB,aAAa,GAC3D;AACD,WAAO,eAAe,IAAI,MAAM,GAAG,EAAE,IAAI;AAAA,EAC1C;AAEA,MAAI,CAAC,mBAAmB,YAAY,mBAAmB,eAAe;AACrE,WAAO,GAAG,oBAAoB,MAAM,IAAI,mBAAmB,aAAa;AAAA,EACzE;AAEA,SAAO,mBAAmB;AAC3B;","names":[]}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var parse_exports = {};
20
+ __export(parse_exports, {
21
+ mimeTypeFromResponse: () => mimeTypeFromResponse
22
+ });
23
+ module.exports = __toCommonJS(parse_exports);
24
+ const mimeTypeFromResponse = (responseContentType) => {
25
+ if (!responseContentType) {
26
+ return void 0;
27
+ }
28
+ return responseContentType.split(" ")[0].split(";")[0];
29
+ };
30
+ // Annotate the CommonJS export names for ESM import in node:
31
+ 0 && (module.exports = {
32
+ mimeTypeFromResponse
33
+ });
34
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../nodes/HttpRequest/V3/utils/parse.ts"],"sourcesContent":["export const mimeTypeFromResponse = (\n\tresponseContentType: string | undefined,\n): string | undefined => {\n\tif (!responseContentType) {\n\t\treturn undefined;\n\t}\n\n\treturn responseContentType.split(' ')[0].split(';')[0];\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,uBAAuB,CACnC,wBACwB;AACxB,MAAI,CAAC,qBAAqB;AACzB,WAAO;AAAA,EACR;AAEA,SAAO,oBAAoB,MAAM,GAAG,EAAE,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC;AACtD;","names":[]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var CommentDescription_exports = {};
20
+ __export(CommentDescription_exports, {
21
+ commentFields: () => commentFields,
22
+ commentOperations: () => commentOperations
23
+ });
24
+ module.exports = __toCommonJS(CommentDescription_exports);
25
+ const commentOperations = [
26
+ {
27
+ displayName: "Operation",
28
+ name: "operation",
29
+ type: "options",
30
+ noDataExpression: true,
31
+ displayOptions: {
32
+ show: {
33
+ resource: ["comment"]
34
+ }
35
+ },
36
+ options: [
37
+ {
38
+ name: "Add Comment",
39
+ value: "addComment",
40
+ description: "Add a comment to an issue",
41
+ action: "Add a comment to an issue"
42
+ }
43
+ ],
44
+ default: "addComment"
45
+ }
46
+ ];
47
+ const commentFields = [
48
+ /* -------------------------------------------------------------------------- */
49
+ /* comment:addComment */
50
+ /* -------------------------------------------------------------------------- */
51
+ {
52
+ displayName: "Issue ID",
53
+ name: "issueId",
54
+ type: "string",
55
+ required: true,
56
+ displayOptions: {
57
+ show: {
58
+ resource: ["comment"],
59
+ operation: ["addComment"]
60
+ }
61
+ },
62
+ default: ""
63
+ },
64
+ {
65
+ displayName: "Comment",
66
+ name: "comment",
67
+ type: "string",
68
+ required: true,
69
+ displayOptions: {
70
+ show: {
71
+ resource: ["comment"],
72
+ operation: ["addComment"]
73
+ }
74
+ },
75
+ default: ""
76
+ },
77
+ {
78
+ displayName: "Additional Fields",
79
+ name: "additionalFields",
80
+ type: "collection",
81
+ placeholder: "Add Field",
82
+ default: {},
83
+ displayOptions: {
84
+ show: {
85
+ resource: ["comment"],
86
+ operation: ["addComment"]
87
+ }
88
+ },
89
+ options: [
90
+ {
91
+ displayName: "Parent Comment ID",
92
+ name: "parentId",
93
+ type: "string",
94
+ description: "ID of the parent comment if this is a reply",
95
+ default: ""
96
+ }
97
+ ]
98
+ }
99
+ ];
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ commentFields,
103
+ commentOperations
104
+ });
105
+ //# sourceMappingURL=CommentDescription.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../nodes/Linear/CommentDescription.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\n\nexport const commentOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['comment'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Add Comment',\n\t\t\t\tvalue: 'addComment',\n\t\t\t\tdescription: 'Add a comment to an issue',\n\t\t\t\taction: 'Add a comment to an issue',\n\t\t\t},\n\t\t],\n\t\tdefault: 'addComment',\n\t},\n];\n\nexport const commentFields: INodeProperties[] = [\n\t/* -------------------------------------------------------------------------- */\n\t/* comment:addComment */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Issue ID',\n\t\tname: 'issueId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['comment'],\n\t\t\t\toperation: ['addComment'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Comment',\n\t\tname: 'comment',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['comment'],\n\t\t\t\toperation: ['addComment'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Additional Fields',\n\t\tname: 'additionalFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['comment'],\n\t\t\t\toperation: ['addComment'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Parent Comment ID',\n\t\t\t\tname: 'parentId',\n\t\t\t\ttype: 'string',\n\t\t\t\tdescription: 'ID of the parent comment if this is a reply',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t],\n\t},\n];\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,oBAAuC;AAAA,EACnD;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,kBAAkB;AAAA,IAClB,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,SAAS;AAAA,MACrB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR;AAAA,QACC,MAAM;AAAA,QACN,OAAO;AAAA,QACP,aAAa;AAAA,QACb,QAAQ;AAAA,MACT;AAAA,IACD;AAAA,IACA,SAAS;AAAA,EACV;AACD;AAEO,MAAM,gBAAmC;AAAA;AAAA;AAAA;AAAA,EAI/C;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,SAAS;AAAA,QACpB,WAAW,CAAC,YAAY;AAAA,MACzB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,EACV;AAAA,EACA;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,UAAU;AAAA,IACV,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,SAAS;AAAA,QACpB,WAAW,CAAC,YAAY;AAAA,MACzB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,EACV;AAAA,EACA;AAAA,IACC,aAAa;AAAA,IACb,MAAM;AAAA,IACN,MAAM;AAAA,IACN,aAAa;AAAA,IACb,SAAS,CAAC;AAAA,IACV,gBAAgB;AAAA,MACf,MAAM;AAAA,QACL,UAAU,CAAC,SAAS;AAAA,QACpB,WAAW,CAAC,YAAY;AAAA,MACzB;AAAA,IACD;AAAA,IACA,SAAS;AAAA,MACR;AAAA,QACC,aAAa;AAAA,QACb,MAAM;AAAA,QACN,MAAM;AAAA,QACN,aAAa;AAAA,QACb,SAAS;AAAA,MACV;AAAA,IACD;AAAA,EACD;AACD;","names":[]}
@@ -34,6 +34,12 @@ const issueOperations = [
34
34
  }
35
35
  },
36
36
  options: [
37
+ {
38
+ name: "Add Link",
39
+ value: "addLink",
40
+ description: "Add a link to an issue",
41
+ action: "Add a link to an issue"
42
+ },
37
43
  {
38
44
  name: "Create",
39
45
  value: "create",
@@ -182,7 +188,7 @@ const issueFields = [
182
188
  displayOptions: {
183
189
  show: {
184
190
  resource: ["issue"],
185
- operation: ["get", "delete"]
191
+ operation: ["addLink", "get", "delete"]
186
192
  }
187
193
  },
188
194
  default: ""
@@ -320,6 +326,22 @@ const issueFields = [
320
326
  default: ""
321
327
  }
322
328
  ]
329
+ },
330
+ /* -------------------------------------------------------------------------- */
331
+ /* issue:addLink */
332
+ /* -------------------------------------------------------------------------- */
333
+ {
334
+ displayName: "Link",
335
+ name: "link",
336
+ type: "string",
337
+ required: true,
338
+ displayOptions: {
339
+ show: {
340
+ resource: ["issue"],
341
+ operation: ["addLink"]
342
+ }
343
+ },
344
+ default: ""
323
345
  }
324
346
  ];
325
347
  // Annotate the CommonJS export names for ESM import in node:
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../nodes/Linear/IssueDescription.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\n\nexport const issueOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\tdescription: 'Create an issue',\n\t\t\t\taction: 'Create an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\tdescription: 'Delete an issue',\n\t\t\t\taction: 'Delete an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\tdescription: 'Get an issue',\n\t\t\t\taction: 'Get an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get Many',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\tdescription: 'Get many issues',\n\t\t\t\taction: 'Get many issues',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\tdescription: 'Update an issue',\n\t\t\t\taction: 'Update an issue',\n\t\t\t},\n\t\t],\n\t\tdefault: 'create',\n\t},\n];\n\nexport const issueFields: INodeProperties[] = [\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:create */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Team Name or ID',\n\t\tname: 'teamId',\n\t\ttype: 'options',\n\t\tdescription:\n\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\ttypeOptions: {\n\t\t\tloadOptionsMethod: 'getTeams',\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Title',\n\t\tname: 'title',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Additional Fields',\n\t\tname: 'additionalFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Assignee Name or ID',\n\t\t\t\tname: 'assigneeId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getUsers',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Priority',\n\t\t\t\tname: 'priorityId',\n\t\t\t\ttype: 'options',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Urgent',\n\t\t\t\t\t\tvalue: 1,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'High',\n\t\t\t\t\t\tvalue: 2,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Normal',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Low',\n\t\t\t\t\t\tvalue: 4,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'No Priority',\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'State Name or ID',\n\t\t\t\tname: 'stateId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getStates',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t],\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:delete */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Issue ID',\n\t\tname: 'issueId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['get', 'delete'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:getAll */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Return All',\n\t\tname: 'returnAll',\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Whether to return all results or only up to a given limit',\n\t},\n\t{\n\t\tdisplayName: 'Limit',\n\t\tname: 'limit',\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t\ttypeOptions: {\n\t\t\tminValue: 1,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t\treturnAll: [false],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Max number of results to return',\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:update */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Issue ID',\n\t\tname: 'issueId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Update Fields',\n\t\tname: 'updateFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Assignee Name or ID',\n\t\t\t\tname: 'assigneeId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getUsers',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Priority Name/ID',\n\t\t\t\tname: 'priorityId',\n\t\t\t\ttype: 'options',\n\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Urgent',\n\t\t\t\t\t\tvalue: 1,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'High',\n\t\t\t\t\t\tvalue: 2,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Medium',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Low',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'No Priority',\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'State Name or ID',\n\t\t\t\tname: 'stateId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getStates',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Team Name or ID',\n\t\t\t\tname: 'teamId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getTeams',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Title',\n\t\t\t\tname: 'title',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t],\n\t},\n];\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../nodes/Linear/IssueDescription.ts"],"sourcesContent":["import type { INodeProperties } from 'n8n-workflow';\n\nexport const issueOperations: INodeProperties[] = [\n\t{\n\t\tdisplayName: 'Operation',\n\t\tname: 'operation',\n\t\ttype: 'options',\n\t\tnoDataExpression: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tname: 'Add Link',\n\t\t\t\tvalue: 'addLink',\n\t\t\t\tdescription: 'Add a link to an issue',\n\t\t\t\taction: 'Add a link to an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Create',\n\t\t\t\tvalue: 'create',\n\t\t\t\tdescription: 'Create an issue',\n\t\t\t\taction: 'Create an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Delete',\n\t\t\t\tvalue: 'delete',\n\t\t\t\tdescription: 'Delete an issue',\n\t\t\t\taction: 'Delete an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get',\n\t\t\t\tvalue: 'get',\n\t\t\t\tdescription: 'Get an issue',\n\t\t\t\taction: 'Get an issue',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Get Many',\n\t\t\t\tvalue: 'getAll',\n\t\t\t\tdescription: 'Get many issues',\n\t\t\t\taction: 'Get many issues',\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'Update',\n\t\t\t\tvalue: 'update',\n\t\t\t\tdescription: 'Update an issue',\n\t\t\t\taction: 'Update an issue',\n\t\t\t},\n\t\t],\n\t\tdefault: 'create',\n\t},\n];\n\nexport const issueFields: INodeProperties[] = [\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:create */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Team Name or ID',\n\t\tname: 'teamId',\n\t\ttype: 'options',\n\t\tdescription:\n\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\ttypeOptions: {\n\t\t\tloadOptionsMethod: 'getTeams',\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Title',\n\t\tname: 'title',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Additional Fields',\n\t\tname: 'additionalFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['create'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Assignee Name or ID',\n\t\t\t\tname: 'assigneeId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getUsers',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Priority',\n\t\t\t\tname: 'priorityId',\n\t\t\t\ttype: 'options',\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Urgent',\n\t\t\t\t\t\tvalue: 1,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'High',\n\t\t\t\t\t\tvalue: 2,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Normal',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Low',\n\t\t\t\t\t\tvalue: 4,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'No Priority',\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'State Name or ID',\n\t\t\t\tname: 'stateId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getStates',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t],\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:delete */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Issue ID',\n\t\tname: 'issueId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['addLink', 'get', 'delete'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:getAll */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Return All',\n\t\tname: 'returnAll',\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Whether to return all results or only up to a given limit',\n\t},\n\t{\n\t\tdisplayName: 'Limit',\n\t\tname: 'limit',\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t\ttypeOptions: {\n\t\t\tminValue: 1,\n\t\t},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['getAll'],\n\t\t\t\treturnAll: [false],\n\t\t\t},\n\t\t},\n\t\tdescription: 'Max number of results to return',\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* issue:update */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Issue ID',\n\t\tname: 'issueId',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n\t{\n\t\tdisplayName: 'Update Fields',\n\t\tname: 'updateFields',\n\t\ttype: 'collection',\n\t\tplaceholder: 'Add Field',\n\t\tdefault: {},\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['update'],\n\t\t\t},\n\t\t},\n\t\toptions: [\n\t\t\t{\n\t\t\t\tdisplayName: 'Assignee Name or ID',\n\t\t\t\tname: 'assigneeId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getUsers',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Description',\n\t\t\t\tname: 'description',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Priority Name/ID',\n\t\t\t\tname: 'priorityId',\n\t\t\t\ttype: 'options',\n\n\t\t\t\toptions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Urgent',\n\t\t\t\t\t\tvalue: 1,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'High',\n\t\t\t\t\t\tvalue: 2,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Medium',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'Low',\n\t\t\t\t\t\tvalue: 3,\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tname: 'No Priority',\n\t\t\t\t\t\tvalue: 0,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t\tdefault: 0,\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'State Name or ID',\n\t\t\t\tname: 'stateId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getStates',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Team Name or ID',\n\t\t\t\tname: 'teamId',\n\t\t\t\ttype: 'options',\n\t\t\t\tdescription:\n\t\t\t\t\t'Choose from the list, or specify an ID using an <a href=\"https://docs.n8n.io/code/expressions/\">expression</a>',\n\t\t\t\ttypeOptions: {\n\t\t\t\t\tloadOptionsMethod: 'getTeams',\n\t\t\t\t},\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\t{\n\t\t\t\tdisplayName: 'Title',\n\t\t\t\tname: 'title',\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t],\n\t},\n\t/* -------------------------------------------------------------------------- */\n\t/* \tissue:addLink */\n\t/* -------------------------------------------------------------------------- */\n\t{\n\t\tdisplayName: 'Link',\n\t\tname: 'link',\n\t\ttype: 'string',\n\t\trequired: true,\n\t\tdisplayOptions: {\n\t\t\tshow: {\n\t\t\t\tresource: ['issue'],\n\t\t\t\toperation: ['addLink'],\n\t\t\t},\n\t\t},\n\t\tdefault: '',\n\t},\n];\n"],"mappings":"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","names":[]}