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
package/README.md
CHANGED
|
@@ -7,12 +7,24 @@ PocketBase is an open source backend consisting of embedded database (SQLite) wi
|
|
|
7
7
|
[n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
|
|
8
8
|
|
|
9
9
|
[Installation](#installation)
|
|
10
|
+
[Usage Tips](#usage-tips)
|
|
10
11
|
[Operations](#operations)
|
|
11
12
|
[Credentials](#credentials)
|
|
12
13
|
[Compatibility](#compatibility)
|
|
13
14
|
[Development](#development)
|
|
14
15
|
[Resources](#resources)
|
|
15
16
|
|
|
17
|
+
## Usage Tips
|
|
18
|
+
|
|
19
|
+
### Clearing Fields
|
|
20
|
+
To clear a field (set it to its zero-value or delete a file), you can send `null` as the value:
|
|
21
|
+
- **Text/Number/Select/Relation**: Use an expression to return `null` to clear the field.
|
|
22
|
+
- **JSON**: Use `null` to store a literal null value.
|
|
23
|
+
- **File**: Use `null` to delete the existing file.
|
|
24
|
+
|
|
25
|
+
In the **Fields** parameter, use an expression: `={{ null }}`.
|
|
26
|
+
In the **JSON Body**, use the literal `null`: `{"myField": null}`.
|
|
27
|
+
|
|
16
28
|
## Installation
|
|
17
29
|
|
|
18
30
|
Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
|
|
@@ -21,6 +33,12 @@ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes
|
|
|
21
33
|
|
|
22
34
|
Nearly all PocketBase operations for Base collections should be implemented.
|
|
23
35
|
|
|
36
|
+
### Trigger Node (Beta)
|
|
37
|
+
|
|
38
|
+
This node allows you to subscribe to PocketBase events (create, update, delete) in real-time via Server-Sent Events (SSE).
|
|
39
|
+
|
|
40
|
+
**Note**: The trigger node is currently in Beta. We've implemented basic reconnection logic, but it may still be sensitive to network interruptions or large amounts of data. Please use with caution in production.
|
|
41
|
+
|
|
24
42
|
## Credentials
|
|
25
43
|
|
|
26
44
|
Ensure you have an Auth collection in your PocketBase defined and the "Username/Password" Auth method turned on.
|
|
@@ -28,7 +46,7 @@ Alternatively, you can use your administrator account and the "\_superusers" col
|
|
|
28
46
|
|
|
29
47
|
## Compatibility
|
|
30
48
|
|
|
31
|
-
This was developed for version 2.
|
|
49
|
+
This was developed for version 2.17.5 of n8n and version 0.37.2 of PocketBase.
|
|
32
50
|
|
|
33
51
|
## Development
|
|
34
52
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PocketbaseHttpApi = void 0;
|
|
4
|
-
const PocketbaseAuth_1 = require("../nodes/
|
|
4
|
+
const PocketbaseAuth_1 = require("../nodes/Common/PocketbaseAuth");
|
|
5
5
|
class PocketbaseHttpApi {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.name = "pocketbaseHttpApi";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PocketbaseHttpApi.credentials.js","sourceRoot":"","sources":["../../credentials/PocketbaseHttpApi.credentials.ts"],"names":[],"mappings":";;;AASA,
|
|
1
|
+
{"version":3,"file":"PocketbaseHttpApi.credentials.js","sourceRoot":"","sources":["../../credentials/PocketbaseHttpApi.credentials.ts"],"names":[],"mappings":";;;AASA,mEAAgE;AAEhE,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAG,mBAAmB,CAAC;QAC3B,gBAAW,GAAG,qBAAqB,CAAC;QACpC,qBAAgB,GAAG,4CAA4C,CAAC;QAChE,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,KAAK;gBAClB,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,WAAW,EAAE,8BAA8B;gBAC3C,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,WAAW,EAAE,8BAA8B;gBAC3C,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,WAAW,EAAE,eAAe;gBAC5B,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;oBACX,SAAS,EAAE,IAAI;oBACf,QAAQ,EAAE,IAAI;iBACf;gBACD,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;QAEF,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,6CAA6C;gBACtD,GAAG,EAAE,kDAAkD;gBACvD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,QAAQ,EAAE,6BAA6B;oBACvC,QAAQ,EAAE,6BAA6B;iBACxC;aACF;YACD,KAAK,EAAE;gBACL;oBACE,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE;wBACV,KAAK,EAAE,GAAG;wBACV,OAAO,EAAE,MAAM;qBAChB;iBACF;gBACD;oBACE,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE;wBACV,KAAK,EAAE,GAAG;wBACV,OAAO,EAAE,gCAAgC;qBAC1C;iBACF;aACF;SACF,CAAC;QASF,iBAAY,GAAkB;YAC5B,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,2BAA2B;iBAC3C;aACF;SACF,CAAC;QAEF,SAAI,GAAG,qBAAiC,CAAC;IAC3C,CAAC;IAjBC,KAAK,CAAC,iBAAiB,CAA2B,WAA2C;QAC3F,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,MAAM,wBAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,sBAAK,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAC7C,CAAC;CAYF;AAtFD,8CAsFC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { DeclarativeRestApiSettings, IExecutePaginationFunctions, IExecuteSingleFunctions, IHttpRequestOptions, INodeExecutionData } from "n8n-workflow";
|
|
2
2
|
export declare function recordViewPreSendAction(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
|
|
3
3
|
export declare function recordViewPostReceiveAction(this: IExecuteSingleFunctions, items: INodeExecutionData[]): Promise<INodeExecutionData[]>;
|
|
4
|
-
export declare function
|
|
5
|
-
export declare
|
|
4
|
+
export declare function recordPreSendAction(this: IExecuteSingleFunctions, requestOptions: IHttpRequestOptions): Promise<IHttpRequestOptions>;
|
|
5
|
+
export declare const recordUpdatePreSendAction: typeof recordPreSendAction;
|
|
6
|
+
export declare const recordCreatePreSendAction: typeof recordPreSendAction;
|
|
6
7
|
export declare function pagination(this: IExecutePaginationFunctions, requestOptions: DeclarativeRestApiSettings.ResultOptions): Promise<INodeExecutionData[]>;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.recordCreatePreSendAction = exports.recordUpdatePreSendAction = void 0;
|
|
4
|
+
exports.recordViewPreSendAction = recordViewPreSendAction;
|
|
5
|
+
exports.recordViewPostReceiveAction = recordViewPostReceiveAction;
|
|
6
|
+
exports.recordPreSendAction = recordPreSendAction;
|
|
7
|
+
exports.pagination = pagination;
|
|
8
|
+
const RequestBodyFunctions_1 = require("./RequestBodyFunctions");
|
|
9
|
+
async function recordViewPreSendAction(requestOptions) {
|
|
10
|
+
var _a;
|
|
11
|
+
this.logger.debug(`Request URL: ${requestOptions.url} | ${JSON.stringify((_a = requestOptions.qs) !== null && _a !== void 0 ? _a : {})}`);
|
|
12
|
+
return requestOptions;
|
|
13
|
+
}
|
|
14
|
+
async function recordViewPostReceiveAction(items) {
|
|
15
|
+
return items;
|
|
16
|
+
}
|
|
17
|
+
async function recordPreSendAction(requestOptions) {
|
|
18
|
+
return await RequestBodyFunctions_1.prepareRequestBody.call(this, requestOptions);
|
|
19
|
+
}
|
|
20
|
+
exports.recordUpdatePreSendAction = recordPreSendAction;
|
|
21
|
+
exports.recordCreatePreSendAction = recordPreSendAction;
|
|
22
|
+
async function pagination(requestOptions) {
|
|
23
|
+
var _a, _b, _c;
|
|
24
|
+
var _d;
|
|
25
|
+
const allIsActive = this.getNodeParameter("parameters.allElements", false);
|
|
26
|
+
let executions = [];
|
|
27
|
+
let page = this.getNodeParameter("parameters.page", 1);
|
|
28
|
+
let totalPages = allIsActive ? Infinity : page;
|
|
29
|
+
(_a = requestOptions.options) !== null && _a !== void 0 ? _a : (requestOptions.options = {});
|
|
30
|
+
(_b = (_d = requestOptions.options).qs) !== null && _b !== void 0 ? _b : (_d.qs = {});
|
|
31
|
+
const maxPages = 1000;
|
|
32
|
+
do {
|
|
33
|
+
if (allIsActive && page > maxPages) {
|
|
34
|
+
throw new Error(`Pagination exceeded maximum of ${maxPages} pages`);
|
|
35
|
+
}
|
|
36
|
+
requestOptions.options.qs.page = page;
|
|
37
|
+
const responseData = await this.makeRoutingRequest(requestOptions);
|
|
38
|
+
if (!responseData || responseData.length === 0) {
|
|
39
|
+
return executions;
|
|
40
|
+
}
|
|
41
|
+
const responseBody = (_c = responseData === null || responseData === void 0 ? void 0 : responseData[0]) === null || _c === void 0 ? void 0 : _c.json;
|
|
42
|
+
if (!responseBody || typeof responseBody !== "object") {
|
|
43
|
+
throw new Error("Invalid response from PocketBase");
|
|
44
|
+
}
|
|
45
|
+
const resPage = Number(responseBody.page);
|
|
46
|
+
if (!Number.isFinite(resPage)) {
|
|
47
|
+
if (executions.length > 0) {
|
|
48
|
+
this.logger.warn("Received invalid page number in response; returning partial results", {
|
|
49
|
+
page: responseBody.page,
|
|
50
|
+
itemsCollected: executions.length,
|
|
51
|
+
});
|
|
52
|
+
return executions;
|
|
53
|
+
}
|
|
54
|
+
throw new Error("Missing or invalid page in PocketBase response");
|
|
55
|
+
}
|
|
56
|
+
if (resPage !== page) {
|
|
57
|
+
throw new Error(`PocketBase returned page ${resPage} but we requested ${page}`);
|
|
58
|
+
}
|
|
59
|
+
if (allIsActive) {
|
|
60
|
+
const resTotalPages = Number(responseBody.totalPages);
|
|
61
|
+
if (!Number.isFinite(resTotalPages)) {
|
|
62
|
+
throw new Error("Missing or invalid totalPages in PocketBase response");
|
|
63
|
+
}
|
|
64
|
+
totalPages = resTotalPages;
|
|
65
|
+
this.logger.debug(`Fetching page ${page} of ${totalPages}`);
|
|
66
|
+
}
|
|
67
|
+
if (!Array.isArray(responseBody.items)) {
|
|
68
|
+
throw new Error(`PocketBase response for page ${page} (of ${totalPages}) did not contain an items array`);
|
|
69
|
+
}
|
|
70
|
+
const items = responseBody.items;
|
|
71
|
+
executions.push(...items.map((item) => ({ json: item })));
|
|
72
|
+
if (items.length === 0) {
|
|
73
|
+
if (page < totalPages) {
|
|
74
|
+
this.logger.warn(`PocketBase returned 0 items for page ${page} even though totalPages is ${totalPages}`, {
|
|
75
|
+
page,
|
|
76
|
+
totalPages,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
break;
|
|
80
|
+
}
|
|
81
|
+
page++;
|
|
82
|
+
} while (page <= totalPages);
|
|
83
|
+
return executions;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Common/GenericFunctions.ts"],"names":[],"mappings":";;;AAUA,0DAQC;AAMD,kEAKC;AAED,kDAKC;AAKD,gCAmFC;AApHD,iEAA4D;AAErD,KAAK,UAAU,uBAAuB,CAE3C,cAAmC;;IAEnC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gBAAgB,cAAc,CAAC,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,MAAA,cAAc,CAAC,EAAE,mCAAI,EAAE,CAAC,EAAE,CAClF,CAAC;IACF,OAAO,cAAc,CAAC;AACxB,CAAC;AAMM,KAAK,UAAU,2BAA2B,CAE/C,KAA2B;IAE3B,OAAO,KAAK,CAAC;AACf,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAEvC,cAAmC;IAEnC,OAAO,MAAM,yCAAkB,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;AAC7D,CAAC;AAEY,QAAA,yBAAyB,GAAG,mBAAmB,CAAC;AAChD,QAAA,yBAAyB,GAAG,mBAAmB,CAAC;AAEtD,KAAK,UAAU,UAAU,CAE9B,cAAwD;;;IAExD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,wBAAwB,EAAE,KAAK,CAAY,CAAC;IACtF,IAAI,UAAU,GAAyB,EAAE,CAAC;IAC1C,IAAI,IAAI,GAAW,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAW,CAAC;IACzE,IAAI,UAAU,GAAW,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAEvD,MAAA,cAAc,CAAC,OAAO,oCAAtB,cAAc,CAAC,OAAO,GAAK,EAAE,EAAC;IAC9B,YAAA,cAAc,CAAC,OAAO,EAAC,EAAE,uCAAF,EAAE,GAAK,EAAE,EAAC;IAEjC,MAAM,QAAQ,GAAG,IAAI,CAAC;IAEtB,GAAG,CAAC;QACF,IAAI,WAAW,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,kCAAkC,QAAQ,QAAQ,CAAC,CAAC;QACtE,CAAC;QACD,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC;QACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;QACnE,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAE/C,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,MAAM,YAAY,GAAG,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,CAAC,0CAAE,IAAmB,CAAC;QAE5D,IAAI,CAAC,YAAY,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAG9B,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qEAAqE,EAAE;oBACtF,IAAI,EAAE,YAAY,CAAC,IAAI;oBACvB,cAAc,EAAE,UAAU,CAAC,MAAM;iBAClC,CAAC,CAAC;gBACH,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QAED,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,qBAAqB,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;YAC1E,CAAC;YACD,UAAU,GAAG,aAAa,CAAC;YAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,OAAO,UAAU,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,gCAAgC,IAAI,QAAQ,UAAU,kCAAkC,CACzF,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,YAAY,CAAC,KAAsB,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,IAAI,GAAG,UAAU,EAAE,CAAC;gBACtB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wCAAwC,IAAI,8BAA8B,UAAU,EAAE,EACtF;oBACE,IAAI;oBACJ,UAAU;iBACX,CACF,CAAC;YACJ,CAAC;YACD,MAAM;QACR,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC,QAAQ,IAAI,IAAI,UAAU,EAAE;IAE7B,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -13,13 +13,29 @@ async function loadPocketBaseFields(collectionName = null) {
|
|
|
13
13
|
});
|
|
14
14
|
return fields;
|
|
15
15
|
}
|
|
16
|
+
function getRecordLabel(id, data) {
|
|
17
|
+
if (data.name !== null && data.name !== undefined && data.name !== "") {
|
|
18
|
+
return String(data.name);
|
|
19
|
+
}
|
|
20
|
+
const shortColumns = Object.entries(data)
|
|
21
|
+
.filter(([key, value]) => {
|
|
22
|
+
var _a;
|
|
23
|
+
if (key === "name" || key === "id")
|
|
24
|
+
return false;
|
|
25
|
+
const serialized = (_a = JSON.stringify(value)) !== null && _a !== void 0 ? _a : "";
|
|
26
|
+
return serialized.length <= 30 && serialized.length > 2;
|
|
27
|
+
})
|
|
28
|
+
.map(([key, value]) => `${key}: ${JSON.stringify(value)}`);
|
|
29
|
+
const fallback = shortColumns.join(", ").substring(0, 100);
|
|
30
|
+
return fallback || id || "";
|
|
31
|
+
}
|
|
16
32
|
exports.LoadOptions = {
|
|
17
33
|
async getCollections() {
|
|
18
34
|
const { url } = await this.getCredentials("pocketbaseHttpApi");
|
|
19
35
|
const normalizedUrl = url.replace(/\/$/, "");
|
|
20
36
|
const items = [];
|
|
21
37
|
let page = 1;
|
|
22
|
-
let totalPages =
|
|
38
|
+
let totalPages = 0;
|
|
23
39
|
do {
|
|
24
40
|
const { items: pageItems, totalPages: pageTotalPages } = await this.helpers.httpRequestWithAuthentication.call(this, "pocketbaseHttpApi", {
|
|
25
41
|
url: `${normalizedUrl}/api/collections`,
|
|
@@ -27,9 +43,7 @@ exports.LoadOptions = {
|
|
|
27
43
|
qs: { page },
|
|
28
44
|
});
|
|
29
45
|
items.push(...pageItems);
|
|
30
|
-
|
|
31
|
-
totalPages = pageTotalPages;
|
|
32
|
-
}
|
|
46
|
+
totalPages = pageTotalPages;
|
|
33
47
|
page++;
|
|
34
48
|
} while (page <= totalPages);
|
|
35
49
|
return items.map(({ name }) => ({ name, value: name }));
|
|
@@ -39,6 +53,10 @@ exports.LoadOptions = {
|
|
|
39
53
|
const fields = await loadPocketBaseFields.call(this);
|
|
40
54
|
fields === null || fields === void 0 ? void 0 : fields.forEach(({ name, type }) => {
|
|
41
55
|
if (type === "relation") {
|
|
56
|
+
returnData.push({
|
|
57
|
+
name,
|
|
58
|
+
value: name,
|
|
59
|
+
});
|
|
42
60
|
returnData.push({
|
|
43
61
|
name: `All fields from relation '${name}'`,
|
|
44
62
|
value: `expand.${name}.*`,
|
|
@@ -71,23 +89,32 @@ exports.LoadOptions = {
|
|
|
71
89
|
const { url } = await this.getCredentials("pocketbaseHttpApi");
|
|
72
90
|
const normalizedUrl = url.replace(/\/$/, "");
|
|
73
91
|
const resource = this.getNodeParameter("resource");
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
const items = [];
|
|
93
|
+
let page = 1;
|
|
94
|
+
let totalPages = 1;
|
|
95
|
+
const maxPages = 5;
|
|
96
|
+
do {
|
|
97
|
+
const { items: pageItems, totalPages: pageTotalPages } = await this.helpers.httpRequestWithAuthentication.call(this, "pocketbaseHttpApi", {
|
|
98
|
+
url: `${normalizedUrl}/api/collections/${resource}/records`,
|
|
99
|
+
method: "GET",
|
|
100
|
+
qs: { sort: "-created", page, perPage: 50 },
|
|
101
|
+
});
|
|
102
|
+
items.push(...pageItems);
|
|
103
|
+
totalPages = pageTotalPages;
|
|
104
|
+
page++;
|
|
105
|
+
} while (page <= totalPages && page <= maxPages);
|
|
106
|
+
if (items.length === 0) {
|
|
107
|
+
return [
|
|
108
|
+
{
|
|
109
|
+
name: "No records found",
|
|
110
|
+
value: "",
|
|
111
|
+
},
|
|
112
|
+
];
|
|
113
|
+
}
|
|
114
|
+
items.forEach((item) => {
|
|
115
|
+
const id = item.id;
|
|
89
116
|
returnData.push({
|
|
90
|
-
name:
|
|
117
|
+
name: getRecordLabel(id, item),
|
|
91
118
|
value: id,
|
|
92
119
|
});
|
|
93
120
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadOptions.js","sourceRoot":"","sources":["../../../nodes/Common/LoadOptions.ts"],"names":[],"mappings":";;;AAwBA,KAAK,UAAU,oBAAoB,CAEjC,iBAAgC,IAAI;IAEpC,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAC/D,MAAM,aAAa,GAAI,GAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,cAAc;QAC7B,CAAC,CAAC,cAAc;QAChB,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAuB,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACtE,IAAI,EACJ,mBAAmB,EACnB;QACE,GAAG,EAAE,GAAG,aAAa,oBAAoB,QAAQ,EAAE;QACnD,MAAM,EAAE,KAAK;KACd,CACF,CAAC;IAEF,OAAO,MAA2B,CAAC;AACrC,CAAC;AAKD,SAAS,cAAc,CAAC,EAAU,EAAE,IAAiB;IACnD,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAGD,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;SACtC,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;;QACvB,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QACjD,MAAM,UAAU,GAAG,MAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;QAE/C,OAAO,UAAU,CAAC,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1D,CAAC,CAAC;SACD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC3D,OAAO,QAAQ,IAAI,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC;AAEY,QAAA,WAAW,GAAG;IACzB,KAAK,CAAC,cAAc;QAClB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAI,GAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEzD,MAAM,KAAK,GAAuB,EAAE,CAAC;QACrC,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,IAAI,UAAU,GAAW,CAAC,CAAC;QAE3B,GAAG,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GACpD,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE;gBAC/E,GAAG,EAAE,GAAG,aAAa,kBAAkB;gBACvC,MAAM,EAAE,KAAK;gBACb,EAAE,EAAE,EAAE,IAAI,EAAE;aACb,CAAC,CAAC;YAEL,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;YACzB,UAAU,GAAG,cAAc,CAAC;YAC5B,IAAI,EAAE,CAAC;QACT,CAAC,QAAQ,IAAI,IAAI,UAAU,EAAE;QAE7B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAA2B,CAAC;IACpF,CAAC;IACD,KAAK,CAAC,SAAS;QACb,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI;oBACJ,KAAK,EAAE,IAAI;iBACZ,CAAC,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,6BAA6B,IAAI,GAAG;oBAC1C,KAAK,EAAE,UAAU,IAAI,IAAI;iBAC1B,CAAC,CAAC;gBAEH,OAAO;YACT,CAAC;YAED,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI;gBACJ,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,YAAY;QAChB,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;YACjC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACxB,OAAO;YACT,CAAC;YACD,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI;gBACJ,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,KAAK,CAAC,OAAO;QACX,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;QAC/D,MAAM,aAAa,GAAI,GAAc,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAsB,CAAC;QAExE,MAAM,KAAK,GAAkB,EAAE,CAAC;QAChC,IAAI,IAAI,GAAW,CAAC,CAAC;QACrB,IAAI,UAAU,GAAW,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,CAAC,CAAC;QAEnB,GAAG,CAAC;YACF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,GACpD,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE;gBAC/E,GAAG,EAAE,GAAG,aAAa,oBAAoB,QAAQ,UAAU;gBAC3D,MAAM,EAAE,KAAK;gBACb,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;aAC5C,CAAC,CAAC;YAEL,KAAK,CAAC,IAAI,CAAC,GAAI,SAA2B,CAAC,CAAC;YAC5C,UAAU,GAAG,cAAc,CAAC;YAC5B,IAAI,EAAE,CAAC;QACT,CAAC,QAAQ,IAAI,IAAI,UAAU,IAAI,IAAI,IAAI,QAAQ,EAAE;QAEjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO;gBACL;oBACE,IAAI,EAAE,kBAAkB;oBACxB,KAAK,EAAE,EAAE;iBACV;aACF,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,IAAI,CAAC,EAAY,CAAC;YAC7B,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC;gBAC9B,KAAK,EAAE,EAAE;aACV,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;CACF,CAAC"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { IHttpRequestHelper, ICredentialDataDecryptedObject } from "n8n-workflow";
|
|
2
|
+
export declare const inFlightRequests: Map<string, Promise<{
|
|
3
|
+
token: string;
|
|
4
|
+
}>>;
|
|
2
5
|
export declare function login(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<{
|
|
3
6
|
token: string;
|
|
4
7
|
}>;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.inFlightRequests = void 0;
|
|
4
|
+
exports.login = login;
|
|
5
|
+
exports.refresh = refresh;
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
function isTokenExpired(token) {
|
|
8
|
+
if (!token)
|
|
9
|
+
return true;
|
|
10
|
+
try {
|
|
11
|
+
const parts = token.split(".");
|
|
12
|
+
if (parts.length !== 3)
|
|
13
|
+
return true;
|
|
14
|
+
const base64 = parts[1].replace(/-/g, "+").replace(/_/g, "/");
|
|
15
|
+
const payload = JSON.parse(Buffer.from(base64, "base64").toString("utf-8"));
|
|
16
|
+
if (typeof payload.exp !== "number" || !Number.isFinite(payload.exp)) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return Date.now() / 1000 > payload.exp - 300;
|
|
20
|
+
}
|
|
21
|
+
catch {
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
exports.inFlightRequests = new Map();
|
|
26
|
+
function getCredentialFingerprint(credentials) {
|
|
27
|
+
const normalizedUrl = (credentials.url || "").replace(/\/$/, "");
|
|
28
|
+
const canonical = JSON.stringify({
|
|
29
|
+
url: normalizedUrl,
|
|
30
|
+
username: credentials.username || "",
|
|
31
|
+
password: credentials.password || "",
|
|
32
|
+
});
|
|
33
|
+
return (0, node_crypto_1.createHash)("sha256").update(canonical).digest("hex");
|
|
34
|
+
}
|
|
35
|
+
async function executeLogin(url, creds) {
|
|
36
|
+
const normalizedUrl = url.endsWith("/") ? url.slice(0, -1) : url;
|
|
37
|
+
const { token } = (await this.helpers.httpRequest({
|
|
38
|
+
method: "POST",
|
|
39
|
+
url: `${normalizedUrl}/api/collections/_superusers/auth-with-password`,
|
|
40
|
+
body: {
|
|
41
|
+
identity: creds.username,
|
|
42
|
+
password: creds.password,
|
|
43
|
+
},
|
|
44
|
+
}));
|
|
45
|
+
return { token };
|
|
46
|
+
}
|
|
47
|
+
function validateCredentials(credentials) {
|
|
48
|
+
if (typeof credentials !== "object" || credentials === null) {
|
|
49
|
+
throw new Error("Credentials must be an object");
|
|
50
|
+
}
|
|
51
|
+
const creds = credentials;
|
|
52
|
+
const { username, password, url } = creds;
|
|
53
|
+
if (typeof url !== "string" || url.trim() === "") {
|
|
54
|
+
throw new Error("PocketBase URL is missing or invalid in Credentials");
|
|
55
|
+
}
|
|
56
|
+
if (typeof username !== "string" || username.trim() === "") {
|
|
57
|
+
throw new Error("PocketBase Admin username is missing or invalid in Credentials");
|
|
58
|
+
}
|
|
59
|
+
if (typeof password !== "string" || password.trim() === "") {
|
|
60
|
+
throw new Error("PocketBase Admin password is missing or invalid in Credentials");
|
|
61
|
+
}
|
|
62
|
+
return creds;
|
|
63
|
+
}
|
|
64
|
+
async function login(credentials) {
|
|
65
|
+
const creds = validateCredentials(credentials);
|
|
66
|
+
const { url } = creds;
|
|
67
|
+
const fingerprint = getCredentialFingerprint(creds);
|
|
68
|
+
const existingRequest = exports.inFlightRequests.get(fingerprint);
|
|
69
|
+
if (existingRequest) {
|
|
70
|
+
return await existingRequest;
|
|
71
|
+
}
|
|
72
|
+
const loginPromise = executeLogin.call(this, url, creds);
|
|
73
|
+
exports.inFlightRequests.set(fingerprint, loginPromise);
|
|
74
|
+
try {
|
|
75
|
+
return await loginPromise;
|
|
76
|
+
}
|
|
77
|
+
finally {
|
|
78
|
+
exports.inFlightRequests.delete(fingerprint);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function refresh(credentials) {
|
|
82
|
+
const creds = validateCredentials(credentials);
|
|
83
|
+
const { url, token: existingToken } = credentials;
|
|
84
|
+
if (!isTokenExpired(existingToken)) {
|
|
85
|
+
return { token: existingToken };
|
|
86
|
+
}
|
|
87
|
+
const fingerprint = getCredentialFingerprint(creds);
|
|
88
|
+
const existingRequest = exports.inFlightRequests.get(fingerprint);
|
|
89
|
+
if (existingRequest) {
|
|
90
|
+
return await existingRequest;
|
|
91
|
+
}
|
|
92
|
+
const refreshFn = async () => {
|
|
93
|
+
const normalizedUrl = url.endsWith("/") ? url.slice(0, -1) : url;
|
|
94
|
+
try {
|
|
95
|
+
const { token } = (await this.helpers.httpRequest({
|
|
96
|
+
method: "POST",
|
|
97
|
+
url: `${normalizedUrl}/api/collections/_superusers/auth-refresh`,
|
|
98
|
+
headers: {
|
|
99
|
+
Authorization: existingToken,
|
|
100
|
+
},
|
|
101
|
+
}));
|
|
102
|
+
return { token };
|
|
103
|
+
}
|
|
104
|
+
catch (error) {
|
|
105
|
+
const err = error;
|
|
106
|
+
const httpCode = Number((err === null || err === void 0 ? void 0 : err.httpCode) || (err === null || err === void 0 ? void 0 : err.status));
|
|
107
|
+
if (httpCode === 401 || httpCode === 403 || httpCode === 404) {
|
|
108
|
+
return await executeLogin.call(this, url, creds);
|
|
109
|
+
}
|
|
110
|
+
throw error;
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
const refreshPromise = refreshFn();
|
|
114
|
+
exports.inFlightRequests.set(fingerprint, refreshPromise);
|
|
115
|
+
try {
|
|
116
|
+
return await refreshPromise;
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
exports.inFlightRequests.delete(fingerprint);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=PocketbaseAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PocketbaseAuth.js","sourceRoot":"","sources":["../../../nodes/Common/PocketbaseAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.prepareRequestBody = prepareRequestBody;
|
|
7
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
8
|
+
async function prepareRequestBody(requestOptions) {
|
|
9
|
+
var _a, _b, _c;
|
|
10
|
+
const bodyType = this.getNodeParameter("bodyType", ["fields"]);
|
|
11
|
+
const hasBinary = bodyType.includes("binaryData");
|
|
12
|
+
if (!hasBinary) {
|
|
13
|
+
const body = {};
|
|
14
|
+
if (bodyType.includes("fields")) {
|
|
15
|
+
const fields = this.getNodeParameter("fields", {
|
|
16
|
+
assignments: [],
|
|
17
|
+
});
|
|
18
|
+
(_a = fields === null || fields === void 0 ? void 0 : fields.assignments) === null || _a === void 0 ? void 0 : _a.forEach(({ name, value }) => {
|
|
19
|
+
if (name &&
|
|
20
|
+
typeof name === "string" &&
|
|
21
|
+
name.trim() !== "" &&
|
|
22
|
+
value !== undefined) {
|
|
23
|
+
const key = name.trim();
|
|
24
|
+
body[key] = value;
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
if (bodyType.includes("bodyJson")) {
|
|
29
|
+
const bodyJson = this.getNodeParameter("bodyJson", "{}");
|
|
30
|
+
const parsedBody = parseBodyJson(bodyJson);
|
|
31
|
+
const filteredParsedBody = {};
|
|
32
|
+
Object.entries(parsedBody).forEach(([key, value]) => {
|
|
33
|
+
if (key &&
|
|
34
|
+
typeof key === "string" &&
|
|
35
|
+
key.trim() !== "" &&
|
|
36
|
+
value !== undefined) {
|
|
37
|
+
const trimmedKey = key.trim();
|
|
38
|
+
filteredParsedBody[trimmedKey] = value;
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
Object.assign(body, filteredParsedBody);
|
|
42
|
+
}
|
|
43
|
+
requestOptions.body = body;
|
|
44
|
+
this.logger.debug(`Request URL: ${requestOptions.url} | [JSON body]`);
|
|
45
|
+
return requestOptions;
|
|
46
|
+
}
|
|
47
|
+
const formData = new form_data_1.default();
|
|
48
|
+
if (bodyType.includes("fields")) {
|
|
49
|
+
(_c = (_b = this.getNodeParameter("fields", { assignments: [] })) === null || _b === void 0 ? void 0 : _b.assignments) === null || _c === void 0 ? void 0 : _c.forEach(({ name, value }) => {
|
|
50
|
+
if (name &&
|
|
51
|
+
typeof name === "string" &&
|
|
52
|
+
name.trim() !== "" &&
|
|
53
|
+
value !== undefined) {
|
|
54
|
+
const key = name.trim();
|
|
55
|
+
const stringValue = (value === null) ? "null" : (typeof value === "object" ? JSON.stringify(value) : String(value));
|
|
56
|
+
formData.append(key, stringValue);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
if (bodyType.includes("bodyJson")) {
|
|
61
|
+
const bodyJson = this.getNodeParameter("bodyJson", "{}");
|
|
62
|
+
const parsedBody = parseBodyJson(bodyJson);
|
|
63
|
+
Object.entries(parsedBody).forEach(([key, value]) => {
|
|
64
|
+
if (key &&
|
|
65
|
+
typeof key === "string" &&
|
|
66
|
+
key.trim() !== "" &&
|
|
67
|
+
value !== undefined) {
|
|
68
|
+
const trimmedKey = key.trim();
|
|
69
|
+
const val = (value === null) ? "null" : (typeof value === "object" ? JSON.stringify(value) : String(value));
|
|
70
|
+
formData.append(trimmedKey, val);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
await handleBinaryData.apply(this, [formData]);
|
|
75
|
+
if (!requestOptions.headers) {
|
|
76
|
+
requestOptions.headers = {};
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
Object.keys(requestOptions.headers).forEach((key) => {
|
|
80
|
+
if (key.toLowerCase() === "content-type") {
|
|
81
|
+
delete requestOptions.headers[key];
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
Object.assign(requestOptions.headers, formData.getHeaders());
|
|
86
|
+
requestOptions.body = formData;
|
|
87
|
+
this.logger.debug(`Request URL: ${requestOptions.url} | [multipart body]`);
|
|
88
|
+
return requestOptions;
|
|
89
|
+
}
|
|
90
|
+
async function handleBinaryData(formData) {
|
|
91
|
+
const binaryPropertyName = (this.getNodeParameter("binaryPropertyName", undefined) || "").trim();
|
|
92
|
+
if (!binaryPropertyName) {
|
|
93
|
+
throw new Error("Binary data selected but no property name provided. Please specify which binary property to use.");
|
|
94
|
+
}
|
|
95
|
+
const binaryFieldName = (this.getNodeParameter("binaryFieldName", "") || "").trim();
|
|
96
|
+
const fieldName = binaryFieldName || "file";
|
|
97
|
+
this.logger.info("Adding binary data to request formData from property: " +
|
|
98
|
+
binaryPropertyName +
|
|
99
|
+
"\nat: " +
|
|
100
|
+
fieldName);
|
|
101
|
+
const binaryData = this.helpers.assertBinaryData(binaryPropertyName);
|
|
102
|
+
const dataBuffer = await this.helpers.getBinaryDataBuffer(binaryPropertyName);
|
|
103
|
+
formData.append(fieldName, dataBuffer, {
|
|
104
|
+
contentType: binaryData.mimeType,
|
|
105
|
+
filename: binaryData.fileName,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
function parseBodyJson(bodyJson) {
|
|
109
|
+
if (typeof bodyJson !== "string" &&
|
|
110
|
+
(typeof bodyJson !== "object" || bodyJson === null || Array.isArray(bodyJson))) {
|
|
111
|
+
throw new Error("JSON Body must be a JSON object or string");
|
|
112
|
+
}
|
|
113
|
+
let parsed;
|
|
114
|
+
if (typeof bodyJson === "string") {
|
|
115
|
+
try {
|
|
116
|
+
parsed = JSON.parse(bodyJson);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
120
|
+
throw new Error(`Invalid JSON in Body: ${message}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
parsed = bodyJson;
|
|
125
|
+
}
|
|
126
|
+
if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) {
|
|
127
|
+
throw new Error("JSON Body must be a JSON object");
|
|
128
|
+
}
|
|
129
|
+
return parsed;
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=RequestBodyFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestBodyFunctions.js","sourceRoot":"","sources":["../../../nodes/Common/RequestBodyFunctions.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.PocketbaseHttp = void 0;
|
|
4
4
|
const n8n_workflow_1 = require("n8n-workflow");
|
|
5
|
-
const GenericFunctions_1 = require("
|
|
6
|
-
const LoadOptions_1 = require("
|
|
5
|
+
const GenericFunctions_1 = require("../Common/GenericFunctions");
|
|
6
|
+
const LoadOptions_1 = require("../Common/LoadOptions");
|
|
7
7
|
class PocketbaseHttp {
|
|
8
8
|
constructor() {
|
|
9
9
|
this.description = {
|
|
@@ -27,7 +27,6 @@ class PocketbaseHttp {
|
|
|
27
27
|
},
|
|
28
28
|
],
|
|
29
29
|
requestDefaults: {
|
|
30
|
-
returnFullResponse: true,
|
|
31
30
|
baseURL: '={{$credentials.url.replace(new RegExp("/$"), "")}}',
|
|
32
31
|
headers: {
|
|
33
32
|
Accept: "application/json",
|
|
@@ -276,6 +275,7 @@ class PocketbaseHttp {
|
|
|
276
275
|
loadOptionsMethod: "getFields",
|
|
277
276
|
},
|
|
278
277
|
default: [],
|
|
278
|
+
description: "Add fields to be sent. To clear a field, use an expression: <code>={{ null }}</code>.",
|
|
279
279
|
},
|
|
280
280
|
{
|
|
281
281
|
displayName: "JSON Body",
|
|
@@ -289,6 +289,7 @@ class PocketbaseHttp {
|
|
|
289
289
|
},
|
|
290
290
|
default: "",
|
|
291
291
|
placeholder: "Body according to the collection's schema",
|
|
292
|
+
description: "JSON object to be sent. To clear a field, use <code>null</code> as value: <code>{\"myField\": null}</code>.",
|
|
292
293
|
},
|
|
293
294
|
{
|
|
294
295
|
displayName: "Binary Property Name",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PocketbaseHttp.node.js","sourceRoot":"","sources":["../../../nodes/PocketbaseHttp/PocketbaseHttp.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAC9F,
|
|
1
|
+
{"version":3,"file":"PocketbaseHttp.node.js","sourceRoot":"","sources":["../../../nodes/PocketbaseHttp/PocketbaseHttp.node.ts"],"names":[],"mappings":"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"}
|