n8n-nodes-feedjolt 0.1.0

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.
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeedjoltTrigger = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ class FeedjoltTrigger {
6
+ constructor() {
7
+ this.description = {
8
+ displayName: 'Feedjolt Trigger',
9
+ name: 'feedjoltTrigger',
10
+ icon: { light: 'file:../../icons/feedjolt.svg', dark: 'file:../../icons/feedjolt.dark.svg' },
11
+ group: ['trigger'],
12
+ version: 1,
13
+ description: 'Starts the workflow when new Feedjolt posts appear',
14
+ subtitle: '={{$parameter["workspaceSlug"]}}',
15
+ defaults: {
16
+ name: 'Feedjolt Trigger',
17
+ },
18
+ polling: true,
19
+ inputs: [],
20
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
21
+ credentials: [
22
+ {
23
+ name: 'feedjoltApi',
24
+ required: true,
25
+ },
26
+ ],
27
+ properties: [
28
+ {
29
+ displayName: 'Workspace Slug',
30
+ name: 'workspaceSlug',
31
+ type: 'string',
32
+ required: true,
33
+ default: '',
34
+ placeholder: 'luodaint',
35
+ description: 'Must match the workspace the API key belongs to',
36
+ },
37
+ {
38
+ displayName: 'Board ID',
39
+ name: 'boardId',
40
+ type: 'string',
41
+ default: '',
42
+ description: 'Optional board UUID filter',
43
+ },
44
+ ],
45
+ };
46
+ }
47
+ async poll() {
48
+ var _a;
49
+ const workspaceSlug = this.getNodeParameter('workspaceSlug');
50
+ const boardId = this.getNodeParameter('boardId', '') || undefined;
51
+ const qs = {
52
+ page_size: 20,
53
+ sort_by: 'newest',
54
+ };
55
+ if (boardId) {
56
+ qs.board_id = boardId;
57
+ }
58
+ let response;
59
+ try {
60
+ response = (await this.helpers.httpRequestWithAuthentication.call(this, 'feedjoltApi', {
61
+ method: 'GET',
62
+ baseURL: 'https://api.feedjolt.com/api/v1',
63
+ url: `/workspaces/${encodeURIComponent(workspaceSlug)}/posts`,
64
+ qs,
65
+ json: true,
66
+ }));
67
+ }
68
+ catch (error) {
69
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
70
+ }
71
+ const items = Array.isArray(response)
72
+ ? response
73
+ : Array.isArray(response.items)
74
+ ? response.items
75
+ : Array.isArray(response.results)
76
+ ? response.results
77
+ : Array.isArray(response.data)
78
+ ? response.data
79
+ : [];
80
+ const staticData = this.getWorkflowStaticData('node');
81
+ const lastSeen = new Set((_a = staticData.lastSeenIds) !== null && _a !== void 0 ? _a : []);
82
+ const isFirst = staticData.lastSeenIds === undefined;
83
+ const currentIds = items
84
+ .map((p) => { var _a; return String((_a = p.id) !== null && _a !== void 0 ? _a : ''); })
85
+ .filter(Boolean);
86
+ if (isFirst) {
87
+ staticData.lastSeenIds = currentIds;
88
+ return null;
89
+ }
90
+ const fresh = items.filter((p) => {
91
+ var _a;
92
+ const id = String((_a = p.id) !== null && _a !== void 0 ? _a : '');
93
+ return id && !lastSeen.has(id);
94
+ });
95
+ staticData.lastSeenIds = [...new Set([...currentIds, ...lastSeen])].slice(0, 200);
96
+ if (!fresh.length) {
97
+ return null;
98
+ }
99
+ return [this.helpers.returnJsonArray(fresh)];
100
+ }
101
+ }
102
+ exports.FeedjoltTrigger = FeedjoltTrigger;
103
+ //# sourceMappingURL=FeedjoltTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedjoltTrigger.node.js","sourceRoot":"","sources":["../../../nodes/FeedjoltTrigger/FeedjoltTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ {
2
+ "node": "n8n-nodes-feedjolt.feedjoltTrigger",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Productivity"],
6
+ "resources": {
7
+ "credentialDocumentation": [{ "url": "https://www.feedjolt.com/en/docs/developers" }],
8
+ "primaryDocumentation": [{ "url": "https://www.feedjolt.com/en/docs/developers" }]
9
+ }
10
+ }
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "n8n-nodes-feedjolt",
3
+ "version": "0.1.0",
4
+ "description": "n8n community node for Feedjolt \u2014 customer feedback boards, posts, roadmap, and changelog",
5
+ "license": "MIT",
6
+ "homepage": "https://www.feedjolt.com",
7
+ "keywords": [
8
+ "n8n-community-node-package",
9
+ "feedjolt",
10
+ "feedback",
11
+ "roadmap",
12
+ "product"
13
+ ],
14
+ "author": {
15
+ "name": "Luodaint",
16
+ "email": "larsnow@gmail.com"
17
+ },
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/luodaint/n8n-nodes-feedjolt.git"
21
+ },
22
+ "scripts": {
23
+ "build": "n8n-node build",
24
+ "build:watch": "tsc --watch",
25
+ "dev": "n8n-node dev",
26
+ "lint": "n8n-node lint",
27
+ "lint:fix": "n8n-node lint --fix",
28
+ "release": "n8n-node release",
29
+ "prepublishOnly": "n8n-node prerelease"
30
+ },
31
+ "files": [
32
+ "dist"
33
+ ],
34
+ "n8n": {
35
+ "n8nNodesApiVersion": 1,
36
+ "strict": true,
37
+ "credentials": [
38
+ "dist/credentials/FeedjoltApi.credentials.js"
39
+ ],
40
+ "nodes": [
41
+ "dist/nodes/Feedjolt/Feedjolt.node.js",
42
+ "dist/nodes/FeedjoltTrigger/FeedjoltTrigger.node.js"
43
+ ]
44
+ },
45
+ "devDependencies": {
46
+ "@n8n/node-cli": "*",
47
+ "eslint": "9.29.0",
48
+ "n8n-workflow": "^2.16.0",
49
+ "prettier": "3.8.3",
50
+ "release-it": "20.2.0",
51
+ "typescript": "5.9.3"
52
+ },
53
+ "peerDependencies": {
54
+ "n8n-workflow": "*"
55
+ },
56
+ "publishConfig": {
57
+ "access": "public"
58
+ }
59
+ }