@adaptive-ds/n8n-nodes-publer 1.1.11 → 1.1.13

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 (116) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +65 -50
  3. package/dist/credentials/PublerApi.credentials.d.ts +0 -1
  4. package/dist/credentials/PublerApi.credentials.js +0 -8
  5. package/dist/credentials/PublerApi.credentials.js.map +1 -1
  6. package/dist/nodes/PublerAccounts/PublerAccounts.node.d.ts +5 -0
  7. package/dist/nodes/PublerAccounts/PublerAccounts.node.js +121 -0
  8. package/dist/nodes/PublerAccounts/PublerAccounts.node.js.map +1 -0
  9. package/dist/nodes/PublerAccounts/PublerAccounts.spec.js +9 -0
  10. package/dist/nodes/PublerAccounts/PublerAccounts.spec.js.map +1 -0
  11. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.d.ts +5 -0
  12. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js +219 -0
  13. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js.map +1 -0
  14. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js +9 -0
  15. package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js.map +1 -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 +9 -0
  20. package/dist/nodes/PublerCompetitorList/PublerCompetitorList.spec.js.map +1 -0
  21. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.d.ts +5 -0
  22. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js +131 -0
  23. package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js.map +1 -0
  24. package/dist/nodes/PublerJobStatus/PublerJobStatus.spec.js +9 -0
  25. package/dist/nodes/PublerJobStatus/PublerJobStatus.spec.js.map +1 -0
  26. package/dist/nodes/PublerMe/PublerMe.node.js +30 -51
  27. package/dist/nodes/PublerMe/PublerMe.node.js.map +1 -1
  28. package/dist/nodes/PublerMe/PublerMe.spec.js +3 -2
  29. package/dist/nodes/PublerMe/PublerMe.spec.js.map +1 -1
  30. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.d.ts +5 -0
  31. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js +194 -0
  32. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js.map +1 -0
  33. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js +9 -0
  34. package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js.map +1 -0
  35. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.d.ts +5 -0
  36. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js +259 -0
  37. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js.map +1 -0
  38. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js +9 -0
  39. package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js.map +1 -0
  40. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.d.ts +5 -0
  41. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js +176 -0
  42. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js.map +1 -0
  43. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js +9 -0
  44. package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js.map +1 -0
  45. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.d.ts +5 -0
  46. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js +99 -0
  47. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js.map +1 -0
  48. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js +9 -0
  49. package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js.map +1 -0
  50. package/dist/package.json +38 -55
  51. package/package.json +38 -55
  52. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.d.ts +0 -4
  53. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js +0 -75
  54. package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js.map +0 -1
  55. package/dist/nodes/PublerAnalytics/PublerAnalytics.spec.js +0 -8
  56. package/dist/nodes/PublerAnalytics/PublerAnalytics.spec.js.map +0 -1
  57. package/dist/nodes/PublerAnalytics/logo.svg +0 -44
  58. package/dist/nodes/PublerAnalytics/openapi.json +0 -777
  59. package/dist/nodes/PublerBasic/PublerBasic.node.d.ts +0 -4
  60. package/dist/nodes/PublerBasic/PublerBasic.node.js +0 -75
  61. package/dist/nodes/PublerBasic/PublerBasic.node.js.map +0 -1
  62. package/dist/nodes/PublerBasic/PublerBasic.spec.js +0 -8
  63. package/dist/nodes/PublerBasic/PublerBasic.spec.js.map +0 -1
  64. package/dist/nodes/PublerBasic/logo.svg +0 -44
  65. package/dist/nodes/PublerBasic/openapi.json +0 -507
  66. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.d.ts +0 -4
  67. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js +0 -75
  68. package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js.map +0 -1
  69. package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js +0 -8
  70. package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js.map +0 -1
  71. package/dist/nodes/PublerCompetitors/logo.svg +0 -44
  72. package/dist/nodes/PublerCompetitors/openapi.json +0 -264
  73. package/dist/nodes/PublerLocations/PublerLocations.node.d.ts +0 -4
  74. package/dist/nodes/PublerLocations/PublerLocations.node.js +0 -75
  75. package/dist/nodes/PublerLocations/PublerLocations.node.js.map +0 -1
  76. package/dist/nodes/PublerLocations/PublerLocations.spec.js +0 -8
  77. package/dist/nodes/PublerLocations/PublerLocations.spec.js.map +0 -1
  78. package/dist/nodes/PublerLocations/logo.svg +0 -44
  79. package/dist/nodes/PublerLocations/openapi.json +0 -205
  80. package/dist/nodes/PublerMe/logo.svg +0 -44
  81. package/dist/nodes/PublerMedia/PublerMedia.node.d.ts +0 -4
  82. package/dist/nodes/PublerMedia/PublerMedia.node.js +0 -75
  83. package/dist/nodes/PublerMedia/PublerMedia.node.js.map +0 -1
  84. package/dist/nodes/PublerMedia/PublerMedia.spec.js +0 -8
  85. package/dist/nodes/PublerMedia/PublerMedia.spec.js.map +0 -1
  86. package/dist/nodes/PublerMedia/logo.svg +0 -44
  87. package/dist/nodes/PublerMedia/openapi.json +0 -346
  88. package/dist/nodes/PublerPosts/PublerPosts.node.d.ts +0 -4
  89. package/dist/nodes/PublerPosts/PublerPosts.node.js +0 -75
  90. package/dist/nodes/PublerPosts/PublerPosts.node.js.map +0 -1
  91. package/dist/nodes/PublerPosts/PublerPosts.spec.js +0 -8
  92. package/dist/nodes/PublerPosts/PublerPosts.spec.js.map +0 -1
  93. package/dist/nodes/PublerPosts/logo.svg +0 -44
  94. package/dist/nodes/PublerPosts/openapi.json +0 -536
  95. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.d.ts +0 -4
  96. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js +0 -75
  97. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js.map +0 -1
  98. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js +0 -8
  99. package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js.map +0 -1
  100. package/dist/nodes/PublerPostsPublish/logo.svg +0 -44
  101. package/dist/nodes/PublerPostsPublish/openapi.json +0 -229
  102. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.d.ts +0 -4
  103. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js +0 -75
  104. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js.map +0 -1
  105. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js +0 -8
  106. package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js.map +0 -1
  107. package/dist/nodes/PublerPostsSchedule/logo.svg +0 -44
  108. package/dist/nodes/PublerPostsSchedule/openapi.json +0 -235
  109. /package/dist/nodes/{PublerAnalytics/PublerAnalytics.spec.d.ts → PublerAccounts/PublerAccounts.spec.d.ts} +0 -0
  110. /package/dist/nodes/{PublerBasic/PublerBasic.spec.d.ts → PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.d.ts} +0 -0
  111. /package/dist/nodes/{PublerCompetitors/PublerCompetitors.spec.d.ts → PublerCompetitorList/PublerCompetitorList.spec.d.ts} +0 -0
  112. /package/dist/nodes/{PublerLocations/PublerLocations.spec.d.ts → PublerJobStatus/PublerJobStatus.spec.d.ts} +0 -0
  113. /package/dist/nodes/{PublerMedia/PublerMedia.spec.d.ts → PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.d.ts} +0 -0
  114. /package/dist/nodes/{PublerPosts/PublerPosts.spec.d.ts → PublerPostSchedule/PublerPostSchedule.spec.d.ts} +0 -0
  115. /package/dist/nodes/{PublerPostsPublish/PublerPostsPublish.spec.d.ts → PublerPostScheduleText/PublerPostScheduleText.spec.d.ts} +0 -0
  116. /package/dist/nodes/{PublerPostsSchedule/PublerPostsSchedule.spec.d.ts → PublerWorkspaceList/PublerWorkspaceList.spec.d.ts} +0 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 david1gruppenplan@gmail.com
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,81 +1,96 @@
1
1
  # @adaptive-ds/n8n-nodes-publer
2
2
 
3
- Quick links
4
- - Publer Docs - https://publer.com/docs
5
- - Publer Postman - https://www.postman.com/aerospace-architect-98610700/publer/collection/dolndsh/publer-api
3
+ Have a Publer account?
4
+ Build powerful automations directly in n8n - no API calls to manage, no authentication headaches, just drag-and-drop workflows with n8n.
6
5
 
7
- # Run Publer n8n node locally
8
- Before start modifying the project, we kindly recommend
9
- to run the Publer locally.
6
+ This custom n8n node wraps the Publer API, giving you native access to schedule posts, manage profiles, analyze performance, and more - all from within your n8n workflows.
10
7
 
11
- ## NodeJS
8
+ Quick Links
12
9
 
13
- ## Install n8n
14
- ```bash
15
- npm install n8n -g
16
- ```
10
+ - code - https://github.com/david1gp/n8n-nodes-publer
11
+ - bun - https://www.npmjs.com/package/@adaptive-ds/n8n-nodes-publer
12
+ - publer cocs - https://publer.com/docs
13
+ - publer postman - https://www.postman.com/aerospace-architect-98610700/publer/collection/dolndsh/publer-api
17
14
 
18
- ## Start n8n
19
- ```bash
20
- n8n --version
21
- n8n start
22
- ```
23
- Open [http://localhost:5678](http://localhost:5678) in your browser and configure it
15
+ ## Getting Started
16
+
17
+ ### 1. Create a Publer Account
18
+
19
+ Sign up at [publer.com](https://publer.com) if you don't already have one.
20
+
21
+ ### 2. Get Your API Key
22
+
23
+ - Log into your Publer account
24
+ - Go to **Settings** → **Integrations** → **API**
25
+ - Generate and copy your API key
26
+
27
+ ### 3. Install the Community Node
28
+
29
+ In n8n:
30
+
31
+ 1. Go to **Settings** → **Community Nodes**
32
+ 2. Click **Install**
33
+ 3. Enter: `@adaptive-ds/n8n-nodes-publer`
34
+
35
+ Or install locally:
24
36
 
25
- ## Build and link the project
26
37
  ```bash
27
- npm install
28
- npm run test
29
- npm run build
30
- npm link
38
+ bun install
39
+ bun run build
40
+ cd ~/.n8n
41
+ mkdir -p custom && cd custom
42
+ bun init
43
+ bun link @adaptive-ds/n8n-nodes-publer
31
44
  ```
32
45
 
33
- ## Add node to n8n
46
+ ### 4. Create Your First Workflow
47
+
48
+ 1. Open n8n and create a new workflow
49
+ 2. Search for **Publer** in the node list
50
+ 3. Add your API key credentials
51
+ 4. Start building!
52
+
53
+ ## Run Publer n8n node locally (Development)
54
+
55
+ Before start modifying the project, we kindly recommend
56
+ to run the Publer locally.
57
+
58
+ ### Install n8n
59
+
34
60
  ```bash
35
- cd ~/.n8n
36
- mkdir -p custom
37
- cd custom
38
- npm init # press Enter for all questions
39
- npm link @adaptive-ds/n8n-nodes-publer
61
+ bun install n8n -g
40
62
  ```
41
63
 
42
- ## Start n8n again
64
+ ### Start n8n
65
+
43
66
  ```bash
67
+ n8n --version
44
68
  n8n start
45
69
  ```
46
70
 
47
- ## Add Publer Node to new workflow
48
- Find `Publer` in the node list and add it to your workflow
71
+ Open [http://localhost:5678](http://localhost:5678) in your browser and configure it
49
72
 
50
- ## Test Project Locally
73
+ ### Build and link the project
51
74
 
52
75
  ```bash
53
- npm install
54
- npm run test
55
- npm run build
56
- npm link
76
+ bun install
77
+ bun run test
78
+ bun run build
79
+ bun link
57
80
  ```
58
81
 
59
- Add node to n8n:
82
+ ### Add node to n8n
83
+
60
84
  ```bash
61
85
  cd ~/.n8n
62
86
  mkdir -p custom
63
87
  cd custom
64
- npm init # press Enter for all questions
65
- npm link @adaptive-ds/n8n-nodes-publer
88
+ bun init # press Enter for all questions
89
+ bun link @adaptive-ds/n8n-nodes-publer
66
90
  ```
67
91
 
68
- Start n8n:
92
+ ### Start n8n again
93
+
69
94
  ```bash
70
95
  n8n start
71
96
  ```
72
-
73
- ## Publish project
74
- 1. Add your `NPM_TOKEN` in GitHub Actions
75
- 2. Push change
76
- 3. Create a new GitHub Release, `1.0.0` in your project
77
- 4. Install your node in n8n: `@{yourgithubname}/n8n-nodes-{yournode}`
78
-
79
- ## Acknowledgements
80
-
81
- - used template [**devlikeapro/n8n-openapi-node**](https://github.com/devlikeapro/n8n-openapi-node)
@@ -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 ? $credentials.workspaceId : undefined }}",
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,wEAAwE;iBAChG;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,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bun_test_1 = require("bun:test");
4
+ const PublerAccounts_node_1 = require("./PublerAccounts.node");
5
+ (0, bun_test_1.test)("PublerAccounts", () => {
6
+ const node = new PublerAccounts_node_1.PublerAccounts();
7
+ (0, bun_test_1.expect)(node.description.properties).toBeDefined();
8
+ });
9
+ //# 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,uCAAuC;AACvC,+DAAsD;AAEtD,IAAA,eAAI,EAAC,gBAAgB,EAAE,GAAG,EAAE;IAC1B,MAAM,IAAI,GAAG,IAAI,oCAAc,EAAE,CAAA;IACjC,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAC,CAAA"}
@@ -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,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const bun_test_1 = require("bun:test");
4
+ const PublerCompetitorAnalysis_node_1 = require("./PublerCompetitorAnalysis.node");
5
+ (0, bun_test_1.test)("PublerCompetitorAnalysis", () => {
6
+ const node = new PublerCompetitorAnalysis_node_1.PublerCompetitorAnalysis();
7
+ (0, bun_test_1.expect)(node.description.properties).toBeDefined();
8
+ });
9
+ //# 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,uCAAuC;AACvC,mFAA0E;AAE1E,IAAA,eAAI,EAAC,0BAA0B,EAAE,GAAG,EAAE;IACpC,MAAM,IAAI,GAAG,IAAI,wDAAwB,EAAE,CAAA;IAC3C,IAAA,iBAAM,EAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAA;AACnD,CAAC,CAAC,CAAA"}
@@ -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
+ }