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.
Files changed (46) hide show
  1. package/README.md +1 -0
  2. package/dist/credentials/ResendApi.credentials.d.ts +2 -2
  3. package/dist/credentials/ResendOAuth2Api.credentials.d.ts +2 -2
  4. package/dist/credentials/ResendWebhookSigningSecretApi.credentials.d.ts +1 -1
  5. package/dist/nodes/Resend/Resend.node.d.ts +5 -3
  6. package/dist/nodes/Resend/Resend.node.js +14 -5
  7. package/dist/nodes/Resend/ResendTrigger.node.d.ts +13 -1
  8. package/dist/nodes/Resend/ResendTrigger.node.js +111 -6
  9. package/dist/nodes/Resend/actions/account/index.js +1 -1
  10. package/dist/nodes/Resend/actions/domain/listTrackingDomains.operation.js +2 -2
  11. package/dist/nodes/Resend/actions/email/send.operation.js +1 -1
  12. package/dist/nodes/Resend/actions/email/sendAndWait.operation.d.ts +1 -1
  13. package/dist/nodes/Resend/actions/email/sendAndWait.operation.js +1 -1
  14. package/dist/nodes/Resend/actions/email/sendBatch.operation.js +17 -4
  15. package/dist/nodes/Resend/actions/router.js +4 -1
  16. package/dist/nodes/Resend/actions/suppression/batchAdd.operation.d.ts +8 -0
  17. package/dist/nodes/Resend/actions/suppression/batchAdd.operation.js +41 -0
  18. package/dist/nodes/Resend/actions/suppression/batchRemove.operation.d.ts +8 -0
  19. package/dist/nodes/Resend/actions/suppression/batchRemove.operation.js +80 -0
  20. package/dist/nodes/Resend/actions/suppression/create.operation.d.ts +8 -0
  21. package/dist/nodes/Resend/actions/suppression/create.operation.js +37 -0
  22. package/dist/nodes/Resend/actions/suppression/delete.operation.d.ts +8 -0
  23. package/dist/nodes/Resend/actions/suppression/delete.operation.js +37 -0
  24. package/dist/nodes/Resend/actions/suppression/execute.d.ts +4 -0
  25. package/dist/nodes/Resend/actions/suppression/execute.js +18 -0
  26. package/dist/nodes/Resend/actions/suppression/get.operation.d.ts +8 -0
  27. package/dist/nodes/Resend/actions/suppression/get.operation.js +37 -0
  28. package/dist/nodes/Resend/actions/suppression/index.d.ts +13 -0
  29. package/dist/nodes/Resend/actions/suppression/index.js +122 -0
  30. package/dist/nodes/Resend/actions/suppression/list.operation.d.ts +8 -0
  31. package/dist/nodes/Resend/actions/suppression/list.operation.js +83 -0
  32. package/dist/nodes/Resend/actions/workflow/listRunSteps.operation.js +2 -2
  33. package/dist/nodes/Resend/actions/workflow/listRuns.operation.js +2 -2
  34. package/dist/nodes/Resend/methods/index.d.ts +3 -1
  35. package/dist/nodes/Resend/methods/index.js +35 -33
  36. package/dist/nodes/Resend/transport/index.d.ts +3 -2
  37. package/dist/nodes/Resend/transport/index.js +9 -3
  38. package/dist/nodes/Resend/utils/dynamicFields.d.ts +22 -20
  39. package/dist/nodes/Resend/utils/dynamicFields.js +2 -61
  40. package/dist/nodes/Resend/utils/sendAndWait/email-templates.d.ts +1 -3
  41. package/dist/nodes/Resend/utils/sendAndWait/email-templates.js +0 -10
  42. package/dist/nodes/Resend/utils/sendAndWait/index.d.ts +2 -2
  43. package/dist/nodes/Resend/utils/sendAndWait/index.js +0 -2
  44. package/dist/nodes/Resend/utils/sendAndWait/utils.d.ts +2 -2
  45. package/dist/nodes/Resend/utils/sendAndWait/utils.js +19 -15
  46. 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,4 @@
1
+ //#region nodes/Resend/actions/suppression/execute.d.ts
2
+ declare const execute: (this: import("n8n-workflow").IExecuteFunctions, index: number, operation: string) => Promise<import("n8n-workflow").INodeExecutionData[]>;
3
+ //#endregion
4
+ export { 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 _data;
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 = ((_data = response === null || response === void 0 ? void 0 : response.data) !== null && _data !== void 0 ? _data : []).map((item) => ({
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 _data;
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 = ((_data = response === null || response === void 0 ? void 0 : response.data) !== null && _data !== void 0 ? _data : []).map((item) => ({
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, "resendApi", {
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, "resendApi", {
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$data2;
96
+ var _response$data3;
86
97
  let response;
87
98
  try {
88
- response = await this.helpers.httpRequestWithAuthentication.call(this, "resendApi", {
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$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) => {
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$data3;
122
+ var _response$data4;
115
123
  let response;
116
124
  try {
117
- response = await this.helpers.httpRequestWithAuthentication.call(this, "resendApi", {
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$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) => {
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$data4;
147
+ var _response$data5;
143
148
  let response;
144
149
  try {
145
- response = await this.helpers.httpRequestWithAuthentication.call(this, "resendApi", {
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$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) => {
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$data5;
176
+ var _response$data6;
175
177
  let response;
176
178
  try {
177
- response = await this.helpers.httpRequestWithAuthentication.call(this, "resendApi", {
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$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) => {
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 };