@noloco/n8n-nodes-noloco 1.0.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 (71) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +69 -0
  3. package/dist/credentials/NolocoApi.credentials.d.ts +10 -0
  4. package/dist/credentials/NolocoApi.credentials.js +49 -0
  5. package/dist/credentials/NolocoApi.credentials.js.map +1 -0
  6. package/dist/icons/noloco.svg +1 -0
  7. package/dist/nodes/Noloco/Noloco.node.d.ts +11 -0
  8. package/dist/nodes/Noloco/Noloco.node.js +94 -0
  9. package/dist/nodes/Noloco/Noloco.node.js.map +1 -0
  10. package/dist/nodes/Noloco/Noloco.node.json +18 -0
  11. package/dist/nodes/Noloco/NolocoTrigger.node.d.ts +12 -0
  12. package/dist/nodes/Noloco/NolocoTrigger.node.js +187 -0
  13. package/dist/nodes/Noloco/NolocoTrigger.node.js.map +1 -0
  14. package/dist/nodes/Noloco/NolocoTrigger.node.json +18 -0
  15. package/dist/nodes/Noloco/actions/common.descriptions.d.ts +5 -0
  16. package/dist/nodes/Noloco/actions/common.descriptions.js +116 -0
  17. package/dist/nodes/Noloco/actions/common.descriptions.js.map +1 -0
  18. package/dist/nodes/Noloco/actions/node.type.d.ts +7 -0
  19. package/dist/nodes/Noloco/actions/node.type.js +3 -0
  20. package/dist/nodes/Noloco/actions/node.type.js.map +1 -0
  21. package/dist/nodes/Noloco/actions/record/Record.resource.d.ts +10 -0
  22. package/dist/nodes/Noloco/actions/record/Record.resource.js +107 -0
  23. package/dist/nodes/Noloco/actions/record/Record.resource.js.map +1 -0
  24. package/dist/nodes/Noloco/actions/record/create.operation.d.ts +3 -0
  25. package/dist/nodes/Noloco/actions/record/create.operation.js +80 -0
  26. package/dist/nodes/Noloco/actions/record/create.operation.js.map +1 -0
  27. package/dist/nodes/Noloco/actions/record/delete.operation.d.ts +3 -0
  28. package/dist/nodes/Noloco/actions/record/delete.operation.js +53 -0
  29. package/dist/nodes/Noloco/actions/record/delete.operation.js.map +1 -0
  30. package/dist/nodes/Noloco/actions/record/get.operation.d.ts +3 -0
  31. package/dist/nodes/Noloco/actions/record/get.operation.js +55 -0
  32. package/dist/nodes/Noloco/actions/record/get.operation.js.map +1 -0
  33. package/dist/nodes/Noloco/actions/record/getMany.operation.d.ts +3 -0
  34. package/dist/nodes/Noloco/actions/record/getMany.operation.js +161 -0
  35. package/dist/nodes/Noloco/actions/record/getMany.operation.js.map +1 -0
  36. package/dist/nodes/Noloco/actions/record/search.operation.d.ts +3 -0
  37. package/dist/nodes/Noloco/actions/record/search.operation.js +309 -0
  38. package/dist/nodes/Noloco/actions/record/search.operation.js.map +1 -0
  39. package/dist/nodes/Noloco/actions/record/update.operation.d.ts +3 -0
  40. package/dist/nodes/Noloco/actions/record/update.operation.js +92 -0
  41. package/dist/nodes/Noloco/actions/record/update.operation.js.map +1 -0
  42. package/dist/nodes/Noloco/actions/router.d.ts +2 -0
  43. package/dist/nodes/Noloco/actions/router.js +56 -0
  44. package/dist/nodes/Noloco/actions/router.js.map +1 -0
  45. package/dist/nodes/Noloco/helpers/constants.d.ts +45 -0
  46. package/dist/nodes/Noloco/helpers/constants.js +80 -0
  47. package/dist/nodes/Noloco/helpers/constants.js.map +1 -0
  48. package/dist/nodes/Noloco/helpers/interfaces.d.ts +106 -0
  49. package/dist/nodes/Noloco/helpers/interfaces.js +3 -0
  50. package/dist/nodes/Noloco/helpers/interfaces.js.map +1 -0
  51. package/dist/nodes/Noloco/helpers/transport.d.ts +17 -0
  52. package/dist/nodes/Noloco/helpers/transport.js +98 -0
  53. package/dist/nodes/Noloco/helpers/transport.js.map +1 -0
  54. package/dist/nodes/Noloco/helpers/utils.d.ts +16 -0
  55. package/dist/nodes/Noloco/helpers/utils.js +154 -0
  56. package/dist/nodes/Noloco/helpers/utils.js.map +1 -0
  57. package/dist/nodes/Noloco/methods/index.d.ts +3 -0
  58. package/dist/nodes/Noloco/methods/index.js +40 -0
  59. package/dist/nodes/Noloco/methods/index.js.map +1 -0
  60. package/dist/nodes/Noloco/methods/listSearch.d.ts +4 -0
  61. package/dist/nodes/Noloco/methods/listSearch.js +69 -0
  62. package/dist/nodes/Noloco/methods/listSearch.js.map +1 -0
  63. package/dist/nodes/Noloco/methods/loadOptions.d.ts +5 -0
  64. package/dist/nodes/Noloco/methods/loadOptions.js +135 -0
  65. package/dist/nodes/Noloco/methods/loadOptions.js.map +1 -0
  66. package/dist/nodes/Noloco/methods/resourceMapping.d.ts +2 -0
  67. package/dist/nodes/Noloco/methods/resourceMapping.js +88 -0
  68. package/dist/nodes/Noloco/methods/resourceMapping.js.map +1 -0
  69. package/dist/package.json +56 -0
  70. package/dist/tsconfig.tsbuildinfo +1 -0
  71. package/package.json +56 -0
package/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2022 n8n
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,69 @@
1
+ # @noloco/n8n-nodes-noloco
2
+
3
+ This is an n8n community node. It lets you use Noloco in your n8n workflows.
4
+
5
+ [Noloco](https://noloco.io) is a no-code platform for building internal tools and client portals. Connect your data sources and build custom applications without writing code.
6
+
7
+ [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
8
+
9
+ [Installation](#installation)
10
+ [Operations](#operations)
11
+ [Credentials](#credentials)
12
+ [Compatibility](#compatibility)
13
+ [Resources](#resources)
14
+
15
+ ## Installation
16
+
17
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
18
+
19
+ ## Operations
20
+
21
+ This package includes two nodes:
22
+
23
+ ### Noloco (Action Node)
24
+
25
+ Perform operations on Noloco records:
26
+
27
+ - **Create**: Create a new record in a collection
28
+ - **Delete**: Delete an existing record from a collection
29
+ - **Get**: Get a single record by ID
30
+ - **Get Many**: Get many records from a collection with optional filtering, sorting, and pagination
31
+ - **Search**: Search for records by field values
32
+ - **Update**: Update an existing record in a collection
33
+
34
+ ### Noloco Trigger (Polling Trigger)
35
+
36
+ Start workflows when records change:
37
+
38
+ - **Record Created**: Triggers when a new record is created in a table
39
+ - **Record Updated**: Triggers when an existing record is updated in a table
40
+
41
+ ## Credentials
42
+
43
+ To use this node, you need to configure Noloco API credentials with two API keys:
44
+
45
+ ### Prerequisites
46
+
47
+ 1. You must have access to a Noloco app
48
+ 2. You need to generate API keys from your app's settings
49
+
50
+ ### Setting Up Credentials
51
+
52
+ 1. In your Noloco app, go to **Settings** > **Integrations & API Keys**
53
+ 2. Copy the **Account API Key** - this authenticates your Noloco account
54
+ 3. Copy the **App API Key** - this authenticates access to the specific app
55
+ 4. In n8n, create new Noloco API credentials and paste both keys
56
+
57
+ For more details, see the [Noloco API Keys Guide](https://guides.noloco.io/settings/integrations-and-api-keys#api-keys).
58
+
59
+ ## Compatibility
60
+
61
+ - Tested with n8n version 1.0+
62
+ - Requires Noloco REST API v1
63
+
64
+ ## Resources
65
+
66
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/#community-nodes)
67
+ - [Noloco Documentation](https://guides.noloco.io/)
68
+ - [Noloco API Keys Guide](https://guides.noloco.io/settings/integrations-and-api-keys#api-keys)
69
+ - [Noloco Website](https://noloco.io)
@@ -0,0 +1,10 @@
1
+ import type { IAuthenticateGeneric, IconFile, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class NolocoApi implements ICredentialType {
3
+ name: string;
4
+ icon: IconFile;
5
+ displayName: string;
6
+ documentationUrl: string;
7
+ properties: INodeProperties[];
8
+ authenticate: IAuthenticateGeneric;
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NolocoApi = void 0;
4
+ class NolocoApi {
5
+ constructor() {
6
+ this.name = 'nolocoApi';
7
+ this.icon = 'file:../icons/noloco.svg';
8
+ this.displayName = 'Noloco API';
9
+ this.documentationUrl = 'https://guides.noloco.io/settings/integrations-and-api-keys#api-keys';
10
+ this.properties = [
11
+ {
12
+ displayName: 'Account API Key',
13
+ name: 'accountKey',
14
+ type: 'string',
15
+ typeOptions: { password: true },
16
+ default: '',
17
+ required: true,
18
+ description: 'Copy the "Account API Key" field from the integration settings page in your app settings',
19
+ },
20
+ {
21
+ displayName: 'App API Key',
22
+ name: 'appKey',
23
+ type: 'string',
24
+ typeOptions: { password: true },
25
+ default: '',
26
+ required: true,
27
+ description: 'Copy the "App API Key" from the integration settings page in your app settings',
28
+ },
29
+ ];
30
+ this.authenticate = {
31
+ type: 'generic',
32
+ properties: {
33
+ headers: {
34
+ Authorization: '=Bearer {{$credentials.accountKey}}',
35
+ 'X-Noloco-App-Token': '=Bearer {{$credentials.appKey}}',
36
+ },
37
+ },
38
+ };
39
+ this.test = {
40
+ request: {
41
+ baseURL: 'https://api.portals.noloco.io',
42
+ url: '/v1/meta/me',
43
+ method: 'GET',
44
+ },
45
+ };
46
+ }
47
+ }
48
+ exports.NolocoApi = NolocoApi;
49
+ //# sourceMappingURL=NolocoApi.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NolocoApi.credentials.js","sourceRoot":"","sources":["../../credentials/NolocoApi.credentials.ts"],"names":[],"mappings":";;;AAQA,MAAa,SAAS;IAAtB;QACC,SAAI,GAAG,WAAW,CAAC;QACnB,SAAI,GAAG,0BAAsC,CAAC;QAE9C,gBAAW,GAAG,YAAY,CAAC;QAE3B,qBAAgB,GAAG,sEAAsE,CAAC;QAE1F,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,iBAAiB;gBAC9B,IAAI,EAAE,YAAY;gBAClB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EACV,0FAA0F;aAC3F;YACD;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,gFAAgF;aAC7F;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,qCAAqC;oBACpD,oBAAoB,EAAE,iCAAiC;iBACvD;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,+BAA+B;gBACxC,GAAG,EAAE,aAAa;gBAClB,MAAM,EAAE,KAAK;aACb;SACD,CAAC;IACH,CAAC;CAAA;AA/CD,8BA+CC"}
@@ -0,0 +1 @@
1
+ <svg fill="none" height="100%" viewBox="0 0 1149 1407" width="100%" xmlns="http://www.w3.org/2000/svg" class="h-full py-1"><path clip-rule="evenodd" d="M1147.14 242.358C1146.4 26.1707 884.589 -81.2438 732.199 72.0995L488.299 317.549C473.973 331.994 474.097 355.206 488.423 369.527C535.35 416.197 611.302 415.95 657.853 369.034L843.228 182.601C897.314 128.152 990.183 166.303 990.427 242.975L992.282 801.283C992.527 877.956 899.904 916.729 845.445 862.644L413.832 433.483C260.452 281.126 -0.740251 390.146 0.00157676 606.332L1.85379 1164.65C2.59445 1380.83 264.404 1488.24 416.795 1334.9L665.516 1084.64C676.994 1073.04 676.877 1054.39 665.388 1042.9C615.618 993.401 535.104 993.646 485.582 1043.52L305.651 1224.64C251.56 1279.1 158.692 1240.94 158.445 1164.27L156.592 605.959C156.345 529.291 248.966 490.523 303.428 544.601L735.162 973.647C888.543 1126 1149.62 1016.85 1149 800.665L1147.14 242.358Z" fill="oklch(0.541 0.247 293.009)" fill-rule="evenodd"></path></svg>
@@ -0,0 +1,11 @@
1
+ import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
2
+ import { listSearch, loadOptions, resourceMapping } from './methods';
3
+ export declare class Noloco implements INodeType {
4
+ description: INodeTypeDescription;
5
+ methods: {
6
+ listSearch: typeof listSearch;
7
+ loadOptions: typeof loadOptions;
8
+ resourceMapping: typeof resourceMapping;
9
+ };
10
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
11
+ }
@@ -0,0 +1,94 @@
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 () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.Noloco = void 0;
37
+ const n8n_workflow_1 = require("n8n-workflow");
38
+ const router_1 = require("./actions/router");
39
+ const record = __importStar(require("./actions/record/Record.resource"));
40
+ const common_descriptions_1 = require("./actions/common.descriptions");
41
+ const methods_1 = require("./methods");
42
+ class Noloco {
43
+ constructor() {
44
+ this.description = {
45
+ displayName: 'Noloco',
46
+ name: 'noloco',
47
+ icon: 'file:../../icons/noloco.svg',
48
+ group: ['transform'],
49
+ version: 1,
50
+ subtitle: '={{$parameter["operation"] + ": " + $parameter["resource"]}}',
51
+ description: 'Interact with Noloco records',
52
+ defaults: {
53
+ name: 'Noloco',
54
+ },
55
+ inputs: [n8n_workflow_1.NodeConnectionTypes.Main],
56
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
57
+ usableAsTool: true,
58
+ credentials: [
59
+ {
60
+ name: 'nolocoApi',
61
+ required: true,
62
+ },
63
+ ],
64
+ properties: [
65
+ {
66
+ displayName: 'Resource',
67
+ name: 'resource',
68
+ type: 'options',
69
+ noDataExpression: true,
70
+ options: [
71
+ {
72
+ name: 'Record',
73
+ value: 'record',
74
+ },
75
+ ],
76
+ default: 'record',
77
+ },
78
+ common_descriptions_1.appRLC,
79
+ common_descriptions_1.dataTypeRLC,
80
+ ...record.description,
81
+ ],
82
+ };
83
+ this.methods = {
84
+ listSearch: methods_1.listSearch,
85
+ loadOptions: methods_1.loadOptions,
86
+ resourceMapping: methods_1.resourceMapping,
87
+ };
88
+ }
89
+ async execute() {
90
+ return await router_1.router.call(this);
91
+ }
92
+ }
93
+ exports.Noloco = Noloco;
94
+ //# sourceMappingURL=Noloco.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Noloco.node.js","sourceRoot":"","sources":["../../../nodes/Noloco/Noloco.node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,+CAAmD;AAEnD,6CAA0C;AAC1C,yEAA2D;AAC3D,uEAAoE;AACpE,uCAAqE;AAErE,MAAa,MAAM;IAAnB;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,QAAQ;YACrB,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,6BAA6B;YACnC,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8DAA8D;YACxE,WAAW,EAAE,8BAA8B;YAC3C,QAAQ,EAAE;gBACT,IAAI,EAAE,QAAQ;aACd;YACD,MAAM,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YAClC,OAAO,EAAE,CAAC,kCAAmB,CAAC,IAAI,CAAC;YACnC,YAAY,EAAE,IAAI;YAClB,WAAW,EAAE;gBACZ;oBACC,IAAI,EAAE,WAAW;oBACjB,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACR;4BACC,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBACf;qBACD;oBACD,OAAO,EAAE,QAAQ;iBACjB;gBACD,4BAAM;gBACN,iCAAW;gBACX,GAAG,MAAM,CAAC,WAAW;aACrB;SACD,CAAC;QAEF,YAAO,GAAG;YACT,UAAU,EAAV,oBAAU;YACV,WAAW,EAAX,qBAAW;YACX,eAAe,EAAf,yBAAe;SACf,CAAC;IAKH,CAAC;IAHA,KAAK,CAAC,OAAO;QACZ,OAAO,MAAM,eAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACD;AAlDD,wBAkDC"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "n8n-nodes-noloco",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Data & Storage", "Productivity"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://guides.noloco.io/settings/integrations-and-api-keys#api-keys"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://guides.noloco.io/"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,12 @@
1
+ import { type IPollFunctions, type INodeExecutionData, type INodeType, type INodeTypeDescription } from 'n8n-workflow';
2
+ import { getApps, getTables } from './methods/listSearch';
3
+ export declare class NolocoTrigger implements INodeType {
4
+ description: INodeTypeDescription;
5
+ methods: {
6
+ listSearch: {
7
+ getApps: typeof getApps;
8
+ getTables: typeof getTables;
9
+ };
10
+ };
11
+ poll(this: IPollFunctions): Promise<INodeExecutionData[][] | null>;
12
+ }
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NolocoTrigger = void 0;
4
+ const n8n_workflow_1 = require("n8n-workflow");
5
+ const listSearch_1 = require("./methods/listSearch");
6
+ const transport_1 = require("./helpers/transport");
7
+ class NolocoTrigger {
8
+ constructor() {
9
+ this.description = {
10
+ displayName: 'Noloco Trigger',
11
+ name: 'nolocoTrigger',
12
+ icon: 'file:../../icons/noloco.svg',
13
+ group: ['trigger'],
14
+ version: 1,
15
+ subtitle: '={{$parameter["event"]}}',
16
+ description: 'Triggers when records are created or updated in Noloco',
17
+ defaults: {
18
+ name: 'Noloco Trigger',
19
+ },
20
+ polling: true,
21
+ inputs: [],
22
+ outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
23
+ usableAsTool: true,
24
+ credentials: [
25
+ {
26
+ name: 'nolocoApi',
27
+ required: true,
28
+ },
29
+ ],
30
+ properties: [
31
+ {
32
+ displayName: 'App',
33
+ name: 'app',
34
+ type: 'resourceLocator',
35
+ default: { mode: 'list', value: '' },
36
+ required: true,
37
+ modes: [
38
+ {
39
+ displayName: 'From List',
40
+ name: 'list',
41
+ type: 'list',
42
+ placeholder: 'Select an app...',
43
+ typeOptions: {
44
+ searchListMethod: 'getApps',
45
+ searchable: false,
46
+ },
47
+ },
48
+ {
49
+ displayName: 'By Name',
50
+ name: 'name',
51
+ type: 'string',
52
+ placeholder: 'e.g. my-app',
53
+ },
54
+ ],
55
+ description: 'The Noloco app to watch',
56
+ },
57
+ {
58
+ displayName: 'Table',
59
+ name: 'dataType',
60
+ type: 'resourceLocator',
61
+ default: { mode: 'list', value: '' },
62
+ required: true,
63
+ modes: [
64
+ {
65
+ displayName: 'From List',
66
+ name: 'list',
67
+ type: 'list',
68
+ placeholder: 'Select a table...',
69
+ typeOptions: {
70
+ searchListMethod: 'getTables',
71
+ searchable: true,
72
+ },
73
+ },
74
+ {
75
+ displayName: 'By API Name',
76
+ name: 'name',
77
+ type: 'string',
78
+ placeholder: 'e.g. user',
79
+ },
80
+ ],
81
+ description: 'The table (data type) to watch',
82
+ },
83
+ {
84
+ displayName: 'Event',
85
+ name: 'event',
86
+ type: 'options',
87
+ options: [
88
+ {
89
+ name: 'Record Created',
90
+ value: 'recordCreated',
91
+ description: 'Triggers when a new record is created',
92
+ },
93
+ {
94
+ name: 'Record Updated',
95
+ value: 'recordUpdated',
96
+ description: 'Triggers when a record is updated',
97
+ },
98
+ ],
99
+ default: 'recordCreated',
100
+ description: 'The event to listen for',
101
+ },
102
+ {
103
+ displayName: 'Options',
104
+ name: 'options',
105
+ type: 'collection',
106
+ placeholder: 'Add Option',
107
+ default: {},
108
+ options: [
109
+ {
110
+ displayName: 'Include Related Data',
111
+ name: 'include',
112
+ type: 'string',
113
+ default: '',
114
+ description: 'Comma-separated list of relationship field API names to include in the response',
115
+ },
116
+ ],
117
+ },
118
+ ],
119
+ };
120
+ this.methods = {
121
+ listSearch: {
122
+ getApps: listSearch_1.getApps,
123
+ getTables: listSearch_1.getTables,
124
+ },
125
+ };
126
+ }
127
+ async poll() {
128
+ var _a;
129
+ const projectName = this.getNodeParameter('app', '', {
130
+ extractValue: true,
131
+ });
132
+ const dataType = this.getNodeParameter('dataType', '', {
133
+ extractValue: true,
134
+ });
135
+ const event = this.getNodeParameter('event');
136
+ const options = this.getNodeParameter('options');
137
+ const sortBy = event === 'recordUpdated' ? 'updatedAt' : 'createdAt';
138
+ const include = options.include
139
+ ? options.include.split(',').map((s) => s.trim())
140
+ : undefined;
141
+ const staticData = this.getWorkflowStaticData('node');
142
+ const lastTimestamp = staticData.lastTimestamp;
143
+ const response = await transport_1.fetchProjectRecords.call(this, projectName, dataType, {
144
+ first: 100,
145
+ sortBy,
146
+ orderBy: 'DESC',
147
+ include,
148
+ });
149
+ if (response.records.length === 0) {
150
+ return null;
151
+ }
152
+ let newRecords;
153
+ if (lastTimestamp) {
154
+ const lastDate = new Date(lastTimestamp);
155
+ newRecords = response.records.filter((record) => {
156
+ var _a;
157
+ const recordDate = new Date(event === 'recordUpdated' ? ((_a = record.updatedAt) !== null && _a !== void 0 ? _a : record.createdAt) : record.createdAt);
158
+ return recordDate > lastDate;
159
+ });
160
+ }
161
+ else {
162
+ const isManualRun = this.getMode() === 'manual';
163
+ if (isManualRun) {
164
+ newRecords = response.records.slice(0, 5);
165
+ }
166
+ else {
167
+ newRecords = [];
168
+ }
169
+ }
170
+ if (response.records.length > 0) {
171
+ const mostRecentRecord = response.records[0];
172
+ staticData.lastTimestamp =
173
+ event === 'recordUpdated'
174
+ ? ((_a = mostRecentRecord.updatedAt) !== null && _a !== void 0 ? _a : mostRecentRecord.createdAt)
175
+ : mostRecentRecord.createdAt;
176
+ }
177
+ if (newRecords.length === 0) {
178
+ return null;
179
+ }
180
+ const returnData = newRecords.map((record) => ({
181
+ json: record,
182
+ }));
183
+ return [returnData];
184
+ }
185
+ }
186
+ exports.NolocoTrigger = NolocoTrigger;
187
+ //# sourceMappingURL=NolocoTrigger.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NolocoTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Noloco/NolocoTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "n8n-nodes-noloco",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Data & Storage", "Productivity"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://guides.noloco.io/settings/integrations-and-api-keys#api-keys"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://guides.noloco.io/"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -0,0 +1,5 @@
1
+ import type { INodeProperties } from 'n8n-workflow';
2
+ export declare const appRLC: INodeProperties;
3
+ export declare const dataTypeRLC: INodeProperties;
4
+ export declare const recordIdRLC: INodeProperties;
5
+ export declare const fieldsResourceMapper: INodeProperties;
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fieldsResourceMapper = exports.recordIdRLC = exports.dataTypeRLC = exports.appRLC = void 0;
4
+ exports.appRLC = {
5
+ displayName: 'App',
6
+ name: 'app',
7
+ type: 'resourceLocator',
8
+ default: { mode: 'list', value: '' },
9
+ required: true,
10
+ modes: [
11
+ {
12
+ displayName: 'From List',
13
+ name: 'list',
14
+ type: 'list',
15
+ placeholder: 'Select an app...',
16
+ typeOptions: {
17
+ searchListMethod: 'getApps',
18
+ searchable: false,
19
+ },
20
+ },
21
+ {
22
+ displayName: 'By Name',
23
+ name: 'name',
24
+ type: 'string',
25
+ placeholder: 'e.g. my-app',
26
+ },
27
+ ],
28
+ description: 'The Noloco app to work with',
29
+ };
30
+ exports.dataTypeRLC = {
31
+ displayName: 'Table',
32
+ name: 'dataType',
33
+ type: 'resourceLocator',
34
+ default: { mode: 'list', value: '' },
35
+ required: true,
36
+ modes: [
37
+ {
38
+ displayName: 'From List',
39
+ name: 'list',
40
+ type: 'list',
41
+ placeholder: 'Select a table...',
42
+ typeOptions: {
43
+ searchListMethod: 'getTables',
44
+ searchable: true,
45
+ },
46
+ },
47
+ {
48
+ displayName: 'By API Name',
49
+ name: 'name',
50
+ type: 'string',
51
+ placeholder: 'e.g. user',
52
+ },
53
+ ],
54
+ description: 'The table (data type) to work with',
55
+ };
56
+ exports.recordIdRLC = {
57
+ displayName: 'Record ID',
58
+ name: 'recordId',
59
+ type: 'resourceLocator',
60
+ default: { mode: 'id', value: '' },
61
+ required: true,
62
+ modes: [
63
+ {
64
+ displayName: 'By ID',
65
+ name: 'id',
66
+ type: 'string',
67
+ placeholder: 'e.g. 123',
68
+ validation: [
69
+ {
70
+ type: 'regex',
71
+ properties: {
72
+ regex: '^[0-9]+$',
73
+ errorMessage: 'Record ID must be a number',
74
+ },
75
+ },
76
+ ],
77
+ },
78
+ {
79
+ displayName: 'From List',
80
+ name: 'list',
81
+ type: 'list',
82
+ placeholder: 'Select a record...',
83
+ typeOptions: {
84
+ searchListMethod: 'getRecords',
85
+ searchable: true,
86
+ },
87
+ },
88
+ ],
89
+ description: 'The ID of the record',
90
+ };
91
+ exports.fieldsResourceMapper = {
92
+ displayName: 'Fields',
93
+ name: 'fields',
94
+ type: 'resourceMapper',
95
+ noDataExpression: true,
96
+ default: {
97
+ mappingMode: 'defineBelow',
98
+ value: null,
99
+ },
100
+ required: true,
101
+ typeOptions: {
102
+ loadOptionsDependsOn: ['app', 'dataType'],
103
+ resourceMapper: {
104
+ resourceMapperMethod: 'getMappingColumns',
105
+ mode: 'add',
106
+ fieldWords: {
107
+ singular: 'field',
108
+ plural: 'fields',
109
+ },
110
+ addAllFields: true,
111
+ multiKeyMatch: false,
112
+ },
113
+ },
114
+ description: 'The fields and values to set on the record',
115
+ };
116
+ //# sourceMappingURL=common.descriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.descriptions.js","sourceRoot":"","sources":["../../../../nodes/Noloco/actions/common.descriptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { AllEntities, Entity } from 'n8n-workflow';
2
+ type NolocoMap = {
3
+ record: 'create' | 'delete' | 'get' | 'getMany' | 'search' | 'update';
4
+ };
5
+ export type NolocoType = AllEntities<NolocoMap>;
6
+ export type NolocoRecordType = Entity<NolocoMap, 'record'>;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=node.type.js.map