n8n-nodes-setforth 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.
- package/LICENSE +46 -0
- package/README.md +306 -0
- package/dist/credentials/SetforthOAuth2Api.credentials.d.ts +10 -0
- package/dist/credentials/SetforthOAuth2Api.credentials.js +89 -0
- package/dist/credentials/SetforthOAuth2Api.credentials.js.map +1 -0
- package/dist/nodes/Setforth/GenericFunctions.d.ts +13 -0
- package/dist/nodes/Setforth/GenericFunctions.js +81 -0
- package/dist/nodes/Setforth/GenericFunctions.js.map +1 -0
- package/dist/nodes/Setforth/LicenseNotice.d.ts +5 -0
- package/dist/nodes/Setforth/LicenseNotice.js +26 -0
- package/dist/nodes/Setforth/LicenseNotice.js.map +1 -0
- package/dist/nodes/Setforth/Setforth.node.d.ts +5 -0
- package/dist/nodes/Setforth/Setforth.node.js +324 -0
- package/dist/nodes/Setforth/Setforth.node.js.map +1 -0
- package/dist/nodes/Setforth/SetforthTrigger.node.d.ts +12 -0
- package/dist/nodes/Setforth/SetforthTrigger.node.js +209 -0
- package/dist/nodes/Setforth/SetforthTrigger.node.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/AccountStatementDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/AccountStatementDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/AccountStatementDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/AdminUserDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/AdminUserDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/AdminUserDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/BulkDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/BulkDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/BulkDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/CalendarEventDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/CalendarEventDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/CalendarEventDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/CallDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/CallDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/CallDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/CampaignDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/CampaignDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/CampaignDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ClixsignDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ClixsignDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ClixsignDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactAlertDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactAlertDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactAlertDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactBankingDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactBankingDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactBankingDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactCommunicationDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactCommunicationDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactCommunicationDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactCreditDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactCreditDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactCreditDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactDebtDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactDebtDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactDebtDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactDescription.js +372 -0
- package/dist/nodes/Setforth/descriptions/ContactDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactDocumentDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactDocumentDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactDocumentDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactListDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactListDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactListDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactNoteDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactNoteDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactNoteDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContactWorkflowDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContactWorkflowDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContactWorkflowDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ContentConfigDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ContentConfigDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ContentConfigDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/CreditorDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/CreditorDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/CreditorDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DebtDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DebtDescription.js +252 -0
- package/dist/nodes/Setforth/descriptions/DebtDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DebtNoteDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DebtNoteDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DebtNoteDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DebtTaskDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DebtTaskDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DebtTaskDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DocumentDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DocumentDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DocumentDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageTemplateDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageTemplateDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DocumentPackageTemplateDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DocumentTemplateDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DocumentTemplateDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DocumentTemplateDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/DocumentTypeDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/DocumentTypeDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/DocumentTypeDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/EmailTemplateDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/EmailTemplateDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/EmailTemplateDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/EnrollmentDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/EnrollmentDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/EnrollmentDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/ForthCreditDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/ForthCreditDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/ForthCreditDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/LenderDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/LenderDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/LenderDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/PayeeDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/PayeeDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/PayeeDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/SettlementOfferDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/SettlementOfferDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/SettlementOfferDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/TaskDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/TaskDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/TaskDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/TeamDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/TeamDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/TeamDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/TransactionDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/TransactionDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/TransactionDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/UserDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/UserDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/UserDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/UtilityDescription.d.ts +3 -0
- package/dist/nodes/Setforth/descriptions/UtilityDescription.js +85 -0
- package/dist/nodes/Setforth/descriptions/UtilityDescription.js.map +1 -0
- package/dist/nodes/Setforth/descriptions/index.d.ts +38 -0
- package/dist/nodes/Setforth/descriptions/index.js +61 -0
- package/dist/nodes/Setforth/descriptions/index.js.map +1 -0
- package/dist/nodes/Setforth/setforth.svg +4 -0
- package/package.json +78 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
Business Source License 1.1
|
|
2
|
+
|
|
3
|
+
License text copyright (c) 2017 MariaDB Corporation Ab.
|
|
4
|
+
|
|
5
|
+
Licensor:
|
|
6
|
+
Velocity BPA, LLC
|
|
7
|
+
https://velobpa.com
|
|
8
|
+
|
|
9
|
+
Licensed Work:
|
|
10
|
+
This repository and all source code, documentation, and associated artifacts
|
|
11
|
+
contained herein, including all n8n community nodes published by Velocity BPA.
|
|
12
|
+
|
|
13
|
+
Additional Use Grant:
|
|
14
|
+
You may use, modify, and run the Licensed Work free of charge for:
|
|
15
|
+
- Personal use
|
|
16
|
+
- Educational use
|
|
17
|
+
- Research use
|
|
18
|
+
- Internal business use, provided such use does not involve resale,
|
|
19
|
+
redistribution, or offering the Licensed Work as part of a commercial
|
|
20
|
+
product or service.
|
|
21
|
+
|
|
22
|
+
Commercial Use Restriction:
|
|
23
|
+
Commercial Use of the Licensed Work is prohibited without a valid
|
|
24
|
+
Commercial License issued by the Licensor.
|
|
25
|
+
|
|
26
|
+
Commercial Use includes, but is not limited to:
|
|
27
|
+
- Use of the Licensed Work within any Software-as-a-Service (SaaS),
|
|
28
|
+
Platform-as-a-Service (PaaS), or hosted application that is sold,
|
|
29
|
+
licensed, or monetized in any form
|
|
30
|
+
- Offering the Licensed Work as part of a managed services engagement
|
|
31
|
+
- Bundling or redistributing the Licensed Work with a paid product
|
|
32
|
+
- Reselling, sublicensing, or white-labeling the Licensed Work
|
|
33
|
+
- Embedding the Licensed Work into any commercial automation platform,
|
|
34
|
+
integration product, or solution offering
|
|
35
|
+
|
|
36
|
+
Change Date:
|
|
37
|
+
January 1, 2030
|
|
38
|
+
|
|
39
|
+
Change License:
|
|
40
|
+
Apache License, Version 2.0
|
|
41
|
+
|
|
42
|
+
For commercial licensing inquiries:
|
|
43
|
+
licensing@velobpa.com
|
|
44
|
+
|
|
45
|
+
Business Source License 1.1 full text:
|
|
46
|
+
https://mariadb.com/bsl11/
|
package/README.md
ADDED
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
# n8n-nodes-setforth
|
|
2
|
+
|
|
3
|
+
> [Velocity BPA Licensing Notice]
|
|
4
|
+
>
|
|
5
|
+
> This n8n node is licensed under the Business Source License 1.1 (BSL 1.1).
|
|
6
|
+
>
|
|
7
|
+
> Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA.
|
|
8
|
+
>
|
|
9
|
+
> For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.
|
|
10
|
+
|
|
11
|
+
A comprehensive n8n community node for the **Setforth (FORTH®) API** - a debt resolution technology platform providing CRM, payment processing, e-signature, and credit reporting services for Debt Relief Service Providers (DRSPs).
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+

|
|
15
|
+

|
|
16
|
+
|
|
17
|
+
> **FORTH® API Notice:** FORTH® is a registered trademark of SetForth, Inc. This n8n community node is developed independently by Velocity BPA, LLC and is not affiliated with, endorsed by, or sponsored by SetForth, Inc. Use of the Setforth API requires a separate API access agreement with SetForth, Inc.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Features
|
|
22
|
+
|
|
23
|
+
- **38 Resources** with **150+ Operations**
|
|
24
|
+
- OAuth2 authentication with environment switching (Production/Sandbox)
|
|
25
|
+
- Webhook triggers for 12 real-time event types
|
|
26
|
+
- Comprehensive error handling with user-friendly messages
|
|
27
|
+
- Pagination support for large datasets
|
|
28
|
+
- Binary file handling for document operations
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Installation
|
|
33
|
+
|
|
34
|
+
### Community Nodes (Recommended)
|
|
35
|
+
|
|
36
|
+
1. Open **Settings** → **Community Nodes**
|
|
37
|
+
2. Click **Install**
|
|
38
|
+
3. Enter: `n8n-nodes-setforth`
|
|
39
|
+
4. Click **Install**
|
|
40
|
+
|
|
41
|
+
### Manual Installation
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Navigate to your n8n installation
|
|
45
|
+
cd ~/.n8n
|
|
46
|
+
|
|
47
|
+
# Install the package
|
|
48
|
+
npm install n8n-nodes-setforth
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Development Installation
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
# 1. Extract the zip file
|
|
55
|
+
unzip n8n-nodes-setforth.zip
|
|
56
|
+
cd n8n-nodes-setforth
|
|
57
|
+
|
|
58
|
+
# 2. Install dependencies
|
|
59
|
+
npm install
|
|
60
|
+
|
|
61
|
+
# 3. Build the project
|
|
62
|
+
npm run build
|
|
63
|
+
|
|
64
|
+
# 4. Create symlink to n8n custom nodes directory
|
|
65
|
+
mkdir -p ~/.n8n/custom
|
|
66
|
+
ln -s $(pwd) ~/.n8n/custom/n8n-nodes-setforth
|
|
67
|
+
|
|
68
|
+
# 5. Restart n8n
|
|
69
|
+
n8n start
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Credentials Setup
|
|
75
|
+
|
|
76
|
+
| Field | Description |
|
|
77
|
+
|-------|-------------|
|
|
78
|
+
| **Environment** | Select Production or Sandbox |
|
|
79
|
+
| **Client ID** | Your Setforth API Client ID |
|
|
80
|
+
| **Client Secret** | Your Setforth API Client Secret |
|
|
81
|
+
| **Scope** | OAuth2 scopes (default: `read write`) |
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Resources & Operations
|
|
86
|
+
|
|
87
|
+
### CRM Resources
|
|
88
|
+
|
|
89
|
+
| Resource | Operations |
|
|
90
|
+
|----------|------------|
|
|
91
|
+
| **Contact** | Create, Get, Get Many, Update, Delete, Search, Get History Feed |
|
|
92
|
+
| **Contact Alert** | Get, Get Many |
|
|
93
|
+
| **Contact Note** | Get, Get Many |
|
|
94
|
+
| **Contact Communication** | Get, Get Many |
|
|
95
|
+
| **Contact Document** | Get, Get Many |
|
|
96
|
+
| **Contact List** | Get, Get Many |
|
|
97
|
+
| **Contact Workflow** | Get, Get Many |
|
|
98
|
+
| **Contact Banking** | Get, Get Many |
|
|
99
|
+
|
|
100
|
+
### Debt Resources
|
|
101
|
+
|
|
102
|
+
| Resource | Operations |
|
|
103
|
+
|----------|------------|
|
|
104
|
+
| **Debt** | Create, Get, Update, Delete, Get Documents, Update Type |
|
|
105
|
+
| **Debt Task** | Get, Get Many |
|
|
106
|
+
| **Debt Note** | Get, Get Many |
|
|
107
|
+
| **Contact Debt** | Get, Get Many |
|
|
108
|
+
| **Contact Credit Report** | Get, Get Many |
|
|
109
|
+
|
|
110
|
+
### Servicing Resources
|
|
111
|
+
|
|
112
|
+
| Resource | Operations |
|
|
113
|
+
|----------|------------|
|
|
114
|
+
| **Enrollment** | Get, Get Many |
|
|
115
|
+
| **Settlement Offer** | Get, Get Many |
|
|
116
|
+
| **Transaction** | Get, Get Many |
|
|
117
|
+
| **Account Statement** | Get, Get Many |
|
|
118
|
+
| **Creditor** | Get, Get Many |
|
|
119
|
+
|
|
120
|
+
### Document Resources
|
|
121
|
+
|
|
122
|
+
| Resource | Operations |
|
|
123
|
+
|----------|------------|
|
|
124
|
+
| **Document** | Get, Get Many |
|
|
125
|
+
| **Document Package** | Get, Get Many |
|
|
126
|
+
| **Document Type** | Get, Get Many |
|
|
127
|
+
| **Document Template** | Get, Get Many |
|
|
128
|
+
| **Document Package Template** | Get, Get Many |
|
|
129
|
+
|
|
130
|
+
### E-Signature & Credit
|
|
131
|
+
|
|
132
|
+
| Resource | Operations |
|
|
133
|
+
|----------|------------|
|
|
134
|
+
| **Clixsign** | Get, Get Many |
|
|
135
|
+
| **Forth Credit** | Get, Get Many |
|
|
136
|
+
|
|
137
|
+
### Administration
|
|
138
|
+
|
|
139
|
+
| Resource | Operations |
|
|
140
|
+
|----------|------------|
|
|
141
|
+
| **Admin User** | Get, Get Many |
|
|
142
|
+
| **Team** | Get, Get Many |
|
|
143
|
+
| **User** | Get, Get Many |
|
|
144
|
+
| **Payee** | Get, Get Many |
|
|
145
|
+
| **Content Configuration** | Get, Get Many |
|
|
146
|
+
|
|
147
|
+
### Marketing
|
|
148
|
+
|
|
149
|
+
| Resource | Operations |
|
|
150
|
+
|----------|------------|
|
|
151
|
+
| **Campaign** | Get, Get Many |
|
|
152
|
+
| **Email Template** | Get, Get Many |
|
|
153
|
+
|
|
154
|
+
### Other Resources
|
|
155
|
+
|
|
156
|
+
| Resource | Operations |
|
|
157
|
+
|----------|------------|
|
|
158
|
+
| **Call** | Get, Get Many |
|
|
159
|
+
| **Task** | Get, Get Many |
|
|
160
|
+
| **Calendar Event** | Get, Get Many |
|
|
161
|
+
| **Lender** | Get, Get Many |
|
|
162
|
+
| **Utility** | Get, Get Many |
|
|
163
|
+
| **Bulk Operations** | Get, Get Many |
|
|
164
|
+
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
## Trigger Node
|
|
168
|
+
|
|
169
|
+
The Setforth Trigger node supports the following events:
|
|
170
|
+
|
|
171
|
+
| Event | Description |
|
|
172
|
+
|-------|-------------|
|
|
173
|
+
| `contact.created` | New contact created |
|
|
174
|
+
| `contact.updated` | Contact updated |
|
|
175
|
+
| `debt.created` | New debt created |
|
|
176
|
+
| `debt.status_changed` | Debt status changed |
|
|
177
|
+
| `clixsign.document_signed` | Document signed via Clixsign |
|
|
178
|
+
| `enrollment.submitted` | Enrollment submitted |
|
|
179
|
+
| `enrollment.approved` | Enrollment approved |
|
|
180
|
+
| `payment.received` | Payment received |
|
|
181
|
+
| `settlement.created` | Settlement offer created |
|
|
182
|
+
| `settlement.status_changed` | Settlement offer status changed |
|
|
183
|
+
| `task.completed` | Task completed |
|
|
184
|
+
| `workflow.status_changed` | Workflow status changed |
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Usage Examples
|
|
189
|
+
|
|
190
|
+
### Create a Contact
|
|
191
|
+
|
|
192
|
+
```json
|
|
193
|
+
{
|
|
194
|
+
"resource": "contact",
|
|
195
|
+
"operation": "create",
|
|
196
|
+
"firstName": "John",
|
|
197
|
+
"lastName": "Doe",
|
|
198
|
+
"email": "john.doe@example.com",
|
|
199
|
+
"phone": "+15551234567"
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Create a Debt
|
|
204
|
+
|
|
205
|
+
```json
|
|
206
|
+
{
|
|
207
|
+
"resource": "debt",
|
|
208
|
+
"operation": "create",
|
|
209
|
+
"contactId": "{{$json.id}}",
|
|
210
|
+
"creditorName": "Capital One",
|
|
211
|
+
"originalBalance": 5000.00,
|
|
212
|
+
"currentBalance": 4500.00
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
---
|
|
217
|
+
|
|
218
|
+
## Error Handling
|
|
219
|
+
|
|
220
|
+
The node provides user-friendly error messages for common API errors:
|
|
221
|
+
|
|
222
|
+
| Code | Description |
|
|
223
|
+
|------|-------------|
|
|
224
|
+
| 400 | Bad Request - Invalid request |
|
|
225
|
+
| 401 | Unauthorized - Invalid credentials |
|
|
226
|
+
| 403 | Forbidden - Insufficient permissions |
|
|
227
|
+
| 404 | Not Found - Resource not found |
|
|
228
|
+
| 429 | Too Many Requests - Rate limit exceeded |
|
|
229
|
+
| 500 | Internal Server Error |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Development
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
# Install dependencies
|
|
237
|
+
npm install
|
|
238
|
+
|
|
239
|
+
# Build the project
|
|
240
|
+
npm run build
|
|
241
|
+
|
|
242
|
+
# Run linting
|
|
243
|
+
npm run lint
|
|
244
|
+
|
|
245
|
+
# Fix linting issues
|
|
246
|
+
npm run lint:fix
|
|
247
|
+
|
|
248
|
+
# Run tests
|
|
249
|
+
npm test
|
|
250
|
+
|
|
251
|
+
# Run tests with coverage
|
|
252
|
+
npm run test:coverage
|
|
253
|
+
|
|
254
|
+
# Watch mode for development
|
|
255
|
+
npm run dev
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Author
|
|
261
|
+
|
|
262
|
+
**Velocity BPA**
|
|
263
|
+
- Website: [velobpa.com](https://velobpa.com)
|
|
264
|
+
- GitHub: [Velocity-BPA](https://github.com/Velocity-BPA)
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## Licensing
|
|
269
|
+
|
|
270
|
+
This n8n community node is licensed under the **Business Source License 1.1**.
|
|
271
|
+
|
|
272
|
+
### Free Use
|
|
273
|
+
Permitted for personal, educational, research, and internal business use.
|
|
274
|
+
|
|
275
|
+
### Commercial Use
|
|
276
|
+
Use of this node within any SaaS, PaaS, hosted platform, managed service, or paid automation offering requires a commercial license.
|
|
277
|
+
|
|
278
|
+
For licensing inquiries:
|
|
279
|
+
**licensing@velobpa.com**
|
|
280
|
+
|
|
281
|
+
See [LICENSE](LICENSE), [COMMERCIAL_LICENSE.md](COMMERCIAL_LICENSE.md), and [LICENSING_FAQ.md](LICENSING_FAQ.md) for details.
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## Support
|
|
286
|
+
|
|
287
|
+
- **Documentation**: See this README and inline code documentation
|
|
288
|
+
- **Issues**: [GitHub Issues](https://github.com/Velocity-BPA/n8n-nodes-setforth/issues)
|
|
289
|
+
- **Commercial Support**: licensing@velobpa.com
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## Acknowledgments
|
|
294
|
+
|
|
295
|
+
- [n8n](https://n8n.io) - Workflow automation platform
|
|
296
|
+
- [Setforth](https://setforth.com) - Debt resolution technology platform
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Trademark Notice
|
|
301
|
+
|
|
302
|
+
- **FORTH®** is a registered trademark of SetForth, Inc.
|
|
303
|
+
- **n8n®** is a registered trademark of n8n GmbH.
|
|
304
|
+
- **Velocity BPA™** is a trademark of Velocity BPA, LLC.
|
|
305
|
+
|
|
306
|
+
This node is not affiliated with, endorsed by, or sponsored by SetForth, Inc. or n8n GmbH.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { IAuthenticateGeneric, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
|
+
export declare class SetforthOAuth2Api implements ICredentialType {
|
|
3
|
+
name: string;
|
|
4
|
+
displayName: string;
|
|
5
|
+
documentationUrl: string;
|
|
6
|
+
extends: string[];
|
|
7
|
+
properties: INodeProperties[];
|
|
8
|
+
authenticate: IAuthenticateGeneric;
|
|
9
|
+
test: ICredentialTestRequest;
|
|
10
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SetforthOAuth2Api = void 0;
|
|
10
|
+
class SetforthOAuth2Api {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.name = 'setforthOAuth2Api';
|
|
13
|
+
this.displayName = 'Setforth OAuth2 API';
|
|
14
|
+
this.documentationUrl = 'https://developer.setforth.com';
|
|
15
|
+
this.extends = ['oAuth2Api'];
|
|
16
|
+
this.properties = [
|
|
17
|
+
{
|
|
18
|
+
displayName: 'Environment',
|
|
19
|
+
name: 'environment',
|
|
20
|
+
type: 'options',
|
|
21
|
+
options: [
|
|
22
|
+
{
|
|
23
|
+
name: 'Production',
|
|
24
|
+
value: 'production',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
name: 'Sandbox',
|
|
28
|
+
value: 'sandbox',
|
|
29
|
+
},
|
|
30
|
+
],
|
|
31
|
+
default: 'sandbox',
|
|
32
|
+
description: 'Select the Setforth environment to connect to',
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
displayName: 'Grant Type',
|
|
36
|
+
name: 'grantType',
|
|
37
|
+
type: 'hidden',
|
|
38
|
+
default: 'clientCredentials',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
displayName: 'Authorization URL',
|
|
42
|
+
name: 'authUrl',
|
|
43
|
+
type: 'hidden',
|
|
44
|
+
default: '={{$self["environment"] === "production" ? "https://api.setforth.com/oauth/authorize" : "https://api.sandbox.setforth.com/oauth/authorize"}}',
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
displayName: 'Access Token URL',
|
|
48
|
+
name: 'accessTokenUrl',
|
|
49
|
+
type: 'hidden',
|
|
50
|
+
default: '={{$self["environment"] === "production" ? "https://api.setforth.com/oauth/token" : "https://api.sandbox.setforth.com/oauth/token"}}',
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
displayName: 'Scope',
|
|
54
|
+
name: 'scope',
|
|
55
|
+
type: 'string',
|
|
56
|
+
default: 'read write',
|
|
57
|
+
description: 'OAuth2 scopes to request',
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
displayName: 'Auth URI Query Parameters',
|
|
61
|
+
name: 'authQueryParameters',
|
|
62
|
+
type: 'hidden',
|
|
63
|
+
default: '',
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
displayName: 'Authentication',
|
|
67
|
+
name: 'authentication',
|
|
68
|
+
type: 'hidden',
|
|
69
|
+
default: 'body',
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
this.authenticate = {
|
|
73
|
+
type: 'generic',
|
|
74
|
+
properties: {
|
|
75
|
+
headers: {
|
|
76
|
+
Authorization: '=Bearer {{$credentials.oauthTokenData.access_token}}',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
};
|
|
80
|
+
this.test = {
|
|
81
|
+
request: {
|
|
82
|
+
baseURL: '={{$credentials.environment === "production" ? "https://api.setforth.com" : "https://api.sandbox.setforth.com"}}',
|
|
83
|
+
url: '/v1/users/me',
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
exports.SetforthOAuth2Api = SetforthOAuth2Api;
|
|
89
|
+
//# sourceMappingURL=SetforthOAuth2Api.credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SetforthOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/SetforthOAuth2Api.credentials.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,MAAa,iBAAiB;IAA9B;QACC,SAAI,GAAG,mBAAmB,CAAC;QAE3B,gBAAW,GAAG,qBAAqB,CAAC;QAEpC,qBAAgB,GAAG,gCAAgC,CAAC;QAEpD,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,aAAa;gBAC1B,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,SAAS;gBACf,OAAO,EAAE;oBACR;wBACC,IAAI,EAAE,YAAY;wBAClB,KAAK,EAAE,YAAY;qBACnB;oBACD;wBACC,IAAI,EAAE,SAAS;wBACf,KAAK,EAAE,SAAS;qBAChB;iBACD;gBACD,OAAO,EAAE,SAAS;gBAClB,WAAW,EAAE,+CAA+C;aAC5D;YACD;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;aAC5B;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EACN,8IAA8I;aAC/I;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EACN,sIAAsI;aACvI;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,YAAY;gBACrB,WAAW,EAAE,0BAA0B;aACvC;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,sDAAsD;iBACrE;aACD;SACD,CAAC;QAEF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EACN,kHAAkH;gBACnH,GAAG,EAAE,cAAc;aACnB;SACD,CAAC;IACH,CAAC;CAAA;AApFD,8CAoFC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IExecuteFunctions, IHookFunctions, ILoadOptionsFunctions, IDataObject, IHttpRequestMethods } from 'n8n-workflow';
|
|
2
|
+
/**
|
|
3
|
+
* Makes an authenticated request to the Setforth API.
|
|
4
|
+
*/
|
|
5
|
+
export declare function setforthApiRequest(this: IExecuteFunctions | ILoadOptionsFunctions | IHookFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, qs?: IDataObject, uri?: string): Promise<IDataObject | IDataObject[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Makes a paginated request to the Setforth API, returning all items.
|
|
8
|
+
*/
|
|
9
|
+
export declare function setforthApiRequestAllItems(this: IExecuteFunctions | ILoadOptionsFunctions, method: IHttpRequestMethods, endpoint: string, body?: IDataObject, qs?: IDataObject): Promise<IDataObject[]>;
|
|
10
|
+
/**
|
|
11
|
+
* Handles API error responses with user-friendly messages.
|
|
12
|
+
*/
|
|
13
|
+
export declare function handleErrorResponse(statusCode: number, message?: string): string;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.setforthApiRequest = setforthApiRequest;
|
|
10
|
+
exports.setforthApiRequestAllItems = setforthApiRequestAllItems;
|
|
11
|
+
exports.handleErrorResponse = handleErrorResponse;
|
|
12
|
+
const n8n_workflow_1 = require("n8n-workflow");
|
|
13
|
+
/**
|
|
14
|
+
* Makes an authenticated request to the Setforth API.
|
|
15
|
+
*/
|
|
16
|
+
async function setforthApiRequest(method, endpoint, body = {}, qs = {}, uri) {
|
|
17
|
+
const credentials = await this.getCredentials('setforthOAuth2Api');
|
|
18
|
+
const environment = credentials.environment;
|
|
19
|
+
const baseUrl = environment === 'production'
|
|
20
|
+
? 'https://api.setforth.com'
|
|
21
|
+
: 'https://api.sandbox.setforth.com';
|
|
22
|
+
const options = {
|
|
23
|
+
method,
|
|
24
|
+
body,
|
|
25
|
+
qs,
|
|
26
|
+
uri: uri || `${baseUrl}${endpoint}`,
|
|
27
|
+
json: true,
|
|
28
|
+
};
|
|
29
|
+
if (Object.keys(body).length === 0) {
|
|
30
|
+
delete options.body;
|
|
31
|
+
}
|
|
32
|
+
if (Object.keys(qs).length === 0) {
|
|
33
|
+
delete options.qs;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const response = await this.helpers.requestOAuth2.call(this, 'setforthOAuth2Api', options);
|
|
37
|
+
return response;
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
throw new n8n_workflow_1.NodeApiError(this.getNode(), error);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Makes a paginated request to the Setforth API, returning all items.
|
|
45
|
+
*/
|
|
46
|
+
async function setforthApiRequestAllItems(method, endpoint, body = {}, qs = {}) {
|
|
47
|
+
const returnData = [];
|
|
48
|
+
let responseData;
|
|
49
|
+
let nextCursor;
|
|
50
|
+
do {
|
|
51
|
+
if (nextCursor) {
|
|
52
|
+
qs.cursor = nextCursor;
|
|
53
|
+
}
|
|
54
|
+
responseData = (await setforthApiRequest.call(this, method, endpoint, body, qs));
|
|
55
|
+
if (responseData.data) {
|
|
56
|
+
const items = responseData.data;
|
|
57
|
+
returnData.push(...items);
|
|
58
|
+
}
|
|
59
|
+
nextCursor = responseData.next_cursor;
|
|
60
|
+
} while (nextCursor);
|
|
61
|
+
return returnData;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Handles API error responses with user-friendly messages.
|
|
65
|
+
*/
|
|
66
|
+
function handleErrorResponse(statusCode, message) {
|
|
67
|
+
const errorMessages = {
|
|
68
|
+
400: 'Bad Request - The request was invalid or cannot be served.',
|
|
69
|
+
401: 'Unauthorized - Authentication credentials are missing or invalid.',
|
|
70
|
+
403: 'Forbidden - You do not have permission to access this resource.',
|
|
71
|
+
404: 'Not Found - The requested resource could not be found.',
|
|
72
|
+
409: 'Conflict - The request conflicts with the current state of the resource.',
|
|
73
|
+
422: 'Unprocessable Entity - The request was well-formed but contains semantic errors.',
|
|
74
|
+
429: 'Too Many Requests - Rate limit exceeded. Please wait and try again.',
|
|
75
|
+
500: 'Internal Server Error - An unexpected error occurred on the server.',
|
|
76
|
+
502: 'Bad Gateway - The server received an invalid response from an upstream server.',
|
|
77
|
+
503: 'Service Unavailable - The server is temporarily unavailable.',
|
|
78
|
+
};
|
|
79
|
+
return errorMessages[statusCode] || message || `An unexpected error occurred (${statusCode})`;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=GenericFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Setforth/GenericFunctions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAgBH,gDA0CC;AAKD,gEAiCC;AAKD,kDAeC;AAzGD,+CAA4C;AAE5C;;GAEG;AACI,KAAK,UAAU,kBAAkB,CAEvC,MAA2B,EAC3B,QAAgB,EAChB,OAAoB,EAAE,EACtB,KAAkB,EAAE,EACpB,GAAY;IAEZ,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;IACnE,MAAM,WAAW,GAAG,WAAW,CAAC,WAAqB,CAAC;IAEtD,MAAM,OAAO,GACZ,WAAW,KAAK,YAAY;QAC3B,CAAC,CAAC,0BAA0B;QAC5B,CAAC,CAAC,kCAAkC,CAAC;IAEvC,MAAM,OAAO,GAAoB;QAChC,MAAM;QACN,IAAI;QACJ,EAAE;QACF,GAAG,EAAE,GAAG,IAAI,GAAG,OAAO,GAAG,QAAQ,EAAE;QACnC,IAAI,EAAE,IAAI;KACV,CAAC;IAEF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,OAAO,CAAC,EAAE,CAAC;IACnB,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CACrD,IAAI,EACJ,mBAAmB,EACnB,OAAO,CACP,CAAC;QACF,OAAO,QAAuB,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAmB,CAAC,CAAC;IAC7D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,0BAA0B,CAE/C,MAA2B,EAC3B,QAAgB,EAChB,OAAoB,EAAE,EACtB,KAAkB,EAAE;IAEpB,MAAM,UAAU,GAAkB,EAAE,CAAC;IACrC,IAAI,YAAyB,CAAC;IAC9B,IAAI,UAA8B,CAAC;IAEnC,GAAG,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YAChB,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC;QACxB,CAAC;QAED,YAAY,GAAG,CAAC,MAAM,kBAAkB,CAAC,IAAI,CAC5C,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,EAAE,CACF,CAAgB,CAAC;QAElB,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,YAAY,CAAC,IAAqB,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC3B,CAAC;QAED,UAAU,GAAG,YAAY,CAAC,WAAiC,CAAC;IAC7D,CAAC,QAAQ,UAAU,EAAE;IAErB,OAAO,UAAU,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,OAAgB;IACvE,MAAM,aAAa,GAA2B;QAC7C,GAAG,EAAE,4DAA4D;QACjE,GAAG,EAAE,mEAAmE;QACxE,GAAG,EAAE,iEAAiE;QACtE,GAAG,EAAE,wDAAwD;QAC7D,GAAG,EAAE,0EAA0E;QAC/E,GAAG,EAAE,kFAAkF;QACvF,GAAG,EAAE,qEAAqE;QAC1E,GAAG,EAAE,qEAAqE;QAC1E,GAAG,EAAE,gFAAgF;QACrF,GAAG,EAAE,8DAA8D;KACnE,CAAC;IAEF,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,OAAO,IAAI,iCAAiC,UAAU,GAAG,CAAC;AAC/F,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) Velocity BPA, LLC
|
|
4
|
+
* Licensed under the Business Source License 1.1
|
|
5
|
+
* Commercial use requires a separate commercial license.
|
|
6
|
+
* See LICENSE file for details.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.logLicenseNotice = logLicenseNotice;
|
|
10
|
+
const LICENSE_NOTICE_LOGGED = new Set();
|
|
11
|
+
/**
|
|
12
|
+
* Logs the Velocity BPA licensing notice once per node type.
|
|
13
|
+
* Non-blocking, informational only.
|
|
14
|
+
*/
|
|
15
|
+
function logLicenseNotice(nodeType) {
|
|
16
|
+
if (LICENSE_NOTICE_LOGGED.has(nodeType)) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
LICENSE_NOTICE_LOGGED.add(nodeType);
|
|
20
|
+
const message = '[Velocity BPA Licensing Notice] ' +
|
|
21
|
+
'This n8n node is licensed under the Business Source License 1.1 (BSL 1.1). ' +
|
|
22
|
+
'Use of this node by for-profit organizations in production environments requires a commercial license from Velocity BPA. ' +
|
|
23
|
+
'For licensing information, visit https://velobpa.com/licensing or contact licensing@velobpa.com.';
|
|
24
|
+
console.warn(message);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=LicenseNotice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LicenseNotice.js","sourceRoot":"","sources":["../../../nodes/Setforth/LicenseNotice.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAQH,4CAcC;AApBD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEhD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAgB;IAChD,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,OAAO;IACR,CAAC;IAED,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,OAAO,GACZ,kCAAkC;QAClC,6EAA6E;QAC7E,2HAA2H;QAC3H,kGAAkG,CAAC;IAEpG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { IExecuteFunctions, INodeExecutionData, INodeType, INodeTypeDescription } from 'n8n-workflow';
|
|
2
|
+
export declare class Setforth implements INodeType {
|
|
3
|
+
description: INodeTypeDescription;
|
|
4
|
+
execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
|
|
5
|
+
}
|