n8n-nodes-dominusnode 1.2.0 → 1.3.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/CHANGELOG.md +1 -0
- package/README.md +13 -10
- package/dist/credentials/DominusNodeApi.credentials.js +1 -1
- package/dist/nodes/DominusNodeAccount/DominusNodeAccount.node.js +132 -9
- package/dist/nodes/DominusNodeAccount/DominusNodeAccount.node.js.map +1 -1
- package/dist/nodes/DominusNodeKeys/DominusNodeKeys.node.js +21 -4
- package/dist/nodes/DominusNodeKeys/DominusNodeKeys.node.js.map +1 -1
- package/dist/nodes/DominusNodePlans/DominusNodePlans.node.js +24 -5
- package/dist/nodes/DominusNodePlans/DominusNodePlans.node.js.map +1 -1
- package/dist/nodes/DominusNodeProxy/DominusNodeProxy.node.js +21 -8
- package/dist/nodes/DominusNodeProxy/DominusNodeProxy.node.js.map +1 -1
- package/dist/nodes/DominusNodeTeams/DominusNodeTeams.node.js +63 -12
- package/dist/nodes/DominusNodeTeams/DominusNodeTeams.node.js.map +1 -1
- package/dist/nodes/DominusNodeUsage/DominusNodeUsage.node.js.map +1 -1
- package/dist/nodes/DominusNodeWallet/DominusNodeWallet.node.js +320 -40
- package/dist/nodes/DominusNodeWallet/DominusNodeWallet.node.js.map +1 -1
- package/dist/shared/auth.js +1 -1
- package/dist/shared/auth.js.map +1 -1
- package/dist/shared/ssrf.js.map +1 -1
- package/package.json +2 -1
- package/src/credentials/DominusNodeApi.credentials.ts +0 -48
- package/src/index.ts +0 -8
- package/src/nodes/DominusNodeAccount/DominusNodeAccount.node.ts +0 -283
- package/src/nodes/DominusNodeKeys/DominusNodeKeys.node.ts +0 -192
- package/src/nodes/DominusNodePlans/DominusNodePlans.node.ts +0 -154
- package/src/nodes/DominusNodeProxy/DominusNodeProxy.node.ts +0 -470
- package/src/nodes/DominusNodeTeams/DominusNodeTeams.node.ts +0 -351
- package/src/nodes/DominusNodeUsage/DominusNodeUsage.node.ts +0 -183
- package/src/nodes/DominusNodeWallet/DominusNodeWallet.node.ts +0 -950
- package/src/shared/auth.ts +0 -287
- package/src/shared/constants.ts +0 -11
- package/src/shared/ssrf.ts +0 -257
- package/tests/DominusNodeProxy.test.ts +0 -281
- package/tests/DominusNodeUsage.test.ts +0 -250
- package/tests/DominusNodeWallet.test.ts +0 -591
- package/tests/ssrf.test.ts +0 -238
- package/tsconfig.json +0 -18
- package/vitest.config.ts +0 -8
package/dist/shared/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAuBH,sCAEC;AAUD,gDAcC;AAKD,sCAIC;AAWD,8CAkCC;AAUD,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/shared/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/ssrf.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssrf.js","sourceRoot":"","sources":["../../src/shared/ssrf.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA6BH,sCAuCC;AAsBD,
|
|
1
|
+
{"version":3,"file":"ssrf.js","sourceRoot":"","sources":["../../src/shared/ssrf.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;AA6BH,sCAuCC;AAsBD,kCAwGC;AAaD,kCA4CC;AAzPD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,cAAc;IACd,OAAO;IACP,oBAAoB;IACpB,SAAS;IACT,MAAM;IACN,0BAA0B;IAC1B,iBAAiB;CAClB,CAAC,CAAC;AAEH,8EAA8E;AAC9E,mDAAmD;AACnD,8EAA8E;AAE9E;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,QAAgB;IAC5C,wDAAwD;IACxD,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3B,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,IAAI,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;YAC9B,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;QACrF,CAAC;IACH,CAAC;IAED,iDAAiD;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,GAAW,CAAC;YAChB,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACnC,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC1B,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC9B,GAAG,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3B,CAAC;iBAAM,CAAC;gBACN,OAAO,IAAI,CAAC;YACd,CAAC;YACD,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,GAAG;gBAAE,OAAO,IAAI,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,uBAAuB;AACvB,8EAA8E;AAE9E;;;;;;;;;;;;;;;GAeG;AACH,SAAgB,WAAW,CAAC,QAAgB;IAC1C,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAE1C,sCAAsC;IACtC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAChC,IAAI,OAAO,KAAK,CAAC,CAAC,EAAE,CAAC;QACnB,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,UAAU,IAAI,EAAE,CAAC;IAEjC,sBAAsB;IACtB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAC7B,8CAA8C,CAC/C,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,YAAY;QACtC,IAAI,CAAC,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,aAAa;QACxC,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,cAAc;QAC1C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,iBAAiB;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC,CAAC,gBAAgB;QAClE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,iBAAiB;QAC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,sBAAsB;QACzE,IAAI,CAAC,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,CAAC,uBAAuB;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IACjC,IAAI,OAAO,KAAK,KAAK;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtE,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5C,wDAAwD;IACxD,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;QACzD,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC1F,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;IAED,+DAA+D;IAC/D,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;QACzD,wBAAwB;QACxB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;YACxD,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;gBAC1F,OAAO,WAAW,CAAC,aAAa,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,+BAA+B;gBAC/B,MAAM,UAAU,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC;gBAC3H,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,6CAA6C;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC7B,MAAM,UAAU,GAAG,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;gBACvF,OAAO,WAAW,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAE1C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,GAAW;IACrC,IAAI,MAAW,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CACb,sDAAsD,MAAM,CAAC,QAAQ,EAAE,CACxE,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;IAE/C,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,4BAA4B;IAC5B,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IAED,6BAA6B;IAC7B,IACE,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAC3B,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,oCAAoC;IACpC,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "n8n-nodes-dominusnode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "n8n community nodes for Dominus Node rotating proxy service (53 tools across 7 nodes)",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
23
|
"build": "tsc",
|
|
24
|
+
"prepare": "npm run build",
|
|
24
25
|
"test": "vitest run",
|
|
25
26
|
"lint": "tsc --noEmit"
|
|
26
27
|
},
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { ICredentialType, INodeProperties } from "n8n-workflow";
|
|
2
|
-
|
|
3
|
-
export class DominusNodeApi implements ICredentialType {
|
|
4
|
-
name = "dominusNodeApi";
|
|
5
|
-
displayName = "Dominus Node API";
|
|
6
|
-
documentationUrl = "https://docs.dominusnode.com";
|
|
7
|
-
properties: INodeProperties[] = [
|
|
8
|
-
{
|
|
9
|
-
displayName: "API Key",
|
|
10
|
-
name: "apiKey",
|
|
11
|
-
type: "string",
|
|
12
|
-
typeOptions: { password: true },
|
|
13
|
-
default: "",
|
|
14
|
-
required: true,
|
|
15
|
-
description: 'Dominus Node API key (starts with dn_live_ or dn_test_)',
|
|
16
|
-
},
|
|
17
|
-
{
|
|
18
|
-
displayName: "Base URL",
|
|
19
|
-
name: "baseUrl",
|
|
20
|
-
type: "string",
|
|
21
|
-
default: "https://api.dominusnode.com",
|
|
22
|
-
description: "Dominus Node API base URL",
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
displayName: "Proxy Host",
|
|
26
|
-
name: "proxyHost",
|
|
27
|
-
type: "string",
|
|
28
|
-
default: "proxy.dominusnode.com",
|
|
29
|
-
description: "Dominus Node proxy gateway hostname",
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
displayName: "Proxy Port",
|
|
33
|
-
name: "proxyPort",
|
|
34
|
-
type: "number",
|
|
35
|
-
default: 8080,
|
|
36
|
-
description: "Dominus Node proxy gateway port",
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
displayName: "Agent Secret",
|
|
40
|
-
name: "agentSecret",
|
|
41
|
-
type: "string",
|
|
42
|
-
typeOptions: { password: true },
|
|
43
|
-
default: "",
|
|
44
|
-
description:
|
|
45
|
-
"Optional agent secret for AI/MCP captcha bypass. When set, injects X-DominusNode-Agent and X-DominusNode-Agent-Secret headers.",
|
|
46
|
-
},
|
|
47
|
-
];
|
|
48
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export { DominusNodeApi } from "./credentials/DominusNodeApi.credentials";
|
|
2
|
-
export { DominusNodeProxy } from "./nodes/DominusNodeProxy/DominusNodeProxy.node";
|
|
3
|
-
export { DominusNodeWallet } from "./nodes/DominusNodeWallet/DominusNodeWallet.node";
|
|
4
|
-
export { DominusNodeUsage } from "./nodes/DominusNodeUsage/DominusNodeUsage.node";
|
|
5
|
-
export { DominusNodeAccount } from "./nodes/DominusNodeAccount/DominusNodeAccount.node";
|
|
6
|
-
export { DominusNodeKeys } from "./nodes/DominusNodeKeys/DominusNodeKeys.node";
|
|
7
|
-
export { DominusNodePlans } from "./nodes/DominusNodePlans/DominusNodePlans.node";
|
|
8
|
-
export { DominusNodeTeams } from "./nodes/DominusNodeTeams/DominusNodeTeams.node";
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dominus Node Account n8n community node.
|
|
3
|
-
*
|
|
4
|
-
* Operations (6 tools):
|
|
5
|
-
* - Register: Create a new account
|
|
6
|
-
* - Login: Log in with email and password
|
|
7
|
-
* - Get Account Info: Get current account details
|
|
8
|
-
* - Verify Email: Verify email with a token
|
|
9
|
-
* - Resend Verification: Resend the email verification link
|
|
10
|
-
* - Update Password: Change account password
|
|
11
|
-
*
|
|
12
|
-
* Security:
|
|
13
|
-
* - Credential sanitization in error messages
|
|
14
|
-
* - Email and password validation
|
|
15
|
-
* - Control character rejection
|
|
16
|
-
*
|
|
17
|
-
* @module
|
|
18
|
-
*/
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
IDataObject,
|
|
22
|
-
IExecuteFunctions,
|
|
23
|
-
INodeExecutionData,
|
|
24
|
-
INodeType,
|
|
25
|
-
INodeTypeDescription,
|
|
26
|
-
NodeOperationError,
|
|
27
|
-
} from "n8n-workflow";
|
|
28
|
-
|
|
29
|
-
import { DominusNodeAuth, sanitizeError } from "../../shared/auth";
|
|
30
|
-
|
|
31
|
-
const EMAIL_RE = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
32
|
-
const CONTROL_CHAR_RE = /[\x00-\x1f\x7f]/;
|
|
33
|
-
|
|
34
|
-
export class DominusNodeAccount implements INodeType {
|
|
35
|
-
description: INodeTypeDescription = {
|
|
36
|
-
displayName: "Dominus Node Account",
|
|
37
|
-
name: "dominusNodeAccount",
|
|
38
|
-
icon: "file:dominusnode.svg",
|
|
39
|
-
group: ["transform"],
|
|
40
|
-
version: 1,
|
|
41
|
-
subtitle: '={{$parameter["operation"]}}',
|
|
42
|
-
description: "Manage Dominus Node account registration, login, and settings",
|
|
43
|
-
defaults: { name: "Dominus Node Account" },
|
|
44
|
-
inputs: ["main"],
|
|
45
|
-
outputs: ["main"],
|
|
46
|
-
credentials: [{ name: "dominusNodeApi", required: true }],
|
|
47
|
-
properties: [
|
|
48
|
-
{
|
|
49
|
-
displayName: "Operation",
|
|
50
|
-
name: "operation",
|
|
51
|
-
type: "options",
|
|
52
|
-
noDataExpression: true,
|
|
53
|
-
options: [
|
|
54
|
-
{ name: "Register", value: "register", description: "Create a new account", action: "Register" },
|
|
55
|
-
{ name: "Login", value: "login", description: "Log in with email and password", action: "Login" },
|
|
56
|
-
{ name: "Get Account Info", value: "getAccountInfo", description: "Get current account details", action: "Get account info" },
|
|
57
|
-
{ name: "Verify Email", value: "verifyEmail", description: "Verify email with a token", action: "Verify email" },
|
|
58
|
-
{ name: "Resend Verification", value: "resendVerification", description: "Resend email verification link", action: "Resend verification" },
|
|
59
|
-
{ name: "Update Password", value: "updatePassword", description: "Change account password", action: "Update password" },
|
|
60
|
-
],
|
|
61
|
-
default: "getAccountInfo",
|
|
62
|
-
},
|
|
63
|
-
|
|
64
|
-
// --- Register / Login ---
|
|
65
|
-
{
|
|
66
|
-
displayName: "Email",
|
|
67
|
-
name: "email",
|
|
68
|
-
type: "string",
|
|
69
|
-
default: "",
|
|
70
|
-
required: true,
|
|
71
|
-
description: "Account email address",
|
|
72
|
-
displayOptions: { show: { operation: ["register", "login"] } },
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
displayName: "Password",
|
|
76
|
-
name: "password",
|
|
77
|
-
type: "string",
|
|
78
|
-
typeOptions: { password: true },
|
|
79
|
-
default: "",
|
|
80
|
-
required: true,
|
|
81
|
-
description: "Account password (8-128 characters)",
|
|
82
|
-
displayOptions: { show: { operation: ["register", "login"] } },
|
|
83
|
-
},
|
|
84
|
-
|
|
85
|
-
// --- Verify Email ---
|
|
86
|
-
{
|
|
87
|
-
displayName: "Verification Token",
|
|
88
|
-
name: "verificationToken",
|
|
89
|
-
type: "string",
|
|
90
|
-
default: "",
|
|
91
|
-
required: true,
|
|
92
|
-
description: "Email verification token received via email",
|
|
93
|
-
displayOptions: { show: { operation: ["verifyEmail"] } },
|
|
94
|
-
},
|
|
95
|
-
|
|
96
|
-
// --- Update Password ---
|
|
97
|
-
{
|
|
98
|
-
displayName: "Current Password",
|
|
99
|
-
name: "currentPassword",
|
|
100
|
-
type: "string",
|
|
101
|
-
typeOptions: { password: true },
|
|
102
|
-
default: "",
|
|
103
|
-
required: true,
|
|
104
|
-
description: "Current account password",
|
|
105
|
-
displayOptions: { show: { operation: ["updatePassword"] } },
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
displayName: "New Password",
|
|
109
|
-
name: "newPassword",
|
|
110
|
-
type: "string",
|
|
111
|
-
typeOptions: { password: true },
|
|
112
|
-
default: "",
|
|
113
|
-
required: true,
|
|
114
|
-
description: "New password (8-128 characters)",
|
|
115
|
-
displayOptions: { show: { operation: ["updatePassword"] } },
|
|
116
|
-
},
|
|
117
|
-
],
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
|
121
|
-
const items = this.getInputData();
|
|
122
|
-
const returnData: INodeExecutionData[] = [];
|
|
123
|
-
const credentials = await this.getCredentials("dominusNodeApi");
|
|
124
|
-
|
|
125
|
-
const apiKey = credentials.apiKey as string;
|
|
126
|
-
const baseUrl = (credentials.baseUrl as string) || "https://api.dominusnode.com";
|
|
127
|
-
|
|
128
|
-
if (!apiKey) {
|
|
129
|
-
throw new NodeOperationError(this.getNode(), "API Key is required");
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const agentSecret = (credentials.agentSecret as string) || undefined;
|
|
133
|
-
const auth = new DominusNodeAuth(apiKey, baseUrl, 30000, agentSecret);
|
|
134
|
-
const operation = this.getNodeParameter("operation", 0) as string;
|
|
135
|
-
|
|
136
|
-
for (let i = 0; i < items.length; i++) {
|
|
137
|
-
try {
|
|
138
|
-
let result: unknown;
|
|
139
|
-
|
|
140
|
-
switch (operation) {
|
|
141
|
-
case "register": {
|
|
142
|
-
const email = this.getNodeParameter("email", i) as string;
|
|
143
|
-
const password = this.getNodeParameter("password", i) as string;
|
|
144
|
-
const safeEmail = validateEmail(this, email, i);
|
|
145
|
-
const safePassword = validatePassword(this, password, i);
|
|
146
|
-
result = await auth.apiRequest("POST", "/api/auth/register", {
|
|
147
|
-
email: safeEmail,
|
|
148
|
-
password: safePassword,
|
|
149
|
-
});
|
|
150
|
-
break;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
case "login": {
|
|
154
|
-
const email = this.getNodeParameter("email", i) as string;
|
|
155
|
-
const password = this.getNodeParameter("password", i) as string;
|
|
156
|
-
const safeEmail = validateEmail(this, email, i);
|
|
157
|
-
const safePassword = validatePassword(this, password, i);
|
|
158
|
-
result = await auth.apiRequest("POST", "/api/auth/login", {
|
|
159
|
-
email: safeEmail,
|
|
160
|
-
password: safePassword,
|
|
161
|
-
});
|
|
162
|
-
break;
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
case "getAccountInfo": {
|
|
166
|
-
result = await auth.apiRequest("GET", "/api/auth/me");
|
|
167
|
-
break;
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
case "verifyEmail": {
|
|
171
|
-
const token = this.getNodeParameter("verificationToken", i) as string;
|
|
172
|
-
if (!token || typeof token !== "string" || token.trim().length === 0) {
|
|
173
|
-
throw new NodeOperationError(
|
|
174
|
-
this.getNode(),
|
|
175
|
-
"Verification token is required",
|
|
176
|
-
{ itemIndex: i },
|
|
177
|
-
);
|
|
178
|
-
}
|
|
179
|
-
if (CONTROL_CHAR_RE.test(token)) {
|
|
180
|
-
throw new NodeOperationError(
|
|
181
|
-
this.getNode(),
|
|
182
|
-
"Token contains invalid control characters",
|
|
183
|
-
{ itemIndex: i },
|
|
184
|
-
);
|
|
185
|
-
}
|
|
186
|
-
result = await auth.apiRequest("POST", "/api/auth/verify-email", {
|
|
187
|
-
token: token.trim(),
|
|
188
|
-
});
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
case "resendVerification": {
|
|
193
|
-
result = await auth.apiRequest("POST", "/api/auth/resend-verification");
|
|
194
|
-
break;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
case "updatePassword": {
|
|
198
|
-
const currentPassword = this.getNodeParameter("currentPassword", i) as string;
|
|
199
|
-
const newPassword = this.getNodeParameter("newPassword", i) as string;
|
|
200
|
-
validatePassword(this, currentPassword, i);
|
|
201
|
-
validatePassword(this, newPassword, i);
|
|
202
|
-
result = await auth.apiRequest("POST", "/api/auth/change-password", {
|
|
203
|
-
currentPassword,
|
|
204
|
-
newPassword,
|
|
205
|
-
});
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
default:
|
|
210
|
-
throw new NodeOperationError(
|
|
211
|
-
this.getNode(),
|
|
212
|
-
`Unknown operation: ${operation}`,
|
|
213
|
-
{ itemIndex: i },
|
|
214
|
-
);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
returnData.push({ json: (result ?? {}) as IDataObject });
|
|
218
|
-
} catch (err) {
|
|
219
|
-
if (this.continueOnFail()) {
|
|
220
|
-
returnData.push({
|
|
221
|
-
json: {
|
|
222
|
-
error: sanitizeError(err instanceof Error ? err.message : String(err)),
|
|
223
|
-
},
|
|
224
|
-
});
|
|
225
|
-
continue;
|
|
226
|
-
}
|
|
227
|
-
if (err instanceof NodeOperationError) throw err;
|
|
228
|
-
throw new NodeOperationError(
|
|
229
|
-
this.getNode(),
|
|
230
|
-
sanitizeError(err instanceof Error ? err.message : String(err)),
|
|
231
|
-
{ itemIndex: i },
|
|
232
|
-
);
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
return [returnData];
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
// ---------------------------------------------------------------------------
|
|
241
|
-
// Validation helpers
|
|
242
|
-
// ---------------------------------------------------------------------------
|
|
243
|
-
|
|
244
|
-
function validateEmail(
|
|
245
|
-
ctx: IExecuteFunctions,
|
|
246
|
-
email: string,
|
|
247
|
-
itemIndex: number,
|
|
248
|
-
): string {
|
|
249
|
-
const trimmed = (email ?? "").trim();
|
|
250
|
-
if (!trimmed || !EMAIL_RE.test(trimmed)) {
|
|
251
|
-
throw new NodeOperationError(ctx.getNode(), "A valid email address is required", { itemIndex });
|
|
252
|
-
}
|
|
253
|
-
if (trimmed.length > 254) {
|
|
254
|
-
throw new NodeOperationError(
|
|
255
|
-
ctx.getNode(),
|
|
256
|
-
"Email address too long (max 254 characters)",
|
|
257
|
-
{ itemIndex },
|
|
258
|
-
);
|
|
259
|
-
}
|
|
260
|
-
return trimmed;
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
function validatePassword(
|
|
264
|
-
ctx: IExecuteFunctions,
|
|
265
|
-
password: string,
|
|
266
|
-
itemIndex: number,
|
|
267
|
-
): string {
|
|
268
|
-
if (!password || password.length < 8) {
|
|
269
|
-
throw new NodeOperationError(
|
|
270
|
-
ctx.getNode(),
|
|
271
|
-
"Password must be at least 8 characters",
|
|
272
|
-
{ itemIndex },
|
|
273
|
-
);
|
|
274
|
-
}
|
|
275
|
-
if (password.length > 128) {
|
|
276
|
-
throw new NodeOperationError(
|
|
277
|
-
ctx.getNode(),
|
|
278
|
-
"Password must be at most 128 characters",
|
|
279
|
-
{ itemIndex },
|
|
280
|
-
);
|
|
281
|
-
}
|
|
282
|
-
return password;
|
|
283
|
-
}
|
|
@@ -1,192 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dominus Node Keys n8n community node.
|
|
3
|
-
*
|
|
4
|
-
* Operations (3 tools):
|
|
5
|
-
* - List Keys: List all API keys
|
|
6
|
-
* - Create Key: Create a new API key
|
|
7
|
-
* - Revoke Key: Revoke an existing API key
|
|
8
|
-
*
|
|
9
|
-
* Security:
|
|
10
|
-
* - UUID validation for key IDs
|
|
11
|
-
* - Control character rejection in labels
|
|
12
|
-
* - Credential sanitization in error messages
|
|
13
|
-
*
|
|
14
|
-
* @module
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
IDataObject,
|
|
19
|
-
IExecuteFunctions,
|
|
20
|
-
INodeExecutionData,
|
|
21
|
-
INodeType,
|
|
22
|
-
INodeTypeDescription,
|
|
23
|
-
NodeOperationError,
|
|
24
|
-
} from "n8n-workflow";
|
|
25
|
-
|
|
26
|
-
import { DominusNodeAuth, sanitizeError } from "../../shared/auth";
|
|
27
|
-
|
|
28
|
-
const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
29
|
-
const CONTROL_CHAR_RE = /[\x00-\x1f\x7f]/;
|
|
30
|
-
|
|
31
|
-
export class DominusNodeKeys implements INodeType {
|
|
32
|
-
description: INodeTypeDescription = {
|
|
33
|
-
displayName: "Dominus Node Keys",
|
|
34
|
-
name: "dominusNodeKeys",
|
|
35
|
-
icon: "file:dominusnode.svg",
|
|
36
|
-
group: ["transform"],
|
|
37
|
-
version: 1,
|
|
38
|
-
subtitle: '={{$parameter["operation"]}}',
|
|
39
|
-
description: "Manage Dominus Node API keys",
|
|
40
|
-
defaults: { name: "Dominus Node Keys" },
|
|
41
|
-
inputs: ["main"],
|
|
42
|
-
outputs: ["main"],
|
|
43
|
-
credentials: [{ name: "dominusNodeApi", required: true }],
|
|
44
|
-
properties: [
|
|
45
|
-
{
|
|
46
|
-
displayName: "Operation",
|
|
47
|
-
name: "operation",
|
|
48
|
-
type: "options",
|
|
49
|
-
noDataExpression: true,
|
|
50
|
-
options: [
|
|
51
|
-
{ name: "List Keys", value: "listKeys", description: "List all API keys", action: "List keys" },
|
|
52
|
-
{ name: "Create Key", value: "createKey", description: "Create a new API key", action: "Create key" },
|
|
53
|
-
{ name: "Revoke Key", value: "revokeKey", description: "Revoke an existing API key", action: "Revoke key" },
|
|
54
|
-
],
|
|
55
|
-
default: "listKeys",
|
|
56
|
-
},
|
|
57
|
-
|
|
58
|
-
// --- Create Key ---
|
|
59
|
-
{
|
|
60
|
-
displayName: "Label",
|
|
61
|
-
name: "keyLabel",
|
|
62
|
-
type: "string",
|
|
63
|
-
default: "",
|
|
64
|
-
required: true,
|
|
65
|
-
description: "Label for the new API key (max 100 chars)",
|
|
66
|
-
displayOptions: { show: { operation: ["createKey"] } },
|
|
67
|
-
},
|
|
68
|
-
|
|
69
|
-
// --- Revoke Key ---
|
|
70
|
-
{
|
|
71
|
-
displayName: "Key ID",
|
|
72
|
-
name: "keyId",
|
|
73
|
-
type: "string",
|
|
74
|
-
default: "",
|
|
75
|
-
required: true,
|
|
76
|
-
description: "UUID of the API key to revoke",
|
|
77
|
-
displayOptions: { show: { operation: ["revokeKey"] } },
|
|
78
|
-
},
|
|
79
|
-
],
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
async execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]> {
|
|
83
|
-
const items = this.getInputData();
|
|
84
|
-
const returnData: INodeExecutionData[] = [];
|
|
85
|
-
const credentials = await this.getCredentials("dominusNodeApi");
|
|
86
|
-
|
|
87
|
-
const apiKey = credentials.apiKey as string;
|
|
88
|
-
const baseUrl = (credentials.baseUrl as string) || "https://api.dominusnode.com";
|
|
89
|
-
|
|
90
|
-
if (!apiKey) {
|
|
91
|
-
throw new NodeOperationError(this.getNode(), "API Key is required");
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
const agentSecret = (credentials.agentSecret as string) || undefined;
|
|
95
|
-
const auth = new DominusNodeAuth(apiKey, baseUrl, 30000, agentSecret);
|
|
96
|
-
const operation = this.getNodeParameter("operation", 0) as string;
|
|
97
|
-
|
|
98
|
-
for (let i = 0; i < items.length; i++) {
|
|
99
|
-
try {
|
|
100
|
-
let result: unknown;
|
|
101
|
-
|
|
102
|
-
switch (operation) {
|
|
103
|
-
case "listKeys": {
|
|
104
|
-
result = await auth.apiRequest("GET", "/api/keys");
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
case "createKey": {
|
|
109
|
-
const label = this.getNodeParameter("keyLabel", i) as string;
|
|
110
|
-
if (!label || typeof label !== "string" || label.length === 0) {
|
|
111
|
-
throw new NodeOperationError(
|
|
112
|
-
this.getNode(),
|
|
113
|
-
"Key label is required",
|
|
114
|
-
{ itemIndex: i },
|
|
115
|
-
);
|
|
116
|
-
}
|
|
117
|
-
if (label.length > 100) {
|
|
118
|
-
throw new NodeOperationError(
|
|
119
|
-
this.getNode(),
|
|
120
|
-
"Key label must be 100 characters or fewer",
|
|
121
|
-
{ itemIndex: i },
|
|
122
|
-
);
|
|
123
|
-
}
|
|
124
|
-
if (CONTROL_CHAR_RE.test(label)) {
|
|
125
|
-
throw new NodeOperationError(
|
|
126
|
-
this.getNode(),
|
|
127
|
-
"Key label contains invalid control characters",
|
|
128
|
-
{ itemIndex: i },
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
result = await auth.apiRequest("POST", "/api/keys", { label });
|
|
132
|
-
break;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
case "revokeKey": {
|
|
136
|
-
const keyId = this.getNodeParameter("keyId", i) as string;
|
|
137
|
-
validateUuid(this, keyId, "keyId", i);
|
|
138
|
-
result = await auth.apiRequest(
|
|
139
|
-
"DELETE",
|
|
140
|
-
`/api/keys/${encodeURIComponent(keyId)}`,
|
|
141
|
-
);
|
|
142
|
-
break;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
default:
|
|
146
|
-
throw new NodeOperationError(
|
|
147
|
-
this.getNode(),
|
|
148
|
-
`Unknown operation: ${operation}`,
|
|
149
|
-
{ itemIndex: i },
|
|
150
|
-
);
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
returnData.push({ json: (result ?? {}) as IDataObject });
|
|
154
|
-
} catch (err) {
|
|
155
|
-
if (this.continueOnFail()) {
|
|
156
|
-
returnData.push({
|
|
157
|
-
json: {
|
|
158
|
-
error: sanitizeError(err instanceof Error ? err.message : String(err)),
|
|
159
|
-
},
|
|
160
|
-
});
|
|
161
|
-
continue;
|
|
162
|
-
}
|
|
163
|
-
if (err instanceof NodeOperationError) throw err;
|
|
164
|
-
throw new NodeOperationError(
|
|
165
|
-
this.getNode(),
|
|
166
|
-
sanitizeError(err instanceof Error ? err.message : String(err)),
|
|
167
|
-
{ itemIndex: i },
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
return [returnData];
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
// ---------------------------------------------------------------------------
|
|
177
|
-
// Validation helpers
|
|
178
|
-
// ---------------------------------------------------------------------------
|
|
179
|
-
|
|
180
|
-
function validateUuid(
|
|
181
|
-
ctx: IExecuteFunctions,
|
|
182
|
-
value: string,
|
|
183
|
-
fieldName: string,
|
|
184
|
-
itemIndex: number,
|
|
185
|
-
): void {
|
|
186
|
-
if (!value || typeof value !== "string") {
|
|
187
|
-
throw new NodeOperationError(ctx.getNode(), `${fieldName} is required`, { itemIndex });
|
|
188
|
-
}
|
|
189
|
-
if (!UUID_RE.test(value)) {
|
|
190
|
-
throw new NodeOperationError(ctx.getNode(), `${fieldName} must be a valid UUID`, { itemIndex });
|
|
191
|
-
}
|
|
192
|
-
}
|