@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.
- package/LICENSE +21 -0
- package/README.md +65 -50
- package/dist/credentials/PublerApi.credentials.d.ts +0 -1
- package/dist/credentials/PublerApi.credentials.js +0 -8
- package/dist/credentials/PublerApi.credentials.js.map +1 -1
- package/dist/nodes/PublerAccounts/PublerAccounts.node.d.ts +5 -0
- package/dist/nodes/PublerAccounts/PublerAccounts.node.js +121 -0
- package/dist/nodes/PublerAccounts/PublerAccounts.node.js.map +1 -0
- package/dist/nodes/PublerAccounts/PublerAccounts.spec.js +9 -0
- package/dist/nodes/PublerAccounts/PublerAccounts.spec.js.map +1 -0
- package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.d.ts +5 -0
- package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js +219 -0
- package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.node.js.map +1 -0
- package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js +9 -0
- package/dist/nodes/PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.js.map +1 -0
- package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.d.ts +5 -0
- package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.js +131 -0
- package/dist/nodes/PublerCompetitorList/PublerCompetitorList.node.js.map +1 -0
- package/dist/nodes/PublerCompetitorList/PublerCompetitorList.spec.js +9 -0
- package/dist/nodes/PublerCompetitorList/PublerCompetitorList.spec.js.map +1 -0
- package/dist/nodes/PublerJobStatus/PublerJobStatus.node.d.ts +5 -0
- package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js +131 -0
- package/dist/nodes/PublerJobStatus/PublerJobStatus.node.js.map +1 -0
- package/dist/nodes/PublerJobStatus/PublerJobStatus.spec.js +9 -0
- package/dist/nodes/PublerJobStatus/PublerJobStatus.spec.js.map +1 -0
- package/dist/nodes/PublerMe/PublerMe.node.js +30 -51
- package/dist/nodes/PublerMe/PublerMe.node.js.map +1 -1
- package/dist/nodes/PublerMe/PublerMe.spec.js +3 -2
- package/dist/nodes/PublerMe/PublerMe.spec.js.map +1 -1
- package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.d.ts +5 -0
- package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js +194 -0
- package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.node.js.map +1 -0
- package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js +9 -0
- package/dist/nodes/PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.js.map +1 -0
- package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.d.ts +5 -0
- package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js +259 -0
- package/dist/nodes/PublerPostSchedule/PublerPostSchedule.node.js.map +1 -0
- package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js +9 -0
- package/dist/nodes/PublerPostSchedule/PublerPostSchedule.spec.js.map +1 -0
- package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.d.ts +5 -0
- package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js +176 -0
- package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.node.js.map +1 -0
- package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js +9 -0
- package/dist/nodes/PublerPostScheduleText/PublerPostScheduleText.spec.js.map +1 -0
- package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.d.ts +5 -0
- package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js +99 -0
- package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.node.js.map +1 -0
- package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js +9 -0
- package/dist/nodes/PublerWorkspaceList/PublerWorkspaceList.spec.js.map +1 -0
- package/dist/package.json +38 -55
- package/package.json +38 -55
- package/dist/nodes/PublerAnalytics/PublerAnalytics.node.d.ts +0 -4
- package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js +0 -75
- package/dist/nodes/PublerAnalytics/PublerAnalytics.node.js.map +0 -1
- package/dist/nodes/PublerAnalytics/PublerAnalytics.spec.js +0 -8
- package/dist/nodes/PublerAnalytics/PublerAnalytics.spec.js.map +0 -1
- package/dist/nodes/PublerAnalytics/logo.svg +0 -44
- package/dist/nodes/PublerAnalytics/openapi.json +0 -777
- package/dist/nodes/PublerBasic/PublerBasic.node.d.ts +0 -4
- package/dist/nodes/PublerBasic/PublerBasic.node.js +0 -75
- package/dist/nodes/PublerBasic/PublerBasic.node.js.map +0 -1
- package/dist/nodes/PublerBasic/PublerBasic.spec.js +0 -8
- package/dist/nodes/PublerBasic/PublerBasic.spec.js.map +0 -1
- package/dist/nodes/PublerBasic/logo.svg +0 -44
- package/dist/nodes/PublerBasic/openapi.json +0 -507
- package/dist/nodes/PublerCompetitors/PublerCompetitors.node.d.ts +0 -4
- package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js +0 -75
- package/dist/nodes/PublerCompetitors/PublerCompetitors.node.js.map +0 -1
- package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js +0 -8
- package/dist/nodes/PublerCompetitors/PublerCompetitors.spec.js.map +0 -1
- package/dist/nodes/PublerCompetitors/logo.svg +0 -44
- package/dist/nodes/PublerCompetitors/openapi.json +0 -264
- package/dist/nodes/PublerLocations/PublerLocations.node.d.ts +0 -4
- package/dist/nodes/PublerLocations/PublerLocations.node.js +0 -75
- package/dist/nodes/PublerLocations/PublerLocations.node.js.map +0 -1
- package/dist/nodes/PublerLocations/PublerLocations.spec.js +0 -8
- package/dist/nodes/PublerLocations/PublerLocations.spec.js.map +0 -1
- package/dist/nodes/PublerLocations/logo.svg +0 -44
- package/dist/nodes/PublerLocations/openapi.json +0 -205
- package/dist/nodes/PublerMe/logo.svg +0 -44
- package/dist/nodes/PublerMedia/PublerMedia.node.d.ts +0 -4
- package/dist/nodes/PublerMedia/PublerMedia.node.js +0 -75
- package/dist/nodes/PublerMedia/PublerMedia.node.js.map +0 -1
- package/dist/nodes/PublerMedia/PublerMedia.spec.js +0 -8
- package/dist/nodes/PublerMedia/PublerMedia.spec.js.map +0 -1
- package/dist/nodes/PublerMedia/logo.svg +0 -44
- package/dist/nodes/PublerMedia/openapi.json +0 -346
- package/dist/nodes/PublerPosts/PublerPosts.node.d.ts +0 -4
- package/dist/nodes/PublerPosts/PublerPosts.node.js +0 -75
- package/dist/nodes/PublerPosts/PublerPosts.node.js.map +0 -1
- package/dist/nodes/PublerPosts/PublerPosts.spec.js +0 -8
- package/dist/nodes/PublerPosts/PublerPosts.spec.js.map +0 -1
- package/dist/nodes/PublerPosts/logo.svg +0 -44
- package/dist/nodes/PublerPosts/openapi.json +0 -536
- package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.d.ts +0 -4
- package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js +0 -75
- package/dist/nodes/PublerPostsPublish/PublerPostsPublish.node.js.map +0 -1
- package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js +0 -8
- package/dist/nodes/PublerPostsPublish/PublerPostsPublish.spec.js.map +0 -1
- package/dist/nodes/PublerPostsPublish/logo.svg +0 -44
- package/dist/nodes/PublerPostsPublish/openapi.json +0 -229
- package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.d.ts +0 -4
- package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js +0 -75
- package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.node.js.map +0 -1
- package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js +0 -8
- package/dist/nodes/PublerPostsSchedule/PublerPostsSchedule.spec.js.map +0 -1
- package/dist/nodes/PublerPostsSchedule/logo.svg +0 -44
- package/dist/nodes/PublerPostsSchedule/openapi.json +0 -235
- /package/dist/nodes/{PublerAnalytics/PublerAnalytics.spec.d.ts → PublerAccounts/PublerAccounts.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerBasic/PublerBasic.spec.d.ts → PublerCompetitorAnalysis/PublerCompetitorAnalysis.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerCompetitors/PublerCompetitors.spec.d.ts → PublerCompetitorList/PublerCompetitorList.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerLocations/PublerLocations.spec.d.ts → PublerJobStatus/PublerJobStatus.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerMedia/PublerMedia.spec.d.ts → PublerMediaImportFromUrl/PublerMediaImportFromUrl.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerPosts/PublerPosts.spec.d.ts → PublerPostSchedule/PublerPostSchedule.spec.d.ts} +0 -0
- /package/dist/nodes/{PublerPostsPublish/PublerPostsPublish.spec.d.ts → PublerPostScheduleText/PublerPostScheduleText.spec.d.ts} +0 -0
- /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
|
-
|
|
4
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
8
|
+
Quick Links
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
##
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
64
|
+
### Start n8n
|
|
65
|
+
|
|
43
66
|
```bash
|
|
67
|
+
n8n --version
|
|
44
68
|
n8n start
|
|
45
69
|
```
|
|
46
70
|
|
|
47
|
-
|
|
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
|
-
|
|
73
|
+
### Build and link the project
|
|
51
74
|
|
|
52
75
|
```bash
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
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
|
-
|
|
65
|
-
|
|
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)
|
|
@@ -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;
|
|
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
|
+
}
|