Bootstrap n8n node

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
This commit is contained in:
Bryan Frimin
2025-12-01 14:25:58 +01:00
parent 35b3f0e3e4
commit e99dce6fc5
6 changed files with 2866 additions and 36 deletions

2754
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,57 @@
import {
IAuthenticateGeneric,
ICredentialTestRequest,
ICredentialType,
Icon,
INodeProperties,
} from 'n8n-workflow';
export class ProboApi implements ICredentialType {
name = 'proboApi';
displayName = 'Probo API';
icon: Icon = { light: 'file:../icons/probo.svg', dark: 'file:../icons/probo.svg' };
documentationUrl = 'https://www.getprobo.com/docs';
properties: INodeProperties[] = [
{
displayName: 'Probo Server',
name: 'server',
type: 'string',
default: 'https://us.console.getprobo.com',
description: 'The server to connect to.',
},
{
displayName: 'API Key',
name: 'apiKey',
type: 'string',
typeOptions: { password: true },
default: '',
},
];
authenticate: IAuthenticateGeneric = {
type: 'generic',
properties: {
headers: {
Authorization: '=Bearer {{$credentials?.apiKey}}',
},
},
};
test: ICredentialTestRequest = {
request: {
baseURL: '={{$credentials.server}}',
url: '/api/console/v1/query',
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: {
query: 'query { viewer { id } }',
},
},
};
}

View File

@@ -0,0 +1,3 @@
import { config } from '@n8n/node-cli/eslint';
export default config;

View File

@@ -0,0 +1,23 @@
<svg viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_1030_164)">
<rect width="300" height="300" rx="70" fill="#101E1C"/>
<g clip-path="url(#clip1_1030_164)">
<rect width="320" height="320" transform="translate(-9.69238 -10)" fill="#101E1C"/>
<path d="M238.194 83.0279C274.406 137.651 160.574 258.266 -29.4255 142.266" stroke="#E6FF03" stroke-width="42.6667"/>
<path d="M238.194 83.0279C274.406 137.651 160.574 258.266 -29.4255 142.266" stroke="url(#paint0_linear_1030_164)" stroke-width="42.6667"/>
<path d="M220.112 94.3364C226.365 104.327 239.53 107.363 249.515 101.118C259.501 94.873 262.527 81.7113 256.274 71.7206L238.193 83.0285L220.112 94.3364ZM97.9074 324.933L118.61 319.8C87.9762 196.62 115.788 133.041 146.656 105.377C162.52 91.1595 180.159 85.27 194.453 84.9721C209.505 84.6583 217.534 90.218 220.112 94.3364L238.193 83.0285L256.274 71.7206C242.999 50.5115 217.649 41.8122 193.53 42.315C168.652 42.8335 141.327 52.8361 118.165 73.5935C70.9833 115.879 44.5053 198.58 77.2047 330.066L97.9074 324.933Z" fill="#E6FF03"/>
</g>
</g>
<defs>
<linearGradient id="paint0_linear_1030_164" x1="216.193" y1="173.319" x2="-18.0923" y2="173.319" gradientUnits="userSpaceOnUse">
<stop stop-color="#101E1C" stop-opacity="0"/>
<stop offset="1" stop-color="#101E1C"/>
</linearGradient>
<clipPath id="clip0_1030_164">
<rect width="300" height="300" rx="70" fill="white"/>
</clipPath>
<clipPath id="clip1_1030_164">
<rect width="320" height="320" fill="white" transform="translate(-9.69238 -10)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -0,0 +1,35 @@
{
"name": "@probo/n8n-nodes-probo",
"version": "0.0.1",
"main": "index.js",
"scripts": {
"build": "n8n-node build",
"build:watch": "tsc --watch",
"dev": "n8n-node dev",
"lint": "n8n-node lint",
"lint:fix": "n8n-node lint --fix",
"release": "n8n-node release",
"prepublishOnly": "n8n-node prerelease"
},
"author": "",
"files": [
"dist"
],
"n8n": {
"n8nNodesApiVersion": 1,
"strict": true,
"credentials": [
"dist/credentials/ProboApi.credentials.js"
],
"nodes": []
},
"license": "ISC",
"description": "",
"devDependencies": {
"@n8n/node-cli": "^0.17.0",
"eslint": "9.32.0"
},
"peerDependencies": {
"n8n-workflow": "*"
}
}

View File

@@ -0,0 +1,30 @@
{
"compilerOptions": {
"strict": true,
"module": "commonjs",
"moduleResolution": "node",
"target": "es2019",
"lib": ["es2019", "es2020", "es2022.error"],
"removeComments": true,
"useUnknownInCatchVariables": false,
"forceConsistentCasingInFileNames": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"strictNullChecks": true,
"preserveConstEnums": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"incremental": true,
"declaration": true,
"sourceMap": true,
"skipLibCheck": true,
"outDir": "./dist/"
},
"include": [
"credentials/**/*",
"nodes/**/*",
"nodes/**/*.json",
"package.json"
]
}