@dominusnode/flowise-tools 1.0.1 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md ADDED
@@ -0,0 +1,30 @@
1
+ # Changelog
2
+
3
+ ## 1.1.0
4
+
5
+ ### Added
6
+ - Stripe checkout top-up tool (`dominusnode_topup_stripe`) — create Stripe Checkout sessions ($5–$1,000)
7
+ - Crypto top-up tool (`dominusnode_topup_crypto`) — NOWPayments invoices for BTC, ETH, LTC, XMR, ZEC, USDC, SOL, USDT, DAI, BNB, LINK ($5–$1,000)
8
+ - `dominusnode_update_wallet_policy` tool — update daily limits and domain allowlists for agentic wallets
9
+ - Comprehensive test suite: 168 tests covering SSRF protection (incl. DNS rebinding), input validation, credential scrubbing, payment response fields, and all 26 tools
10
+
11
+ ### Fixed
12
+ - `topupCrypto`: use `Number.isFinite()` instead of `isNaN()` to correctly reject `NaN` and `Infinity` inputs
13
+ - Payment response field alignment: `topupStripe` uses `sessionId`/`url`, `topupCrypto` uses `invoiceId`/`invoiceUrl`/`payCurrency`/`priceAmount`
14
+
15
+ ## 1.0.1
16
+
17
+ - Fix branding: replace "DomiNode" with "Dominus Node" throughout
18
+
19
+ ## 1.0.0
20
+
21
+ ### Added
22
+
23
+ - Initial release with 23 Flowise-compatible tools for Dominus Node proxy service
24
+ - Proxied fetch with full SSRF protection, DNS rebinding, OFAC blocking, and credential scrubbing
25
+ - Wallet balance and usage monitoring tools
26
+ - Proxy configuration and active session listing
27
+ - Agentic wallet management: create, fund, balance, list, transactions, freeze, unfreeze, delete
28
+ - Team management: create, list, details, fund, create key, usage, update, update member role
29
+ - PayPal top-up and x402 micropayment info tools
30
+ - Full security suite: DNS rebinding protection, Teredo/6to4 IPv6 tunnel detection, IPv4-mapped/compatible IPv6 handling, hex/octal/decimal IP normalization, prototype pollution prevention
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Dominus Node
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,83 @@
1
+ # @dominusnode/flowise-tools
2
+
3
+ Dominus Node rotating proxy tools for [Flowise](https://flowiseai.com) AI workflows.
4
+
5
+ Provides 26 LangChain-compatible `DynamicStructuredTool` instances for interacting with Dominus Node's rotating proxy-as-a-service platform inside Flowise nodes.
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @dominusnode/flowise-tools
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import { DominusNodeToolkit } from "@dominusnode/flowise-tools";
17
+
18
+ const toolkit = new DominusNodeToolkit({
19
+ apiKey: process.env.DOMINUSNODE_API_KEY!, // dn_live_... or dn_test_...
20
+ });
21
+
22
+ // Get all tools for your Flowise workflow
23
+ const tools = toolkit.getTools(); // DynamicStructuredTool[]
24
+ ```
25
+
26
+ ## Configuration
27
+
28
+ | Environment Variable | Description | Default |
29
+ |---|---|---|
30
+ | `DOMINUSNODE_API_KEY` | API key (required) | -- |
31
+ | `DOMINUSNODE_BASE_URL` | REST API base URL | `https://api.dominusnode.com` |
32
+ | `DOMINUSNODE_PROXY_HOST` | Proxy gateway host | `proxy.dominusnode.com` |
33
+ | `DOMINUSNODE_PROXY_PORT` | Proxy gateway port | `8080` |
34
+
35
+ ## Available Tools (26)
36
+
37
+ ### Proxy Operations
38
+ - `dominusnode_proxied_fetch` - Fetch a URL through the rotating proxy with geo-targeting
39
+ - `dominusnode_check_balance` - Check wallet balance and remaining bandwidth
40
+ - `dominusnode_check_usage` - View bandwidth usage statistics
41
+ - `dominusnode_get_proxy_config` - Get proxy pools, pricing, and endpoints
42
+ - `dominusnode_list_sessions` - List active proxy sessions
43
+
44
+ ### Agentic Wallet Management
45
+ - `dominusnode_create_agentic_wallet` - Create a custodial sub-wallet with spending limits
46
+ - `dominusnode_fund_agentic_wallet` - Transfer funds to an agentic wallet
47
+ - `dominusnode_agentic_wallet_balance` - Check agentic wallet balance
48
+ - `dominusnode_list_agentic_wallets` - List all agentic wallets
49
+ - `dominusnode_agentic_transactions` - Get agentic wallet transaction history
50
+ - `dominusnode_freeze_agentic_wallet` - Freeze an agentic wallet
51
+ - `dominusnode_unfreeze_agentic_wallet` - Unfreeze an agentic wallet
52
+ - `dominusnode_delete_agentic_wallet` - Delete an agentic wallet
53
+ - `dominusnode_update_wallet_policy` - Update daily limits and domain restrictions
54
+
55
+ ### Team Management
56
+ - `dominusnode_create_team` - Create a team with shared wallet
57
+ - `dominusnode_list_teams` - List all teams
58
+ - `dominusnode_team_details` - Get team details and member list
59
+ - `dominusnode_team_fund` - Fund a team wallet
60
+ - `dominusnode_team_create_key` - Create a team API key
61
+ - `dominusnode_team_usage` - Get team transaction history
62
+ - `dominusnode_update_team` - Update team settings
63
+ - `dominusnode_update_team_member_role` - Change a member's role
64
+
65
+ ### Payments
66
+ - `dominusnode_topup_paypal` - Top up wallet via PayPal ($5–$1,000)
67
+ - `dominusnode_topup_stripe` - Top up wallet via Stripe ($5–$1,000)
68
+ - `dominusnode_topup_crypto` - Top up wallet via crypto (BTC/ETH/LTC/XMR/ZEC/USDC/SOL/USDT/DAI/BNB/LINK)
69
+ - `dominusnode_x402_info` - Get x402 micropayment protocol info
70
+
71
+ ## Security
72
+
73
+ - Full SSRF protection (private IP blocking, DNS rebinding, Teredo/6to4, hex/octal/decimal normalization)
74
+ - OFAC sanctioned country blocking (CU, IR, KP, RU, SY)
75
+ - Credential scrubbing in all error messages
76
+ - Prototype pollution prevention on all parsed JSON (recursive)
77
+ - HTTP method restriction (GET/HEAD/OPTIONS only for proxied fetch)
78
+ - 10 MB response cap, 4000 char truncation, 30s timeout
79
+ - Redirect following disabled
80
+
81
+ ## License
82
+
83
+ MIT
package/dist/toolkit.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * Dominus Node Flowise Toolkit
3
3
  *
4
- * Provides 24 LangChain-compatible DynamicStructuredTool instances for use
4
+ * Provides 53 LangChain-compatible DynamicStructuredTool instances for use
5
5
  * inside Flowise AI workflows. Covers proxied fetching, wallet management,
6
- * agentic wallets, teams, PayPal top-up, and x402 micropayment info.
6
+ * agentic wallets, teams, Stripe/PayPal/crypto top-up, x402 micropayment info,
7
+ * account management, API key management, plans, sessions, and usage analytics.
7
8
  *
8
9
  * Security:
9
10
  * - Full SSRF protection (private IP blocking, DNS rebinding, Teredo/6to4,
@@ -57,6 +58,8 @@ export interface DominusNodeToolkitOptions {
57
58
  proxyHost?: string;
58
59
  proxyPort?: number;
59
60
  timeout?: number;
61
+ /** Optional agent secret for MCP agent auto-verification (bypasses reCAPTCHA). */
62
+ agentSecret?: string;
60
63
  }
61
64
  export declare class DominusNodeToolkit {
62
65
  private apiKey;
@@ -64,6 +67,7 @@ export declare class DominusNodeToolkit {
64
67
  private proxyHost;
65
68
  private proxyPort;
66
69
  private timeout;
70
+ private agentSecret?;
67
71
  private token;
68
72
  private tokenExpiresAt;
69
73
  constructor(options?: DominusNodeToolkitOptions);
@@ -71,6 +75,7 @@ export declare class DominusNodeToolkit {
71
75
  private _ensureAuth;
72
76
  private _apiRequest;
73
77
  private _requestWithRetry;
78
+ private _unauthenticatedRequest;
74
79
  proxiedFetch(url: string, method?: string, country?: string, proxyType?: string): Promise<string>;
75
80
  checkBalance(): Promise<string>;
76
81
  checkUsage(days?: number): Promise<string>;
@@ -94,7 +99,37 @@ export declare class DominusNodeToolkit {
94
99
  updateTeam(teamId: string, name?: string, maxMembers?: number): Promise<string>;
95
100
  updateTeamMemberRole(teamId: string, userId: string, role: string): Promise<string>;
96
101
  topupPaypal(amountCents: number): Promise<string>;
102
+ topupStripe(amountCents: number): Promise<string>;
103
+ private static readonly VALID_CRYPTO_CURRENCIES;
104
+ topupCrypto(amountUsd: number, currency: string): Promise<string>;
97
105
  x402Info(): Promise<string>;
106
+ getProxyStatus(): Promise<string>;
107
+ getTransactions(limit?: number): Promise<string>;
108
+ getForecast(): Promise<string>;
109
+ checkPayment(invoiceId: string): Promise<string>;
110
+ getDailyUsage(days?: number): Promise<string>;
111
+ getTopHosts(limit?: number): Promise<string>;
112
+ register(email: string, password: string): Promise<string>;
113
+ login(email: string, password: string): Promise<string>;
114
+ getAccountInfo(): Promise<string>;
115
+ verifyEmail(token: string): Promise<string>;
116
+ resendVerification(): Promise<string>;
117
+ updatePassword(currentPassword: string, newPassword: string): Promise<string>;
118
+ listKeys(): Promise<string>;
119
+ createKey(label?: string): Promise<string>;
120
+ revokeKey(keyId: string): Promise<string>;
121
+ getPlan(): Promise<string>;
122
+ listPlans(): Promise<string>;
123
+ changePlan(planId: string): Promise<string>;
124
+ teamDelete(teamId: string): Promise<string>;
125
+ teamRevokeKey(teamId: string, keyId: string): Promise<string>;
126
+ teamListKeys(teamId: string): Promise<string>;
127
+ teamListMembers(teamId: string): Promise<string>;
128
+ teamAddMember(teamId: string, email: string, role?: string): Promise<string>;
129
+ teamRemoveMember(teamId: string, userId: string): Promise<string>;
130
+ teamInviteMember(teamId: string, email: string, role?: string): Promise<string>;
131
+ teamListInvites(teamId: string): Promise<string>;
132
+ teamCancelInvite(teamId: string, inviteId: string): Promise<string>;
98
133
  getTools(): DynamicStructuredTool[];
99
134
  }
100
135
  //# sourceMappingURL=toolkit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"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"}