n8n-nodes-base 1.116.0 → 1.118.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.
- package/dist/credentials/Aws.credentials.d.ts +2 -26
- package/dist/credentials/Aws.credentials.d.ts.map +1 -1
- package/dist/credentials/Aws.credentials.js +11 -461
- package/dist/credentials/Aws.credentials.js.map +1 -1
- package/dist/credentials/AwsAssumeRole.credentials.d.ts +14 -0
- package/dist/credentials/AwsAssumeRole.credentials.d.ts.map +1 -0
- package/dist/credentials/AwsAssumeRole.credentials.js +134 -0
- package/dist/credentials/AwsAssumeRole.credentials.js.map +1 -0
- package/dist/credentials/BitbucketAccessTokenApi.credentials.d.ts +10 -0
- package/dist/credentials/BitbucketAccessTokenApi.credentials.d.ts.map +1 -0
- package/dist/credentials/BitbucketAccessTokenApi.credentials.js +39 -0
- package/dist/credentials/BitbucketAccessTokenApi.credentials.js.map +1 -0
- package/dist/credentials/ConvertKitApi.credentials.d.ts +3 -1
- package/dist/credentials/ConvertKitApi.credentials.d.ts.map +1 -1
- package/dist/credentials/ConvertKitApi.credentials.js +26 -0
- package/dist/credentials/ConvertKitApi.credentials.js.map +1 -1
- package/dist/credentials/FormIoApi.credentials.d.ts +6 -1
- package/dist/credentials/FormIoApi.credentials.d.ts.map +1 -1
- package/dist/credentials/FormIoApi.credentials.js +45 -0
- package/dist/credentials/FormIoApi.credentials.js.map +1 -1
- package/dist/credentials/OAuth2Api.credentials.d.ts.map +1 -1
- package/dist/credentials/OAuth2Api.credentials.js +52 -0
- package/dist/credentials/OAuth2Api.credentials.js.map +1 -1
- package/dist/credentials/SendGridApi.credentials.js +1 -1
- package/dist/credentials/SendGridApi.credentials.js.map +1 -1
- package/dist/credentials/common/aws/descriptions.d.ts +4 -0
- package/dist/credentials/common/aws/descriptions.d.ts.map +1 -0
- package/dist/credentials/common/aws/descriptions.js +114 -0
- package/dist/credentials/common/aws/descriptions.js.map +1 -0
- package/dist/credentials/common/aws/system-credentials-utils.d.ts +24 -0
- package/dist/credentials/common/aws/system-credentials-utils.d.ts.map +1 -0
- package/dist/credentials/common/aws/system-credentials-utils.js +213 -0
- package/dist/credentials/common/aws/system-credentials-utils.js.map +1 -0
- package/dist/credentials/common/aws/types.d.ts +44 -0
- package/dist/credentials/common/aws/types.d.ts.map +1 -0
- package/dist/credentials/common/aws/types.js +190 -0
- package/dist/credentials/common/aws/types.js.map +1 -0
- package/dist/credentials/common/aws/utils.d.ts +72 -0
- package/dist/credentials/common/aws/utils.d.ts.map +1 -0
- package/dist/credentials/common/aws/utils.js +332 -0
- package/dist/credentials/common/aws/utils.js.map +1 -0
- package/dist/credentials/common/http.d.ts +3 -0
- package/dist/credentials/common/http.d.ts.map +1 -0
- package/dist/credentials/common/http.js +9 -0
- package/dist/credentials/common/http.js.map +1 -0
- package/dist/known/credentials.json +25 -0
- package/dist/nodes/Airtop/actions/file/helpers.d.ts +1 -1
- package/dist/nodes/Airtop/actions/file/helpers.d.ts.map +1 -1
- package/dist/nodes/Airtop/actions/file/helpers.js +18 -17
- package/dist/nodes/Airtop/actions/file/helpers.js.map +1 -1
- package/dist/nodes/Airtop/actions/session/create.operation.d.ts.map +1 -1
- package/dist/nodes/Airtop/actions/session/create.operation.js +11 -0
- package/dist/nodes/Airtop/actions/session/create.operation.js.map +1 -1
- package/dist/nodes/Airtop/transport/index.d.ts +1 -1
- package/dist/nodes/Airtop/transport/index.d.ts.map +1 -1
- package/dist/nodes/Aws/AwsLambda.node.d.ts.map +1 -1
- package/dist/nodes/Aws/AwsLambda.node.js +3 -6
- package/dist/nodes/Aws/AwsLambda.node.js.map +1 -1
- package/dist/nodes/Aws/AwsSns.node.d.ts.map +1 -1
- package/dist/nodes/Aws/AwsSns.node.js +3 -6
- package/dist/nodes/Aws/AwsSns.node.js.map +1 -1
- package/dist/nodes/Aws/AwsSnsTrigger.node.d.ts.map +1 -1
- package/dist/nodes/Aws/AwsSnsTrigger.node.js +3 -6
- package/dist/nodes/Aws/AwsSnsTrigger.node.js.map +1 -1
- package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.d.ts.map +1 -1
- package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js +3 -6
- package/dist/nodes/Aws/CertificateManager/AwsCertificateManager.node.js.map +1 -1
- package/dist/nodes/Aws/CertificateManager/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/CertificateManager/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/CertificateManager/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/Cognito/transport/index.d.ts.map +1 -1
- package/dist/nodes/Aws/Cognito/transport/index.js.map +1 -1
- package/dist/nodes/Aws/Comprehend/AwsComprehend.node.d.ts.map +1 -1
- package/dist/nodes/Aws/Comprehend/AwsComprehend.node.js +3 -6
- package/dist/nodes/Aws/Comprehend/AwsComprehend.node.js.map +1 -1
- package/dist/nodes/Aws/Comprehend/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/Comprehend/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/Comprehend/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.d.ts.map +1 -1
- package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js +3 -6
- package/dist/nodes/Aws/DynamoDB/AwsDynamoDB.node.js.map +1 -1
- package/dist/nodes/Aws/DynamoDB/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/DynamoDB/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/DynamoDB/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/ELB/AwsElb.node.d.ts.map +1 -1
- package/dist/nodes/Aws/ELB/AwsElb.node.js +3 -6
- package/dist/nodes/Aws/ELB/AwsElb.node.js.map +1 -1
- package/dist/nodes/Aws/ELB/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/ELB/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/ELB/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/GenericFunctions.d.ts +5 -0
- package/dist/nodes/Aws/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/GenericFunctions.js +17 -2
- package/dist/nodes/Aws/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/Rekognition/AwsRekognition.node.d.ts.map +1 -1
- package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js +3 -6
- package/dist/nodes/Aws/Rekognition/AwsRekognition.node.js.map +1 -1
- package/dist/nodes/Aws/Rekognition/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/Rekognition/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/Rekognition/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/S3/V2/AwsS3V2.node.d.ts.map +1 -1
- package/dist/nodes/Aws/S3/V2/AwsS3V2.node.js +5 -7
- package/dist/nodes/Aws/S3/V2/AwsS3V2.node.js.map +1 -1
- package/dist/nodes/Aws/S3/V2/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/S3/V2/GenericFunctions.js +3 -1
- package/dist/nodes/Aws/S3/V2/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/SES/AwsSes.node.d.ts.map +1 -1
- package/dist/nodes/Aws/SES/AwsSes.node.js +3 -6
- package/dist/nodes/Aws/SES/AwsSes.node.js.map +1 -1
- package/dist/nodes/Aws/SES/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/SES/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/SES/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/SQS/AwsSqs.node.d.ts.map +1 -1
- package/dist/nodes/Aws/SQS/AwsSqs.node.js +3 -6
- package/dist/nodes/Aws/SQS/AwsSqs.node.js.map +1 -1
- package/dist/nodes/Aws/Textract/AwsTextract.node.d.ts.map +1 -1
- package/dist/nodes/Aws/Textract/AwsTextract.node.js +3 -6
- package/dist/nodes/Aws/Textract/AwsTextract.node.js.map +1 -1
- package/dist/nodes/Aws/Textract/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Aws/Textract/GenericFunctions.js +3 -2
- package/dist/nodes/Aws/Textract/GenericFunctions.js.map +1 -1
- package/dist/nodes/Aws/utils.d.ts +4 -0
- package/dist/nodes/Aws/utils.d.ts.map +1 -0
- package/dist/nodes/Aws/utils.js +40 -0
- package/dist/nodes/Aws/utils.js.map +1 -0
- package/dist/nodes/Bitbucket/BitbucketTrigger.node.d.ts.map +1 -1
- package/dist/nodes/Bitbucket/BitbucketTrigger.node.js +58 -1
- package/dist/nodes/Bitbucket/BitbucketTrigger.node.js.map +1 -1
- package/dist/nodes/Bitbucket/GenericFunctions.d.ts +1 -1
- package/dist/nodes/Bitbucket/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Bitbucket/GenericFunctions.js +30 -17
- package/dist/nodes/Bitbucket/GenericFunctions.js.map +1 -1
- package/dist/nodes/Code/Code.node.d.ts.map +1 -1
- package/dist/nodes/Code/Code.node.js +12 -1
- package/dist/nodes/Code/Code.node.js.map +1 -1
- package/dist/nodes/Code/js.svg +4 -0
- package/dist/nodes/Code/python.svg +3 -0
- package/dist/nodes/ConvertKit/GenericFunctions.d.ts +2 -2
- package/dist/nodes/ConvertKit/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/ConvertKit/GenericFunctions.js +3 -11
- package/dist/nodes/ConvertKit/GenericFunctions.js.map +1 -1
- package/dist/nodes/DataTable/DataTable.node.d.ts.map +1 -1
- package/dist/nodes/DataTable/DataTable.node.js +0 -3
- package/dist/nodes/DataTable/DataTable.node.js.map +1 -1
- package/dist/nodes/EmailSend/v2/utils.d.ts +1 -1
- package/dist/nodes/EmailSend/v2/utils.d.ts.map +1 -1
- package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.d.ts.map +1 -1
- package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.js +5 -2
- package/dist/nodes/Files/ExtractFromFile/ExtractFromFile.node.js.map +1 -1
- package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.d.ts +2 -1
- package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.d.ts.map +1 -1
- package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.js +11 -3
- package/dist/nodes/Files/ExtractFromFile/actions/spreadsheet.operation.js.map +1 -1
- package/dist/nodes/FormIo/GenericFunctions.d.ts +1 -1
- package/dist/nodes/FormIo/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/FormIo/GenericFunctions.js +2 -32
- package/dist/nodes/FormIo/GenericFunctions.js.map +1 -1
- package/dist/nodes/Google/Calendar/EventDescription.d.ts.map +1 -1
- package/dist/nodes/Google/Calendar/EventDescription.js +1 -0
- package/dist/nodes/Google/Calendar/EventDescription.js.map +1 -1
- package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.d.ts.map +1 -1
- package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js +10 -0
- package/dist/nodes/Google/GSuiteAdmin/GSuiteAdmin.node.js.map +1 -1
- package/dist/nodes/Google/Gmail/GenericFunctions.d.ts.map +1 -1
- package/dist/nodes/Google/Gmail/GenericFunctions.js +0 -1
- package/dist/nodes/Google/Gmail/GenericFunctions.js.map +1 -1
- package/dist/nodes/Google/Gmail/v1/GmailV1.node.d.ts.map +1 -1
- package/dist/nodes/Google/Gmail/v1/GmailV1.node.js +1 -0
- package/dist/nodes/Google/Gmail/v1/GmailV1.node.js.map +1 -1
- package/dist/nodes/Redis/Redis.node.d.ts.map +1 -1
- package/dist/nodes/Redis/Redis.node.js +42 -1
- package/dist/nodes/Redis/Redis.node.js.map +1 -1
- package/dist/nodes/Slack/SlackTrigger.node.d.ts.map +1 -1
- package/dist/nodes/Slack/SlackTrigger.node.js +3 -0
- package/dist/nodes/Slack/SlackTrigger.node.js.map +1 -1
- package/dist/nodes/SpreadsheetFile/description.d.ts.map +1 -1
- package/dist/nodes/SpreadsheetFile/description.js +33 -0
- package/dist/nodes/SpreadsheetFile/description.js.map +1 -1
- package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.d.ts +4 -1
- package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.d.ts.map +1 -1
- package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.js +29 -4
- package/dist/nodes/SpreadsheetFile/v2/fromFile.operation.js.map +1 -1
- package/dist/nodes/Xero/Xero.node.d.ts.map +1 -1
- package/dist/nodes/Xero/Xero.node.js +3 -5
- package/dist/nodes/Xero/Xero.node.js.map +1 -1
- package/dist/typecheck.tsbuildinfo +1 -1
- package/dist/types/credentials.json +7 -5
- package/dist/types/nodes.json +23 -23
- package/package.json +9 -7
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.awsCredentialsTest = void 0;
|
|
4
|
+
exports.getAwsDomain = getAwsDomain;
|
|
5
|
+
exports.parseAwsUrl = parseAwsUrl;
|
|
6
|
+
exports.awsGetSignInOptionsAndUpdateRequest = awsGetSignInOptionsAndUpdateRequest;
|
|
7
|
+
exports.assumeRole = assumeRole;
|
|
8
|
+
exports.signOptions = signOptions;
|
|
9
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
10
|
+
const xml2js_1 = require("xml2js");
|
|
11
|
+
const types_1 = require("./types");
|
|
12
|
+
const aws4_1 = require("aws4");
|
|
13
|
+
const system_credentials_utils_1 = require("./system-credentials-utils");
|
|
14
|
+
/**
|
|
15
|
+
* Checks if a request body value should be JSON stringified for AWS requests.
|
|
16
|
+
* Returns true for plain objects without Content-Length headers.
|
|
17
|
+
*/
|
|
18
|
+
function shouldStringifyBody(value, headers) {
|
|
19
|
+
if (typeof value === 'object' &&
|
|
20
|
+
value !== null &&
|
|
21
|
+
!headers['Content-Length'] &&
|
|
22
|
+
!headers['content-length'] &&
|
|
23
|
+
!Buffer.isBuffer(value)) {
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Gets the AWS domain for a specific region.
|
|
30
|
+
*
|
|
31
|
+
* @param region - The AWS region to get the domain for
|
|
32
|
+
* @returns The AWS domain for the region, or the global domain if region not found
|
|
33
|
+
*/
|
|
34
|
+
function getAwsDomain(region) {
|
|
35
|
+
return types_1.regions.find((r) => r.name === region)?.domain ?? types_1.AWS_GLOBAL_DOMAIN;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Parses an AWS service URL to extract the service name and region.
|
|
39
|
+
* Some AWS services are global and don't have a region.
|
|
40
|
+
*
|
|
41
|
+
* @param url - The AWS service URL to parse
|
|
42
|
+
* @returns Object containing the service name and region (null for global services)
|
|
43
|
+
*
|
|
44
|
+
* @see {@link https://docs.aws.amazon.com/general/latest/gr/rande.html#global-endpoints AWS Global Endpoints}
|
|
45
|
+
*/
|
|
46
|
+
function parseAwsUrl(url) {
|
|
47
|
+
const hostname = url.hostname;
|
|
48
|
+
// Handle both .amazonaws.com and .amazonaws.com.cn domains
|
|
49
|
+
const [service, region] = hostname.replace(/\.amazonaws\.com.*$/, '').split('.');
|
|
50
|
+
return { service, region };
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* AWS credentials test configuration for validating AWS credentials.
|
|
54
|
+
* Uses the STS GetCallerIdentity action to verify that the provided credentials are valid.
|
|
55
|
+
* Automatically handles both standard AWS regions and China regions with appropriate endpoints.
|
|
56
|
+
*/
|
|
57
|
+
exports.awsCredentialsTest = {
|
|
58
|
+
request: {
|
|
59
|
+
baseURL:
|
|
60
|
+
// eslint-disable-next-line n8n-local-rules/no-interpolation-in-regular-string
|
|
61
|
+
'={{$credentials.region.startsWith("cn-") ? `https://sts.${$credentials.region}.amazonaws.com.cn` : `https://sts.${$credentials.region}.amazonaws.com`}}',
|
|
62
|
+
url: '?Action=GetCallerIdentity&Version=2011-06-15',
|
|
63
|
+
method: 'POST',
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Prepares AWS request options for signing by constructing the proper endpoint URL,
|
|
68
|
+
* handling query parameters, and setting up the request body for AWS4 signature.
|
|
69
|
+
*
|
|
70
|
+
* This function handles multiple scenarios:
|
|
71
|
+
* - Custom service endpoints from credentials
|
|
72
|
+
* - Default AWS service endpoints
|
|
73
|
+
* - URI-based requests (legacy IRequestOptions interface)
|
|
74
|
+
* - Form data conversion to URL-encoded format
|
|
75
|
+
* - Special handling for STS GetCallerIdentity requests
|
|
76
|
+
*
|
|
77
|
+
* @param requestOptions - The HTTP request options to modify
|
|
78
|
+
* @param credentials - AWS credentials containing potential custom endpoints
|
|
79
|
+
* @param path - The API path to append to the endpoint
|
|
80
|
+
* @param method - HTTP method for the request
|
|
81
|
+
* @param service - AWS service name (e.g., 's3', 'lambda', 'sts')
|
|
82
|
+
* @param region - AWS region for the request
|
|
83
|
+
* @returns Object containing signing options and the constructed endpoint URL
|
|
84
|
+
*/
|
|
85
|
+
function awsGetSignInOptionsAndUpdateRequest(requestOptions, credentials, path, method, service, region) {
|
|
86
|
+
let body = requestOptions.body;
|
|
87
|
+
let endpoint;
|
|
88
|
+
let query = requestOptions.qs?.query;
|
|
89
|
+
// ! Workaround as we still use the IRequestOptions interface which uses uri instead of url
|
|
90
|
+
// ! To change when we replace the interface with IHttpRequestOptions
|
|
91
|
+
const requestWithUri = requestOptions;
|
|
92
|
+
if (requestWithUri.uri) {
|
|
93
|
+
requestOptions.url = requestWithUri.uri;
|
|
94
|
+
endpoint = new URL(requestOptions.url);
|
|
95
|
+
if (service === 'sts') {
|
|
96
|
+
try {
|
|
97
|
+
if (requestWithUri.qs?.Action !== 'GetCallerIdentity') {
|
|
98
|
+
query = requestWithUri.qs;
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
endpoint.searchParams.set('Action', 'GetCallerIdentity');
|
|
102
|
+
endpoint.searchParams.set('Version', '2011-06-15');
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
console.error(err);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const parsed = parseAwsUrl(endpoint);
|
|
110
|
+
service = parsed.service;
|
|
111
|
+
if (parsed.region) {
|
|
112
|
+
region = parsed.region;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
if (!requestOptions.baseURL && !requestOptions.url) {
|
|
117
|
+
let endpointString;
|
|
118
|
+
if (service === 'lambda' && credentials.lambdaEndpoint) {
|
|
119
|
+
endpointString = credentials.lambdaEndpoint;
|
|
120
|
+
}
|
|
121
|
+
else if (service === 'sns' && credentials.snsEndpoint) {
|
|
122
|
+
endpointString = credentials.snsEndpoint;
|
|
123
|
+
}
|
|
124
|
+
else if (service === 'sqs' && credentials.sqsEndpoint) {
|
|
125
|
+
endpointString = credentials.sqsEndpoint;
|
|
126
|
+
}
|
|
127
|
+
else if (service === 's3' && credentials.s3Endpoint) {
|
|
128
|
+
endpointString = credentials.s3Endpoint;
|
|
129
|
+
}
|
|
130
|
+
else if (service === 'ses' && credentials.sesEndpoint) {
|
|
131
|
+
endpointString = credentials.sesEndpoint;
|
|
132
|
+
}
|
|
133
|
+
else if (service === 'rekognition' && credentials.rekognitionEndpoint) {
|
|
134
|
+
endpointString = credentials.rekognitionEndpoint;
|
|
135
|
+
}
|
|
136
|
+
else if (service === 'ssm' && credentials.ssmEndpoint) {
|
|
137
|
+
endpointString = credentials.ssmEndpoint;
|
|
138
|
+
}
|
|
139
|
+
else if (service) {
|
|
140
|
+
const domain = getAwsDomain(region);
|
|
141
|
+
endpointString = `https://${service}.${region}.${domain}`;
|
|
142
|
+
}
|
|
143
|
+
endpoint = new URL(endpointString.replace('{region}', region) + path);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
// If no endpoint is set, we try to decompose the path and use the default endpoint
|
|
147
|
+
const customUrl = new URL(`${requestOptions.baseURL}${requestOptions.url}${path}`);
|
|
148
|
+
const parsed = parseAwsUrl(customUrl);
|
|
149
|
+
service = parsed.service;
|
|
150
|
+
if (parsed.region) {
|
|
151
|
+
region = parsed.region;
|
|
152
|
+
}
|
|
153
|
+
if (service === 'sts') {
|
|
154
|
+
try {
|
|
155
|
+
customUrl.searchParams.set('Action', 'GetCallerIdentity');
|
|
156
|
+
customUrl.searchParams.set('Version', '2011-06-15');
|
|
157
|
+
}
|
|
158
|
+
catch (err) {
|
|
159
|
+
console.error(err);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
endpoint = customUrl;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
if (query && Object.keys(query).length !== 0) {
|
|
166
|
+
Object.keys(query).forEach((key) => {
|
|
167
|
+
endpoint.searchParams.append(key, query[key]);
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
if (body && typeof body === 'object' && (0, n8n_workflow_1.isObjectEmpty)(body)) {
|
|
171
|
+
body = '';
|
|
172
|
+
}
|
|
173
|
+
path = endpoint.pathname + endpoint.search;
|
|
174
|
+
// ! aws4.sign *must* have the body to sign, but we might have .form instead of .body
|
|
175
|
+
const requestWithForm = requestOptions;
|
|
176
|
+
let bodyContent = body !== '' ? body : undefined;
|
|
177
|
+
let contentTypeHeader = undefined;
|
|
178
|
+
if (shouldStringifyBody(bodyContent, requestOptions.headers ?? {})) {
|
|
179
|
+
bodyContent = JSON.stringify(bodyContent);
|
|
180
|
+
}
|
|
181
|
+
if (requestWithForm.form) {
|
|
182
|
+
const params = new URLSearchParams();
|
|
183
|
+
for (const key in requestWithForm.form) {
|
|
184
|
+
params.append(key, requestWithForm.form[key]);
|
|
185
|
+
}
|
|
186
|
+
bodyContent = params.toString();
|
|
187
|
+
contentTypeHeader = 'application/x-www-form-urlencoded';
|
|
188
|
+
}
|
|
189
|
+
const signOpts = {
|
|
190
|
+
...requestOptions,
|
|
191
|
+
headers: {
|
|
192
|
+
...(requestOptions.headers ?? {}),
|
|
193
|
+
...(contentTypeHeader && { 'content-type': contentTypeHeader }),
|
|
194
|
+
},
|
|
195
|
+
host: endpoint.host,
|
|
196
|
+
method,
|
|
197
|
+
path,
|
|
198
|
+
body: bodyContent,
|
|
199
|
+
region,
|
|
200
|
+
};
|
|
201
|
+
return { signOpts, url: endpoint.origin + path };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Assumes an AWS IAM role using STS (Security Token Service) and returns temporary credentials.
|
|
205
|
+
* This function supports two modes for providing credentials for the STS call:
|
|
206
|
+
* 1. Using system credentials (environment variables, instance metadata, etc.)
|
|
207
|
+
* 2. Using manually provided STS credentials
|
|
208
|
+
*
|
|
209
|
+
* @param credentials - The assume role credentials configuration
|
|
210
|
+
* @param region - AWS region for the STS endpoint
|
|
211
|
+
* @returns Promise resolving to temporary credentials for the assumed role
|
|
212
|
+
* @throws {ApplicationError} When credentials are invalid or STS call fails
|
|
213
|
+
*
|
|
214
|
+
* @see {@link https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html STS AssumeRole API}
|
|
215
|
+
*/
|
|
216
|
+
async function assumeRole(credentials, region) {
|
|
217
|
+
let stsCallCredentials;
|
|
218
|
+
const useSystemCredentialsForRole = credentials.useSystemCredentialsForRole ?? false;
|
|
219
|
+
if (useSystemCredentialsForRole) {
|
|
220
|
+
const systemCredentials = await (0, system_credentials_utils_1.getSystemCredentials)();
|
|
221
|
+
if (!systemCredentials) {
|
|
222
|
+
throw new n8n_workflow_1.ApplicationError('System AWS credentials are required for role assumption. Please ensure AWS credentials are available via environment variables, instance metadata, or container role.');
|
|
223
|
+
}
|
|
224
|
+
if (systemCredentials.source !== 'environment') {
|
|
225
|
+
return {
|
|
226
|
+
accessKeyId: systemCredentials.accessKeyId,
|
|
227
|
+
secretAccessKey: systemCredentials.secretAccessKey,
|
|
228
|
+
sessionToken: systemCredentials.sessionToken,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
stsCallCredentials = systemCredentials;
|
|
232
|
+
}
|
|
233
|
+
else {
|
|
234
|
+
if (!credentials.stsAccessKeyId || credentials.stsAccessKeyId.trim() === '') {
|
|
235
|
+
throw new n8n_workflow_1.ApplicationError('STS Access Key ID is required when not using system credentials.');
|
|
236
|
+
}
|
|
237
|
+
if (!credentials.stsSecretAccessKey || credentials.stsSecretAccessKey.trim() === '') {
|
|
238
|
+
throw new n8n_workflow_1.ApplicationError('STS Secret Access Key is required when not using system credentials.');
|
|
239
|
+
}
|
|
240
|
+
const sessionToken = credentials.stsSessionToken?.trim() || undefined;
|
|
241
|
+
stsCallCredentials = {
|
|
242
|
+
accessKeyId: credentials.stsAccessKeyId.trim(),
|
|
243
|
+
secretAccessKey: credentials.stsSecretAccessKey.trim(),
|
|
244
|
+
sessionToken,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
const domain = getAwsDomain(region);
|
|
248
|
+
const stsEndpoint = `https://sts.${region}.${domain}`;
|
|
249
|
+
const assumeRoleBody = {
|
|
250
|
+
RoleArn: credentials.roleArn,
|
|
251
|
+
RoleSessionName: credentials.roleSessionName || 'n8n-session',
|
|
252
|
+
...(credentials.externalId && { ExternalId: credentials.externalId }),
|
|
253
|
+
};
|
|
254
|
+
const params = new URLSearchParams({
|
|
255
|
+
Action: 'AssumeRole',
|
|
256
|
+
Version: '2011-06-15',
|
|
257
|
+
RoleArn: assumeRoleBody.RoleArn,
|
|
258
|
+
RoleSessionName: assumeRoleBody.RoleSessionName,
|
|
259
|
+
});
|
|
260
|
+
if (assumeRoleBody.ExternalId) {
|
|
261
|
+
params.append('ExternalId', assumeRoleBody.ExternalId);
|
|
262
|
+
}
|
|
263
|
+
const bodyContent = params.toString();
|
|
264
|
+
const stsUrl = new URL(stsEndpoint);
|
|
265
|
+
const signOpts = {
|
|
266
|
+
headers: {
|
|
267
|
+
'Content-Type': 'application/x-www-form-urlencoded',
|
|
268
|
+
},
|
|
269
|
+
host: stsUrl.host,
|
|
270
|
+
method: 'POST',
|
|
271
|
+
path: '/',
|
|
272
|
+
body: bodyContent,
|
|
273
|
+
region,
|
|
274
|
+
};
|
|
275
|
+
try {
|
|
276
|
+
(0, aws4_1.sign)(signOpts, stsCallCredentials);
|
|
277
|
+
}
|
|
278
|
+
catch (err) {
|
|
279
|
+
console.error('Failed to sign STS request:', err);
|
|
280
|
+
throw new n8n_workflow_1.ApplicationError('Failed to sign STS request');
|
|
281
|
+
}
|
|
282
|
+
const response = await fetch(stsEndpoint, {
|
|
283
|
+
method: 'POST',
|
|
284
|
+
headers: signOpts.headers,
|
|
285
|
+
body: bodyContent,
|
|
286
|
+
});
|
|
287
|
+
if (!response.ok) {
|
|
288
|
+
const errorText = await response.text();
|
|
289
|
+
throw new n8n_workflow_1.ApplicationError(`STS AssumeRole failed: ${response.status} ${response.statusText} - ${errorText}`);
|
|
290
|
+
}
|
|
291
|
+
const responseText = await response.text();
|
|
292
|
+
const responseData = await new Promise((resolve, reject) => {
|
|
293
|
+
(0, xml2js_1.parseString)(responseText, { explicitArray: false }, (err, data) => {
|
|
294
|
+
if (err) {
|
|
295
|
+
reject(err);
|
|
296
|
+
}
|
|
297
|
+
else {
|
|
298
|
+
resolve(data);
|
|
299
|
+
}
|
|
300
|
+
});
|
|
301
|
+
});
|
|
302
|
+
const assumeRoleResult = responseData.AssumeRoleResponse
|
|
303
|
+
?.AssumeRoleResult;
|
|
304
|
+
if (!assumeRoleResult?.Credentials) {
|
|
305
|
+
throw new n8n_workflow_1.ApplicationError('Invalid response from STS AssumeRole');
|
|
306
|
+
}
|
|
307
|
+
const assumedCredentials = assumeRoleResult.Credentials;
|
|
308
|
+
const securityHeaders = {
|
|
309
|
+
accessKeyId: assumedCredentials.AccessKeyId,
|
|
310
|
+
secretAccessKey: assumedCredentials.SecretAccessKey,
|
|
311
|
+
sessionToken: assumedCredentials.SessionToken,
|
|
312
|
+
};
|
|
313
|
+
return securityHeaders;
|
|
314
|
+
}
|
|
315
|
+
function signOptions(requestOptions, signOpts, securityHeaders, url, method) {
|
|
316
|
+
try {
|
|
317
|
+
(0, aws4_1.sign)(signOpts, securityHeaders);
|
|
318
|
+
}
|
|
319
|
+
catch (err) {
|
|
320
|
+
console.error(err);
|
|
321
|
+
}
|
|
322
|
+
const options = {
|
|
323
|
+
...requestOptions,
|
|
324
|
+
headers: signOpts.headers,
|
|
325
|
+
method,
|
|
326
|
+
url,
|
|
327
|
+
body: signOpts.body,
|
|
328
|
+
qs: undefined, // override since it's already in the url
|
|
329
|
+
};
|
|
330
|
+
return options;
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../credentials/common/aws/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../credentials/common/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAEzE,eAAO,MAAM,MAAM,GAAI,SAAS,mBAAmB,GAAG,eAAe,uBAGpE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getUrl = void 0;
|
|
4
|
+
const getUrl = (options) => {
|
|
5
|
+
// FIXME: HTTP node uses old IRequestOptions interface
|
|
6
|
+
return options.url ?? options.uri;
|
|
7
|
+
};
|
|
8
|
+
exports.getUrl = getUrl;
|
|
9
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../credentials/common/http.ts"],"names":[],"mappings":";;;AAEO,MAAM,MAAM,GAAG,CAAC,OAA8C,EAAE,EAAE;IACxE,sDAAsD;IACtD,OAAO,OAAO,CAAC,GAAG,IAAK,OAA2B,CAAC,GAAG,CAAC;AACxD,CAAC,CAAC;AAHW,QAAA,MAAM,UAGjB"}
|
|
@@ -165,6 +165,24 @@
|
|
|
165
165
|
"awsTranscribe"
|
|
166
166
|
]
|
|
167
167
|
},
|
|
168
|
+
"awsAssumeRole": {
|
|
169
|
+
"className": "AwsAssumeRole",
|
|
170
|
+
"sourcePath": "dist/credentials/AwsAssumeRole.credentials.js",
|
|
171
|
+
"supportedNodes": [
|
|
172
|
+
"awsLambda",
|
|
173
|
+
"awsSns",
|
|
174
|
+
"awsSnsTrigger",
|
|
175
|
+
"awsCertificateManager",
|
|
176
|
+
"awsComprehend",
|
|
177
|
+
"awsDynamoDb",
|
|
178
|
+
"awsElb",
|
|
179
|
+
"awsRekognition",
|
|
180
|
+
"awsS3",
|
|
181
|
+
"awsSes",
|
|
182
|
+
"awsSqs",
|
|
183
|
+
"awsTextract"
|
|
184
|
+
]
|
|
185
|
+
},
|
|
168
186
|
"azureStorageOAuth2Api": {
|
|
169
187
|
"className": "AzureStorageOAuth2Api",
|
|
170
188
|
"sourcePath": "dist/credentials/AzureStorageOAuth2Api.credentials.js",
|
|
@@ -220,6 +238,13 @@
|
|
|
220
238
|
"beeminder"
|
|
221
239
|
]
|
|
222
240
|
},
|
|
241
|
+
"bitbucketAccessTokenApi": {
|
|
242
|
+
"className": "BitbucketAccessTokenApi",
|
|
243
|
+
"sourcePath": "dist/credentials/BitbucketAccessTokenApi.credentials.js",
|
|
244
|
+
"supportedNodes": [
|
|
245
|
+
"bitbucketTrigger"
|
|
246
|
+
]
|
|
247
|
+
},
|
|
223
248
|
"bitbucketApi": {
|
|
224
249
|
"className": "BitbucketApi",
|
|
225
250
|
"sourcePath": "dist/credentials/BitbucketApi.credentials.js",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IExecuteFunctions } from 'n8n-workflow';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IAirtopFileInputRequest, IAirtopResponseWithFiles } from '../../transport/types';
|
|
3
3
|
/**
|
|
4
4
|
* Fetches all files from the Airtop API using pagination
|
|
5
5
|
* @param this - The execution context providing access to n8n functionality
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/file/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/file/helpers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMtD,OAAO,KAAK,EACX,uBAAuB,EACvB,wBAAwB,EAExB,MAAM,uBAAuB,CAAC;AAE/B;;;;;GAKG;AACH,wBAAsB,eAAe,CACpC,IAAI,EAAE,iBAAiB,EACvB,UAAU,EAAE,MAAM,GAChB,OAAO,CAAC,wBAAwB,CAAC,CAkCnC;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,EACd,OAAO,SAAoB,EAC3B,eAAe,SAAI,GACjB,OAAO,CAAC,MAAM,CAAC,CAmBjB;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,iBAAiB,EACvB,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,eAAe,gCAAyB,GACtC,OAAO,CAAC,MAAM,CAAC,CA6BjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACzC,IAAI,EAAE,iBAAiB,EACvB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,OAAO,SAAoB,GACzB,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,EACjB,eAAe,8BAAuB,GACpC,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,uBAAuB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAOf;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CACrC,IAAI,EAAE,iBAAiB,EACvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAoBjB"}
|
|
@@ -13,6 +13,7 @@ exports.createFileBuffer = createFileBuffer;
|
|
|
13
13
|
const pick_1 = __importDefault(require("lodash/pick"));
|
|
14
14
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
15
15
|
const constants_1 = require("../../constants");
|
|
16
|
+
const GenericFunctions_1 = require("../../GenericFunctions");
|
|
16
17
|
const transport_1 = require("../../transport");
|
|
17
18
|
/**
|
|
18
19
|
* Fetches all files from the Airtop API using pagination
|
|
@@ -86,7 +87,10 @@ async function pollFileUntilAvailable(fileId, timeout = constants_1.OPERATION_TI
|
|
|
86
87
|
*/
|
|
87
88
|
async function createAndUploadFile(fileName, fileBuffer, fileType, pollingFunction = pollFileUntilAvailable) {
|
|
88
89
|
// Create file entry
|
|
89
|
-
const createResponse = await transport_1.apiRequest.call(this, 'POST', '/files', {
|
|
90
|
+
const createResponse = await transport_1.apiRequest.call(this, 'POST', '/files', {
|
|
91
|
+
fileName,
|
|
92
|
+
fileType,
|
|
93
|
+
});
|
|
90
94
|
const fileId = createResponse.data?.id;
|
|
91
95
|
const uploadUrl = createResponse.data?.uploadUrl;
|
|
92
96
|
if (!fileId || !uploadUrl) {
|
|
@@ -117,23 +121,20 @@ async function createAndUploadFile(fileName, fileBuffer, fileType, pollingFuncti
|
|
|
117
121
|
* @throws NodeApiError if the timeout is reached before a file becomes available
|
|
118
122
|
*/
|
|
119
123
|
async function waitForFileInSession(sessionId, fileId, timeout = constants_1.OPERATION_TIMEOUT) {
|
|
120
|
-
|
|
121
|
-
const
|
|
122
|
-
const
|
|
123
|
-
return
|
|
124
|
+
// Wait for a "file_upload_status" event with status "available" or "upload_failed"
|
|
125
|
+
const condition = (sessionEvent) => {
|
|
126
|
+
const { event, status } = sessionEvent;
|
|
127
|
+
return (sessionEvent.fileId === fileId &&
|
|
128
|
+
event === 'file_upload_status' &&
|
|
129
|
+
(status === 'available' || status === 'upload_failed'));
|
|
124
130
|
};
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
code: 500,
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
// wait 1 second before checking again
|
|
136
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
131
|
+
const event = await GenericFunctions_1.waitForSessionEvent.call(this, sessionId, condition, timeout);
|
|
132
|
+
if (event.status === 'upload_failed') {
|
|
133
|
+
const error = new n8n_workflow_1.NodeApiError(this.getNode(), {
|
|
134
|
+
message: event.eventData?.error ?? `Upload failed for File ID: ${fileId}`,
|
|
135
|
+
code: 500,
|
|
136
|
+
});
|
|
137
|
+
throw error;
|
|
137
138
|
}
|
|
138
139
|
}
|
|
139
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/file/helpers.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/file/helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.operation.d.ts","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/session/create.operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,MAAM,cAAc,CAAC;AAsBtB,eAAO,MAAM,WAAW,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"create.operation.d.ts","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/session/create.operation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,MAAM,cAAc,CAAC;AAsBtB,eAAO,MAAM,WAAW,EAAE,eAAe,EAuIxC,CAAC;AAEF,wBAAsB,OAAO,CAC5B,IAAI,EAAE,iBAAiB,EACvB,KAAK,EAAE,MAAM,GACX,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAqC/B"}
|
|
@@ -26,6 +26,15 @@ exports.description = [
|
|
|
26
26
|
description: 'Whether to automatically save the <a href="https://docs.airtop.ai/guides/how-to/saving-a-profile" target="_blank">Airtop profile</a> for this session upon termination',
|
|
27
27
|
displayOptions,
|
|
28
28
|
},
|
|
29
|
+
/* Session Recording */
|
|
30
|
+
{
|
|
31
|
+
displayName: 'Record Session',
|
|
32
|
+
name: 'record',
|
|
33
|
+
type: 'boolean',
|
|
34
|
+
default: false,
|
|
35
|
+
description: 'Whether to record the browser session. <a href="https://docs.airtop.ai/guides/how-to/recording-a-session" target="_blank">More details</a>.',
|
|
36
|
+
displayOptions,
|
|
37
|
+
},
|
|
29
38
|
{
|
|
30
39
|
displayName: 'Idle Timeout',
|
|
31
40
|
name: 'timeoutMinutes',
|
|
@@ -136,6 +145,7 @@ exports.description = [
|
|
|
136
145
|
];
|
|
137
146
|
async function execute(index) {
|
|
138
147
|
const profileName = GenericFunctions_1.validateProfileName.call(this, index);
|
|
148
|
+
const record = this.getNodeParameter('record', index, false);
|
|
139
149
|
const timeoutMinutes = GenericFunctions_1.validateTimeoutMinutes.call(this, index);
|
|
140
150
|
const saveProfileOnTermination = GenericFunctions_1.validateSaveProfileOnTermination.call(this, index, profileName);
|
|
141
151
|
const { proxy } = GenericFunctions_1.validateProxy.call(this, index);
|
|
@@ -148,6 +158,7 @@ async function execute(index) {
|
|
|
148
158
|
timeoutMinutes,
|
|
149
159
|
proxy,
|
|
150
160
|
solveCaptcha,
|
|
161
|
+
record,
|
|
151
162
|
...(extensionIds.length > 0 ? { extensionIds } : {}),
|
|
152
163
|
},
|
|
153
164
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.operation.js","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/session/create.operation.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"create.operation.js","sourceRoot":"","sources":["../../../../../nodes/Airtop/actions/session/create.operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IDataObject, IExecuteFunctions,
|
|
1
|
+
import type { IDataObject, IExecuteFunctions, IHttpRequestMethods, ILoadOptionsFunctions } from 'n8n-workflow';
|
|
2
2
|
import type { IAirtopResponse } from './types';
|
|
3
3
|
export declare function apiRequest<T extends IAirtopResponse = IAirtopResponse>(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, query?: IDataObject): Promise<T>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../nodes/Airtop/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,iBAAiB,EACjB,qBAAqB,EACrB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../nodes/Airtop/transport/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,iBAAiB,EACjB,mBAAmB,EAEnB,qBAAqB,EACrB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS/C,wBAAsB,UAAU,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,EAC3E,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,EAC/C,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE,WAAgB,EACtB,KAAK,GAAE,WAAgB,GACrB,OAAO,CAAC,CAAC,CAAC,CAmBZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsLambda.node.d.ts","sourceRoot":"","sources":["../../../nodes/Aws/AwsLambda.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EAEjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"AwsLambda.node.d.ts","sourceRoot":"","sources":["../../../nodes/Aws/AwsLambda.node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EAEjB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,EACT,oBAAoB,EAEpB,MAAM,cAAc,CAAC;AAMtB,qBAAa,SAAU,YAAW,SAAS;IAC1C,WAAW,EAAE,oBAAoB,CAoG/B;IAEF,OAAO;;+BAEoB,qBAAqB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;;MAuChF;IAEI,OAAO,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAyDvE"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.AwsLambda = void 0;
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
5
|
const GenericFunctions_1 = require("./GenericFunctions");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
6
7
|
class AwsLambda {
|
|
7
8
|
description = {
|
|
8
9
|
displayName: 'AWS Lambda',
|
|
@@ -18,13 +19,9 @@ class AwsLambda {
|
|
|
18
19
|
usableAsTool: true,
|
|
19
20
|
inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
20
21
|
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
21
|
-
credentials:
|
|
22
|
-
{
|
|
23
|
-
name: 'aws',
|
|
24
|
-
required: true,
|
|
25
|
-
},
|
|
26
|
-
],
|
|
22
|
+
credentials: utils_1.awsNodeCredentials,
|
|
27
23
|
properties: [
|
|
24
|
+
utils_1.awsNodeAuthOptions,
|
|
28
25
|
{
|
|
29
26
|
displayName: 'Operation',
|
|
30
27
|
name: 'operation',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AwsLambda.node.js","sourceRoot":"","sources":["../../../nodes/Aws/AwsLambda.node.ts"],"names":[],"mappings":";;;AAUA,+CAAiE;AAEjE,yDAAuD;
|
|
1
|
+
{"version":3,"file":"AwsLambda.node.js","sourceRoot":"","sources":["../../../nodes/Aws/AwsLambda.node.ts"],"names":[],"mappings":"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"}
|