@adaptive-ds/n8n-nodes-publer 1.1.10 → 1.1.12

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 (123) hide show
  1. package/dist/credentials/PublerApi.credentials.d.ts +0 -1
  2. package/dist/credentials/PublerApi.credentials.js +0 -8
  3. package/dist/credentials/PublerApi.credentials.js.map +1 -1
  4. package/dist/nodes/PublerAccounts/PublerAccounts.node.d.ts +5 -0
  5. package/dist/nodes/PublerAccounts/PublerAccounts.node.js +121 -0
  6. package/dist/nodes/PublerAccounts/PublerAccounts.node.js.map +1 -0
  7. package/dist/nodes/PublerAccounts/PublerAccounts.spec.js +8 -0
  8. package/dist/nodes/PublerAccounts/PublerAccounts.spec.js.map +1 -0
  9. package/dist/nodes/PublerAccounts/logo.svg +17 -0
  10. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.d.ts +5 -0
  11. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js +219 -0
  12. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js.map +1 -0
  13. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js +8 -0
  14. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js.map +1 -0
  15. package/dist/nodes/PublerCompetitorAnalysis/logo.svg +17 -0
  16. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.d.ts +5 -0
  17. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.js +131 -0
  18. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.js.map +1 -0
  19. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.spec.js +8 -0
  20. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.spec.js.map +1 -0
  21. package/dist/nodes/PublerCompetitorList/logo.svg +17 -0
  22. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.d.ts +5 -0
  23. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js +131 -0
  24. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js.map +1 -0
  25. package/dist/nodes/PublerJobStatus/PublerJobStatus.spec.js +8 -0
  26. package/dist/nodes/{PublerAnalytics/PublerAnalytics.spec.js.map → PublerJobStatus/PublerJobStatus.spec.js.map} +1 -1
  27. package/dist/nodes/PublerJobStatus/logo.svg +17 -0
  28. package/dist/nodes/PublerMe/PublerMe.node.d.ts +5 -0
  29. package/dist/nodes/PublerMe/PublerMe.node.js +99 -0
  30. package/dist/nodes/PublerMe/PublerMe.node.js.map +1 -0
  31. package/dist/nodes/PublerMe/PublerMe.spec.js +8 -0
  32. package/dist/nodes/PublerMe/PublerMe.spec.js.map +1 -0
  33. package/dist/nodes/PublerMe/logo.svg +17 -0
  34. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.d.ts +5 -0
  35. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js +194 -0
  36. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js.map +1 -0
  37. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js +8 -0
  38. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js.map +1 -0
  39. package/dist/nodes/PublerMediaImportFromUrl/logo.svg +17 -0
  40. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.d.ts +5 -0
  41. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js +259 -0
  42. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js.map +1 -0
  43. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js +8 -0
  44. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js.map +1 -0
  45. package/dist/nodes/PublerPostSchedule/logo.svg +17 -0
  46. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.d.ts +5 -0
  47. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js +176 -0
  48. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js.map +1 -0
  49. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js +8 -0
  50. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js.map +1 -0
  51. package/dist/nodes/PublerPostScheduleText/logo.svg +17 -0
  52. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.d.ts +5 -0
  53. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js +99 -0
  54. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js.map +1 -0
  55. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.d.ts +1 -0
  56. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js +8 -0
  57. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js.map +1 -0
  58. package/dist/nodes/PublerWorkspaceList/logo.svg +17 -0
  59. package/dist/package.json +10 -9
  60. package/package.json +10 -9
  61. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.d.ts +0 -4
  62. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js +0 -75
  63. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js.map +0 -1
  64. package/dist/nodes/PublerAnalytics/PublerAnalytics.spec.js +0 -8
  65. package/dist/nodes/PublerAnalytics/logo.svg +0 -44
  66. package/dist/nodes/PublerAnalytics/openapi.json +0 -777
  67. package/dist/nodes/PublerBasic/PublerBasic.node.d.ts +0 -4
  68. package/dist/nodes/PublerBasic/PublerBasic.node.js +0 -75
  69. package/dist/nodes/PublerBasic/PublerBasic.node.js.map +0 -1
  70. package/dist/nodes/PublerBasic/PublerBasic.spec.js +0 -8
  71. package/dist/nodes/PublerBasic/PublerBasic.spec.js.map +0 -1
  72. package/dist/nodes/PublerBasic/logo.svg +0 -44
  73. package/dist/nodes/PublerBasic/openapi.json +0 -507
  74. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.d.ts +0 -4
  75. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js +0 -75
  76. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js.map +0 -1
  77. package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js +0 -8
  78. package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js.map +0 -1
  79. package/dist/nodes/PublerCompetitors/logo.svg +0 -44
  80. package/dist/nodes/PublerCompetitors/openapi.json +0 -264
  81. package/dist/nodes/PublerLocations/PublerLocations.node.d.ts +0 -4
  82. package/dist/nodes/PublerLocations/PublerLocations.node.js +0 -75
  83. package/dist/nodes/PublerLocations/PublerLocations.node.js.map +0 -1
  84. package/dist/nodes/PublerLocations/PublerLocations.spec.js +0 -8
  85. package/dist/nodes/PublerLocations/PublerLocations.spec.js.map +0 -1
  86. package/dist/nodes/PublerLocations/logo.svg +0 -44
  87. package/dist/nodes/PublerLocations/openapi.json +0 -205
  88. package/dist/nodes/PublerMedia/PublerMedia.node.d.ts +0 -4
  89. package/dist/nodes/PublerMedia/PublerMedia.node.js +0 -75
  90. package/dist/nodes/PublerMedia/PublerMedia.node.js.map +0 -1
  91. package/dist/nodes/PublerMedia/PublerMedia.spec.js +0 -8
  92. package/dist/nodes/PublerMedia/PublerMedia.spec.js.map +0 -1
  93. package/dist/nodes/PublerMedia/logo.svg +0 -44
  94. package/dist/nodes/PublerMedia/openapi.json +0 -346
  95. package/dist/nodes/PublerPosts/PublerPosts.node.d.ts +0 -4
  96. package/dist/nodes/PublerPosts/PublerPosts.node.js +0 -75
  97. package/dist/nodes/PublerPosts/PublerPosts.node.js.map +0 -1
  98. package/dist/nodes/PublerPosts/PublerPosts.spec.js +0 -8
  99. package/dist/nodes/PublerPosts/PublerPosts.spec.js.map +0 -1
  100. package/dist/nodes/PublerPosts/logo.svg +0 -44
  101. package/dist/nodes/PublerPosts/openapi.json +0 -536
  102. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.d.ts +0 -4
  103. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js +0 -75
  104. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js.map +0 -1
  105. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js +0 -8
  106. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js.map +0 -1
  107. package/dist/nodes/PublerPostsPublish/logo.svg +0 -44
  108. package/dist/nodes/PublerPostsPublish/openapi.json +0 -229
  109. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.d.ts +0 -4
  110. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js +0 -75
  111. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js.map +0 -1
  112. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js +0 -8
  113. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js.map +0 -1
  114. package/dist/nodes/PublerPostsSchedule/logo.svg +0 -44
  115. package/dist/nodes/PublerPostsSchedule/openapi.json +0 -235
  116. /package/dist/nodes/{PublerAnalytics/PublerAnalytics.spec.d.ts → PublerAccounts/PublerAccounts.spec.d.ts} +0 -0
  117. /package/dist/nodes/{PublerBasic/PublerBasic.spec.d.ts → PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.d.ts} +0 -0
  118. /package/dist/nodes/{PublerCompetitors/PublerCompetitors.spec.d.ts → PublerCompetitorList/PublerCompetitorList.spec.d.ts} +0 -0
  119. /package/dist/nodes/{PublerLocations/PublerLocations.spec.d.ts → PublerJobStatus/PublerJobStatus.spec.d.ts} +0 -0
  120. /package/dist/nodes/{PublerMedia/PublerMedia.spec.d.ts → PublerMe/PublerMe.spec.d.ts} +0 -0
  121. /package/dist/nodes/{PublerPosts/PublerPosts.spec.d.ts → PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.d.ts} +0 -0
  122. /package/dist/nodes/{PublerPostsPublish/PublerPostsPublish.spec.d.ts → PublerPostSchedule/PublerPostSchedule.spec.d.ts} +0 -0
  123. /package/dist/nodes/{PublerPostsSchedule/PublerPostsSchedule.spec.d.ts → PublerPostScheduleText/PublerPostScheduleText.spec.d.ts} +0 -0
@@ -9,7 +9,6 @@ export declare class PublerApi implements ICredentialType {
9
9
  properties: {
10
10
  headers: {
11
11
  Authorization: string;
12
- "Publer-Workspace-Id": string;
13
12
  };
14
13
  };
15
14
  };
@@ -17,20 +17,12 @@ class PublerApi {
17
17
  default: "",
18
18
  description: "Your Publer API token",
19
19
  },
20
- {
21
- displayName: "Workspace ID",
22
- name: "workspaceId",
23
- type: "string",
24
- default: "",
25
- description: "Optional: Required for some API endpoints. Found in Publer URL or settings.",
26
- },
27
20
  ];
28
21
  this.authenticate = {
29
22
  type: "generic",
30
23
  properties: {
31
24
  headers: {
32
25
  Authorization: "=Bearer-API {{$credentials.apiToken}}",
33
- "Publer-Workspace-Id": "={{$credentials.workspaceId}}",
34
26
  },
35
27
  },
36
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"PublerApi.credentials.js","sourceRoot":"","sources":["../../credentials/PublerApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IAAtB;QACE,SAAI,GAAG,WAAW,CAAA;QAClB,gBAAW,GAAG,YAAY,CAAA;QAC1B,qBAAgB,GAAG,yBAAyB,CAAA;QAC5C,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,uBAAuB;aACrC;YACD;gBACE,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,6EAA6E;aAC3F;SACF,CAAA;QACD,iBAAY,GAAG;YACb,IAAI,EAAE,SAAkB;YACxB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,uCAAuC;oBACtD,qBAAqB,EAAE,+BAA+B;iBACvD;aACF;SACF,CAAA;IACH,CAAC;CAAA;AAhCD,8BAgCC"}
1
+ {"version":3,"file":"PublerApi.credentials.js","sourceRoot":"","sources":["../../credentials/PublerApi.credentials.ts"],"names":[],"mappings":";;;AAEA,MAAa,SAAS;IAAtB;QACE,SAAI,GAAG,WAAW,CAAA;QAClB,gBAAW,GAAG,YAAY,CAAA;QAC1B,qBAAgB,GAAG,yBAAyB,CAAA;QAC5C,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,uBAAuB;aACrC;SACF,CAAA;QACD,iBAAY,GAAG;YACb,IAAI,EAAE,SAAkB;YACxB,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,uCAAuC;iBACvD;aACF;SACF,CAAA;IACH,CAAC;CAAA;AAxBD,8BAwBC"}
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class PublerAccounts implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublerAccounts = void 0;
4
+ class PublerAccounts {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: "Publer Accounts",
8
+ name: "publerAccounts",
9
+ icon: "file:logo.svg",
10
+ group: ["input"],
11
+ version: 1,
12
+ description: "List social media accounts connected to your Publer workspace",
13
+ defaults: {
14
+ name: "Publer Accounts",
15
+ },
16
+ inputs: ["main"],
17
+ outputs: ["main"],
18
+ credentials: [
19
+ {
20
+ name: "publerApi",
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: "Workspace ID",
27
+ name: "workspaceId",
28
+ type: "string",
29
+ default: "",
30
+ required: true,
31
+ description: "The workspace ID to list accounts from",
32
+ placeholder: "e.g. 12345",
33
+ },
34
+ ],
35
+ };
36
+ }
37
+ async execute() {
38
+ const items = this.getInputData();
39
+ const returnData = [];
40
+ const credentials = await this.getCredentials("publerApi");
41
+ const apiToken = credentials.apiToken;
42
+ if (!apiToken) {
43
+ this.logger.error("API Token is missing", {
44
+ credentialName: "publerApi",
45
+ });
46
+ throw new Error("API Token is required");
47
+ }
48
+ this.logger.debug("Credentials retrieved", {
49
+ hasApiToken: !!apiToken,
50
+ itemCount: items.length,
51
+ });
52
+ const workspaceId = this.getNodeParameter("workspaceId", 0);
53
+ if (!workspaceId) {
54
+ this.logger.error("Workspace ID is missing", {
55
+ nodeName: this.getNode().name,
56
+ });
57
+ throw new Error("Workspace ID is required for this operation");
58
+ }
59
+ this.logger.debug("Node parameters retrieved", {
60
+ hasWorkspaceId: !!workspaceId,
61
+ });
62
+ this.logger.info("Starting execution", { itemCount: items.length });
63
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
64
+ try {
65
+ const endpoint = "https://app.publer.com/api/v1/accounts";
66
+ this.logger.info("Making API request", {
67
+ itemIndex,
68
+ endpoint,
69
+ method: "GET",
70
+ workspaceId: workspaceId,
71
+ });
72
+ const response = await this.helpers.requestWithAuthentication.call(this, "publerApi", {
73
+ method: "GET",
74
+ url: endpoint,
75
+ headers: {
76
+ Authorization: `Bearer-API ${apiToken}`,
77
+ Accept: "application/json",
78
+ "Publer-Workspace-Id": workspaceId,
79
+ },
80
+ json: true,
81
+ });
82
+ this.logger.info("API request successful", {
83
+ itemIndex,
84
+ endpoint,
85
+ responseType: typeof response,
86
+ });
87
+ this.logger.debug("Response data", {
88
+ itemIndex,
89
+ responseKeys: response ? Object.keys(response) : [],
90
+ });
91
+ returnData.push({
92
+ json: response,
93
+ pairedItem: { item: itemIndex },
94
+ });
95
+ }
96
+ catch (error) {
97
+ this.logger.error("API request failed", {
98
+ itemIndex,
99
+ error: error.message,
100
+ stack: error.stack,
101
+ });
102
+ if (this.continueOnFail()) {
103
+ this.logger.warn("Continuing on fail", { itemIndex });
104
+ returnData.push({
105
+ json: { error: error.message },
106
+ pairedItem: { item: itemIndex },
107
+ });
108
+ }
109
+ else {
110
+ throw error;
111
+ }
112
+ }
113
+ }
114
+ this.logger.info("Execution completed", {
115
+ processedItems: returnData.length,
116
+ });
117
+ return [returnData];
118
+ }
119
+ }
120
+ exports.PublerAccounts = PublerAccounts;
121
+ //# sourceMappingURL=PublerAccounts.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerAccounts.node.js","sourceRoot":"","sources":["../../../nodes/PublerAccounts/PublerAccounts.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PublerAccounts_node_1 = require("./PublerAccounts.node");
4
+ test("PublerAccounts", () => {
5
+ const node = new PublerAccounts_node_1.PublerAccounts();
6
+ expect(node.description.properties).toBeDefined();
7
+ });
8
+ //# sourceMappingURL=PublerAccounts.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerAccounts.spec.js","sourceRoot":"","sources":["../../../nodes/PublerAccounts/PublerAccounts.spec.ts"],"names":[],"mappings":";;AAAA,+DAAsD;AAEtD,IAAI,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC1B,MAAM,IAAI,GAAG,IAAI,oCAAc,EAAE,CAAA;IACjC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ <svg fill="none" version="1.1" viewBox="0 0 38.23 37" xmlns="http://www.w3.org/2000/svg">
2
+ <path transform="translate(.002533 -.5)" d="m31 34.4 7.1-28.8a4.3 4.3 0 00-.4-3.1 4 4 0 00-2.4-1.9l-1-.1h-30.5a3.7 3.7 0 00-2.7 1.2 4 4 0 00-1.1 2.9l.1 1 7 28.8a4 4 0 001.4 2.2c.7.6 1.5.9 2.4.9h16.4c.9 0 1.7-.3 2.4-.9.7-.5 1.1-1.3 1.4-2.2z" fill="url(#publer_logo_letter)"/>
3
+ <path transform="translate(.002533 -.5)" d="m30.6 5.5h-23a2 2 0 00-1.5.7 2.3 2.3 0 00-.6 2.1l5.5 22.5c.1.5.4 1 .8 1.2.3.3.8.5 1.3.5h2.5a2 2 0 001.5-.7 2.3 2.3 0 00.6-1.6v-.5l-1-4.6-2.4-1.6h13c.5 0 1-.2 1.3-.5.4-.3.7-.7.8-1.2l3.3-13.5a2.4 2.4 0 00-.3-1.7 2.2 2.2 0 00-1.3-1 2 2 0 00-.5 0z" fill="#fff"/>
4
+ <path transform="translate(.002533 -.5)" d="m11.3 12 2.4 1.9.5 2.1c0 .3.2.5.4.7s.5.3.7.3h8.7c.2 0 .5 0 .7-.3.2-.1.4-.4.5-.7l.6-4z" fill="url(#publer_logo_text)"/>
5
+ <defs>
6
+ <linearGradient id="publer_logo_letter" x1="-11.6" x2="37" y1="52.6" y2="-1.9" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#00C2FF" offset=".5"/>
8
+ <stop stop-color="#00E2CE" offset=".8"/>
9
+ <stop stop-color="#00FAA8" offset="1"/>
10
+ </linearGradient>
11
+ <linearGradient id="publer_logo_text" x1="-141.9" x2="-26.2" y1="-38.3" y2="348.4" gradientUnits="userSpaceOnUse">
12
+ <stop stop-color="#00C2FF" offset=".5"/>
13
+ <stop stop-color="#00E2CE" offset=".8"/>
14
+ <stop stop-color="#00FAA8" offset="1"/>
15
+ </linearGradient>
16
+ </defs>
17
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class PublerCompetitorAnalysis implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,219 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublerCompetitorAnalysis = void 0;
4
+ class PublerCompetitorAnalysis {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: "Publer Competitor Analysis",
8
+ name: "publerCompetitorAnalysis",
9
+ icon: "file:logo.svg",
10
+ group: ["input"],
11
+ version: 1,
12
+ description: "Get analytics data for competitor accounts",
13
+ defaults: {
14
+ name: "Publer Competitor Analysis",
15
+ },
16
+ inputs: ["main"],
17
+ outputs: ["main"],
18
+ credentials: [
19
+ {
20
+ name: "publerApi",
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: "Account ID",
27
+ name: "accountId",
28
+ type: "string",
29
+ default: "",
30
+ required: true,
31
+ description: "The social media account ID to analyze competitors for",
32
+ placeholder: "647a0edddb2797b89044e2c1",
33
+ },
34
+ {
35
+ displayName: "Competitor ID",
36
+ name: "competitorId",
37
+ type: "string",
38
+ default: "",
39
+ description: "Optional: Filter by specific competitor account ID",
40
+ },
41
+ {
42
+ displayName: "Search Query",
43
+ name: "query",
44
+ type: "string",
45
+ default: "",
46
+ description: "Optional: Search filter for competitor account names",
47
+ },
48
+ {
49
+ displayName: "From Date",
50
+ name: "from",
51
+ type: "string",
52
+ default: "",
53
+ description: "Optional: Start date for analytics data (YYYY-MM-DD)",
54
+ placeholder: "2024-01-01",
55
+ },
56
+ {
57
+ displayName: "To Date",
58
+ name: "to",
59
+ type: "string",
60
+ default: "",
61
+ description: "Optional: End date for analytics data (YYYY-MM-DD)",
62
+ placeholder: "2024-12-31",
63
+ },
64
+ {
65
+ displayName: "Page",
66
+ name: "page",
67
+ type: "number",
68
+ default: 0,
69
+ description: "Page number for pagination (default: 0)",
70
+ },
71
+ {
72
+ displayName: "Sort By",
73
+ name: "sortBy",
74
+ type: "options",
75
+ default: "followers",
76
+ description: "Field to sort results by",
77
+ options: [
78
+ { name: "Followers", value: "followers" },
79
+ { name: "Reach", value: "reach" },
80
+ { name: "Engagement", value: "engagement" },
81
+ { name: "Posts Count", value: "posts_count" },
82
+ { name: "Videos Count", value: "videos_count" },
83
+ { name: "Photos Count", value: "photos_count" },
84
+ { name: "Links Count", value: "links_count" },
85
+ { name: "Statuses Count", value: "statuses_count" },
86
+ ],
87
+ },
88
+ {
89
+ displayName: "Sort Direction",
90
+ name: "sortType",
91
+ type: "options",
92
+ default: "asc",
93
+ description: "Sort direction",
94
+ options: [
95
+ { name: "Ascending", value: "asc" },
96
+ { name: "Descending", value: "desc" },
97
+ ],
98
+ },
99
+ {
100
+ displayName: "Workspace ID",
101
+ name: "workspaceId",
102
+ type: "string",
103
+ default: "",
104
+ required: true,
105
+ description: "The workspace ID that contains the account",
106
+ },
107
+ ],
108
+ };
109
+ }
110
+ async execute() {
111
+ const items = this.getInputData();
112
+ const returnData = [];
113
+ const credentials = await this.getCredentials("publerApi");
114
+ const apiToken = credentials.apiToken;
115
+ if (!apiToken) {
116
+ this.logger.error("API Token is missing", {
117
+ credentialName: "publerApi",
118
+ });
119
+ throw new Error("API Token is required");
120
+ }
121
+ this.logger.debug("Credentials retrieved", {
122
+ hasApiToken: !!apiToken,
123
+ itemCount: items.length,
124
+ });
125
+ const workspaceId = this.getNodeParameter("workspaceId", 0);
126
+ if (!workspaceId) {
127
+ this.logger.error("Workspace ID is missing", {
128
+ nodeName: this.getNode().name,
129
+ });
130
+ throw new Error("Workspace ID is required for this operation");
131
+ }
132
+ this.logger.debug("Node parameters retrieved", {
133
+ hasWorkspaceId: !!workspaceId,
134
+ });
135
+ this.logger.info("Starting execution", { itemCount: items.length });
136
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
137
+ try {
138
+ const accountId = this.getNodeParameter("accountId", itemIndex);
139
+ const competitorId = this.getNodeParameter("competitorId", itemIndex, "");
140
+ const query = this.getNodeParameter("query", itemIndex, "");
141
+ const fromDate = this.getNodeParameter("from", itemIndex, "");
142
+ const toDate = this.getNodeParameter("to", itemIndex, "");
143
+ const page = this.getNodeParameter("page", itemIndex, 0);
144
+ const sortBy = this.getNodeParameter("sortBy", itemIndex, "followers");
145
+ const sortType = this.getNodeParameter("sortType", itemIndex, "asc");
146
+ const endpoint = `https://app.publer.com/api/v1/competitors/${accountId}/analytics`;
147
+ const qs = {};
148
+ if (competitorId)
149
+ qs.competitor_id = competitorId;
150
+ if (query)
151
+ qs.query = query;
152
+ if (fromDate)
153
+ qs.from = fromDate;
154
+ if (toDate)
155
+ qs.to = toDate;
156
+ qs.page = page;
157
+ if (sortBy)
158
+ qs.sort_by = sortBy;
159
+ if (sortType)
160
+ qs.sort_type = sortType;
161
+ this.logger.info("Making API request", {
162
+ itemIndex,
163
+ endpoint,
164
+ method: "GET",
165
+ accountId,
166
+ workspaceId: workspaceId,
167
+ queryParams: qs,
168
+ });
169
+ const response = await this.helpers.requestWithAuthentication.call(this, "publerApi", {
170
+ method: "GET",
171
+ url: endpoint,
172
+ headers: {
173
+ Authorization: `Bearer-API ${apiToken}`,
174
+ Accept: "application/json",
175
+ "Publer-Workspace-Id": workspaceId,
176
+ },
177
+ qs,
178
+ json: true,
179
+ });
180
+ this.logger.info("API request successful", {
181
+ itemIndex,
182
+ endpoint,
183
+ responseType: typeof response,
184
+ });
185
+ this.logger.debug("Response data", {
186
+ itemIndex,
187
+ responseKeys: response ? Object.keys(response) : [],
188
+ });
189
+ returnData.push({
190
+ json: response,
191
+ pairedItem: { item: itemIndex },
192
+ });
193
+ }
194
+ catch (error) {
195
+ this.logger.error("API request failed", {
196
+ itemIndex,
197
+ error: error.message,
198
+ stack: error.stack,
199
+ });
200
+ if (this.continueOnFail()) {
201
+ this.logger.warn("Continuing on fail", { itemIndex });
202
+ returnData.push({
203
+ json: { error: error.message },
204
+ pairedItem: { item: itemIndex },
205
+ });
206
+ }
207
+ else {
208
+ throw error;
209
+ }
210
+ }
211
+ }
212
+ this.logger.info("Execution completed", {
213
+ processedItems: returnData.length,
214
+ });
215
+ return [returnData];
216
+ }
217
+ }
218
+ exports.PublerCompetitorAnalysis = PublerCompetitorAnalysis;
219
+ //# sourceMappingURL=PublerCompetitorAnalysis.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerCompetitorAnalysis.node.js","sourceRoot":"","sources":["../../../nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PublerCompetitorAnalysis_node_1 = require("./PublerCompetitorAnalysis.node");
4
+ test("PublerCompetitorAnalysis", () => {
5
+ const node = new PublerCompetitorAnalysis_node_1.PublerCompetitorAnalysis();
6
+ expect(node.description.properties).toBeDefined();
7
+ });
8
+ //# sourceMappingURL=PublerCompetitorAnalysis.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerCompetitorAnalysis.spec.js","sourceRoot":"","sources":["../../../nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.ts"],"names":[],"mappings":";;AAAA,mFAA0E;AAE1E,IAAI,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACpC,MAAM,IAAI,GAAG,IAAI,wDAAwB,EAAE,CAAA;IAC3C,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAC,CAAA"}
@@ -0,0 +1,17 @@
1
+ <svg fill="none" version="1.1" viewBox="0 0 38.23 37" xmlns="http://www.w3.org/2000/svg">
2
+ <path transform="translate(.002533 -.5)" d="m31 34.4 7.1-28.8a4.3 4.3 0 00-.4-3.1 4 4 0 00-2.4-1.9l-1-.1h-30.5a3.7 3.7 0 00-2.7 1.2 4 4 0 00-1.1 2.9l.1 1 7 28.8a4 4 0 001.4 2.2c.7.6 1.5.9 2.4.9h16.4c.9 0 1.7-.3 2.4-.9.7-.5 1.1-1.3 1.4-2.2z" fill="url(#publer_logo_letter)"/>
3
+ <path transform="translate(.002533 -.5)" d="m30.6 5.5h-23a2 2 0 00-1.5.7 2.3 2.3 0 00-.6 2.1l5.5 22.5c.1.5.4 1 .8 1.2.3.3.8.5 1.3.5h2.5a2 2 0 001.5-.7 2.3 2.3 0 00.6-1.6v-.5l-1-4.6-2.4-1.6h13c.5 0 1-.2 1.3-.5.4-.3.7-.7.8-1.2l3.3-13.5a2.4 2.4 0 00-.3-1.7 2.2 2.2 0 00-1.3-1 2 2 0 00-.5 0z" fill="#fff"/>
4
+ <path transform="translate(.002533 -.5)" d="m11.3 12 2.4 1.9.5 2.1c0 .3.2.5.4.7s.5.3.7.3h8.7c.2 0 .5 0 .7-.3.2-.1.4-.4.5-.7l.6-4z" fill="url(#publer_logo_text)"/>
5
+ <defs>
6
+ <linearGradient id="publer_logo_letter" x1="-11.6" x2="37" y1="52.6" y2="-1.9" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#00C2FF" offset=".5"/>
8
+ <stop stop-color="#00E2CE" offset=".8"/>
9
+ <stop stop-color="#00FAA8" offset="1"/>
10
+ </linearGradient>
11
+ <linearGradient id="publer_logo_text" x1="-141.9" x2="-26.2" y1="-38.3" y2="348.4" gradientUnits="userSpaceOnUse">
12
+ <stop stop-color="#00C2FF" offset=".5"/>
13
+ <stop stop-color="#00E2CE" offset=".8"/>
14
+ <stop stop-color="#00FAA8" offset="1"/>
15
+ </linearGradient>
16
+ </defs>
17
+ </svg>
@@ -0,0 +1,5 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from "n8n-workflow";
2
+ export declare class PublerCompetitorList implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PublerCompetitorList = void 0;
4
+ class PublerCompetitorList {
5
+ constructor() {
6
+ this.description = {
7
+ displayName: "Publer Competitor List",
8
+ name: "publerCompetitorList",
9
+ icon: "file:logo.svg",
10
+ group: ["input"],
11
+ version: 1,
12
+ description: "List competitor accounts for a social media account",
13
+ defaults: {
14
+ name: "Publer Competitor List",
15
+ },
16
+ inputs: ["main"],
17
+ outputs: ["main"],
18
+ credentials: [
19
+ {
20
+ name: "publerApi",
21
+ required: true,
22
+ },
23
+ ],
24
+ properties: [
25
+ {
26
+ displayName: "Account ID",
27
+ name: "accountId",
28
+ type: "string",
29
+ default: "",
30
+ required: true,
31
+ description: "The social media account ID to list competitors for",
32
+ placeholder: "647a0edddb2797b89044e2c1",
33
+ },
34
+ {
35
+ displayName: "Workspace ID",
36
+ name: "workspaceId",
37
+ type: "string",
38
+ default: "",
39
+ required: true,
40
+ description: "The workspace ID that contains the account",
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ async execute() {
46
+ const items = this.getInputData();
47
+ const returnData = [];
48
+ const credentials = await this.getCredentials("publerApi");
49
+ const apiToken = credentials.apiToken;
50
+ if (!apiToken) {
51
+ this.logger.error("API Token is missing", {
52
+ credentialName: "publerApi",
53
+ });
54
+ throw new Error("API Token is required");
55
+ }
56
+ this.logger.debug("Credentials retrieved", {
57
+ hasApiToken: !!apiToken,
58
+ itemCount: items.length,
59
+ });
60
+ const workspaceId = this.getNodeParameter("workspaceId", 0);
61
+ if (!workspaceId) {
62
+ this.logger.error("Workspace ID is missing", {
63
+ nodeName: this.getNode().name,
64
+ });
65
+ throw new Error("Workspace ID is required for this operation");
66
+ }
67
+ this.logger.debug("Node parameters retrieved", {
68
+ hasWorkspaceId: !!workspaceId,
69
+ });
70
+ this.logger.info("Starting execution", { itemCount: items.length });
71
+ for (let itemIndex = 0; itemIndex < items.length; itemIndex++) {
72
+ try {
73
+ const accountId = this.getNodeParameter("accountId", itemIndex);
74
+ const endpoint = `https://app.publer.com/api/v1/competitors/${accountId}`;
75
+ this.logger.info("Making API request", {
76
+ itemIndex,
77
+ endpoint,
78
+ method: "GET",
79
+ accountId,
80
+ workspaceId: workspaceId,
81
+ });
82
+ const response = await this.helpers.requestWithAuthentication.call(this, "publerApi", {
83
+ method: "GET",
84
+ url: endpoint,
85
+ headers: {
86
+ Authorization: `Bearer-API ${apiToken}`,
87
+ Accept: "application/json",
88
+ "Publer-Workspace-Id": workspaceId,
89
+ },
90
+ json: true,
91
+ });
92
+ this.logger.info("API request successful", {
93
+ itemIndex,
94
+ endpoint,
95
+ responseType: typeof response,
96
+ });
97
+ this.logger.debug("Response data", {
98
+ itemIndex,
99
+ responseKeys: response ? Object.keys(response) : [],
100
+ });
101
+ returnData.push({
102
+ json: response,
103
+ pairedItem: { item: itemIndex },
104
+ });
105
+ }
106
+ catch (error) {
107
+ this.logger.error("API request failed", {
108
+ itemIndex,
109
+ error: error.message,
110
+ stack: error.stack,
111
+ });
112
+ if (this.continueOnFail()) {
113
+ this.logger.warn("Continuing on fail", { itemIndex });
114
+ returnData.push({
115
+ json: { error: error.message },
116
+ pairedItem: { item: itemIndex },
117
+ });
118
+ }
119
+ else {
120
+ throw error;
121
+ }
122
+ }
123
+ }
124
+ this.logger.info("Execution completed", {
125
+ processedItems: returnData.length,
126
+ });
127
+ return [returnData];
128
+ }
129
+ }
130
+ exports.PublerCompetitorList = PublerCompetitorList;
131
+ //# sourceMappingURL=PublerCompetitorList.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerCompetitorList.node.js","sourceRoot":"","sources":["../../../nodes/PublerCompetitorList/PublerCompetitorList.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const PublerCompetitorList_node_1 = require("./PublerCompetitorList.node");
4
+ test("PublerCompetitorList", () => {
5
+ const node = new PublerCompetitorList_node_1.PublerCompetitorList();
6
+ expect(node.description.properties).toBeDefined();
7
+ });
8
+ //# sourceMappingURL=PublerCompetitorList.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PublerCompetitorList.spec.js","sourceRoot":"","sources":["../../../nodes/PublerCompetitorList/PublerCompetitorList.spec.ts"],"names":[],"mappings":";;AAAA,2EAAkE;AAElE,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,IAAI,GAAG,IAAI,gDAAoB,EAAE,CAAA;IACvC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAC,CAAA"}