n8n-nodes-resend 2.6.2 → 2.6.4
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 +1 -0
- package/dist/credentials/ResendApi.credentials.d.ts +2 -2
- package/dist/credentials/ResendOAuth2Api.credentials.d.ts +2 -2
- package/dist/credentials/ResendWebhookSigningSecretApi.credentials.d.ts +1 -1
- package/dist/nodes/Resend/Resend.node.d.ts +5 -3
- package/dist/nodes/Resend/Resend.node.js +14 -5
- package/dist/nodes/Resend/ResendTrigger.node.d.ts +13 -1
- package/dist/nodes/Resend/ResendTrigger.node.js +111 -6
- package/dist/nodes/Resend/actions/account/index.js +1 -1
- package/dist/nodes/Resend/actions/domain/listTrackingDomains.operation.js +2 -2
- package/dist/nodes/Resend/actions/email/send.operation.js +1 -1
- package/dist/nodes/Resend/actions/email/sendAndWait.operation.d.ts +1 -1
- package/dist/nodes/Resend/actions/email/sendAndWait.operation.js +1 -1
- package/dist/nodes/Resend/actions/email/sendBatch.operation.js +17 -4
- package/dist/nodes/Resend/actions/router.js +4 -1
- package/dist/nodes/Resend/actions/suppression/batchAdd.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/batchAdd.operation.js +41 -0
- package/dist/nodes/Resend/actions/suppression/batchRemove.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/batchRemove.operation.js +80 -0
- package/dist/nodes/Resend/actions/suppression/create.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/create.operation.js +37 -0
- package/dist/nodes/Resend/actions/suppression/delete.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/delete.operation.js +37 -0
- package/dist/nodes/Resend/actions/suppression/execute.d.ts +4 -0
- package/dist/nodes/Resend/actions/suppression/execute.js +18 -0
- package/dist/nodes/Resend/actions/suppression/get.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/get.operation.js +37 -0
- package/dist/nodes/Resend/actions/suppression/index.d.ts +13 -0
- package/dist/nodes/Resend/actions/suppression/index.js +122 -0
- package/dist/nodes/Resend/actions/suppression/list.operation.d.ts +8 -0
- package/dist/nodes/Resend/actions/suppression/list.operation.js +83 -0
- package/dist/nodes/Resend/actions/workflow/listRunSteps.operation.js +2 -2
- package/dist/nodes/Resend/actions/workflow/listRuns.operation.js +2 -2
- package/dist/nodes/Resend/methods/index.d.ts +3 -1
- package/dist/nodes/Resend/methods/index.js +35 -33
- package/dist/nodes/Resend/transport/index.d.ts +3 -2
- package/dist/nodes/Resend/transport/index.js +9 -3
- package/dist/nodes/Resend/utils/dynamicFields.d.ts +22 -20
- package/dist/nodes/Resend/utils/dynamicFields.js +2 -61
- package/dist/nodes/Resend/utils/sendAndWait/email-templates.d.ts +1 -3
- package/dist/nodes/Resend/utils/sendAndWait/email-templates.js +0 -10
- package/dist/nodes/Resend/utils/sendAndWait/index.d.ts +2 -2
- package/dist/nodes/Resend/utils/sendAndWait/index.js +0 -2
- package/dist/nodes/Resend/utils/sendAndWait/utils.d.ts +2 -2
- package/dist/nodes/Resend/utils/sendAndWait/utils.js +19 -15
- package/package.json +10 -5
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
const require_nodes_Resend_transport_index = require("../../transport/index.js");
|
|
4
|
+
//#region nodes/Resend/actions/suppression/create.operation.ts
|
|
5
|
+
var create_operation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
6
|
+
description: () => description,
|
|
7
|
+
execute: () => execute
|
|
8
|
+
});
|
|
9
|
+
const description = [{
|
|
10
|
+
displayName: "Email",
|
|
11
|
+
name: "suppressionEmail",
|
|
12
|
+
type: "string",
|
|
13
|
+
required: true,
|
|
14
|
+
default: "",
|
|
15
|
+
placeholder: "recipient@example.com",
|
|
16
|
+
displayOptions: { show: {
|
|
17
|
+
resource: ["suppressions"],
|
|
18
|
+
operation: ["create"]
|
|
19
|
+
} },
|
|
20
|
+
description: "The email address to add to the suppression list. Resend will skip this address at send time to avoid new hard bounces or spam complaints."
|
|
21
|
+
}];
|
|
22
|
+
async function execute(index) {
|
|
23
|
+
const body = { email: this.getNodeParameter("suppressionEmail", index) };
|
|
24
|
+
return [{
|
|
25
|
+
json: await require_nodes_Resend_transport_index.apiRequest.call(this, "POST", "/suppressions", body),
|
|
26
|
+
pairedItem: { item: index }
|
|
27
|
+
}];
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
Object.defineProperty(exports, "create_operation_exports", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function() {
|
|
33
|
+
return create_operation_exports;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
exports.description = description;
|
|
37
|
+
exports.execute = execute;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeProperties } from "n8n-workflow";
|
|
2
|
+
declare namespace delete_operation_d_exports {
|
|
3
|
+
export { description, execute };
|
|
4
|
+
}
|
|
5
|
+
declare const description: INodeProperties[];
|
|
6
|
+
declare function execute(this: IExecuteFunctions, index: number): Promise<INodeExecutionData[]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { delete_operation_d_exports, description, execute };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
const require_nodes_Resend_transport_index = require("../../transport/index.js");
|
|
4
|
+
const require_nodes_Resend_utils_dynamicFields = require("../../utils/dynamicFields.js");
|
|
5
|
+
//#region nodes/Resend/actions/suppression/delete.operation.ts
|
|
6
|
+
var delete_operation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
7
|
+
description: () => description,
|
|
8
|
+
execute: () => execute
|
|
9
|
+
});
|
|
10
|
+
const description = [require_nodes_Resend_utils_dynamicFields.createDynamicIdField({
|
|
11
|
+
fieldName: "suppressionIdentifier",
|
|
12
|
+
resourceName: "suppression",
|
|
13
|
+
displayName: "Suppression",
|
|
14
|
+
required: true,
|
|
15
|
+
placeholder: "e169aa45-1ecf-4183-9955-b1499d5701d3",
|
|
16
|
+
description: "The suppression to remove. Select from the list, or enter a suppression ID or the suppressed email address directly. Removing it lets Resend send to this address again.",
|
|
17
|
+
displayOptions: { show: {
|
|
18
|
+
resource: ["suppressions"],
|
|
19
|
+
operation: ["delete"]
|
|
20
|
+
} }
|
|
21
|
+
})];
|
|
22
|
+
async function execute(index) {
|
|
23
|
+
const suppression = require_nodes_Resend_utils_dynamicFields.resolveDynamicIdValue(this, "suppressionIdentifier", index);
|
|
24
|
+
return [{
|
|
25
|
+
json: await require_nodes_Resend_transport_index.apiRequest.call(this, "DELETE", `/suppressions/${encodeURIComponent(suppression)}`),
|
|
26
|
+
pairedItem: { item: index }
|
|
27
|
+
}];
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
Object.defineProperty(exports, "delete_operation_exports", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function() {
|
|
33
|
+
return delete_operation_exports;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
exports.description = description;
|
|
37
|
+
exports.execute = execute;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_nodes_Resend_transport_index = require("../../transport/index.js");
|
|
3
|
+
const require_nodes_Resend_actions_suppression_batchAdd_operation = require("./batchAdd.operation.js");
|
|
4
|
+
const require_nodes_Resend_actions_suppression_batchRemove_operation = require("./batchRemove.operation.js");
|
|
5
|
+
const require_nodes_Resend_actions_suppression_create_operation = require("./create.operation.js");
|
|
6
|
+
const require_nodes_Resend_actions_suppression_delete_operation = require("./delete.operation.js");
|
|
7
|
+
const require_nodes_Resend_actions_suppression_get_operation = require("./get.operation.js");
|
|
8
|
+
const require_nodes_Resend_actions_suppression_list_operation = require("./list.operation.js");
|
|
9
|
+
//#region nodes/Resend/actions/suppression/execute.ts
|
|
10
|
+
const execute = require_nodes_Resend_transport_index.createOperationRouter({
|
|
11
|
+
create: require_nodes_Resend_actions_suppression_create_operation.create_operation_exports,
|
|
12
|
+
get: require_nodes_Resend_actions_suppression_get_operation.get_operation_exports,
|
|
13
|
+
delete: require_nodes_Resend_actions_suppression_delete_operation.delete_operation_exports,
|
|
14
|
+
batchAdd: require_nodes_Resend_actions_suppression_batchAdd_operation.batchAdd_operation_exports,
|
|
15
|
+
batchRemove: require_nodes_Resend_actions_suppression_batchRemove_operation.batchRemove_operation_exports
|
|
16
|
+
}, { list: require_nodes_Resend_actions_suppression_list_operation.list_operation_exports });
|
|
17
|
+
//#endregion
|
|
18
|
+
exports.execute = execute;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeProperties } from "n8n-workflow";
|
|
2
|
+
declare namespace get_operation_d_exports {
|
|
3
|
+
export { description, execute };
|
|
4
|
+
}
|
|
5
|
+
declare const description: INodeProperties[];
|
|
6
|
+
declare function execute(this: IExecuteFunctions, index: number): Promise<INodeExecutionData[]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { description, execute, get_operation_d_exports };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
const require_nodes_Resend_transport_index = require("../../transport/index.js");
|
|
4
|
+
const require_nodes_Resend_utils_dynamicFields = require("../../utils/dynamicFields.js");
|
|
5
|
+
//#region nodes/Resend/actions/suppression/get.operation.ts
|
|
6
|
+
var get_operation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
7
|
+
description: () => description,
|
|
8
|
+
execute: () => execute
|
|
9
|
+
});
|
|
10
|
+
const description = [require_nodes_Resend_utils_dynamicFields.createDynamicIdField({
|
|
11
|
+
fieldName: "suppressionIdentifier",
|
|
12
|
+
resourceName: "suppression",
|
|
13
|
+
displayName: "Suppression",
|
|
14
|
+
required: true,
|
|
15
|
+
placeholder: "e169aa45-1ecf-4183-9955-b1499d5701d3",
|
|
16
|
+
description: "The suppression to retrieve. Select from the list, or enter a suppression ID or the suppressed email address directly.",
|
|
17
|
+
displayOptions: { show: {
|
|
18
|
+
resource: ["suppressions"],
|
|
19
|
+
operation: ["get"]
|
|
20
|
+
} }
|
|
21
|
+
})];
|
|
22
|
+
async function execute(index) {
|
|
23
|
+
const suppression = require_nodes_Resend_utils_dynamicFields.resolveDynamicIdValue(this, "suppressionIdentifier", index);
|
|
24
|
+
return [{
|
|
25
|
+
json: await require_nodes_Resend_transport_index.apiRequest.call(this, "GET", `/suppressions/${encodeURIComponent(suppression)}`),
|
|
26
|
+
pairedItem: { item: index }
|
|
27
|
+
}];
|
|
28
|
+
}
|
|
29
|
+
//#endregion
|
|
30
|
+
exports.description = description;
|
|
31
|
+
exports.execute = execute;
|
|
32
|
+
Object.defineProperty(exports, "get_operation_exports", {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function() {
|
|
35
|
+
return get_operation_exports;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { batchAdd_operation_d_exports } from "./batchAdd.operation.js";
|
|
2
|
+
import { batchRemove_operation_d_exports } from "./batchRemove.operation.js";
|
|
3
|
+
import { create_operation_d_exports } from "./create.operation.js";
|
|
4
|
+
import { delete_operation_d_exports } from "./delete.operation.js";
|
|
5
|
+
import { execute } from "./execute.js";
|
|
6
|
+
import { get_operation_d_exports } from "./get.operation.js";
|
|
7
|
+
import { list_operation_d_exports } from "./list.operation.js";
|
|
8
|
+
import { INodeProperties } from "n8n-workflow";
|
|
9
|
+
//#region nodes/Resend/actions/suppression/index.d.ts
|
|
10
|
+
declare const operations: INodeProperties[];
|
|
11
|
+
declare const descriptions: INodeProperties[];
|
|
12
|
+
//#endregion
|
|
13
|
+
export { batchAdd_operation_d_exports as batchAdd, batchRemove_operation_d_exports as batchRemove, create_operation_d_exports as create, delete_operation_d_exports as delete, descriptions, execute, get_operation_d_exports as get, list_operation_d_exports as list, operations };
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
const require_nodes_Resend_actions_suppression_batchAdd_operation = require("./batchAdd.operation.js");
|
|
4
|
+
const require_nodes_Resend_actions_suppression_batchRemove_operation = require("./batchRemove.operation.js");
|
|
5
|
+
const require_nodes_Resend_actions_suppression_create_operation = require("./create.operation.js");
|
|
6
|
+
const require_nodes_Resend_actions_suppression_delete_operation = require("./delete.operation.js");
|
|
7
|
+
const require_nodes_Resend_actions_suppression_get_operation = require("./get.operation.js");
|
|
8
|
+
const require_nodes_Resend_actions_suppression_list_operation = require("./list.operation.js");
|
|
9
|
+
const require_nodes_Resend_actions_suppression_execute = require("./execute.js");
|
|
10
|
+
//#region nodes/Resend/actions/suppression/index.ts
|
|
11
|
+
var suppression_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
12
|
+
batchAdd: () => require_nodes_Resend_actions_suppression_batchAdd_operation.batchAdd_operation_exports,
|
|
13
|
+
batchRemove: () => require_nodes_Resend_actions_suppression_batchRemove_operation.batchRemove_operation_exports,
|
|
14
|
+
create: () => require_nodes_Resend_actions_suppression_create_operation.create_operation_exports,
|
|
15
|
+
delete: () => require_nodes_Resend_actions_suppression_delete_operation.delete_operation_exports,
|
|
16
|
+
descriptions: () => descriptions,
|
|
17
|
+
execute: () => require_nodes_Resend_actions_suppression_execute.execute,
|
|
18
|
+
get: () => require_nodes_Resend_actions_suppression_get_operation.get_operation_exports,
|
|
19
|
+
list: () => require_nodes_Resend_actions_suppression_list_operation.list_operation_exports,
|
|
20
|
+
operations: () => operations
|
|
21
|
+
});
|
|
22
|
+
const operations = [{
|
|
23
|
+
displayName: "Operation",
|
|
24
|
+
name: "operation",
|
|
25
|
+
type: "options",
|
|
26
|
+
noDataExpression: true,
|
|
27
|
+
displayOptions: { show: { resource: ["suppressions"] } },
|
|
28
|
+
options: [
|
|
29
|
+
{
|
|
30
|
+
name: "Batch Add",
|
|
31
|
+
value: "batchAdd",
|
|
32
|
+
description: "Add up to 100 email addresses to the suppression list in a single request",
|
|
33
|
+
action: "Batch add suppressions"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: "Batch Remove",
|
|
37
|
+
value: "batchRemove",
|
|
38
|
+
description: "Remove up to 100 suppressions at once by email address or by suppression ID",
|
|
39
|
+
action: "Batch remove suppressions"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "Create",
|
|
43
|
+
value: "create",
|
|
44
|
+
description: "Add a single email address to the suppression list so Resend skips it at send time",
|
|
45
|
+
action: "Create a suppression"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
name: "Delete",
|
|
49
|
+
value: "delete",
|
|
50
|
+
description: "Remove a single suppression by ID or email so Resend can send to the address again",
|
|
51
|
+
action: "Delete a suppression"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
name: "Get",
|
|
55
|
+
value: "get",
|
|
56
|
+
description: "Retrieve a single suppression by ID or email, including its origin and creation time",
|
|
57
|
+
action: "Get a suppression"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "List",
|
|
61
|
+
value: "list",
|
|
62
|
+
description: "List suppressed addresses, optionally filtered by origin (bounce, complaint, or manual)",
|
|
63
|
+
action: "List suppressions"
|
|
64
|
+
}
|
|
65
|
+
],
|
|
66
|
+
default: "list"
|
|
67
|
+
}];
|
|
68
|
+
const descriptions = [
|
|
69
|
+
...operations,
|
|
70
|
+
...require_nodes_Resend_actions_suppression_create_operation.description,
|
|
71
|
+
...require_nodes_Resend_actions_suppression_get_operation.description,
|
|
72
|
+
...require_nodes_Resend_actions_suppression_list_operation.description,
|
|
73
|
+
...require_nodes_Resend_actions_suppression_delete_operation.description,
|
|
74
|
+
...require_nodes_Resend_actions_suppression_batchAdd_operation.description,
|
|
75
|
+
...require_nodes_Resend_actions_suppression_batchRemove_operation.description
|
|
76
|
+
];
|
|
77
|
+
//#endregion
|
|
78
|
+
Object.defineProperty(exports, "batchAdd", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function() {
|
|
81
|
+
return require_nodes_Resend_actions_suppression_batchAdd_operation.batchAdd_operation_exports;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
Object.defineProperty(exports, "batchRemove", {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function() {
|
|
87
|
+
return require_nodes_Resend_actions_suppression_batchRemove_operation.batchRemove_operation_exports;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, "create", {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function() {
|
|
93
|
+
return require_nodes_Resend_actions_suppression_create_operation.create_operation_exports;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
Object.defineProperty(exports, "delete", {
|
|
97
|
+
enumerable: true,
|
|
98
|
+
get: function() {
|
|
99
|
+
return require_nodes_Resend_actions_suppression_delete_operation.delete_operation_exports;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
exports.descriptions = descriptions;
|
|
103
|
+
exports.execute = require_nodes_Resend_actions_suppression_execute.execute;
|
|
104
|
+
Object.defineProperty(exports, "get", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function() {
|
|
107
|
+
return require_nodes_Resend_actions_suppression_get_operation.get_operation_exports;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
Object.defineProperty(exports, "list", {
|
|
111
|
+
enumerable: true,
|
|
112
|
+
get: function() {
|
|
113
|
+
return require_nodes_Resend_actions_suppression_list_operation.list_operation_exports;
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
exports.operations = operations;
|
|
117
|
+
Object.defineProperty(exports, "suppression_exports", {
|
|
118
|
+
enumerable: true,
|
|
119
|
+
get: function() {
|
|
120
|
+
return suppression_exports;
|
|
121
|
+
}
|
|
122
|
+
});
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IExecuteFunctions, INodeExecutionData, INodeProperties } from "n8n-workflow";
|
|
2
|
+
declare namespace list_operation_d_exports {
|
|
3
|
+
export { description, execute };
|
|
4
|
+
}
|
|
5
|
+
declare const description: INodeProperties[];
|
|
6
|
+
declare function execute(this: IExecuteFunctions): Promise<INodeExecutionData[]>;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { description, execute, list_operation_d_exports };
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../../../../_virtual/_rolldown/runtime.js");
|
|
3
|
+
const require_nodes_Resend_transport_index = require("../../transport/index.js");
|
|
4
|
+
//#region nodes/Resend/actions/suppression/list.operation.ts
|
|
5
|
+
var list_operation_exports = /* @__PURE__ */ require_runtime.__exportAll({
|
|
6
|
+
description: () => description,
|
|
7
|
+
execute: () => execute
|
|
8
|
+
});
|
|
9
|
+
const description = [
|
|
10
|
+
{
|
|
11
|
+
displayName: "Return All",
|
|
12
|
+
name: "returnAll",
|
|
13
|
+
type: "boolean",
|
|
14
|
+
default: false,
|
|
15
|
+
displayOptions: { show: {
|
|
16
|
+
resource: ["suppressions"],
|
|
17
|
+
operation: ["list"]
|
|
18
|
+
} },
|
|
19
|
+
description: "Whether to return all results or only up to a given limit"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
displayName: "Limit",
|
|
23
|
+
name: "limit",
|
|
24
|
+
type: "number",
|
|
25
|
+
default: 50,
|
|
26
|
+
typeOptions: { minValue: 1 },
|
|
27
|
+
displayOptions: { show: {
|
|
28
|
+
resource: ["suppressions"],
|
|
29
|
+
operation: ["list"],
|
|
30
|
+
returnAll: [false]
|
|
31
|
+
} },
|
|
32
|
+
description: "Max number of results to return"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
displayName: "Origin",
|
|
36
|
+
name: "suppressionOrigin",
|
|
37
|
+
type: "options",
|
|
38
|
+
default: "",
|
|
39
|
+
displayOptions: { show: {
|
|
40
|
+
resource: ["suppressions"],
|
|
41
|
+
operation: ["list"]
|
|
42
|
+
} },
|
|
43
|
+
options: [
|
|
44
|
+
{
|
|
45
|
+
name: "Any",
|
|
46
|
+
value: "",
|
|
47
|
+
description: "Return suppressions from all origins"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
name: "Bounce",
|
|
51
|
+
value: "bounce",
|
|
52
|
+
description: "Addresses suppressed because they hard bounced"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
name: "Complaint",
|
|
56
|
+
value: "complaint",
|
|
57
|
+
description: "Addresses suppressed because of a spam complaint"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: "Manual",
|
|
61
|
+
value: "manual",
|
|
62
|
+
description: "Addresses suppressed manually via the API or dashboard"
|
|
63
|
+
}
|
|
64
|
+
],
|
|
65
|
+
description: "Filter suppressions by how they were added to the list"
|
|
66
|
+
}
|
|
67
|
+
];
|
|
68
|
+
async function execute() {
|
|
69
|
+
const origin = this.getNodeParameter("suppressionOrigin", 0, "");
|
|
70
|
+
const extraQs = {};
|
|
71
|
+
if (origin) extraQs.origin = origin;
|
|
72
|
+
const items = await require_nodes_Resend_transport_index.requestList.call(this, "/suppressions", extraQs);
|
|
73
|
+
return require_nodes_Resend_transport_index.createListExecutionData.call(this, items);
|
|
74
|
+
}
|
|
75
|
+
//#endregion
|
|
76
|
+
exports.description = description;
|
|
77
|
+
exports.execute = execute;
|
|
78
|
+
Object.defineProperty(exports, "list_operation_exports", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function() {
|
|
81
|
+
return list_operation_exports;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
@@ -32,11 +32,11 @@ const description = [{
|
|
|
32
32
|
description: "The unique identifier of the workflow run"
|
|
33
33
|
}];
|
|
34
34
|
async function execute(index) {
|
|
35
|
-
var
|
|
35
|
+
var _ref;
|
|
36
36
|
const workflowId = this.getNodeParameter("workflowId", index);
|
|
37
37
|
const runId = this.getNodeParameter("runId", index);
|
|
38
38
|
const response = await require_nodes_Resend_transport_index.apiRequest.call(this, "GET", `/workflows/${encodeURIComponent(workflowId)}/runs/${encodeURIComponent(runId)}/steps`);
|
|
39
|
-
const executionData = ((
|
|
39
|
+
const executionData = ((_ref = response.data) !== null && _ref !== void 0 ? _ref : []).map((item) => ({
|
|
40
40
|
json: item,
|
|
41
41
|
pairedItem: { item: index }
|
|
42
42
|
}));
|
|
@@ -20,10 +20,10 @@ const description = [{
|
|
|
20
20
|
description: "The unique identifier of the workflow to list runs for"
|
|
21
21
|
}];
|
|
22
22
|
async function execute(index) {
|
|
23
|
-
var
|
|
23
|
+
var _ref;
|
|
24
24
|
const workflowId = this.getNodeParameter("workflowId", index);
|
|
25
25
|
const response = await require_nodes_Resend_transport_index.apiRequest.call(this, "GET", `/workflows/${encodeURIComponent(workflowId)}/runs`);
|
|
26
|
-
const executionData = ((
|
|
26
|
+
const executionData = ((_ref = response.data) !== null && _ref !== void 0 ? _ref : []).map((item) => ({
|
|
27
27
|
json: item,
|
|
28
28
|
pairedItem: { item: index }
|
|
29
29
|
}));
|
|
@@ -3,6 +3,7 @@ import { ILoadOptionsFunctions, INodeListSearchResult, INodePropertyOptions } fr
|
|
|
3
3
|
declare function getTemplateVariables(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
4
4
|
declare function getTemplates(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
5
5
|
declare function getSegments(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
6
|
+
declare function getSuppressions(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
6
7
|
declare function getTopics(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
7
8
|
declare function getBroadcasts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
8
9
|
declare function getContacts(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
|
|
@@ -18,9 +19,10 @@ declare const getDomainsListSearch: (this: ILoadOptionsFunctions, filter?: strin
|
|
|
18
19
|
declare const getEmailsListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
19
20
|
declare const getReceivedEmailsListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
20
21
|
declare const getSegmentsListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
22
|
+
declare const getSuppressionsListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
21
23
|
declare const getTemplatesListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
22
24
|
declare const getTopicsListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
23
25
|
declare const getWebhooksListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
24
26
|
declare const getTemplateVariablesListSearch: (this: ILoadOptionsFunctions, filter?: string) => Promise<INodeListSearchResult>;
|
|
25
27
|
//#endregion
|
|
26
|
-
export { getBroadcasts, getBroadcastsListSearch, getContactProperties, getContactPropertiesListSearch, getContacts, getContactsListSearch, getDomains, getDomainsListSearch, getEmails, getEmailsListSearch, getReceivedEmails, getReceivedEmailsListSearch, getSegments, getSegmentsListSearch, getTemplateVariables, getTemplateVariablesListSearch, getTemplates, getTemplatesListSearch, getTopics, getTopicsListSearch, getWebhooks, getWebhooksListSearch };
|
|
28
|
+
export { getBroadcasts, getBroadcastsListSearch, getContactProperties, getContactPropertiesListSearch, getContacts, getContactsListSearch, getDomains, getDomainsListSearch, getEmails, getEmailsListSearch, getReceivedEmails, getReceivedEmailsListSearch, getSegments, getSegmentsListSearch, getSuppressions, getSuppressionsListSearch, getTemplateVariables, getTemplateVariablesListSearch, getTemplates, getTemplatesListSearch, getTopics, getTopicsListSearch, getWebhooks, getWebhooksListSearch };
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_nodes_Resend_transport_index = require("../transport/index.js");
|
|
3
3
|
//#region nodes/Resend/methods/index.ts
|
|
4
|
-
/**
|
|
5
|
-
* Load options for dropdown fields (max 100 items).
|
|
6
|
-
* Used by getTemplates, getSegments, getTopics.
|
|
7
|
-
*/
|
|
8
4
|
async function loadDropdownOptions(loadOptionsFunctions, endpoint) {
|
|
9
5
|
var _response$data;
|
|
10
6
|
let response;
|
|
11
7
|
try {
|
|
12
|
-
response = await loadOptionsFunctions.helpers.httpRequestWithAuthentication.call(loadOptionsFunctions,
|
|
8
|
+
response = await loadOptionsFunctions.helpers.httpRequestWithAuthentication.call(loadOptionsFunctions, require_nodes_Resend_transport_index.getCredentialType(loadOptionsFunctions), {
|
|
13
9
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}${endpoint}`,
|
|
14
10
|
method: "GET",
|
|
15
11
|
qs: { limit: 100 },
|
|
@@ -50,7 +46,7 @@ async function getTemplateVariables() {
|
|
|
50
46
|
if (normalizedTemplateId.startsWith("={{") || normalizedTemplateId.includes("{{")) return [];
|
|
51
47
|
let response;
|
|
52
48
|
try {
|
|
53
|
-
response = await this.helpers.httpRequestWithAuthentication.call(this,
|
|
49
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
54
50
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/templates/${encodeURIComponent(normalizedTemplateId)}`,
|
|
55
51
|
method: "GET",
|
|
56
52
|
json: true
|
|
@@ -72,20 +68,35 @@ async function getTemplates() {
|
|
|
72
68
|
async function getSegments() {
|
|
73
69
|
return loadDropdownOptions(this, "/segments");
|
|
74
70
|
}
|
|
71
|
+
async function getSuppressions() {
|
|
72
|
+
var _response$data2;
|
|
73
|
+
let response;
|
|
74
|
+
try {
|
|
75
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
76
|
+
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/suppressions`,
|
|
77
|
+
method: "GET",
|
|
78
|
+
qs: { limit: 100 },
|
|
79
|
+
json: true
|
|
80
|
+
});
|
|
81
|
+
} catch (error) {
|
|
82
|
+
require_nodes_Resend_transport_index.handleResendApiError(this.getNode(), error);
|
|
83
|
+
}
|
|
84
|
+
return ((_response$data2 = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data2 !== void 0 ? _response$data2 : []).filter((item) => item === null || item === void 0 ? void 0 : item.id).map((item) => ({
|
|
85
|
+
name: item.email ? `${item.email} (${item.id})` : item.id,
|
|
86
|
+
value: item.id
|
|
87
|
+
}));
|
|
88
|
+
}
|
|
75
89
|
async function getTopics() {
|
|
76
90
|
return loadDropdownOptions(this, "/topics");
|
|
77
91
|
}
|
|
78
92
|
async function getBroadcasts() {
|
|
79
93
|
return loadDropdownOptions(this, "/broadcasts");
|
|
80
94
|
}
|
|
81
|
-
/**
|
|
82
|
-
* Contacts are now fetched directly from /contacts endpoint.
|
|
83
|
-
*/
|
|
84
95
|
async function getContacts() {
|
|
85
|
-
var _response$
|
|
96
|
+
var _response$data3;
|
|
86
97
|
let response;
|
|
87
98
|
try {
|
|
88
|
-
response = await this.helpers.httpRequestWithAuthentication.call(this,
|
|
99
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
89
100
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/contacts`,
|
|
90
101
|
method: "GET",
|
|
91
102
|
qs: { limit: 100 },
|
|
@@ -94,7 +105,7 @@ async function getContacts() {
|
|
|
94
105
|
} catch (error) {
|
|
95
106
|
require_nodes_Resend_transport_index.handleResendApiError(this.getNode(), error);
|
|
96
107
|
}
|
|
97
|
-
return ((_response$
|
|
108
|
+
return ((_response$data3 = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data3 !== void 0 ? _response$data3 : []).filter((item) => item === null || item === void 0 ? void 0 : item.id).map((item) => {
|
|
98
109
|
const displayParts = [];
|
|
99
110
|
if (item.first_name || item.last_name) displayParts.push([item.first_name, item.last_name].filter(Boolean).join(" "));
|
|
100
111
|
if (item.email) displayParts.push(item.email);
|
|
@@ -107,14 +118,11 @@ async function getContacts() {
|
|
|
107
118
|
async function getDomains() {
|
|
108
119
|
return loadDropdownOptions(this, "/domains");
|
|
109
120
|
}
|
|
110
|
-
/**
|
|
111
|
-
* Load webhooks with endpoint URL in display name.
|
|
112
|
-
*/
|
|
113
121
|
async function getWebhooks() {
|
|
114
|
-
var _response$
|
|
122
|
+
var _response$data4;
|
|
115
123
|
let response;
|
|
116
124
|
try {
|
|
117
|
-
response = await this.helpers.httpRequestWithAuthentication.call(this,
|
|
125
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
118
126
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/webhooks`,
|
|
119
127
|
method: "GET",
|
|
120
128
|
qs: { limit: 100 },
|
|
@@ -123,7 +131,7 @@ async function getWebhooks() {
|
|
|
123
131
|
} catch (error) {
|
|
124
132
|
require_nodes_Resend_transport_index.handleResendApiError(this.getNode(), error);
|
|
125
133
|
}
|
|
126
|
-
return ((_response$
|
|
134
|
+
return ((_response$data4 = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data4 !== void 0 ? _response$data4 : []).filter((item) => item === null || item === void 0 ? void 0 : item.id).map((item) => {
|
|
127
135
|
let displayName = item.id;
|
|
128
136
|
if (item.endpoint) displayName = `${item.endpoint.length > 50 ? `${item.endpoint.substring(0, 47)}...` : item.endpoint}${item.status ? ` [${item.status}]` : ""} (${item.id})`;
|
|
129
137
|
return {
|
|
@@ -135,14 +143,11 @@ async function getWebhooks() {
|
|
|
135
143
|
async function getContactProperties() {
|
|
136
144
|
return loadDropdownOptions(this, "/contact-properties");
|
|
137
145
|
}
|
|
138
|
-
/**
|
|
139
|
-
* Load sent emails with subject and date in display name.
|
|
140
|
-
*/
|
|
141
146
|
async function getEmails() {
|
|
142
|
-
var _response$
|
|
147
|
+
var _response$data5;
|
|
143
148
|
let response;
|
|
144
149
|
try {
|
|
145
|
-
response = await this.helpers.httpRequestWithAuthentication.call(this,
|
|
150
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
146
151
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/emails`,
|
|
147
152
|
method: "GET",
|
|
148
153
|
qs: { limit: 100 },
|
|
@@ -151,7 +156,7 @@ async function getEmails() {
|
|
|
151
156
|
} catch (error) {
|
|
152
157
|
require_nodes_Resend_transport_index.handleResendApiError(this.getNode(), error);
|
|
153
158
|
}
|
|
154
|
-
return ((_response$
|
|
159
|
+
return ((_response$data5 = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data5 !== void 0 ? _response$data5 : []).filter((item) => item === null || item === void 0 ? void 0 : item.id).map((item) => {
|
|
155
160
|
const parts = [];
|
|
156
161
|
if (item.subject) parts.push(item.subject.length > 50 ? `${item.subject.substring(0, 47)}...` : item.subject);
|
|
157
162
|
if (item.created_at) {
|
|
@@ -167,14 +172,11 @@ async function getEmails() {
|
|
|
167
172
|
};
|
|
168
173
|
});
|
|
169
174
|
}
|
|
170
|
-
/**
|
|
171
|
-
* Load received emails with subject and date in display name.
|
|
172
|
-
*/
|
|
173
175
|
async function getReceivedEmails() {
|
|
174
|
-
var _response$
|
|
176
|
+
var _response$data6;
|
|
175
177
|
let response;
|
|
176
178
|
try {
|
|
177
|
-
response = await this.helpers.httpRequestWithAuthentication.call(this,
|
|
179
|
+
response = await this.helpers.httpRequestWithAuthentication.call(this, require_nodes_Resend_transport_index.getCredentialType(this), {
|
|
178
180
|
url: `${require_nodes_Resend_transport_index.RESEND_API_BASE}/emails/receiving`,
|
|
179
181
|
method: "GET",
|
|
180
182
|
qs: { limit: 100 },
|
|
@@ -183,7 +185,7 @@ async function getReceivedEmails() {
|
|
|
183
185
|
} catch (error) {
|
|
184
186
|
require_nodes_Resend_transport_index.handleResendApiError(this.getNode(), error);
|
|
185
187
|
}
|
|
186
|
-
return ((_response$
|
|
188
|
+
return ((_response$data6 = response === null || response === void 0 ? void 0 : response.data) !== null && _response$data6 !== void 0 ? _response$data6 : []).filter((item) => item === null || item === void 0 ? void 0 : item.id).map((item) => {
|
|
187
189
|
const parts = [];
|
|
188
190
|
if (item.subject) parts.push(item.subject.length > 50 ? `${item.subject.substring(0, 47)}...` : item.subject);
|
|
189
191
|
if (item.created_at) {
|
|
@@ -199,9 +201,6 @@ async function getReceivedEmails() {
|
|
|
199
201
|
};
|
|
200
202
|
});
|
|
201
203
|
}
|
|
202
|
-
/**
|
|
203
|
-
* Generic wrapper to convert loadOptions methods to listSearch format
|
|
204
|
-
*/
|
|
205
204
|
async function wrapForListSearch(loadOptionsFunctions, loadOptionsMethod, filter) {
|
|
206
205
|
const options = await loadOptionsMethod.call(loadOptionsFunctions);
|
|
207
206
|
let filteredOptions = options;
|
|
@@ -226,6 +225,7 @@ const getDomainsListSearch = createListSearch(getDomains);
|
|
|
226
225
|
const getEmailsListSearch = createListSearch(getEmails);
|
|
227
226
|
const getReceivedEmailsListSearch = createListSearch(getReceivedEmails);
|
|
228
227
|
const getSegmentsListSearch = createListSearch(getSegments);
|
|
228
|
+
const getSuppressionsListSearch = createListSearch(getSuppressions);
|
|
229
229
|
const getTemplatesListSearch = createListSearch(getTemplates);
|
|
230
230
|
const getTopicsListSearch = createListSearch(getTopics);
|
|
231
231
|
const getWebhooksListSearch = createListSearch(getWebhooks);
|
|
@@ -245,6 +245,8 @@ exports.getReceivedEmails = getReceivedEmails;
|
|
|
245
245
|
exports.getReceivedEmailsListSearch = getReceivedEmailsListSearch;
|
|
246
246
|
exports.getSegments = getSegments;
|
|
247
247
|
exports.getSegmentsListSearch = getSegmentsListSearch;
|
|
248
|
+
exports.getSuppressions = getSuppressions;
|
|
249
|
+
exports.getSuppressionsListSearch = getSuppressionsListSearch;
|
|
248
250
|
exports.getTemplateVariables = getTemplateVariables;
|
|
249
251
|
exports.getTemplateVariablesListSearch = getTemplateVariablesListSearch;
|
|
250
252
|
exports.getTemplates = getTemplates;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { IDataObject, IExecuteFunctions, IHttpRequestMethods, INode, INodeExecutionData } from "n8n-workflow";
|
|
1
|
+
import { IDataObject, IExecuteFunctions, IHttpRequestMethods, ILoadOptionsFunctions, INode, INodeExecutionData } from "n8n-workflow";
|
|
2
2
|
//#region nodes/Resend/transport/index.d.ts
|
|
3
3
|
declare function handleResendApiError(node: INode, error: unknown, itemIndex?: number): never;
|
|
4
4
|
declare const RESEND_API_BASE = "https://api.resend.com";
|
|
5
|
+
declare function getCredentialType(context: IExecuteFunctions | ILoadOptionsFunctions): string;
|
|
5
6
|
declare function apiRequest(this: IExecuteFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject | IDataObject[], qs?: IDataObject): Promise<IDataObject>;
|
|
6
7
|
declare function requestList(this: IExecuteFunctions, endpoint: string, extraQs?: IDataObject): Promise<IDataObject[]>;
|
|
7
8
|
declare function normalizeEmailList(value: string | string[] | undefined): string[];
|
|
@@ -31,4 +32,4 @@ interface ListOperation {
|
|
|
31
32
|
}
|
|
32
33
|
declare function createOperationRouter(itemOps: Record<string, ItemOperation>, listOps?: Record<string, ListOperation>): (this: IExecuteFunctions, index: number, operation: string) => Promise<INodeExecutionData[]>;
|
|
33
34
|
//#endregion
|
|
34
|
-
export { RESEND_API_BASE, apiRequest, assertHttpsEndpoint, buildTemplateSendVariables, createListExecutionData, createOperationRouter, handleResendApiError, normalizeEmailList, parseTemplateVariables, requestList };
|
|
35
|
+
export { RESEND_API_BASE, apiRequest, assertHttpsEndpoint, buildTemplateSendVariables, createListExecutionData, createOperationRouter, getCredentialType, handleResendApiError, normalizeEmailList, parseTemplateVariables, requestList };
|