n8n-nodes-pocketbase 2.0.0 → 2.2.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.
- package/README.md +19 -1
- package/dist/credentials/PocketbaseHttpApi.credentials.js +1 -1
- package/dist/credentials/PocketbaseHttpApi.credentials.js.map +1 -1
- package/dist/nodes/{PocketbaseHttp → Common}/GenericFunctions.d.ts +3 -2
- package/dist/nodes/Common/GenericFunctions.js +85 -0
- package/dist/nodes/Common/GenericFunctions.js.map +1 -0
- package/dist/nodes/{PocketbaseHttp → Common}/LoadOptions.d.ts +1 -1
- package/dist/nodes/{PocketbaseHttp → Common}/LoadOptions.js +47 -20
- package/dist/nodes/Common/LoadOptions.js.map +1 -0
- package/dist/nodes/{PocketbaseHttp → Common}/PocketbaseAuth.d.ts +3 -0
- package/dist/nodes/Common/PocketbaseAuth.js +122 -0
- package/dist/nodes/Common/PocketbaseAuth.js.map +1 -0
- package/dist/nodes/Common/RequestBodyFunctions.js +131 -0
- package/dist/nodes/Common/RequestBodyFunctions.js.map +1 -0
- package/dist/nodes/PocketbaseHttp/PocketbaseHttp.node.js +4 -3
- package/dist/nodes/PocketbaseHttp/PocketbaseHttp.node.js.map +1 -1
- package/dist/nodes/PocketbaseHttp/PocketbaseHttp.node.json +2 -2
- package/dist/nodes/PocketbaseTrigger/PocketbaseTrigger.node.d.ts +13 -0
- package/dist/nodes/PocketbaseTrigger/PocketbaseTrigger.node.js +239 -0
- package/dist/nodes/PocketbaseTrigger/PocketbaseTrigger.node.js.map +1 -0
- package/dist/nodes/PocketbaseTrigger/PocketbaseTrigger.node.json +18 -0
- package/dist/nodes/PocketbaseTrigger/pocketbaseTrigger.dark.svg +10 -0
- package/dist/nodes/PocketbaseTrigger/pocketbaseTrigger.svg +10 -0
- package/dist/package.json +11 -7
- package/dist/tests/GenericFunctions.spec.d.ts +1 -0
- package/dist/tests/GenericFunctions.spec.js +177 -0
- package/dist/tests/GenericFunctions.spec.js.map +1 -0
- package/dist/tests/PocketbaseAuth.spec.js +80 -50
- package/dist/tests/PocketbaseAuth.spec.js.map +1 -1
- package/dist/tests/PocketbaseAuthIntegration.spec.d.ts +1 -0
- package/dist/tests/PocketbaseAuthIntegration.spec.js +202 -0
- package/dist/tests/PocketbaseAuthIntegration.spec.js.map +1 -0
- package/dist/tests/PocketbaseTrigger.spec.d.ts +1 -0
- package/dist/tests/PocketbaseTrigger.spec.js +243 -0
- package/dist/tests/PocketbaseTrigger.spec.js.map +1 -0
- package/dist/tests/PocketbaseTriggerIntegration.spec.d.ts +1 -0
- package/dist/tests/PocketbaseTriggerIntegration.spec.js +125 -0
- package/dist/tests/PocketbaseTriggerIntegration.spec.js.map +1 -0
- package/dist/tests/RequestBodyFunctions.spec.d.ts +1 -0
- package/dist/tests/RequestBodyFunctions.spec.js +232 -0
- package/dist/tests/RequestBodyFunctions.spec.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -7
- package/dist/nodes/PocketbaseHttp/GenericFunctions.js +0 -42
- package/dist/nodes/PocketbaseHttp/GenericFunctions.js.map +0 -1
- package/dist/nodes/PocketbaseHttp/LoadOptions.js.map +0 -1
- package/dist/nodes/PocketbaseHttp/PocketbaseAuth.js +0 -50
- package/dist/nodes/PocketbaseHttp/PocketbaseAuth.js.map +0 -1
- package/dist/nodes/PocketbaseHttp/RequestBodyFunctions.js +0 -62
- package/dist/nodes/PocketbaseHttp/RequestBodyFunctions.js.map +0 -1
- /package/dist/nodes/{PocketbaseHttp → Common}/RequestBodyFunctions.d.ts +0 -0
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
"resources": {
|
|
7
7
|
"credentialDocumentation": [
|
|
8
8
|
{
|
|
9
|
-
"url": "https://github.com/
|
|
9
|
+
"url": "https://github.com/TheFehr/n8n-nodes-pocketbase#credentials"
|
|
10
10
|
}
|
|
11
11
|
],
|
|
12
12
|
"primaryDocumentation": [
|
|
13
13
|
{
|
|
14
|
-
"url": "https://github.com/
|
|
14
|
+
"url": "https://github.com/TheFehr/n8n-nodes-pocketbase"
|
|
15
15
|
}
|
|
16
16
|
]
|
|
17
17
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ITriggerFunctions, ITriggerResponse, INodeType, INodeTypeDescription } from "n8n-workflow";
|
|
2
|
+
export declare class PocketbaseTrigger implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
methods: {
|
|
5
|
+
loadOptions: {
|
|
6
|
+
getCollections(this: import("n8n-workflow").ILoadOptionsFunctions): Promise<import("n8n-workflow").INodePropertyOptions[]>;
|
|
7
|
+
getFields(this: import("n8n-workflow").ILoadOptionsFunctions): Promise<import("n8n-workflow").INodePropertyOptions[]>;
|
|
8
|
+
getRelations(this: import("n8n-workflow").ILoadOptionsFunctions): Promise<import("n8n-workflow").INodePropertyOptions[]>;
|
|
9
|
+
getRows(this: import("n8n-workflow").ILoadOptionsFunctions): Promise<import("n8n-workflow").INodePropertyOptions[]>;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
trigger(this: ITriggerFunctions): Promise<ITriggerResponse>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PocketbaseTrigger = void 0;
|
|
4
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
+
const eventsource_1 = require("eventsource");
|
|
6
|
+
const LoadOptions_1 = require("../Common/LoadOptions");
|
|
7
|
+
class PocketbaseTrigger {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.description = {
|
|
10
|
+
displayName: "Pocketbase (Beta) Trigger",
|
|
11
|
+
name: "pocketbaseTrigger",
|
|
12
|
+
icon: { light: "file:pocketbaseTrigger.svg", dark: "file:pocketbaseTrigger.dark.svg" },
|
|
13
|
+
group: ["trigger"],
|
|
14
|
+
version: 1,
|
|
15
|
+
description: "Handle Pocketbase events via SSE (Beta)",
|
|
16
|
+
defaults: {
|
|
17
|
+
name: "Pocketbase Trigger",
|
|
18
|
+
},
|
|
19
|
+
inputs: [],
|
|
20
|
+
outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
|
|
21
|
+
credentials: [
|
|
22
|
+
{
|
|
23
|
+
name: "pocketbaseHttpApi",
|
|
24
|
+
required: true,
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
properties: [
|
|
28
|
+
{
|
|
29
|
+
displayName: "Collection Name",
|
|
30
|
+
name: "collection",
|
|
31
|
+
type: "options",
|
|
32
|
+
typeOptions: {
|
|
33
|
+
loadOptionsMethod: "getCollections",
|
|
34
|
+
},
|
|
35
|
+
default: "",
|
|
36
|
+
required: true,
|
|
37
|
+
description: "The name of the collection to watch for changes",
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
displayName: "Events",
|
|
41
|
+
name: "events",
|
|
42
|
+
type: "multiOptions",
|
|
43
|
+
options: [
|
|
44
|
+
{
|
|
45
|
+
name: "Create",
|
|
46
|
+
value: "create",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "Update",
|
|
50
|
+
value: "update",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "Delete",
|
|
54
|
+
value: "delete",
|
|
55
|
+
},
|
|
56
|
+
],
|
|
57
|
+
default: ["create", "update", "delete"],
|
|
58
|
+
required: true,
|
|
59
|
+
description: "The events to trigger the node",
|
|
60
|
+
},
|
|
61
|
+
],
|
|
62
|
+
};
|
|
63
|
+
this.methods = {
|
|
64
|
+
loadOptions: LoadOptions_1.LoadOptions,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
async trigger() {
|
|
68
|
+
const credentials = await this.getCredentials("pocketbaseHttpApi");
|
|
69
|
+
const baseUrl = credentials.url.replace(/\/$/, "");
|
|
70
|
+
const collection = this.getNodeParameter("collection");
|
|
71
|
+
const events = this.getNodeParameter("events");
|
|
72
|
+
const { closeFunction } = subscribeToPocketbaseSSE.call(this, baseUrl, collection, events);
|
|
73
|
+
return {
|
|
74
|
+
closeFunction,
|
|
75
|
+
manualTriggerFunction: async () => {
|
|
76
|
+
const sampleData = {
|
|
77
|
+
__action: "create",
|
|
78
|
+
id: "sample-id",
|
|
79
|
+
collectionId: "sample-collection-id",
|
|
80
|
+
collectionName: collection,
|
|
81
|
+
created: new Date().toISOString(),
|
|
82
|
+
updated: new Date().toISOString(),
|
|
83
|
+
};
|
|
84
|
+
this.emit([this.helpers.returnJsonArray(sampleData)]);
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
exports.PocketbaseTrigger = PocketbaseTrigger;
|
|
90
|
+
function subscribeToPocketbaseSSE(baseUrl, collection, events) {
|
|
91
|
+
let es = null;
|
|
92
|
+
let isClosed = false;
|
|
93
|
+
let isReconnecting = false;
|
|
94
|
+
let reconnectTimeout = null;
|
|
95
|
+
let stabilityTimer = null;
|
|
96
|
+
let reconnectAttempts = 0;
|
|
97
|
+
const MAX_RECONNECT_ATTEMPTS = 50;
|
|
98
|
+
let consecutiveFailures = 0;
|
|
99
|
+
const onConnect = async (e) => {
|
|
100
|
+
try {
|
|
101
|
+
const data = JSON.parse(e.data);
|
|
102
|
+
const clientId = data.clientId;
|
|
103
|
+
await this.helpers.requestWithAuthentication.call(this, "pocketbaseHttpApi", {
|
|
104
|
+
method: "POST",
|
|
105
|
+
url: `${baseUrl}/api/realtime`,
|
|
106
|
+
body: {
|
|
107
|
+
clientId,
|
|
108
|
+
subscriptions: [collection],
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
if (stabilityTimer)
|
|
112
|
+
clearTimeout(stabilityTimer);
|
|
113
|
+
stabilityTimer = setTimeout(() => {
|
|
114
|
+
reconnectAttempts = 0;
|
|
115
|
+
consecutiveFailures = 0;
|
|
116
|
+
stabilityTimer = null;
|
|
117
|
+
}, 5000);
|
|
118
|
+
}
|
|
119
|
+
catch (error) {
|
|
120
|
+
this.logger.error("Failed to connect to PocketBase SSE", { error, collection });
|
|
121
|
+
const normalizedError = error instanceof Error ? error : new Error(String(error || "Unknown error during connect"));
|
|
122
|
+
if (consecutiveFailures === 0) {
|
|
123
|
+
this.emitError(normalizedError);
|
|
124
|
+
}
|
|
125
|
+
consecutiveFailures++;
|
|
126
|
+
reconnect();
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
const onError = (error) => {
|
|
130
|
+
if (stabilityTimer) {
|
|
131
|
+
clearTimeout(stabilityTimer);
|
|
132
|
+
stabilityTimer = null;
|
|
133
|
+
}
|
|
134
|
+
this.logger.error("PocketBase SSE connection failure", {
|
|
135
|
+
error,
|
|
136
|
+
baseUrl,
|
|
137
|
+
});
|
|
138
|
+
const normalizedError = new Error((error && error.message) || "PocketBase SSE connection failure");
|
|
139
|
+
if (error && error.code)
|
|
140
|
+
normalizedError.code = error.code;
|
|
141
|
+
if (error && error.status)
|
|
142
|
+
normalizedError.status = error.status;
|
|
143
|
+
normalizedError.originalErrorEvent = error;
|
|
144
|
+
if (consecutiveFailures === 0) {
|
|
145
|
+
this.emitError(normalizedError);
|
|
146
|
+
}
|
|
147
|
+
consecutiveFailures++;
|
|
148
|
+
reconnect();
|
|
149
|
+
};
|
|
150
|
+
const onMessage = (e) => {
|
|
151
|
+
var _a;
|
|
152
|
+
try {
|
|
153
|
+
const data = JSON.parse(e.data);
|
|
154
|
+
if (events.includes(data.action) && data.record) {
|
|
155
|
+
const output = {
|
|
156
|
+
...data.record,
|
|
157
|
+
};
|
|
158
|
+
if ("action" in output) {
|
|
159
|
+
output.__original_action = output.action;
|
|
160
|
+
}
|
|
161
|
+
output.__action = data.action;
|
|
162
|
+
this.emit([this.helpers.returnJsonArray(output)]);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
catch (error) {
|
|
166
|
+
const rawData = String((_a = e === null || e === void 0 ? void 0 : e.data) !== null && _a !== void 0 ? _a : "");
|
|
167
|
+
const redactedPreview = rawData
|
|
168
|
+
.replace(/"(password|token|secret|passwordConfirm|apiKey|accessToken|authorization|bearer)":\s*"(?:[^"\\]|\\.)*"/gi, '"$1": "[REDACTED]"')
|
|
169
|
+
.replace(/"email":\s*"(?:[^"\\]|\\.)*"/gi, '"email": "[REDACTED]"')
|
|
170
|
+
.replace(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g, "[REDACTED]")
|
|
171
|
+
.substring(0, 200);
|
|
172
|
+
this.logger.error("Failed to parse PocketBase SSE message", {
|
|
173
|
+
error,
|
|
174
|
+
redactedPreview,
|
|
175
|
+
collection,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
const connect = () => {
|
|
180
|
+
if (isClosed)
|
|
181
|
+
return;
|
|
182
|
+
isReconnecting = false;
|
|
183
|
+
es = new eventsource_1.EventSource(`${baseUrl}/api/realtime`);
|
|
184
|
+
es.addEventListener("PB_CONNECT", onConnect);
|
|
185
|
+
es.addEventListener("error", onError);
|
|
186
|
+
es.addEventListener(collection, onMessage);
|
|
187
|
+
};
|
|
188
|
+
const reconnect = () => {
|
|
189
|
+
if (isClosed || isReconnecting)
|
|
190
|
+
return;
|
|
191
|
+
isReconnecting = true;
|
|
192
|
+
if (stabilityTimer) {
|
|
193
|
+
clearTimeout(stabilityTimer);
|
|
194
|
+
stabilityTimer = null;
|
|
195
|
+
}
|
|
196
|
+
if (es) {
|
|
197
|
+
es.removeEventListener("PB_CONNECT", onConnect);
|
|
198
|
+
es.removeEventListener("error", onError);
|
|
199
|
+
es.removeEventListener(collection, onMessage);
|
|
200
|
+
es.close();
|
|
201
|
+
es = null;
|
|
202
|
+
}
|
|
203
|
+
if (reconnectAttempts >= MAX_RECONNECT_ATTEMPTS) {
|
|
204
|
+
this.logger.error("PocketBase trigger permanently closed after max reconnection attempts", {
|
|
205
|
+
baseUrl,
|
|
206
|
+
collection,
|
|
207
|
+
reconnectAttempts,
|
|
208
|
+
});
|
|
209
|
+
this.emitError(new Error(`PocketBase SSE: Maximum reconnection attempts (${MAX_RECONNECT_ATTEMPTS}) reached`));
|
|
210
|
+
isClosed = true;
|
|
211
|
+
isReconnecting = false;
|
|
212
|
+
return;
|
|
213
|
+
}
|
|
214
|
+
const baseDelay = Math.min(1000 * Math.pow(2, reconnectAttempts), 30000);
|
|
215
|
+
const jitter = Math.random() * 1000;
|
|
216
|
+
const delay = baseDelay + jitter;
|
|
217
|
+
reconnectAttempts++;
|
|
218
|
+
reconnectTimeout = setTimeout(connect, delay);
|
|
219
|
+
};
|
|
220
|
+
connect();
|
|
221
|
+
return {
|
|
222
|
+
closeFunction: async () => {
|
|
223
|
+
isClosed = true;
|
|
224
|
+
if (reconnectTimeout)
|
|
225
|
+
clearTimeout(reconnectTimeout);
|
|
226
|
+
if (stabilityTimer) {
|
|
227
|
+
clearTimeout(stabilityTimer);
|
|
228
|
+
stabilityTimer = null;
|
|
229
|
+
}
|
|
230
|
+
if (es) {
|
|
231
|
+
es.removeEventListener("PB_CONNECT", onConnect);
|
|
232
|
+
es.removeEventListener("error", onError);
|
|
233
|
+
es.removeEventListener(collection, onMessage);
|
|
234
|
+
es.close();
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=PocketbaseTrigger.node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PocketbaseTrigger.node.js","sourceRoot":"","sources":["../../../nodes/PocketbaseTrigger/PocketbaseTrigger.node.ts"],"names":[],"mappings":";;;AAAA,+CAMsB;AACtB,6CAA0C;AAC1C,uDAAoD;AAEpD,MAAa,iBAAiB;IAA9B;QACE,gBAAW,GAAyB;YAClC,WAAW,EAAE,2BAA2B;YACxC,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,EAAE,KAAK,EAAE,4BAA4B,EAAE,IAAI,EAAE,iCAAiC,EAAE;YACtF,KAAK,EAAE,CAAC,SAAS,CAAC;YAClB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE;gBACR,IAAI,EAAE,oBAAoB;aAC3B;YACD,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,WAAW,EAAE;gBACX;oBACE,IAAI,EAAE,mBAAmB;oBACzB,QAAQ,EAAE,IAAI;iBACf;aACF;YACD,UAAU,EAAE;gBACV;oBACE,WAAW,EAAE,iBAAiB;oBAC9B,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,SAAS;oBACf,WAAW,EAAE;wBACX,iBAAiB,EAAE,gBAAgB;qBACpC;oBACD,OAAO,EAAE,EAAE;oBACX,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,iDAAiD;iBAC/D;gBACD;oBACE,WAAW,EAAE,QAAQ;oBACrB,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE;wBACP;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAChB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAChB;wBACD;4BACE,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAChB;qBACF;oBACD,OAAO,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACvC,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,gCAAgC;iBAC9C;aACF;SACF,CAAC;QAEF,YAAO,GAAG;YACR,WAAW,EAAE,yBAAW;SACzB,CAAC;IAyBJ,CAAC;IAvBC,KAAK,CAAC,OAAO;QACX,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACnE,MAAM,OAAO,GAAI,WAAW,CAAC,GAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAW,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAa,CAAC;QAE3D,MAAM,EAAE,aAAa,EAAE,GAAG,wBAAwB,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE3F,OAAO;YACL,aAAa;YACb,qBAAqB,EAAE,KAAK,IAAI,EAAE;gBAChC,MAAM,UAAU,GAAG;oBACjB,QAAQ,EAAE,QAAQ;oBAClB,EAAE,EAAE,WAAW;oBACf,YAAY,EAAE,sBAAsB;oBACpC,cAAc,EAAE,UAAU;oBAC1B,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACjC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBAClC,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YACxD,CAAC;SACF,CAAC;IACJ,CAAC;CACF;AAnFD,8CAmFC;AAED,SAAS,wBAAwB,CAE/B,OAAe,EACf,UAAkB,EAClB,MAAgB;IAEhB,IAAI,EAAE,GAAuB,IAAI,CAAC;IAClC,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,gBAAgB,GAA0B,IAAI,CAAC;IACnD,IAAI,cAAc,GAA0B,IAAI,CAAC;IACjD,IAAI,iBAAiB,GAAG,CAAC,CAAC;IAC1B,MAAM,sBAAsB,GAAG,EAAE,CAAC;IAClC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAE5B,MAAM,SAAS,GAAG,KAAK,EAAE,CAAM,EAAE,EAAE;QACjC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE/B,MAAM,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE;gBAC3E,MAAM,EAAE,MAAM;gBACd,GAAG,EAAE,GAAG,OAAO,eAAe;gBAC9B,IAAI,EAAE;oBACJ,QAAQ;oBACR,aAAa,EAAE,CAAC,UAAU,CAAC;iBAC5B;aACF,CAAC,CAAC;YAGH,IAAI,cAAc;gBAAE,YAAY,CAAC,cAAc,CAAC,CAAC;YACjD,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC/B,iBAAiB,GAAG,CAAC,CAAC;gBACtB,mBAAmB,GAAG,CAAC,CAAC;gBACxB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC,EAAE,IAAI,CAAC,CAAC;QACX,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;YAChF,MAAM,eAAe,GACnB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,8BAA8B,CAAC,CAAC,CAAC;YAG9F,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YAClC,CAAC;YACD,mBAAmB,EAAE,CAAC;YACtB,SAAS,EAAE,CAAC;QACd,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE;QAC7B,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YACrD,KAAK;YACL,OAAO;SACR,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,IAAI,KAAK,CAC/B,CAAC,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,mCAAmC,CAChE,CAAC;QACF,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI;YAAG,eAAuB,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACpE,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;YAAG,eAAuB,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QACzE,eAAuB,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAGpD,IAAI,mBAAmB,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAClC,CAAC;QACD,mBAAmB,EAAE,CAAC;QACtB,SAAS,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,CAAM,EAAE,EAAE;;QAC3B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAc,CAAC,CAAC;YAC1C,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChD,MAAM,MAAM,GAAG;oBACb,GAAG,IAAI,CAAC,MAAM;iBACf,CAAC;gBACF,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;oBACtB,MAAc,CAAC,iBAAiB,GAAG,MAAM,CAAC,MAAM,CAAC;gBACpD,CAAC;gBACA,MAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;gBAEvC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,MAAM,CAAC,MAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,IAAI,mCAAI,EAAE,CAAC,CAAC;YACtC,MAAM,eAAe,GAAG,OAAO;iBAC5B,OAAO,CACN,0GAA0G,EAC1G,oBAAoB,CACrB;iBACA,OAAO,CAAC,gCAAgC,EAAE,uBAAuB,CAAC;iBAClE,OAAO,CAAC,iDAAiD,EAAE,YAAY,CAAC;iBACxE,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAwC,EAAE;gBAC1D,KAAK;gBACL,eAAe;gBACf,UAAU;aACX,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,IAAI,QAAQ;YAAE,OAAO;QACrB,cAAc,GAAG,KAAK,CAAC;QAEvB,EAAE,GAAG,IAAI,yBAAW,CAAC,GAAG,OAAO,eAAe,CAAC,CAAC;QAEhD,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;QAC7C,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtC,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,GAAG,EAAE;QACrB,IAAI,QAAQ,IAAI,cAAc;YAAE,OAAO;QACvC,cAAc,GAAG,IAAI,CAAC;QAEtB,IAAI,cAAc,EAAE,CAAC;YACnB,YAAY,CAAC,cAAc,CAAC,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QAED,IAAI,EAAE,EAAE,CAAC;YACP,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;YAChD,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC9C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,EAAE,GAAG,IAAI,CAAC;QACZ,CAAC;QAED,IAAI,iBAAiB,IAAI,sBAAsB,EAAE,CAAC;YAChD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uEAAuE,EAAE;gBACzF,OAAO;gBACP,UAAU;gBACV,iBAAiB;aAClB,CAAC,CAAC;YACH,IAAI,CAAC,SAAS,CACZ,IAAI,KAAK,CACP,kDAAkD,sBAAsB,WAAW,CACpF,CACF,CAAC;YACF,QAAQ,GAAG,IAAI,CAAC;YAChB,cAAc,GAAG,KAAK,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,KAAK,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC;QACpC,MAAM,KAAK,GAAG,SAAS,GAAG,MAAM,CAAC;QACjC,iBAAiB,EAAE,CAAC;QAEpB,gBAAgB,GAAG,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,OAAO,EAAE,CAAC;IAEV,OAAO;QACL,aAAa,EAAE,KAAK,IAAI,EAAE;YACxB,QAAQ,GAAG,IAAI,CAAC;YAChB,IAAI,gBAAgB;gBAAE,YAAY,CAAC,gBAAgB,CAAC,CAAC;YACrD,IAAI,cAAc,EAAE,CAAC;gBACnB,YAAY,CAAC,cAAc,CAAC,CAAC;gBAC7B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YACD,IAAI,EAAE,EAAE,CAAC;gBACP,EAAE,CAAC,mBAAmB,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAChD,EAAE,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACzC,EAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;gBAC9C,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"node": "n8n-nodes-pocketbase-trigger",
|
|
3
|
+
"nodeVersion": "1.0",
|
|
4
|
+
"codexVersion": "1.0",
|
|
5
|
+
"categories": ["Development", "Developer Tools"],
|
|
6
|
+
"resources": {
|
|
7
|
+
"credentialDocumentation": [
|
|
8
|
+
{
|
|
9
|
+
"url": "https://github.com/TheFehr/n8n-nodes-pocketbase#credentials"
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"primaryDocumentation": [
|
|
13
|
+
{
|
|
14
|
+
"url": "https://github.com/TheFehr/n8n-nodes-pocketbase"
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid">
|
|
3
|
+
<title>PocketBase</title>
|
|
4
|
+
<g>
|
|
5
|
+
<path d="M9.45943152,170.335917 C4.78314722,170.335917 0.992248062,166.545442 0.992248062,161.868734 L0.992248062,9.45943152 C0.992248062,4.78314722 4.78314722,0.992248062 9.45943152,0.992248062 L161.868734,0.992248062 C166.545442,0.992248062 170.335917,4.78314722 170.335917,9.45943152 L170.335917,85.6640827 L246.540568,85.6640827 C251.217276,85.6640827 255.007752,89.4552641 255.007752,94.1312661 L255.007752,246.540568 C255.007752,251.217276 251.217276,255.007752 246.540568,255.007752 L94.1312661,255.007752 C89.4552641,255.007752 85.6640827,251.217276 85.6640827,246.540568 L85.6640827,170.335917 Z" fill="#FFFFFF"></path>
|
|
6
|
+
<path d="M161.868734,0 L9.45943152,0 C4.23514375,0 0,4.23514375 0,9.45943152 L0,161.868734 L0.00376012403,162.138071 C0.146328782,167.238077 4.32508151,171.328165 9.45943152,171.328165 L84.6715039,171.327504 L84.6718346,246.540568 C84.6718346,251.765049 88.9070297,256 94.1312661,256 L246.540568,256 C251.76528,256 256,251.76528 256,246.540568 L256,94.1312661 L255.99624,93.8619457 C255.853673,88.7622475 251.674971,84.6718346 246.540568,84.6718346 L171.327504,84.6715039 L171.328165,9.45943152 C171.328165,4.2350052 167.093306,0 161.868734,0 Z M161.868734,1.98449612 C165.997284,1.98449612 169.343669,5.3309968 169.343669,9.45943152 L169.343669,85.6640827 C169.343669,86.2120862 169.787914,86.6563307 170.335917,86.6563307 L246.540568,86.6563307 C250.669016,86.6563307 254.015504,90.0030111 254.015504,94.1312661 L254.015504,246.540568 C254.015504,250.669273 250.669273,254.015504 246.540568,254.015504 L94.1312661,254.015504 C90.0030111,254.015504 86.6563307,250.669016 86.6563307,246.540568 L86.6563307,170.335917 C86.6563307,169.787914 86.2120862,169.343669 85.6640827,169.343669 L9.45943152,169.343669 C5.3309968,169.343669 1.98449612,165.997284 1.98449612,161.868734 L1.98449612,9.45943152 C1.98449612,5.33115069 5.33115069,1.98449612 9.45943152,1.98449612 L161.868734,1.98449612 Z" fill="#16161A"></path>
|
|
7
|
+
<path d="M57.4401378,128 C53.5432577,128 50.3841516,124.841035 50.3841516,120.944014 L50.3841516,43.3281654 C50.3841516,39.4312853 53.5432577,36.2721792 57.4401378,36.2721792 L83.9219597,36.2721792 C89.0516617,36.2721792 93.8426763,36.7880423 98.2950036,37.8196981 C102.843998,38.7576503 106.764304,40.3990138 110.055216,42.7437886 C113.442795,44.9947893 116.104313,48.0429754 118.040475,51.8884173 C119.975932,55.6400852 120.944014,60.2829947 120.944014,65.8162991 C120.944014,71.1626198 119.927952,75.8054587 117.895122,79.7441102 C115.959665,83.6834674 113.297442,86.9193426 109.909863,89.4517361 C106.522284,91.9841295 102.601978,93.8603163 98.1496503,95.0795907 C93.697323,96.2988651 88.9549947,96.9085023 83.9219597,96.9085023 L78.7823793,96.9085023 C74.8853581,96.9085023 71.7263931,100.067467 71.7263931,103.964489 L71.7263931,120.944014 C71.7263931,124.841035 68.5674281,128 64.6704069,128 L57.4401378,128 Z M71.7263931,73.3916059 C71.7263931,77.288627 74.8853581,80.4475921 78.7823793,80.4475921 L82.615191,80.4475921 C94.23005,80.4475921 100.037127,75.5704944 100.037127,65.8162991 C100.037127,61.033046 98.5370239,57.6567566 95.5368186,55.6869369 C92.6332803,53.7173289 88.3256007,52.7325249 82.615191,52.7325249 L78.7823793,52.7325249 C74.8853581,52.7325249 71.7263931,55.8916311 71.7263931,59.78837 L71.7263931,73.3916059 Z" fill="#16161A"></path>
|
|
8
|
+
<path d="M142.111972,219.727821 C138.214951,219.727821 135.055986,216.568856 135.055986,212.671835 L135.055986,135.055986 C135.055986,131.158965 138.214951,128 142.111972,128 L166.721136,128 C171.637041,128 176.16769,128.375378 180.312376,129.12543 C184.55373,129.782342 188.217198,131.001617 191.301369,132.783253 C194.386246,134.565595 196.795866,136.910299 198.530933,139.817366 C200.362667,142.725138 201.277828,146.382961 201.277828,150.791541 C201.277828,152.854711 200.940552,154.917882 200.266,156.981758 C199.687409,159.044928 198.723561,160.967684 197.374457,162.749321 C196.024646,164.531663 194.33756,166.126316 192.313903,167.53328 C190.35375,168.895085 188.033036,169.905502 185.35035,170.563826 C185.194413,170.602634 185.08434,170.741637 185.08434,170.901807 L185.08434,170.901807 C185.08434,171.069034 185.204997,171.212271 185.369402,171.243317 C191.975921,172.476704 196.9892,174.803768 200.410647,178.225216 C203.880781,181.69535 205.615848,186.525878 205.615848,192.716094 C205.615848,197.405503 204.699981,201.438705 202.868953,204.814994 C201.037219,208.191283 198.482952,211.005211 195.205446,213.25607 C191.927941,215.413085 188.07255,217.055013 183.637863,218.180443 C179.300548,219.212028 174.577271,219.727821 169.468737,219.727821 L142.111972,219.727821 Z M156.310734,157.80378 C156.310734,161.700801 159.469699,164.859766 163.36672,164.859766 L165.709307,164.859766 C170.914508,164.859766 174.673938,163.875456 176.98689,161.905425 C179.300548,159.936099 180.457024,157.168741 180.457024,153.604763 C180.457024,150.228473 179.252567,147.836494 176.842242,146.430236 C174.52929,144.929428 170.865822,144.178671 165.853955,144.178671 L163.36672,144.178671 C159.469699,144.178671 156.310734,147.338341 156.310734,151.234657 L156.310734,157.80378 Z M156.310734,196.493164 C156.310734,200.389479 159.469699,203.54915 163.36672,203.54915 L167.732964,203.54915 C179.107919,203.54915 184.795044,199.422104 184.795044,191.168717 C184.795044,187.135515 183.397253,184.227743 180.601672,182.446106 C177.902757,180.663764 173.613423,179.772593 167.732964,179.772593 L163.36672,179.772593 C159.469699,179.772593 156.310734,182.931558 156.310734,186.82858 L156.310734,196.493164 Z" fill="#16161A"></path>
|
|
9
|
+
</g>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid">
|
|
3
|
+
<title>PocketBase</title>
|
|
4
|
+
<g>
|
|
5
|
+
<path d="M9.45943152,170.335917 C4.78314722,170.335917 0.992248062,166.545442 0.992248062,161.868734 L0.992248062,9.45943152 C0.992248062,4.78314722 4.78314722,0.992248062 9.45943152,0.992248062 L161.868734,0.992248062 C166.545442,0.992248062 170.335917,4.78314722 170.335917,9.45943152 L170.335917,85.6640827 L246.540568,85.6640827 C251.217276,85.6640827 255.007752,89.4552641 255.007752,94.1312661 L255.007752,246.540568 C255.007752,251.217276 251.217276,255.007752 246.540568,255.007752 L94.1312661,255.007752 C89.4552641,255.007752 85.6640827,251.217276 85.6640827,246.540568 L85.6640827,170.335917 Z" fill="#FFFFFF"></path>
|
|
6
|
+
<path d="M161.868734,0 L9.45943152,0 C4.23514375,0 0,4.23514375 0,9.45943152 L0,161.868734 L0.00376012403,162.138071 C0.146328782,167.238077 4.32508151,171.328165 9.45943152,171.328165 L84.6715039,171.327504 L84.6718346,246.540568 C84.6718346,251.765049 88.9070297,256 94.1312661,256 L246.540568,256 C251.76528,256 256,251.76528 256,246.540568 L256,94.1312661 L255.99624,93.8619457 C255.853673,88.7622475 251.674971,84.6718346 246.540568,84.6718346 L171.327504,84.6715039 L171.328165,9.45943152 C171.328165,4.2350052 167.093306,0 161.868734,0 Z M161.868734,1.98449612 C165.997284,1.98449612 169.343669,5.3309968 169.343669,9.45943152 L169.343669,85.6640827 C169.343669,86.2120862 169.787914,86.6563307 170.335917,86.6563307 L246.540568,86.6563307 C250.669016,86.6563307 254.015504,90.0030111 254.015504,94.1312661 L254.015504,246.540568 C254.015504,250.669273 250.669273,254.015504 246.540568,254.015504 L94.1312661,254.015504 C90.0030111,254.015504 86.6563307,250.669016 86.6563307,246.540568 L86.6563307,170.335917 C86.6563307,169.787914 86.2120862,169.343669 85.6640827,169.343669 L9.45943152,169.343669 C5.3309968,169.343669 1.98449612,165.997284 1.98449612,161.868734 L1.98449612,9.45943152 C1.98449612,5.33115069 5.33115069,1.98449612 9.45943152,1.98449612 L161.868734,1.98449612 Z" fill="#16161A"></path>
|
|
7
|
+
<path d="M57.4401378,128 C53.5432577,128 50.3841516,124.841035 50.3841516,120.944014 L50.3841516,43.3281654 C50.3841516,39.4312853 53.5432577,36.2721792 57.4401378,36.2721792 L83.9219597,36.2721792 C89.0516617,36.2721792 93.8426763,36.7880423 98.2950036,37.8196981 C102.843998,38.7576503 106.764304,40.3990138 110.055216,42.7437886 C113.442795,44.9947893 116.104313,48.0429754 118.040475,51.8884173 C119.975932,55.6400852 120.944014,60.2829947 120.944014,65.8162991 C120.944014,71.1626198 119.927952,75.8054587 117.895122,79.7441102 C115.959665,83.6834674 113.297442,86.9193426 109.909863,89.4517361 C106.522284,91.9841295 102.601978,93.8603163 98.1496503,95.0795907 C93.697323,96.2988651 88.9549947,96.9085023 83.9219597,96.9085023 L78.7823793,96.9085023 C74.8853581,96.9085023 71.7263931,100.067467 71.7263931,103.964489 L71.7263931,120.944014 C71.7263931,124.841035 68.5674281,128 64.6704069,128 L57.4401378,128 Z M71.7263931,73.3916059 C71.7263931,77.288627 74.8853581,80.4475921 78.7823793,80.4475921 L82.615191,80.4475921 C94.23005,80.4475921 100.037127,75.5704944 100.037127,65.8162991 C100.037127,61.033046 98.5370239,57.6567566 95.5368186,55.6869369 C92.6332803,53.7173289 88.3256007,52.7325249 82.615191,52.7325249 L78.7823793,52.7325249 C74.8853581,52.7325249 71.7263931,55.8916311 71.7263931,59.78837 L71.7263931,73.3916059 Z" fill="#16161A"></path>
|
|
8
|
+
<path d="M142.111972,219.727821 C138.214951,219.727821 135.055986,216.568856 135.055986,212.671835 L135.055986,135.055986 C135.055986,131.158965 138.214951,128 142.111972,128 L166.721136,128 C171.637041,128 176.16769,128.375378 180.312376,129.12543 C184.55373,129.782342 188.217198,131.001617 191.301369,132.783253 C194.386246,134.565595 196.795866,136.910299 198.530933,139.817366 C200.362667,142.725138 201.277828,146.382961 201.277828,150.791541 C201.277828,152.854711 200.940552,154.917882 200.266,156.981758 C199.687409,159.044928 198.723561,160.967684 197.374457,162.749321 C196.024646,164.531663 194.33756,166.126316 192.313903,167.53328 C190.35375,168.895085 188.033036,169.905502 185.35035,170.563826 C185.194413,170.602634 185.08434,170.741637 185.08434,170.901807 L185.08434,170.901807 C185.08434,171.069034 185.204997,171.212271 185.369402,171.243317 C191.975921,172.476704 196.9892,174.803768 200.410647,178.225216 C203.880781,181.69535 205.615848,186.525878 205.615848,192.716094 C205.615848,197.405503 204.699981,201.438705 202.868953,204.814994 C201.037219,208.191283 198.482952,211.005211 195.205446,213.25607 C191.927941,215.413085 188.07255,217.055013 183.637863,218.180443 C179.300548,219.212028 174.577271,219.727821 169.468737,219.727821 L142.111972,219.727821 Z M156.310734,157.80378 C156.310734,161.700801 159.469699,164.859766 163.36672,164.859766 L165.709307,164.859766 C170.914508,164.859766 174.673938,163.875456 176.98689,161.905425 C179.300548,159.936099 180.457024,157.168741 180.457024,153.604763 C180.457024,150.228473 179.252567,147.836494 176.842242,146.430236 C174.52929,144.929428 170.865822,144.178671 165.853955,144.178671 L163.36672,144.178671 C159.469699,144.178671 156.310734,147.338341 156.310734,151.234657 L156.310734,157.80378 Z M156.310734,196.493164 C156.310734,200.389479 159.469699,203.54915 163.36672,203.54915 L167.732964,203.54915 C179.107919,203.54915 184.795044,199.422104 184.795044,191.168717 C184.795044,187.135515 183.397253,184.227743 180.601672,182.446106 C177.902757,180.663764 173.613423,179.772593 167.732964,179.772593 L163.36672,179.772593 C159.469699,179.772593 156.310734,182.931558 156.310734,186.82858 L156.310734,196.493164 Z" fill="#16161A"></path>
|
|
9
|
+
</g>
|
|
10
|
+
</svg>
|
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-pocketbase",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Interact with your PocketBase instance",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"n8n-community-node-package"
|
|
@@ -34,19 +34,22 @@
|
|
|
34
34
|
"release": "n8n-node release",
|
|
35
35
|
"prepublishOnly": "n8n-node prerelease"
|
|
36
36
|
},
|
|
37
|
+
"dependencies": {
|
|
38
|
+
"eventsource": "^4.1.0"
|
|
39
|
+
},
|
|
37
40
|
"devDependencies": {
|
|
38
|
-
"@n8n/node-cli": "^0.
|
|
41
|
+
"@n8n/node-cli": "^0.28.0",
|
|
39
42
|
"eslint-plugin-n8n-nodes-base": "^1.16.6",
|
|
40
|
-
"oxfmt": "^0.
|
|
43
|
+
"oxfmt": "^0.46.0",
|
|
41
44
|
"oxlint": "^1.60.0",
|
|
42
|
-
"release-it": "^
|
|
45
|
+
"release-it": "^20.0.0",
|
|
43
46
|
"tsx": "^4.21.0",
|
|
44
47
|
"typescript": "5.9.3",
|
|
45
48
|
"vite": "^8.0.8",
|
|
46
49
|
"vitest": "^4.1.4"
|
|
47
50
|
},
|
|
48
51
|
"peerDependencies": {
|
|
49
|
-
"n8n-workflow": "^2.
|
|
52
|
+
"n8n-workflow": "^2.17.5"
|
|
50
53
|
},
|
|
51
54
|
"n8n": {
|
|
52
55
|
"n8nNodesApiVersion": 1,
|
|
@@ -55,8 +58,9 @@
|
|
|
55
58
|
"dist/credentials/PocketbaseHttpApi.credentials.js"
|
|
56
59
|
],
|
|
57
60
|
"nodes": [
|
|
58
|
-
"dist/nodes/PocketbaseHttp/PocketbaseHttp.node.js"
|
|
61
|
+
"dist/nodes/PocketbaseHttp/PocketbaseHttp.node.js",
|
|
62
|
+
"dist/nodes/PocketbaseTrigger/PocketbaseTrigger.node.js"
|
|
59
63
|
]
|
|
60
64
|
},
|
|
61
|
-
"pocketbaseVersion": "0.
|
|
65
|
+
"pocketbaseVersion": "0.37.2"
|
|
62
66
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const GenericFunctions_1 = require("../nodes/Common/GenericFunctions");
|
|
5
|
+
(0, vitest_1.describe)("GenericFunctions", () => {
|
|
6
|
+
(0, vitest_1.describe)("pagination", () => {
|
|
7
|
+
let mockThis;
|
|
8
|
+
(0, vitest_1.beforeEach)(() => {
|
|
9
|
+
vitest_1.vi.clearAllMocks();
|
|
10
|
+
mockThis = {
|
|
11
|
+
getNodeParameter: vitest_1.vi.fn(),
|
|
12
|
+
makeRoutingRequest: vitest_1.vi.fn(),
|
|
13
|
+
logger: {
|
|
14
|
+
debug: vitest_1.vi.fn(),
|
|
15
|
+
warn: vitest_1.vi.fn(),
|
|
16
|
+
error: vitest_1.vi.fn(),
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.it)("should handle normal pagination correctly", async () => {
|
|
21
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
22
|
+
if (name === "parameters.allElements")
|
|
23
|
+
return true;
|
|
24
|
+
if (name === "parameters.page")
|
|
25
|
+
return 1;
|
|
26
|
+
return defaultValue;
|
|
27
|
+
});
|
|
28
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
29
|
+
{
|
|
30
|
+
json: {
|
|
31
|
+
page: 1,
|
|
32
|
+
totalPages: 2,
|
|
33
|
+
items: [{ id: 1 }, { id: 2 }],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
]);
|
|
37
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
38
|
+
{
|
|
39
|
+
json: {
|
|
40
|
+
page: 2,
|
|
41
|
+
totalPages: 2,
|
|
42
|
+
items: [{ id: 3 }],
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
]);
|
|
46
|
+
const requestOptions = {
|
|
47
|
+
options: { qs: {} },
|
|
48
|
+
preSend: [],
|
|
49
|
+
postReceive: [],
|
|
50
|
+
};
|
|
51
|
+
const result = await GenericFunctions_1.pagination.call(mockThis, requestOptions);
|
|
52
|
+
(0, vitest_1.expect)(result).toHaveLength(3);
|
|
53
|
+
(0, vitest_1.expect)(result).toEqual([{ json: { id: 1 } }, { json: { id: 2 } }, { json: { id: 3 } }]);
|
|
54
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).toHaveBeenCalledTimes(2);
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.it)("should break early and log warning if items.length === 0 even if page < totalPages", async () => {
|
|
57
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
58
|
+
if (name === "parameters.allElements")
|
|
59
|
+
return true;
|
|
60
|
+
if (name === "parameters.page")
|
|
61
|
+
return 1;
|
|
62
|
+
return defaultValue;
|
|
63
|
+
});
|
|
64
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
65
|
+
{
|
|
66
|
+
json: {
|
|
67
|
+
page: 1,
|
|
68
|
+
totalPages: 5,
|
|
69
|
+
items: [],
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
]);
|
|
73
|
+
const requestOptions = {
|
|
74
|
+
options: { qs: {} },
|
|
75
|
+
preSend: [],
|
|
76
|
+
postReceive: [],
|
|
77
|
+
};
|
|
78
|
+
const result = await GenericFunctions_1.pagination.call(mockThis, requestOptions);
|
|
79
|
+
(0, vitest_1.expect)(result).toHaveLength(0);
|
|
80
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).toHaveBeenCalledTimes(1);
|
|
81
|
+
(0, vitest_1.expect)(mockThis.logger.warn).toHaveBeenCalledWith(vitest_1.expect.stringContaining("returned 0 items for page 1 even though totalPages is 5"), vitest_1.expect.any(Object));
|
|
82
|
+
});
|
|
83
|
+
(0, vitest_1.it)("should not log warning if items.length === 0 and page === totalPages", async () => {
|
|
84
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
85
|
+
if (name === "parameters.allElements")
|
|
86
|
+
return true;
|
|
87
|
+
if (name === "parameters.page")
|
|
88
|
+
return 1;
|
|
89
|
+
return defaultValue;
|
|
90
|
+
});
|
|
91
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
92
|
+
{
|
|
93
|
+
json: {
|
|
94
|
+
page: 1,
|
|
95
|
+
totalPages: 1,
|
|
96
|
+
items: [],
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
]);
|
|
100
|
+
const requestOptions = {
|
|
101
|
+
options: { qs: {} },
|
|
102
|
+
preSend: [],
|
|
103
|
+
postReceive: [],
|
|
104
|
+
};
|
|
105
|
+
await GenericFunctions_1.pagination.call(mockThis, requestOptions);
|
|
106
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).toHaveBeenCalledTimes(1);
|
|
107
|
+
(0, vitest_1.expect)(mockThis.logger.warn).not.toHaveBeenCalled();
|
|
108
|
+
});
|
|
109
|
+
(0, vitest_1.it)("should throw error if maxPages exceeded", async () => {
|
|
110
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
111
|
+
if (name === "parameters.allElements")
|
|
112
|
+
return true;
|
|
113
|
+
if (name === "parameters.page")
|
|
114
|
+
return 1001;
|
|
115
|
+
return defaultValue;
|
|
116
|
+
});
|
|
117
|
+
const requestOptions = {
|
|
118
|
+
options: { qs: {} },
|
|
119
|
+
preSend: [],
|
|
120
|
+
postReceive: [],
|
|
121
|
+
};
|
|
122
|
+
await (0, vitest_1.expect)(GenericFunctions_1.pagination.call(mockThis, requestOptions)).rejects.toThrow("Pagination exceeded maximum of 1000 pages");
|
|
123
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).not.toHaveBeenCalled();
|
|
124
|
+
});
|
|
125
|
+
(0, vitest_1.it)("should not throw error if page === 1000", async () => {
|
|
126
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
127
|
+
if (name === "parameters.allElements")
|
|
128
|
+
return true;
|
|
129
|
+
if (name === "parameters.page")
|
|
130
|
+
return 1000;
|
|
131
|
+
return defaultValue;
|
|
132
|
+
});
|
|
133
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
134
|
+
{
|
|
135
|
+
json: {
|
|
136
|
+
page: 1000,
|
|
137
|
+
totalPages: 1000,
|
|
138
|
+
items: [{ id: 1 }],
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
]);
|
|
142
|
+
const requestOptions = {
|
|
143
|
+
options: { qs: {} },
|
|
144
|
+
preSend: [],
|
|
145
|
+
postReceive: [],
|
|
146
|
+
};
|
|
147
|
+
await GenericFunctions_1.pagination.call(mockThis, requestOptions);
|
|
148
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).toHaveBeenCalled();
|
|
149
|
+
});
|
|
150
|
+
(0, vitest_1.it)("should not apply page limit if allElements is false", async () => {
|
|
151
|
+
mockThis.getNodeParameter.mockImplementation((name, defaultValue) => {
|
|
152
|
+
if (name === "parameters.allElements")
|
|
153
|
+
return false;
|
|
154
|
+
if (name === "parameters.page")
|
|
155
|
+
return 2000;
|
|
156
|
+
return defaultValue;
|
|
157
|
+
});
|
|
158
|
+
mockThis.makeRoutingRequest.mockResolvedValueOnce([
|
|
159
|
+
{
|
|
160
|
+
json: {
|
|
161
|
+
page: 2000,
|
|
162
|
+
totalPages: 2000,
|
|
163
|
+
items: [{ id: 1 }],
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
]);
|
|
167
|
+
const requestOptions = {
|
|
168
|
+
options: { qs: {} },
|
|
169
|
+
preSend: [],
|
|
170
|
+
postReceive: [],
|
|
171
|
+
};
|
|
172
|
+
await GenericFunctions_1.pagination.call(mockThis, requestOptions);
|
|
173
|
+
(0, vitest_1.expect)(mockThis.makeRoutingRequest).toHaveBeenCalled();
|
|
174
|
+
});
|
|
175
|
+
});
|
|
176
|
+
});
|
|
177
|
+
//# sourceMappingURL=GenericFunctions.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.spec.js","sourceRoot":"","sources":["../../tests/GenericFunctions.spec.ts"],"names":[],"mappings":"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"}
|