@agentcash/router 0.6.4 → 0.6.6
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/.claude/CLAUDE.md +15 -0
- package/dist/index.cjs +6 -9
- package/dist/index.d.cts +5 -5
- package/dist/index.d.ts +5 -5
- package/dist/index.js +6 -9
- package/package.json +1 -1
package/.claude/CLAUDE.md
CHANGED
|
@@ -131,6 +131,21 @@ router
|
|
|
131
131
|
|
|
132
132
|
## Environment Variables
|
|
133
133
|
|
|
134
|
+
### Base URL
|
|
135
|
+
|
|
136
|
+
`baseUrl` is **required** in `RouterConfig`. No auto-detection, no fallbacks. The realm is load-bearing for payment matching (MPP memo indexing, 402 challenge realm), so it must be explicitly set.
|
|
137
|
+
|
|
138
|
+
```typescript
|
|
139
|
+
createRouter({
|
|
140
|
+
baseUrl: process.env.BASE_URL!,
|
|
141
|
+
// ...
|
|
142
|
+
})
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
If `baseUrl` is missing, `createRouter` throws immediately — in dev and prod. This ensures devs discover the issue on first `pnpm dev` rather than deploying with a wrong realm.
|
|
146
|
+
|
|
147
|
+
### CDP API Keys
|
|
148
|
+
|
|
134
149
|
The router uses the default facilitator from `@coinbase/x402`, which requires CDP API keys in `process.env`:
|
|
135
150
|
|
|
136
151
|
- `CDP_API_KEY_ID` — Coinbase Developer Platform API key ID
|
package/dist/index.cjs
CHANGED
|
@@ -1467,20 +1467,17 @@ function createRouter(config) {
|
|
|
1467
1467
|
const registry = new RouteRegistry();
|
|
1468
1468
|
const nonceStore = config.siwx?.nonceStore ?? new MemoryNonceStore();
|
|
1469
1469
|
const network = config.network ?? "eip155:8453";
|
|
1470
|
-
|
|
1470
|
+
if (!config.baseUrl) {
|
|
1471
|
+
throw new Error(
|
|
1472
|
+
'[router] baseUrl is required in RouterConfig. Set it to your production domain (e.g., "https://api.example.com"). The realm is used for payment matching and must be correct.'
|
|
1473
|
+
);
|
|
1474
|
+
}
|
|
1471
1475
|
if (config.protocols && config.protocols.length === 0) {
|
|
1472
1476
|
throw new Error(
|
|
1473
1477
|
"RouterConfig.protocols cannot be empty. Omit the field to use default ['x402'] or specify protocols explicitly."
|
|
1474
1478
|
);
|
|
1475
1479
|
}
|
|
1476
|
-
|
|
1477
|
-
const msg = "baseUrl is required. Pass it in RouterConfig or set NEXT_PUBLIC_BASE_URL (e.g. https://myapp.com). It is used for discovery URLs, OpenAPI servers, and MPP realm.";
|
|
1478
|
-
if (process.env.NODE_ENV === "production") {
|
|
1479
|
-
throw new Error(msg);
|
|
1480
|
-
}
|
|
1481
|
-
console.warn(`[router] ${msg}`);
|
|
1482
|
-
}
|
|
1483
|
-
const resolvedBaseUrl = (baseUrl ?? "http://localhost:3000").replace(/\/+$/, "");
|
|
1480
|
+
const resolvedBaseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
1484
1481
|
let x402ConfigError;
|
|
1485
1482
|
let mppConfigError;
|
|
1486
1483
|
if ((!config.protocols || config.protocols.includes("x402")) && !config.payeeAddress) {
|
package/dist/index.d.cts
CHANGED
|
@@ -235,13 +235,13 @@ interface RouteEntry {
|
|
|
235
235
|
interface RouterConfig {
|
|
236
236
|
payeeAddress: string;
|
|
237
237
|
/**
|
|
238
|
-
*
|
|
239
|
-
* Used for discovery URLs, OpenAPI servers, and MPP
|
|
238
|
+
* Origin URL (e.g. `https://myapp.com`).
|
|
239
|
+
* Used for 402 challenge realm, discovery URLs, OpenAPI servers, and MPP memo indexing.
|
|
240
240
|
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
241
|
+
* **Required.** No auto-detection — the realm is load-bearing for payment matching,
|
|
242
|
+
* so it must be explicitly set by the consuming app.
|
|
243
243
|
*/
|
|
244
|
-
baseUrl
|
|
244
|
+
baseUrl: string;
|
|
245
245
|
network?: string;
|
|
246
246
|
facilitatorUrl?: string;
|
|
247
247
|
plugin?: RouterPlugin;
|
package/dist/index.d.ts
CHANGED
|
@@ -235,13 +235,13 @@ interface RouteEntry {
|
|
|
235
235
|
interface RouterConfig {
|
|
236
236
|
payeeAddress: string;
|
|
237
237
|
/**
|
|
238
|
-
*
|
|
239
|
-
* Used for discovery URLs, OpenAPI servers, and MPP
|
|
238
|
+
* Origin URL (e.g. `https://myapp.com`).
|
|
239
|
+
* Used for 402 challenge realm, discovery URLs, OpenAPI servers, and MPP memo indexing.
|
|
240
240
|
*
|
|
241
|
-
*
|
|
242
|
-
*
|
|
241
|
+
* **Required.** No auto-detection — the realm is load-bearing for payment matching,
|
|
242
|
+
* so it must be explicitly set by the consuming app.
|
|
243
243
|
*/
|
|
244
|
-
baseUrl
|
|
244
|
+
baseUrl: string;
|
|
245
245
|
network?: string;
|
|
246
246
|
facilitatorUrl?: string;
|
|
247
247
|
plugin?: RouterPlugin;
|
package/dist/index.js
CHANGED
|
@@ -1430,20 +1430,17 @@ function createRouter(config) {
|
|
|
1430
1430
|
const registry = new RouteRegistry();
|
|
1431
1431
|
const nonceStore = config.siwx?.nonceStore ?? new MemoryNonceStore();
|
|
1432
1432
|
const network = config.network ?? "eip155:8453";
|
|
1433
|
-
|
|
1433
|
+
if (!config.baseUrl) {
|
|
1434
|
+
throw new Error(
|
|
1435
|
+
'[router] baseUrl is required in RouterConfig. Set it to your production domain (e.g., "https://api.example.com"). The realm is used for payment matching and must be correct.'
|
|
1436
|
+
);
|
|
1437
|
+
}
|
|
1434
1438
|
if (config.protocols && config.protocols.length === 0) {
|
|
1435
1439
|
throw new Error(
|
|
1436
1440
|
"RouterConfig.protocols cannot be empty. Omit the field to use default ['x402'] or specify protocols explicitly."
|
|
1437
1441
|
);
|
|
1438
1442
|
}
|
|
1439
|
-
|
|
1440
|
-
const msg = "baseUrl is required. Pass it in RouterConfig or set NEXT_PUBLIC_BASE_URL (e.g. https://myapp.com). It is used for discovery URLs, OpenAPI servers, and MPP realm.";
|
|
1441
|
-
if (process.env.NODE_ENV === "production") {
|
|
1442
|
-
throw new Error(msg);
|
|
1443
|
-
}
|
|
1444
|
-
console.warn(`[router] ${msg}`);
|
|
1445
|
-
}
|
|
1446
|
-
const resolvedBaseUrl = (baseUrl ?? "http://localhost:3000").replace(/\/+$/, "");
|
|
1443
|
+
const resolvedBaseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
1447
1444
|
let x402ConfigError;
|
|
1448
1445
|
let mppConfigError;
|
|
1449
1446
|
if ((!config.protocols || config.protocols.includes("x402")) && !config.payeeAddress) {
|