@agentcash/router 0.6.5 → 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 +9 -8
- package/dist/index.cjs +6 -10
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +6 -10
- package/package.json +1 -1
package/.claude/CLAUDE.md
CHANGED
|
@@ -131,17 +131,18 @@ router
|
|
|
131
131
|
|
|
132
132
|
## Environment Variables
|
|
133
133
|
|
|
134
|
-
### Base URL
|
|
134
|
+
### Base URL
|
|
135
135
|
|
|
136
|
-
`baseUrl` is auto-
|
|
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
137
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
138
|
+
```typescript
|
|
139
|
+
createRouter({
|
|
140
|
+
baseUrl: process.env.BASE_URL!,
|
|
141
|
+
// ...
|
|
142
|
+
})
|
|
143
|
+
```
|
|
143
144
|
|
|
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.
|
|
145
146
|
|
|
146
147
|
### CDP API Keys
|
|
147
148
|
|
package/dist/index.cjs
CHANGED
|
@@ -1467,21 +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
|
-
|
|
1471
|
-
if (config.protocols && config.protocols.length === 0) {
|
|
1470
|
+
if (!config.baseUrl) {
|
|
1472
1471
|
throw new Error(
|
|
1473
|
-
|
|
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.'
|
|
1474
1473
|
);
|
|
1475
1474
|
}
|
|
1476
|
-
if (
|
|
1477
|
-
|
|
1478
|
-
"
|
|
1475
|
+
if (config.protocols && config.protocols.length === 0) {
|
|
1476
|
+
throw new Error(
|
|
1477
|
+
"RouterConfig.protocols cannot be empty. Omit the field to use default ['x402'] or specify protocols explicitly."
|
|
1479
1478
|
);
|
|
1480
1479
|
}
|
|
1481
|
-
const resolvedBaseUrl =
|
|
1482
|
-
/\/+$/,
|
|
1483
|
-
""
|
|
1484
|
-
);
|
|
1480
|
+
const resolvedBaseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
1485
1481
|
let x402ConfigError;
|
|
1486
1482
|
let mppConfigError;
|
|
1487
1483
|
if ((!config.protocols || config.protocols.includes("x402")) && !config.payeeAddress) {
|
package/dist/index.d.cts
CHANGED
|
@@ -236,12 +236,12 @@ interface RouterConfig {
|
|
|
236
236
|
payeeAddress: string;
|
|
237
237
|
/**
|
|
238
238
|
* Origin URL (e.g. `https://myapp.com`).
|
|
239
|
-
* Used for discovery URLs, OpenAPI servers, and MPP
|
|
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
|
@@ -236,12 +236,12 @@ interface RouterConfig {
|
|
|
236
236
|
payeeAddress: string;
|
|
237
237
|
/**
|
|
238
238
|
* Origin URL (e.g. `https://myapp.com`).
|
|
239
|
-
* Used for discovery URLs, OpenAPI servers, and MPP
|
|
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,21 +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
|
-
|
|
1434
|
-
if (config.protocols && config.protocols.length === 0) {
|
|
1433
|
+
if (!config.baseUrl) {
|
|
1435
1434
|
throw new Error(
|
|
1436
|
-
|
|
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.'
|
|
1437
1436
|
);
|
|
1438
1437
|
}
|
|
1439
|
-
if (
|
|
1440
|
-
|
|
1441
|
-
"
|
|
1438
|
+
if (config.protocols && config.protocols.length === 0) {
|
|
1439
|
+
throw new Error(
|
|
1440
|
+
"RouterConfig.protocols cannot be empty. Omit the field to use default ['x402'] or specify protocols explicitly."
|
|
1442
1441
|
);
|
|
1443
1442
|
}
|
|
1444
|
-
const resolvedBaseUrl =
|
|
1445
|
-
/\/+$/,
|
|
1446
|
-
""
|
|
1447
|
-
);
|
|
1443
|
+
const resolvedBaseUrl = config.baseUrl.replace(/\/+$/, "");
|
|
1448
1444
|
let x402ConfigError;
|
|
1449
1445
|
let mppConfigError;
|
|
1450
1446
|
if ((!config.protocols || config.protocols.includes("x402")) && !config.payeeAddress) {
|