n8n-nodes-commercetools 1.0.16 → 1.0.17
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/README.md +3 -3
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.d.ts +9 -0
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.js +230 -0
- package/dist/credentials/CommerceToolsOAuth2Api.credentials.js.map +1 -0
- package/dist/nodes/Commercetools/Commercetools.node.d.ts +7 -0
- package/dist/nodes/Commercetools/Commercetools.node.js +122 -0
- package/dist/nodes/Commercetools/Commercetools.node.js.map +1 -0
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.d.ts +22 -0
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js +75 -0
- package/dist/nodes/Commercetools/CommercetoolsTrigger.node.js.map +1 -0
- package/dist/nodes/Commercetools/generated/operations.json +40468 -0
- package/dist/nodes/Commercetools/utils/awsDelete.utils.d.ts +3 -0
- package/dist/nodes/Commercetools/utils/awsDelete.utils.js +91 -0
- package/dist/nodes/Commercetools/utils/awsDelete.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/awsInfra.utils.d.ts +19 -0
- package/dist/nodes/Commercetools/utils/awsInfra.utils.js +245 -0
- package/dist/nodes/Commercetools/utils/awsInfra.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/bodyBuilder.utils.d.ts +7 -0
- package/dist/nodes/Commercetools/utils/bodyBuilder.utils.js +149 -0
- package/dist/nodes/Commercetools/utils/bodyBuilder.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/cloudVerification.utils.d.ts +4 -0
- package/dist/nodes/Commercetools/utils/cloudVerification.utils.js +100 -0
- package/dist/nodes/Commercetools/utils/cloudVerification.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/gcpDelete.utils.d.ts +3 -0
- package/dist/nodes/Commercetools/utils/gcpDelete.utils.js +64 -0
- package/dist/nodes/Commercetools/utils/gcpDelete.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.d.ts +20 -0
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.js +256 -0
- package/dist/nodes/Commercetools/utils/gcpInfra.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/imageUpload.utils.d.ts +4 -0
- package/dist/nodes/Commercetools/utils/imageUpload.utils.js +103 -0
- package/dist/nodes/Commercetools/utils/imageUpload.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/subscription.utils.d.ts +15 -0
- package/dist/nodes/Commercetools/utils/subscription.utils.js +104 -0
- package/dist/nodes/Commercetools/utils/subscription.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/urlBuilder.utils.d.ts +5 -0
- package/dist/nodes/Commercetools/utils/urlBuilder.utils.js +77 -0
- package/dist/nodes/Commercetools/utils/urlBuilder.utils.js.map +1 -0
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.d.ts +8 -0
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.js +184 -0
- package/dist/nodes/Commercetools/utils/webhookMethods.utils.js.map +1 -0
- package/dist/scripts/collection/fieldExtractors.d.ts +3 -0
- package/dist/scripts/collection/fieldExtractors.js +62 -0
- package/dist/scripts/collection/fieldExtractors.js.map +1 -0
- package/dist/scripts/collection/findFolder.d.ts +2 -0
- package/dist/scripts/collection/findFolder.js +32 -0
- package/dist/scripts/collection/findFolder.js.map +1 -0
- package/dist/scripts/collection/helpers.d.ts +4 -0
- package/dist/scripts/collection/helpers.js +35 -0
- package/dist/scripts/collection/helpers.js.map +1 -0
- package/dist/scripts/collection/postmanTypes.d.ts +27 -0
- package/dist/scripts/collection/postmanTypes.js +3 -0
- package/dist/scripts/collection/postmanTypes.js.map +1 -0
- package/dist/scripts/collection/types.d.ts +32 -0
- package/dist/scripts/collection/types.js +3 -0
- package/dist/scripts/collection/types.js.map +1 -0
- package/dist/scripts/collection/walkItems.d.ts +3 -0
- package/dist/scripts/collection/walkItems.js +147 -0
- package/dist/scripts/collection/walkItems.js.map +1 -0
- package/dist/scripts/generate.d.ts +1 -0
- package/dist/scripts/generate.js +197 -0
- package/dist/scripts/generate.js.map +1 -0
- package/dist/scripts/generateCtpRegistry.d.ts +24 -0
- package/dist/scripts/generateCtpRegistry.js +167 -0
- package/dist/scripts/generateCtpRegistry.js.map +1 -0
- package/dist/scripts/generateProperties.d.ts +9 -0
- package/dist/scripts/generateProperties.js +46 -0
- package/dist/scripts/generateProperties.js.map +1 -0
- package/dist/scripts/generateSubscriptionProperties.d.ts +1 -0
- package/dist/scripts/generateSubscriptionProperties.js +123 -0
- package/dist/scripts/generateSubscriptionProperties.js.map +1 -0
- package/dist/scripts/operationUtils.d.ts +3 -0
- package/dist/scripts/operationUtils.js +25 -0
- package/dist/scripts/operationUtils.js.map +1 -0
- package/dist/scripts/parseCollection.d.ts +5 -0
- package/dist/scripts/parseCollection.js +19 -0
- package/dist/scripts/parseCollection.js.map +1 -0
- package/dist/scripts/properties/bodyFields.d.ts +5 -0
- package/dist/scripts/properties/bodyFields.js +58 -0
- package/dist/scripts/properties/bodyFields.js.map +1 -0
- package/dist/scripts/properties/helpers.d.ts +15 -0
- package/dist/scripts/properties/helpers.js +164 -0
- package/dist/scripts/properties/helpers.js.map +1 -0
- package/dist/scripts/properties/idFields.d.ts +3 -0
- package/dist/scripts/properties/idFields.js +147 -0
- package/dist/scripts/properties/idFields.js.map +1 -0
- package/dist/scripts/properties/imageAndQuery.d.ts +4 -0
- package/dist/scripts/properties/imageAndQuery.js +123 -0
- package/dist/scripts/properties/imageAndQuery.js.map +1 -0
- package/dist/scripts/properties/resourceAndOperation.d.ts +5 -0
- package/dist/scripts/properties/resourceAndOperation.js +66 -0
- package/dist/scripts/properties/resourceAndOperation.js.map +1 -0
- package/dist/scripts/properties/versionAndActions.d.ts +4 -0
- package/dist/scripts/properties/versionAndActions.js +75 -0
- package/dist/scripts/properties/versionAndActions.js.map +1 -0
- package/dist/scripts/utils/download.d.ts +1 -0
- package/dist/scripts/utils/download.js +76 -0
- package/dist/scripts/utils/download.js.map +1 -0
- package/dist/scripts/utils/patches.d.ts +9 -0
- package/dist/scripts/utils/patches.js +94 -0
- package/dist/scripts/utils/patches.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +1 -1
- package/dist/package.json +0 -81
package/README.md
CHANGED
|
@@ -518,10 +518,10 @@ New API endpoints and fields appear in the node automatically without manual dev
|
|
|
518
518
|
|
|
519
519
|
| Version | Changes |
|
|
520
520
|
| ------- | ----------------------------------------------------------------------------------------------------------------------------|
|
|
521
|
-
| v1.0.
|
|
521
|
+
| v1.0.17 | Fix: Updated TypeScript configuration to ensure proper compilation of nodes and generated files |
|
|
522
|
+
| v1.0.16 | Readme Update |
|
|
522
523
|
| v1.0.15 | Migrated AWS infrastructure to SDK v3 (`@aws-sdk/client-*`); cross-platform postbuild script (`scripts/copyLambda.js`) fixes Windows build; lambda handlers now correctly copied to `dist/`; CI workflow adds test step and npm cache; ESLint allows `console.warn`/`console.error` for infrastructure logging |
|
|
523
|
-
| v1.0.14 | Added Product Discounts, Product Types, Product Projections, Tax Categories, Attribute Groups, API Clients, Recurring Orders, Recurrence Policies, Discount Groups, and In-Store Endpoints |
|
|
524
|
-
| v1.0.13 | Added Standalone Prices, Stores, Product Tailoring, Customer Groups, Product Selections, Cart Discounts, and Discount Codes |
|
|
524
|
+
| v1.0.14 | Added Product Discounts, Product Types, Product Projections, Tax Categories, Attribute Groups, API Clients, Recurring Orders, Recurrence Policies, Discount Groups, and In-Store Endpoints |
|
|
525
525
|
---
|
|
526
526
|
|
|
527
527
|
## License
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ICredentialType, INodeProperties, Icon } from 'n8n-workflow';
|
|
2
|
+
export declare class CommerceToolsOAuth2Api implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
extends: string[];
|
|
5
|
+
displayName: string;
|
|
6
|
+
icon: Icon;
|
|
7
|
+
documentationUrl: string;
|
|
8
|
+
properties: INodeProperties[];
|
|
9
|
+
}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommerceToolsOAuth2Api = void 0;
|
|
4
|
+
class CommerceToolsOAuth2Api {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.name = 'commerceToolsOAuth2Api';
|
|
7
|
+
this.extends = ['oAuth2Api'];
|
|
8
|
+
this.displayName = 'commercetools OAuth2 API';
|
|
9
|
+
this.icon = 'file:../nodes/Commercetools/Commercetools.svg';
|
|
10
|
+
this.documentationUrl = 'https://docs.commercetools.com/api/authorization';
|
|
11
|
+
this.properties = [
|
|
12
|
+
{
|
|
13
|
+
displayName: 'Project Key',
|
|
14
|
+
name: 'projectKey',
|
|
15
|
+
type: 'string',
|
|
16
|
+
default: '',
|
|
17
|
+
placeholder: 'your-project-key',
|
|
18
|
+
description: 'The project key from commercetools Merchant Center',
|
|
19
|
+
required: true,
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: 'Region',
|
|
23
|
+
name: 'region',
|
|
24
|
+
type: 'options',
|
|
25
|
+
options: [
|
|
26
|
+
{
|
|
27
|
+
name: 'Australia (Southeast 1)',
|
|
28
|
+
value: 'australia-southeast1.gcp',
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'Europe (West)',
|
|
32
|
+
value: 'europe-west1.gcp',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
name: 'North America (US Central)',
|
|
36
|
+
value: 'us-central1.gcp',
|
|
37
|
+
},
|
|
38
|
+
],
|
|
39
|
+
default: 'australia-southeast1.gcp',
|
|
40
|
+
description: 'The commercetools region. Determines both the OAuth token endpoint and the API base URL.',
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
displayName: 'Event Provider',
|
|
44
|
+
name: 'eventProvider',
|
|
45
|
+
type: 'options',
|
|
46
|
+
options: [
|
|
47
|
+
{
|
|
48
|
+
name: 'None',
|
|
49
|
+
value: 'none',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'AWS EventBridge',
|
|
53
|
+
value: 'aws',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: 'Google Cloud Pub/Sub',
|
|
57
|
+
value: 'gcp',
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
default: 'none',
|
|
61
|
+
description: 'Choose the event provider for webhook integration',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
displayName: 'Webhook Secret',
|
|
65
|
+
name: 'webhookSecret',
|
|
66
|
+
type: 'string',
|
|
67
|
+
typeOptions: { password: true },
|
|
68
|
+
default: '',
|
|
69
|
+
placeholder: 'Optional shared secret for webhook validation',
|
|
70
|
+
description: 'If set, incoming webhook requests must include this value in the X-Webhook-Secret header',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
displayName: 'AWS Client Access Key',
|
|
74
|
+
name: 'awsAccessKeyId',
|
|
75
|
+
type: 'string',
|
|
76
|
+
default: '',
|
|
77
|
+
placeholder: 'your-aws-client-id',
|
|
78
|
+
description: 'AWS Access Key ID for EventBridge authentication',
|
|
79
|
+
displayOptions: {
|
|
80
|
+
show: {
|
|
81
|
+
eventProvider: ['aws'],
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
displayName: 'AWS Client Secret',
|
|
87
|
+
name: 'awsSecretAccessKey',
|
|
88
|
+
type: 'string',
|
|
89
|
+
typeOptions: { password: true },
|
|
90
|
+
default: '',
|
|
91
|
+
placeholder: 'your-aws-client-secret',
|
|
92
|
+
description: 'AWS Secret Access Key for EventBridge authentication',
|
|
93
|
+
displayOptions: {
|
|
94
|
+
show: {
|
|
95
|
+
eventProvider: ['aws'],
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
displayName: 'AWS Region',
|
|
101
|
+
name: 'awsRegion',
|
|
102
|
+
type: 'options',
|
|
103
|
+
options: [
|
|
104
|
+
{ name: 'us-east-1', value: 'us-east-1' },
|
|
105
|
+
{ name: 'us-east-2', value: 'us-east-2' },
|
|
106
|
+
{ name: 'us-west-1', value: 'us-west-1' },
|
|
107
|
+
{ name: 'us-west-2', value: 'us-west-2' },
|
|
108
|
+
{ name: 'eu-west-1', value: 'eu-west-1' },
|
|
109
|
+
{ name: 'eu-west-2', value: 'eu-west-2' },
|
|
110
|
+
{ name: 'eu-west-3', value: 'eu-west-3' },
|
|
111
|
+
{ name: 'eu-central-1', value: 'eu-central-1' },
|
|
112
|
+
{ name: 'eu-central-2', value: 'eu-central-2' },
|
|
113
|
+
{ name: 'eu-north-1', value: 'eu-north-1' },
|
|
114
|
+
{ name: 'ap-southeast-1', value: 'ap-southeast-1' },
|
|
115
|
+
{ name: 'ap-southeast-2', value: 'ap-southeast-2' },
|
|
116
|
+
{ name: 'ap-northeast-1', value: 'ap-northeast-1' },
|
|
117
|
+
{ name: 'ap-northeast-2', value: 'ap-northeast-2' },
|
|
118
|
+
{ name: 'ap-south-1', value: 'ap-south-1' },
|
|
119
|
+
{ name: 'sa-east-1', value: 'sa-east-1' },
|
|
120
|
+
{ name: 'ca-central-1', value: 'ca-central-1' },
|
|
121
|
+
{ name: 'me-south-1', value: 'me-south-1' },
|
|
122
|
+
{ name: 'af-south-1', value: 'af-south-1' },
|
|
123
|
+
],
|
|
124
|
+
default: 'us-east-1',
|
|
125
|
+
description: 'AWS Region for EventBridge',
|
|
126
|
+
displayOptions: {
|
|
127
|
+
show: {
|
|
128
|
+
eventProvider: ['aws'],
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
displayName: 'Service Account JSON',
|
|
134
|
+
name: 'serviceAccountJson',
|
|
135
|
+
type: 'string',
|
|
136
|
+
typeOptions: {
|
|
137
|
+
password: true,
|
|
138
|
+
rows: 6,
|
|
139
|
+
},
|
|
140
|
+
default: '',
|
|
141
|
+
placeholder: 'Paste the entire contents of your downloaded GCP service account .json key file',
|
|
142
|
+
description: 'The full JSON key file downloaded from GCP Console → IAM → Service Accounts → Keys',
|
|
143
|
+
displayOptions: {
|
|
144
|
+
show: {
|
|
145
|
+
eventProvider: ['gcp'],
|
|
146
|
+
},
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
displayName: 'GCP Region',
|
|
151
|
+
name: 'gcpRegion',
|
|
152
|
+
type: 'options',
|
|
153
|
+
options: [
|
|
154
|
+
{ name: 'asia-east1', value: 'asia-east1' },
|
|
155
|
+
{ name: 'asia-east2', value: 'asia-east2' },
|
|
156
|
+
{ name: 'asia-northeast1', value: 'asia-northeast1' },
|
|
157
|
+
{ name: 'asia-northeast2', value: 'asia-northeast2' },
|
|
158
|
+
{ name: 'asia-northeast3', value: 'asia-northeast3' },
|
|
159
|
+
{ name: 'asia-south1', value: 'asia-south1' },
|
|
160
|
+
{ name: 'asia-south2', value: 'asia-south2' },
|
|
161
|
+
{ name: 'asia-southeast1', value: 'asia-southeast1' },
|
|
162
|
+
{ name: 'asia-southeast2', value: 'asia-southeast2' },
|
|
163
|
+
{ name: 'australia-southeast1', value: 'australia-southeast1' },
|
|
164
|
+
{ name: 'australia-southeast2', value: 'australia-southeast2' },
|
|
165
|
+
{ name: 'europe-central2', value: 'europe-central2' },
|
|
166
|
+
{ name: 'europe-north1', value: 'europe-north1' },
|
|
167
|
+
{ name: 'europe-southwest1', value: 'europe-southwest1' },
|
|
168
|
+
{ name: 'europe-west1', value: 'europe-west1' },
|
|
169
|
+
{ name: 'europe-west2', value: 'europe-west2' },
|
|
170
|
+
{ name: 'europe-west3', value: 'europe-west3' },
|
|
171
|
+
{ name: 'europe-west4', value: 'europe-west4' },
|
|
172
|
+
{ name: 'europe-west6', value: 'europe-west6' },
|
|
173
|
+
{ name: 'europe-west8', value: 'europe-west8' },
|
|
174
|
+
{ name: 'europe-west9', value: 'europe-west9' },
|
|
175
|
+
{ name: 'southamerica-east1', value: 'southamerica-east1' },
|
|
176
|
+
{ name: 'southamerica-west1', value: 'southamerica-west1' },
|
|
177
|
+
{ name: 'us-central1', value: 'us-central1' },
|
|
178
|
+
{ name: 'us-east1', value: 'us-east1' },
|
|
179
|
+
{ name: 'us-east4', value: 'us-east4' },
|
|
180
|
+
{ name: 'us-east5', value: 'us-east5' },
|
|
181
|
+
{ name: 'us-south1', value: 'us-south1' },
|
|
182
|
+
{ name: 'us-west1', value: 'us-west1' },
|
|
183
|
+
{ name: 'us-west2', value: 'us-west2' },
|
|
184
|
+
{ name: 'us-west3', value: 'us-west3' },
|
|
185
|
+
{ name: 'us-west4', value: 'us-west4' },
|
|
186
|
+
],
|
|
187
|
+
default: 'europe-west1',
|
|
188
|
+
description: 'The GCP region for Pub/Sub resources',
|
|
189
|
+
displayOptions: {
|
|
190
|
+
show: {
|
|
191
|
+
eventProvider: ['gcp'],
|
|
192
|
+
},
|
|
193
|
+
},
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
displayName: 'Grant Type',
|
|
197
|
+
name: 'grantType',
|
|
198
|
+
type: 'hidden',
|
|
199
|
+
default: 'clientCredentials',
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
displayName: 'Authorization URL',
|
|
203
|
+
name: 'authUrl',
|
|
204
|
+
type: 'hidden',
|
|
205
|
+
default: '={{ `https://auth.${$self["region"]}.commercetools.com` }}',
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
displayName: 'Access Token URL',
|
|
209
|
+
name: 'accessTokenUrl',
|
|
210
|
+
type: 'hidden',
|
|
211
|
+
default: '={{ `https://auth.${$self["region"]}.commercetools.com/oauth/token` }}',
|
|
212
|
+
required: true,
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
displayName: 'Auth URI Query Parameters',
|
|
216
|
+
name: 'authQueryParameters',
|
|
217
|
+
type: 'hidden',
|
|
218
|
+
default: 'grant_type=client_credentials',
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
displayName: 'Authentication',
|
|
222
|
+
name: 'authentication',
|
|
223
|
+
type: 'hidden',
|
|
224
|
+
default: 'header',
|
|
225
|
+
},
|
|
226
|
+
];
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
exports.CommerceToolsOAuth2Api = CommerceToolsOAuth2Api;
|
|
230
|
+
//# sourceMappingURL=CommerceToolsOAuth2Api.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommerceToolsOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/CommerceToolsOAuth2Api.credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
import { isMainUpdateOp } from '../../scripts/operationUtils';
|
|
3
|
+
export declare class Commercetools implements INodeType {
|
|
4
|
+
description: INodeTypeDescription;
|
|
5
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
6
|
+
}
|
|
7
|
+
export { isMainUpdateOp };
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isMainUpdateOp = exports.Commercetools = void 0;
|
|
7
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
8
|
+
const properties_1 = require("./generated/properties");
|
|
9
|
+
const operations_json_1 = __importDefault(require("./generated/operations.json"));
|
|
10
|
+
const operationUtils_1 = require("../../scripts/operationUtils");
|
|
11
|
+
Object.defineProperty(exports, "isMainUpdateOp", { enumerable: true, get: function () { return operationUtils_1.isMainUpdateOp; } });
|
|
12
|
+
const urlBuilder_utils_1 = require("./utils/urlBuilder.utils");
|
|
13
|
+
const bodyBuilder_utils_1 = require("./utils/bodyBuilder.utils");
|
|
14
|
+
const imageUpload_utils_1 = require("./utils/imageUpload.utils");
|
|
15
|
+
class Commercetools {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.description = {
|
|
18
|
+
displayName: 'commercetools',
|
|
19
|
+
name: 'commercetools',
|
|
20
|
+
icon: 'file:Commercetools.svg',
|
|
21
|
+
group: ['transform'],
|
|
22
|
+
version: 1,
|
|
23
|
+
subtitle: '={{$parameter["resource"] + ": " + $parameter["operation"]}}',
|
|
24
|
+
description: 'Interact with the commercetools API. Operations are auto-generated from the official Postman collection.',
|
|
25
|
+
defaults: { name: 'commercetools' },
|
|
26
|
+
inputs: ['main'],
|
|
27
|
+
outputs: ['main'],
|
|
28
|
+
credentials: [{ name: 'commerceToolsOAuth2Api', required: true }],
|
|
29
|
+
usableAsTool: true,
|
|
30
|
+
properties: properties_1.generatedProperties,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
async execute() {
|
|
34
|
+
const items = this.getInputData();
|
|
35
|
+
const returnData = [];
|
|
36
|
+
const credentials = await this.getCredentials('commerceToolsOAuth2Api');
|
|
37
|
+
for (let i = 0; i < items.length; i++) {
|
|
38
|
+
try {
|
|
39
|
+
const result = await executeOperation.call(this, i, credentials);
|
|
40
|
+
returnData.push({ json: result });
|
|
41
|
+
}
|
|
42
|
+
catch (error) {
|
|
43
|
+
if (this.continueOnFail()) {
|
|
44
|
+
returnData.push({ json: { error: error.message }, pairedItem: i });
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return [returnData];
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
exports.Commercetools = Commercetools;
|
|
54
|
+
async function executeOperation(i, creds) {
|
|
55
|
+
const projectKey = creds.projectKey;
|
|
56
|
+
const region = creds.region;
|
|
57
|
+
const baseUrl = `https://api.${region}.commercetools.com`;
|
|
58
|
+
const resource = this.getNodeParameter('resource', i);
|
|
59
|
+
const operation = this.getNodeParameter('operation', i);
|
|
60
|
+
const opDef = operations_json_1.default[operation];
|
|
61
|
+
if (!opDef) {
|
|
62
|
+
throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Unknown operation "${operation}". Re-run npm run generate to sync.`);
|
|
63
|
+
}
|
|
64
|
+
const fullUrl = urlBuilder_utils_1.buildUrl.call(this, i, opDef, projectKey, baseUrl, operation);
|
|
65
|
+
if (opDef.isImageUpload || /\/images$/.test(opDef.urlTemplate)) {
|
|
66
|
+
return imageUpload_utils_1.executeImageUpload.call(this, i, opDef, fullUrl);
|
|
67
|
+
}
|
|
68
|
+
const queryParams = {};
|
|
69
|
+
if (opDef.method === 'DELETE' && operation !== 'deleteCustomObjectByContainerAndKey') {
|
|
70
|
+
queryParams.version = String((0, urlBuilder_utils_1.safeGet)(this, 'version', i, 1));
|
|
71
|
+
}
|
|
72
|
+
if (['GET', 'HEAD'].includes(opDef.method)) {
|
|
73
|
+
const filters = (0, urlBuilder_utils_1.safeGet)(this, `queryParams__${operation}`, i, {});
|
|
74
|
+
for (const [k, v] of Object.entries(filters)) {
|
|
75
|
+
if (v !== null && v !== undefined && v !== '')
|
|
76
|
+
queryParams[k] = String(v);
|
|
77
|
+
}
|
|
78
|
+
for (const paramName of opDef.queryParams) {
|
|
79
|
+
const val = (0, urlBuilder_utils_1.safeGet)(this, `reqParam__${operation}__${paramName}`, i, '');
|
|
80
|
+
if (val !== '')
|
|
81
|
+
queryParams[paramName] = val;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
const body = (0, bodyBuilder_utils_1.buildRequestBody)(this, i, opDef, resource, operation);
|
|
85
|
+
if (opDef.method === 'HEAD') {
|
|
86
|
+
return executeHeadCheck.call(this, fullUrl, queryParams, opDef.name);
|
|
87
|
+
}
|
|
88
|
+
const options = {
|
|
89
|
+
method: opDef.method,
|
|
90
|
+
url: fullUrl,
|
|
91
|
+
qs: Object.keys(queryParams).length > 0 ? queryParams : undefined,
|
|
92
|
+
json: true,
|
|
93
|
+
};
|
|
94
|
+
const isSearchOp = opDef.isSearch || /\/search$/.test(opDef.urlTemplate);
|
|
95
|
+
if (body && (isSearchOp || Object.keys(body).length > 0)) {
|
|
96
|
+
options.body = body;
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
return await this.helpers.httpRequestWithAuthentication.call(this, 'commerceToolsOAuth2Api', options);
|
|
100
|
+
}
|
|
101
|
+
catch (err) {
|
|
102
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: err.message }, { message: `[${opDef.name}]: ${err.message}` });
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
async function executeHeadCheck(fullUrl, queryParams, opName) {
|
|
106
|
+
var _a;
|
|
107
|
+
try {
|
|
108
|
+
await this.helpers.httpRequestWithAuthentication.call(this, 'commerceToolsOAuth2Api', {
|
|
109
|
+
method: 'HEAD',
|
|
110
|
+
url: fullUrl,
|
|
111
|
+
qs: Object.keys(queryParams).length > 0 ? queryParams : undefined,
|
|
112
|
+
});
|
|
113
|
+
return { exists: true, statusCode: 200, url: fullUrl };
|
|
114
|
+
}
|
|
115
|
+
catch (err) {
|
|
116
|
+
const statusCode = (_a = err === null || err === void 0 ? void 0 : err.statusCode) !== null && _a !== void 0 ? _a : 404;
|
|
117
|
+
if (statusCode === 404)
|
|
118
|
+
return { exists: false, statusCode: 404, url: fullUrl };
|
|
119
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: err.message }, { message: `[${opName}]: ${err.message}` });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=Commercetools.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Commercetools.node.js","sourceRoot":"","sources":["../../../nodes/Commercetools/Commercetools.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { IDataObject, INodeType, INodeTypeDescription, IWebhookFunctions, IWebhookResponseData } from 'n8n-workflow';
|
|
2
|
+
import type { AWSResponse } from './utils/awsInfra.utils';
|
|
3
|
+
import type { GCPResponse } from './utils/gcpInfra.utils';
|
|
4
|
+
export type StaticSubscriptionData = IDataObject & {
|
|
5
|
+
subscriptionId?: string;
|
|
6
|
+
awsInfrastructure?: AWSResponse;
|
|
7
|
+
gcpInfrastructure?: GCPResponse;
|
|
8
|
+
configHash?: string;
|
|
9
|
+
events?: string[];
|
|
10
|
+
lastVerifiedAt?: number;
|
|
11
|
+
};
|
|
12
|
+
export declare class CommercetoolsTrigger implements INodeType {
|
|
13
|
+
description: INodeTypeDescription;
|
|
14
|
+
webhookMethods: {
|
|
15
|
+
default: {
|
|
16
|
+
checkExists: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
|
|
17
|
+
create: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
|
|
18
|
+
delete: (this: import("n8n-workflow").IHookFunctions) => Promise<boolean>;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
webhook(this: IWebhookFunctions): Promise<IWebhookResponseData>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommercetoolsTrigger = void 0;
|
|
4
|
+
const crypto_1 = require("crypto");
|
|
5
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
6
|
+
const subscription_properties_1 = require("./generated/subscription.properties");
|
|
7
|
+
const webhookMethods_utils_1 = require("./utils/webhookMethods.utils");
|
|
8
|
+
class CommercetoolsTrigger {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.description = {
|
|
11
|
+
usableAsTool: true,
|
|
12
|
+
displayName: 'commercetools Trigger',
|
|
13
|
+
name: 'commercetoolsTrigger',
|
|
14
|
+
icon: 'file:Commercetools.svg',
|
|
15
|
+
group: ['trigger'],
|
|
16
|
+
version: 1,
|
|
17
|
+
description: 'Listen for commercetools events. Automatically provisions AWS SQS + Lambda or GCP Pub/Sub + Cloud Functions when the respective credentials are provided.',
|
|
18
|
+
defaults: {
|
|
19
|
+
name: 'commercetools Trigger',
|
|
20
|
+
},
|
|
21
|
+
codex: {
|
|
22
|
+
categories: ['commercetools', 'Integration', 'Customer', 'Product'],
|
|
23
|
+
subcategories: {
|
|
24
|
+
commercetools: ['Customer', 'Product'],
|
|
25
|
+
},
|
|
26
|
+
alias: ['commercetools'],
|
|
27
|
+
},
|
|
28
|
+
inputs: [],
|
|
29
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
30
|
+
credentials: [
|
|
31
|
+
{
|
|
32
|
+
name: 'commerceToolsOAuth2Api',
|
|
33
|
+
required: true,
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
webhooks: [
|
|
37
|
+
{
|
|
38
|
+
name: 'default',
|
|
39
|
+
httpMethod: 'POST',
|
|
40
|
+
responseMode: 'onReceived',
|
|
41
|
+
path: 'commercetools-events',
|
|
42
|
+
ndvHideUrl: false,
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
properties: [...subscription_properties_1.triggerProperties],
|
|
46
|
+
};
|
|
47
|
+
this.webhookMethods = webhookMethods_utils_1.triggerMethods;
|
|
48
|
+
}
|
|
49
|
+
async webhook() {
|
|
50
|
+
var _a;
|
|
51
|
+
const req = this.getRequestObject();
|
|
52
|
+
const credentials = await this.getCredentials('commerceToolsOAuth2Api');
|
|
53
|
+
const secret = credentials.webhookSecret;
|
|
54
|
+
if (secret) {
|
|
55
|
+
const incoming = (_a = req.headers['x-webhook-secret']) !== null && _a !== void 0 ? _a : '';
|
|
56
|
+
const expected = Buffer.from(secret, 'utf8');
|
|
57
|
+
const received = Buffer.from(incoming, 'utf8');
|
|
58
|
+
if (expected.length !== received.length || !(0, crypto_1.timingSafeEqual)(expected, received)) {
|
|
59
|
+
return { noWebhookResponse: true };
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
let processedBody;
|
|
63
|
+
try {
|
|
64
|
+
processedBody = typeof req.body === 'string' ? JSON.parse(req.body) : req.body;
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return { noWebhookResponse: true };
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
workflowData: [this.helpers.returnJsonArray(processedBody)],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.CommercetoolsTrigger = CommercetoolsTrigger;
|
|
75
|
+
//# sourceMappingURL=CommercetoolsTrigger.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CommercetoolsTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Commercetools/CommercetoolsTrigger.node.ts"],"names":[],"mappings":";;;AAiBA,mCAAyC;AAQzC,+CAAmD;AACnD,iFAAwE;AACxE,uEAA8D;AAa9D,MAAa,oBAAoB;IAAjC;QACC,gBAAW,GAAyB;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE,uBAAuB;YACpC,IAAI,EAAE,sBAAsB;YAC5B,IAAI,EAAE,wBAAwB;YAC9B,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YAEV,WAAW,EACV,2JAA2J;YAC5J,QAAQ,EAAE;gBACT,IAAI,EAAE,uBAAuB;aAC7B;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,SAAS,CAAC;gBACnE,aAAa,EAAE;oBACd,aAAa,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC;iBACtC;gBACD,KAAK,EAAE,CAAC,eAAe,CAAC;aACxB;YACD,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,wBAAwB;oBAC9B,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,QAAQ,EAAE;gBACT;oBACC,IAAI,EAAE,SAAS;oBACf,UAAU,EAAE,MAAM;oBAClB,YAAY,EAAE,YAAY;oBAC1B,IAAI,EAAE,sBAAsB;oBAC5B,UAAU,EAAE,KAAK;iBACjB;aACD;YACD,UAAU,EAAE,CAAC,GAAG,2CAAiB,CAAC;SAClC,CAAC;QAEF,mBAAc,GAAG,qCAAc,CAAC;IA8BjC,CAAC;IA5BA,KAAK,CAAC,OAAO;;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAGpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,WAAW,CAAC,aAAmC,CAAC;QAC/D,IAAI,MAAM,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,MAAC,GAAG,CAAC,OAAO,CAAC,kBAAkB,CAAY,mCAAI,EAAE,CAAC;YACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAC/C,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,CAAC,IAAA,wBAAe,EAAC,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACjF,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;YACpC,CAAC;QACF,CAAC;QAID,IAAI,aAA0B,CAAC;QAC/B,IAAI,CAAC;YACJ,aAAa,GAAG,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAChF,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;QACpC,CAAC;QAED,OAAO;YACN,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;SAC3D,CAAC;IACH,CAAC;CACD;AAvED,oDAuEC"}
|