@thegraphitelab/n8n-nodes-toolbox 0.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.
Files changed (96) hide show
  1. package/README.md +16 -0
  2. package/dist/credentials/ToolboxApi.credentials.d.ts +10 -0
  3. package/dist/credentials/ToolboxApi.credentials.js +37 -0
  4. package/dist/credentials/ToolboxApi.credentials.js.map +1 -0
  5. package/dist/nodes/Toolbox/Toolbox.node.d.ts +4 -0
  6. package/dist/nodes/Toolbox/Toolbox.node.js +24 -0
  7. package/dist/nodes/Toolbox/Toolbox.node.js.map +1 -0
  8. package/dist/nodes/Toolbox/Toolbox.node.json +18 -0
  9. package/dist/nodes/Toolbox/ToolboxTrigger.node.d.ts +4 -0
  10. package/dist/nodes/Toolbox/ToolboxTrigger.node.js +24 -0
  11. package/dist/nodes/Toolbox/ToolboxTrigger.node.js.map +1 -0
  12. package/dist/nodes/Toolbox/ToolboxTrigger.node.json +18 -0
  13. package/dist/nodes/Toolbox/__tests__/helpers.d.ts +32 -0
  14. package/dist/nodes/Toolbox/__tests__/helpers.js +73 -0
  15. package/dist/nodes/Toolbox/__tests__/helpers.js.map +1 -0
  16. package/dist/nodes/Toolbox/eli.svg +106 -0
  17. package/dist/nodes/Toolbox/v1/ToolboxTriggerV1.node.d.ts +18 -0
  18. package/dist/nodes/Toolbox/v1/ToolboxTriggerV1.node.js +60 -0
  19. package/dist/nodes/Toolbox/v1/ToolboxTriggerV1.node.js.map +1 -0
  20. package/dist/nodes/Toolbox/v1/ToolboxV1.node.d.ts +11 -0
  21. package/dist/nodes/Toolbox/v1/ToolboxV1.node.js +52 -0
  22. package/dist/nodes/Toolbox/v1/ToolboxV1.node.js.map +1 -0
  23. package/dist/nodes/Toolbox/v1/actions/router.d.ts +2 -0
  24. package/dist/nodes/Toolbox/v1/actions/router.js +65 -0
  25. package/dist/nodes/Toolbox/v1/actions/router.js.map +1 -0
  26. package/dist/nodes/Toolbox/v1/actions/utils.d.ts +38 -0
  27. package/dist/nodes/Toolbox/v1/actions/utils.js +36 -0
  28. package/dist/nodes/Toolbox/v1/actions/utils.js.map +1 -0
  29. package/dist/nodes/Toolbox/v1/actions/webhookInstance/executes.d.ts +5 -0
  30. package/dist/nodes/Toolbox/v1/actions/webhookInstance/executes.js +99 -0
  31. package/dist/nodes/Toolbox/v1/actions/webhookInstance/executes.js.map +1 -0
  32. package/dist/nodes/Toolbox/v1/actions/webhookSubscription/webhookMethods.d.ts +8 -0
  33. package/dist/nodes/Toolbox/v1/actions/webhookSubscription/webhookMethods.js +68 -0
  34. package/dist/nodes/Toolbox/v1/actions/webhookSubscription/webhookMethods.js.map +1 -0
  35. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/hints.d.ts +0 -0
  36. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/hints.js +2 -0
  37. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/hints.js.map +1 -0
  38. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/inputs.d.ts +2 -0
  39. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/inputs.js +85 -0
  40. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/inputs.js.map +1 -0
  41. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/const.d.ts +3 -0
  42. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/const.js +6 -0
  43. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/const.js.map +1 -0
  44. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/index.d.ts +2 -0
  45. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/index.js +71 -0
  46. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/index.js.map +1 -0
  47. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/operation.options.d.ts +2 -0
  48. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/operation.options.js +34 -0
  49. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/operation.options.js.map +1 -0
  50. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/resource.options.d.ts +6 -0
  51. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/resource.options.js +10 -0
  52. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookInstance/resource.options.js.map +1 -0
  53. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/const.d.ts +3 -0
  54. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/const.js +6 -0
  55. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/const.js.map +1 -0
  56. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/index.d.ts +2 -0
  57. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/index.js +29 -0
  58. package/dist/nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/index.js.map +1 -0
  59. package/dist/nodes/Toolbox/v1/descriptions/node.description.d.ts +3 -0
  60. package/dist/nodes/Toolbox/v1/descriptions/node.description.js +18 -0
  61. package/dist/nodes/Toolbox/v1/descriptions/node.description.js.map +1 -0
  62. package/dist/nodes/Toolbox/v1/descriptions/trigger.description.d.ts +3 -0
  63. package/dist/nodes/Toolbox/v1/descriptions/trigger.description.js +7 -0
  64. package/dist/nodes/Toolbox/v1/descriptions/trigger.description.js.map +1 -0
  65. package/dist/nodes/Toolbox/v1/methods/index.d.ts +2 -0
  66. package/dist/nodes/Toolbox/v1/methods/index.js +29 -0
  67. package/dist/nodes/Toolbox/v1/methods/index.js.map +1 -0
  68. package/dist/nodes/Toolbox/v1/methods/loadOptions.d.ts +2 -0
  69. package/dist/nodes/Toolbox/v1/methods/loadOptions.js +12 -0
  70. package/dist/nodes/Toolbox/v1/methods/loadOptions.js.map +1 -0
  71. package/dist/nodes/Toolbox/v1/methods/resourceMapping.d.ts +3 -0
  72. package/dist/nodes/Toolbox/v1/methods/resourceMapping.js +44 -0
  73. package/dist/nodes/Toolbox/v1/methods/resourceMapping.js.map +1 -0
  74. package/dist/nodes/Toolbox/v1/node.type.d.ts +9 -0
  75. package/dist/nodes/Toolbox/v1/node.type.js +3 -0
  76. package/dist/nodes/Toolbox/v1/node.type.js.map +1 -0
  77. package/dist/nodes/Toolbox/v1/transport/index.d.ts +11 -0
  78. package/dist/nodes/Toolbox/v1/transport/index.js +45 -0
  79. package/dist/nodes/Toolbox/v1/transport/index.js.map +1 -0
  80. package/dist/nodes/Toolbox/v1/types.d.ts +2 -0
  81. package/dist/nodes/Toolbox/v1/types.js +3 -0
  82. package/dist/nodes/Toolbox/v1/types.js.map +1 -0
  83. package/dist/package.json +64 -0
  84. package/dist/utils/displayOptions.d.ts +2 -0
  85. package/dist/utils/displayOptions.js +14 -0
  86. package/dist/utils/displayOptions.js.map +1 -0
  87. package/dist/utils/error.d.ts +3 -0
  88. package/dist/utils/error.js +12 -0
  89. package/dist/utils/error.js.map +1 -0
  90. package/dist/utils/object.d.ts +2 -0
  91. package/dist/utils/object.js +16 -0
  92. package/dist/utils/object.js.map +1 -0
  93. package/dist/utils/pipe.d.ts +1 -0
  94. package/dist/utils/pipe.js +10 -0
  95. package/dist/utils/pipe.js.map +1 -0
  96. package/package.json +64 -0
@@ -0,0 +1,2 @@
1
+ import { INodeProperties } from "n8n-workflow";
2
+ export declare const description: INodeProperties[];
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.description = void 0;
4
+ const utils_1 = require("../../../actions/utils");
5
+ const inputs_1 = require("../inputs");
6
+ const event = {
7
+ displayName: "Events",
8
+ name: "event",
9
+ type: "options",
10
+ noDataExpression: true,
11
+ default: "subscribe",
12
+ options: [
13
+ {
14
+ name: "Webhook Instance",
15
+ value: "subscribe",
16
+ action: "Subscribe to a webhook instance",
17
+ },
18
+ ],
19
+ };
20
+ const getDesc = (0, utils_1.getDescription)({
21
+ requiredInputs: [
22
+ inputs_1.inputs.webhookID,
23
+ inputs_1.inputs.webhookEventType,
24
+ inputs_1.inputs.onlyFirstVisit,
25
+ ],
26
+ displayOptions: {},
27
+ });
28
+ exports.description = [event, ...getDesc];
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../nodes/Toolbox/v1/descriptions/Webhooks/webhookSubscription/index.ts"],"names":[],"mappings":";;;AACA,kDAAwD;AACxD,sCAAmC;AAEnC,MAAM,KAAK,GAAoB;IAC3B,WAAW,EAAE,QAAQ;IACrB,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,SAAS;IACf,gBAAgB,EAAE,IAAI;IACtB,OAAO,EAAE,WAAW;IACpB,OAAO,EAAE;QACL;YACI,IAAI,EAAE,kBAAkB;YACxB,KAAK,EAAE,WAAW;YAClB,MAAM,EAAE,iCAAiC;SAC5C;KACJ;CACJ,CAAC;AACF,MAAM,OAAO,GAAG,IAAA,sBAAc,EAAC;IAC3B,cAAc,EAAE;QACZ,eAAM,CAAC,SAAS;QAChB,eAAM,CAAC,gBAAgB;QACvB,eAAM,CAAC,cAAc;KACxB;IACD,cAAc,EAAE,EAAE;CACrB,CAAC,CAAC;AAEU,QAAA,WAAW,GAAG,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from "n8n-workflow";
2
+ declare const properties: INodeProperties[];
3
+ export { properties };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = void 0;
4
+ const webhookInstance_1 = require("./Webhooks/webhookInstance");
5
+ const resource_options_1 = require("./Webhooks/webhookInstance/resource.options");
6
+ const properties = [
7
+ {
8
+ displayName: "Resource",
9
+ name: "resource",
10
+ type: "options",
11
+ noDataExpression: true,
12
+ default: "webhookInstance",
13
+ options: resource_options_1.options,
14
+ },
15
+ ...webhookInstance_1.description,
16
+ ];
17
+ exports.properties = properties;
18
+ //# sourceMappingURL=node.description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.description.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/descriptions/node.description.ts"],"names":[],"mappings":";;;AACA,gEAAuF;AACvF,kFAAsE;AAEtE,MAAM,UAAU,GAAsB;IAClC;QACI,WAAW,EAAE,UAAU;QACvB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAP,0BAAO;KACV;IACD,GAAG,6BAA0B;CAChC,CAAC;AAEO,gCAAU"}
@@ -0,0 +1,3 @@
1
+ import { INodeProperties } from "n8n-workflow";
2
+ declare const properties: INodeProperties[];
3
+ export { properties };
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.properties = void 0;
4
+ const webhookSubscription_1 = require("./Webhooks/webhookSubscription");
5
+ const properties = [...webhookSubscription_1.description];
6
+ exports.properties = properties;
7
+ //# sourceMappingURL=trigger.description.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger.description.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/descriptions/trigger.description.ts"],"names":[],"mappings":";;;AACA,wEAA+F;AAE/F,MAAM,UAAU,GAAsB,CAAC,GAAG,iCAA8B,CAAC,CAAC;AAEjE,gCAAU"}
@@ -0,0 +1,2 @@
1
+ export * as resourceMapping from "./resourceMapping";
2
+ export * as loadOptions from "./loadOptions";
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.loadOptions = exports.resourceMapping = void 0;
27
+ exports.resourceMapping = __importStar(require("./resourceMapping"));
28
+ exports.loadOptions = __importStar(require("./loadOptions"));
29
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/methods/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAAqD;AACrD,6DAA6C"}
@@ -0,0 +1,2 @@
1
+ import { ILoadOptionsFunctions, INodePropertyOptions } from "n8n-workflow";
2
+ export declare function getWebhooks(this: ILoadOptionsFunctions): Promise<INodePropertyOptions[]>;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebhooks = getWebhooks;
4
+ const transport_1 = require("../transport");
5
+ async function getWebhooks() {
6
+ const result = await transport_1.toolboxApiRequest.call(this, {
7
+ method: "GET",
8
+ endpoint: "webhooks",
9
+ });
10
+ return result.map(({ title, id }) => ({ name: title, value: id }));
11
+ }
12
+ //# sourceMappingURL=loadOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadOptions.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/methods/loadOptions.ts"],"names":[],"mappings":";;AAQA,kCASC;AAhBD,4CAAiD;AAO1C,KAAK,UAAU,WAAW;IAG7B,MAAM,MAAM,GAAsB,MAAM,6BAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;QACjE,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,UAAU;KACvB,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { ILoadOptionsFunctions, ResourceMapperFields } from "n8n-workflow";
2
+ declare function getWebhookInputs(this: ILoadOptionsFunctions): Promise<ResourceMapperFields>;
3
+ export { getWebhookInputs };
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getWebhookInputs = getWebhookInputs;
4
+ const transport_1 = require("../transport");
5
+ // TODO: map the Toolbox API's field types to n8n FieldType explicitly (e.g. a
6
+ // lookup table) rather than this allow-list; unrecognized types silently fall
7
+ // back to "string", which can mask API/UI type mismatches.
8
+ function sanitizeType(type) {
9
+ if ("boolean" === type ||
10
+ "number" === type ||
11
+ "string" === type ||
12
+ "string-alphanumeric" === type ||
13
+ "dateTime" === type ||
14
+ "time" === type ||
15
+ "array" === type ||
16
+ "object" === type ||
17
+ "options" === type ||
18
+ "url" === type ||
19
+ "jwt" === type ||
20
+ "form-fields" === type ||
21
+ "binary" === type) {
22
+ return type;
23
+ }
24
+ return "string";
25
+ }
26
+ async function getWebhookInputs() {
27
+ const webhookId = this.getNodeParameter("webhookID", 0);
28
+ const response = await transport_1.toolboxApiRequest.call(this, {
29
+ method: "GET",
30
+ endpoint: `webhooks/${webhookId}`,
31
+ });
32
+ const variables = response.variables || [];
33
+ const fields = variables.map(({ name, key, type, required }) => ({
34
+ id: key,
35
+ displayName: name,
36
+ value: name,
37
+ type: sanitizeType(type),
38
+ required,
39
+ display: true,
40
+ defaultMatch: false,
41
+ }));
42
+ return { fields };
43
+ }
44
+ //# sourceMappingURL=resourceMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceMapping.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/methods/resourceMapping.ts"],"names":[],"mappings":";;AAiES,4CAAgB;AA3DzB,4CAAiD;AASjD,8EAA8E;AAC9E,8EAA8E;AAC9E,2DAA2D;AAC3D,SAAS,YAAY,CAAC,IAAY;IAC9B,IACI,SAAS,KAAK,IAAI;QAClB,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,IAAI;QACjB,qBAAqB,KAAK,IAAI;QAC9B,UAAU,KAAK,IAAI;QACnB,MAAM,KAAK,IAAI;QACf,OAAO,KAAK,IAAI;QAChB,QAAQ,KAAK,IAAI;QACjB,SAAS,KAAK,IAAI;QAClB,KAAK,KAAK,IAAI;QACd,KAAK,KAAK,IAAI;QACd,aAAa,KAAK,IAAI;QACtB,QAAQ,KAAK,IAAI,EACnB,CAAC;QACC,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,QAAQ,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,gBAAgB;IAG3B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,6BAAiB,CAAC,IAAI,CAAC,IAAI,EAAE;QAChD,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,YAAY,SAAS,EAAE;KACpC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAmB,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;IAE3D,MAAM,MAAM,GAA0B,SAAS,CAAC,GAAG,CAC/C,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QAChC,EAAE,EAAE,GAAG;QACP,WAAW,EAAE,IAAI;QACjB,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC;QACxB,QAAQ;QACR,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,KAAK;KACtB,CAAC,CACL,CAAC;IACF,OAAO,EAAE,MAAM,EAAE,CAAC;AACtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { AllEntities } from "n8n-workflow";
2
+ import { WebhookInstanceOperations } from "./descriptions/Webhooks/webhookInstance/const";
3
+ type NodeMap = {
4
+ webhookInstance: WebhookInstanceOperations;
5
+ };
6
+ export type NodeResource = keyof NodeMap;
7
+ export type NodeOperation = NodeMap[NodeResource];
8
+ export type Toolbox = AllEntities<NodeMap>;
9
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=node.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.type.js","sourceRoot":"","sources":["../../../../nodes/Toolbox/v1/node.type.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { IDataObject, IHttpRequestMethods } from "n8n-workflow";
2
+ import { Caller } from "../types";
3
+ export interface IToolboxApiRequest {
4
+ method: IHttpRequestMethods;
5
+ endpoint: string;
6
+ body?: IDataObject;
7
+ qs?: IDataObject;
8
+ headers?: IDataObject;
9
+ option?: IDataObject;
10
+ }
11
+ export declare function toolboxApiRequest(this: Caller, { method, endpoint, body, qs, headers, option }: IToolboxApiRequest): Promise<any>;
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toolboxApiRequest = toolboxApiRequest;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const object_1 = require("../../../../utils/object");
6
+ const pipe_1 = require("../../../../utils/pipe");
7
+ function populateOptions(method, apiUrl, body = {}, qs = {}, headers = {}, option = { json: true }) {
8
+ const withPopulatedOptions = (option) => (options) => (0, object_1.copyInto)(options, option);
9
+ const withPopulatedHeaders = (headers) => (options) => {
10
+ if (Object.keys(headers).length > 0) {
11
+ options.headers = Object.assign({}, options.headers, headers);
12
+ }
13
+ return options;
14
+ };
15
+ const withSanitizedBody = (body) => (options) => {
16
+ if (Object.keys(body).length === 0) {
17
+ return (0, object_1.omit)(options, "body");
18
+ }
19
+ return options;
20
+ };
21
+ // TODO: Content-Type is set here, merged again via populateOptions, and also
22
+ // declared in the node's requestDefaults. Consolidate to a single source.
23
+ const baseOptions = {
24
+ headers: {
25
+ "Content-Type": "application/json",
26
+ },
27
+ method,
28
+ body,
29
+ qs,
30
+ url: apiUrl,
31
+ };
32
+ return (0, pipe_1.pipe)(withPopulatedOptions(option), withPopulatedHeaders(headers), withSanitizedBody(body))(baseOptions);
33
+ }
34
+ async function toolboxApiRequest({ method, endpoint, body, qs, headers, option }) {
35
+ const baseUrl = "https://api.thegraphitelab.com";
36
+ const apiUrl = `${baseUrl}/${endpoint}`;
37
+ const options = populateOptions.call(this, method, apiUrl, body, qs, headers, option);
38
+ try {
39
+ return await this.helpers.httpRequestWithAuthentication.call(this, "toolboxApi", options);
40
+ }
41
+ catch (e) {
42
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), e);
43
+ }
44
+ }
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../nodes/Toolbox/v1/transport/index.ts"],"names":[],"mappings":";;AAiEA,8CAyBC;AA1FD,+CAKsB;AACtB,qDAA0D;AAC1D,iDAA8C;AAG9C,SAAS,eAAe,CAEpB,MAA2B,EAC3B,MAAc,EACd,OAAoB,EAAE,EACtB,KAAkB,EAAE,EACpB,UAAuB,EAAE,EACzB,SAAsB,EAAE,IAAI,EAAE,IAAI,EAAE;IAEpC,MAAM,oBAAoB,GACtB,CAAC,MAAmB,EAAE,EAAE,CAAC,CAAC,OAA4B,EAAE,EAAE,CACtD,IAAA,iBAAQ,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClC,MAAM,oBAAoB,GACtB,CAAC,OAAoB,EAAE,EAAE,CACzB,CAAC,OAA4B,EAAuB,EAAE;QAClD,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAClE,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IACN,MAAM,iBAAiB,GACnB,CAAC,IAAiB,EAAE,EAAE,CACtB,CAAC,OAA4B,EAAuB,EAAE;QAClD,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAA,aAAI,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,OAAO,CAAC;IACnB,CAAC,CAAC;IAEN,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,WAAW,GAAwB;QACrC,OAAO,EAAE;YACL,cAAc,EAAE,kBAAkB;SACrC;QACD,MAAM;QACN,IAAI;QACJ,EAAE;QACF,GAAG,EAAE,MAAM;KACd,CAAC;IAEF,OAAO,IAAA,WAAI,EACP,oBAAoB,CAAC,MAAM,CAAC,EAC5B,oBAAoB,CAAC,OAAO,CAAC,EAC7B,iBAAiB,CAAC,IAAI,CAAC,CAC1B,CAAC,WAAW,CAAC,CAAC;AACnB,CAAC;AASM,KAAK,UAAU,iBAAiB,CAEnC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAsB;IAEnE,MAAM,OAAO,GAAG,gCAAgC,CAAC;IACjD,MAAM,MAAM,GAAG,GAAG,OAAO,IAAI,QAAQ,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAChC,IAAI,EACJ,MAAM,EACN,MAAM,EACN,IAAI,EACJ,EAAE,EACF,OAAO,EACP,MAAM,CACT,CAAC;IAEF,IAAI,CAAC;QACD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACxD,IAAI,EACJ,YAAY,EACZ,OAAO,CACV,CAAC;IACN,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC9C,CAAC;AACL,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IPollFunctions } from "n8n-workflow";
2
+ export type Caller = IExecuteFunctions | IPollFunctions | ILoadOptionsFunctions | IHookFunctions;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../nodes/Toolbox/v1/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@thegraphitelab/n8n-nodes-toolbox",
3
+ "version": "0.1.0",
4
+ "description": "A n8n node for TGL's toolbox",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "toolbox",
9
+ "tgl"
10
+ ],
11
+ "license": "MIT",
12
+ "private": false,
13
+ "author": {
14
+ "name": "Trey Williams",
15
+ "email": "treywilliams@thegraphitelab.com"
16
+ },
17
+ "publishConfig": {
18
+ "registry": "https://registry.npmjs.org",
19
+ "access": "public"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/thegraphitelab/tgl-custom-n8n-nodes.git",
24
+ "directory": "packages/n8n-nodes-toolbox"
25
+ },
26
+ "engines": {
27
+ "node": ">=22"
28
+ },
29
+ "scripts": {
30
+ "build": "n8n-node build",
31
+ "dev": "n8n-node dev --external-n8n & WATCH_PID=$!; trap 'kill $WATCH_PID 2>/dev/null' EXIT INT TERM; N8N_USER_FOLDER=$HOME/.n8n-node-cli N8N_DEV_RELOAD=true N8N_PORT=5678 npx -y n8n@2.29.8",
32
+ "dev:latest": "n8n-node dev",
33
+ "lint": "n8n-node lint",
34
+ "lint:fix": "n8n-node lint --fix",
35
+ "test": "vitest run",
36
+ "test:dev": "vitest",
37
+ "test:coverage": "vitest run --coverage"
38
+ },
39
+ "n8n": {
40
+ "n8nNodesApiVersion": 1,
41
+ "strict": true,
42
+ "credentials": [
43
+ "dist/credentials/ToolboxApi.credentials.js"
44
+ ],
45
+ "nodes": [
46
+ "dist/nodes/Toolbox/Toolbox.node.js",
47
+ "dist/nodes/Toolbox/ToolboxTrigger.node.js"
48
+ ]
49
+ },
50
+ "devDependencies": {
51
+ "@eslint/js": "^9.29.0",
52
+ "@n8n/node-cli": "^0.23.0",
53
+ "@vitest/coverage-v8": "^4.1.10",
54
+ "eslint": "^9.29.0",
55
+ "n8n-workflow": "*",
56
+ "vitest": "^4.1.9"
57
+ },
58
+ "peerDependencies": {
59
+ "n8n-workflow": "*"
60
+ },
61
+ "files": [
62
+ "dist"
63
+ ]
64
+ }
@@ -0,0 +1,2 @@
1
+ import { IDisplayOptions, NodeParameterValue } from "n8n-workflow";
2
+ export declare function getDisplayOptionsFn<T extends NodeParameterValue>(resource: string): (operation: T) => IDisplayOptions;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDisplayOptionsFn = getDisplayOptionsFn;
4
+ function getDisplayOptionsFn(resource) {
5
+ return (operation) => {
6
+ return {
7
+ show: {
8
+ resource: [resource],
9
+ operation: [operation],
10
+ },
11
+ };
12
+ };
13
+ }
14
+ //# sourceMappingURL=displayOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"displayOptions.js","sourceRoot":"","sources":["../../utils/displayOptions.ts"],"names":[],"mappings":";;AAEA,kDAWC;AAXD,SAAgB,mBAAmB,CAC/B,QAAgB;IAEhB,OAAO,CAAC,SAAY,EAAE,EAAE;QACpB,OAAO;YACH,IAAI,EAAE;gBACF,QAAQ,EAAE,CAAC,QAAQ,CAAC;gBACpB,SAAS,EAAE,CAAC,SAAS,CAAC;aACzB;SACJ,CAAC;IACN,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { NodeApiError, NodeOperationError } from "n8n-workflow";
2
+ export declare function isError(e: unknown): e is Error;
3
+ export declare function isValidError(e: Error): e is NodeApiError | NodeOperationError;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isError = isError;
4
+ exports.isValidError = isValidError;
5
+ const n8n_workflow_1 = require("n8n-workflow");
6
+ function isError(e) {
7
+ return e instanceof Error;
8
+ }
9
+ function isValidError(e) {
10
+ return e instanceof n8n_workflow_1.NodeApiError || e instanceof n8n_workflow_1.NodeOperationError;
11
+ }
12
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../utils/error.ts"],"names":[],"mappings":";;AAEA,0BAEC;AAED,oCAEC;AARD,+CAAgE;AAEhE,SAAgB,OAAO,CAAC,CAAU;IAC9B,OAAO,CAAC,YAAY,KAAK,CAAC;AAC9B,CAAC;AAED,SAAgB,YAAY,CAAC,CAAQ;IACjC,OAAO,CAAC,YAAY,2BAAY,IAAI,CAAC,YAAY,iCAAkB,CAAC;AACxE,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function copyInto<T extends object>(receiver: T, assigner: Partial<T>): T;
2
+ export declare function omit<T extends object, K extends keyof T>(obj: T, property: K): Omit<T, K>;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.copyInto = copyInto;
4
+ exports.omit = omit;
5
+ // the goal of this function is to make an Object.assign that doesn't change receiver in place
6
+ function copyInto(receiver, assigner) {
7
+ const copy = { ...receiver };
8
+ Object.assign(copy, assigner);
9
+ return copy;
10
+ }
11
+ function omit(obj, property) {
12
+ const copy = { ...obj };
13
+ delete copy[property];
14
+ return copy;
15
+ }
16
+ //# sourceMappingURL=object.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../utils/object.ts"],"names":[],"mappings":";;AACA,4BAIC;AAED,oBAIC;AAXD,8FAA8F;AAC9F,SAAgB,QAAQ,CAAmB,QAAW,EAAE,QAAoB;IAC3E,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAgB,IAAI,CAAsC,GAAM,EAAE,QAAW;IAC5E,MAAM,IAAI,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;IACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function pipe<T>(...fns: Array<(x: T) => T>): (input: T) => T;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pipe = pipe;
4
+ // this allows for calling multiple functions that modify the same type over and over
5
+ function pipe(...fns) {
6
+ return function (input) {
7
+ return fns.reduce((acc, fn) => fn(acc), input);
8
+ };
9
+ }
10
+ //# sourceMappingURL=pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe.js","sourceRoot":"","sources":["../../utils/pipe.ts"],"names":[],"mappings":";;AACA,oBAIC;AALD,qFAAqF;AACrF,SAAgB,IAAI,CAAI,GAAG,GAAuB;IACjD,OAAO,UAAU,KAAQ;QACxB,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,64 @@
1
+ {
2
+ "name": "@thegraphitelab/n8n-nodes-toolbox",
3
+ "version": "0.2.0",
4
+ "description": "A n8n node for TGL's toolbox",
5
+ "keywords": [
6
+ "n8n-community-node-package",
7
+ "n8n",
8
+ "toolbox",
9
+ "tgl"
10
+ ],
11
+ "license": "MIT",
12
+ "private": false,
13
+ "author": {
14
+ "name": "Trey Williams",
15
+ "email": "treywilliams@thegraphitelab.com"
16
+ },
17
+ "publishConfig": {
18
+ "registry": "https://registry.npmjs.org",
19
+ "access": "public"
20
+ },
21
+ "repository": {
22
+ "type": "git",
23
+ "url": "git+https://github.com/thegraphitelab/tgl-custom-n8n-nodes.git",
24
+ "directory": "packages/n8n-nodes-toolbox"
25
+ },
26
+ "engines": {
27
+ "node": ">=22"
28
+ },
29
+ "scripts": {
30
+ "build": "n8n-node build",
31
+ "dev": "n8n-node dev --external-n8n & WATCH_PID=$!; trap 'kill $WATCH_PID 2>/dev/null' EXIT INT TERM; N8N_USER_FOLDER=$HOME/.n8n-node-cli N8N_DEV_RELOAD=true N8N_PORT=5678 npx -y n8n@2.29.8",
32
+ "dev:latest": "n8n-node dev",
33
+ "lint": "n8n-node lint",
34
+ "lint:fix": "n8n-node lint --fix",
35
+ "test": "vitest run",
36
+ "test:dev": "vitest",
37
+ "test:coverage": "vitest run --coverage"
38
+ },
39
+ "n8n": {
40
+ "n8nNodesApiVersion": 1,
41
+ "strict": true,
42
+ "credentials": [
43
+ "dist/credentials/ToolboxApi.credentials.js"
44
+ ],
45
+ "nodes": [
46
+ "dist/nodes/Toolbox/Toolbox.node.js",
47
+ "dist/nodes/Toolbox/ToolboxTrigger.node.js"
48
+ ]
49
+ },
50
+ "devDependencies": {
51
+ "@eslint/js": "^9.29.0",
52
+ "@n8n/node-cli": "^0.23.0",
53
+ "@vitest/coverage-v8": "^4.1.10",
54
+ "eslint": "^9.29.0",
55
+ "n8n-workflow": "*",
56
+ "vitest": "^4.1.9"
57
+ },
58
+ "peerDependencies": {
59
+ "n8n-workflow": "*"
60
+ },
61
+ "files": [
62
+ "dist"
63
+ ]
64
+ }