@key0ai/key0 0.1.0 → 0.2.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.
Files changed (54) hide show
  1. package/README.md +66 -21
  2. package/dist/__tests__/e2e.test.js +1 -1
  3. package/dist/__tests__/e2e.test.js.map +1 -1
  4. package/dist/__tests__/x402-http-middleware.test.js +4 -207
  5. package/dist/__tests__/x402-http-middleware.test.js.map +1 -1
  6. package/dist/core/__tests__/agent-card.test.js +14 -12
  7. package/dist/core/__tests__/agent-card.test.js.map +1 -1
  8. package/dist/core/__tests__/storage-postgres.test.js +0 -1
  9. package/dist/core/__tests__/storage-postgres.test.js.map +1 -1
  10. package/dist/core/agent-card.d.ts.map +1 -1
  11. package/dist/core/agent-card.js +25 -10
  12. package/dist/core/agent-card.js.map +1 -1
  13. package/dist/core/challenge-engine.js +1 -1
  14. package/dist/core/challenge-engine.js.map +1 -1
  15. package/dist/core/index.d.ts +1 -1
  16. package/dist/core/index.d.ts.map +1 -1
  17. package/dist/core/index.js +1 -1
  18. package/dist/core/index.js.map +1 -1
  19. package/dist/integrations/express.d.ts +6 -4
  20. package/dist/integrations/express.d.ts.map +1 -1
  21. package/dist/integrations/express.js +27 -29
  22. package/dist/integrations/express.js.map +1 -1
  23. package/dist/integrations/fastify.d.ts +5 -1
  24. package/dist/integrations/fastify.d.ts.map +1 -1
  25. package/dist/integrations/fastify.js +117 -8
  26. package/dist/integrations/fastify.js.map +1 -1
  27. package/dist/integrations/hono.d.ts +8 -2
  28. package/dist/integrations/hono.d.ts.map +1 -1
  29. package/dist/integrations/hono.js +116 -12
  30. package/dist/integrations/hono.js.map +1 -1
  31. package/dist/integrations/settlement.d.ts.map +1 -1
  32. package/dist/integrations/settlement.js +1 -3
  33. package/dist/integrations/settlement.js.map +1 -1
  34. package/dist/types/agent-card.d.ts +16 -0
  35. package/dist/types/agent-card.d.ts.map +1 -1
  36. package/package.json +3 -1
  37. package/src/__tests__/e2e.test.ts +1 -1
  38. package/src/__tests__/x402-http-middleware.test.ts +4 -256
  39. package/src/core/__tests__/agent-card.test.ts +15 -12
  40. package/src/core/__tests__/storage-postgres.test.ts +0 -2
  41. package/src/core/agent-card.ts +26 -10
  42. package/src/core/challenge-engine.ts +1 -1
  43. package/src/core/index.ts +1 -1
  44. package/src/integrations/express.ts +221 -235
  45. package/src/integrations/fastify.ts +160 -8
  46. package/src/integrations/hono.ts +168 -12
  47. package/src/integrations/settlement.ts +1 -3
  48. package/src/types/agent-card.ts +13 -2
  49. package/src/types/config.ts +1 -1
  50. package/dist/integrations/x402-http-middleware.d.ts +0 -15
  51. package/dist/integrations/x402-http-middleware.d.ts.map +0 -1
  52. package/dist/integrations/x402-http-middleware.js +0 -171
  53. package/dist/integrations/x402-http-middleware.js.map +0 -1
  54. package/src/integrations/x402-http-middleware.ts +0 -246
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- <img src="docs/logo.svg" alt="Key0" width="260" />
1
+ <img src="docs/logo.png" alt="Key0" width="260" />
2
2
 
3
3
  Sell anything to AI agents — APIs, data, goods or services — with built-in payments, zero proxying, and no architectural changes to your existing stack.
4
4
 
@@ -64,10 +64,20 @@ There are two ways to configure Standalone mode:
64
64
  Just start the container with no environment variables — Key0 boots into **Setup Mode** and serves a browser-based configuration wizard:
65
65
 
66
66
  ```bash
67
- docker compose -f docker/docker-compose.yml up
67
+ docker compose -f docker/docker-compose.yml --profile full up
68
68
  # Open http://localhost:3000 → redirects to /setup
69
+ # Managed infra (Redis, Postgres) is auto-detected at startup — no extra env vars needed.
69
70
  ```
70
71
 
72
+ Docker Compose profiles control which infrastructure services are bundled:
73
+
74
+ | Profile | What starts |
75
+ |---|---|
76
+ | *(none)* | Key0 only — bring your own Redis + Postgres via env vars |
77
+ | `--profile redis` | Key0 + managed Redis |
78
+ | `--profile postgres` | Key0 + managed Postgres (still needs Redis externally) |
79
+ | `--profile full` | Key0 + managed Redis + managed Postgres (batteries included) |
80
+
71
81
  The Setup UI lets you configure everything visually: wallet address, network, pricing plans, token issuance API, settlement, and refund settings. When you submit, the server writes the config and restarts automatically.
72
82
 
73
83
  Configuration is persisted in a Docker volume (`key0-config`), so it survives `docker compose down` / `up` cycles.
@@ -96,7 +106,7 @@ docker run \
96
106
  ```bash
97
107
  cp docker/.env.example docker/.env
98
108
  # Edit docker/.env: set KEY0_WALLET_ADDRESS and ISSUE_TOKEN_API
99
- docker compose -f docker/docker-compose.yml up
109
+ docker compose -f docker/docker-compose.yml --profile redis up
100
110
  ```
101
111
 
102
112
  > Even with env vars pre-configured, the Setup UI is always available at `/setup` for reconfiguration.
@@ -128,11 +138,14 @@ Build from source: `docker build -t key0ai/key0 .`
128
138
  | `PROVIDER_URL` | | `https://key0.ai` | Your organization URL shown in the agent card `provider` field |
129
139
  | `PLANS` | | `[{"planId":"basic","unitAmount":"$0.10"}]` | JSON array of pricing plans — each with `planId`, `unitAmount`, and optional `description` |
130
140
  | `CHALLENGE_TTL_SECONDS` | | `900` | How long a payment challenge remains valid before expiring (seconds) |
131
- | `BASE_PATH` | | — | URL path prefix for A2A endpoints (e.g. `/a2a` mounts `/a2a/jsonrpc` and `/a2a/.well-known/agent.json`) |
141
+ | `BASE_PATH` | | — | URL path prefix for endpoints (e.g. `/a2a` mounts `/a2a/.well-known/agent.json`). The `/x402/access` endpoint is always at the root. |
132
142
  | `BACKEND_AUTH_STRATEGY` | | `none` | How Key0 authenticates with `ISSUE_TOKEN_API` — `none`, `shared-secret`, or `jwt` |
133
143
  | `ISSUE_TOKEN_API_SECRET` | | — | Secret for `ISSUE_TOKEN_API` auth — Bearer token (shared-secret) or JWT signing key (jwt). Only used when `BACKEND_AUTH_STRATEGY` is not `none` |
134
144
  | `MCP_ENABLED` | | `false` | When `true`, mounts MCP routes (`/.well-known/mcp.json` + `POST /mcp`) exposing `discover_plans` and `request_access` tools |
135
- | `REDIS_URL` | | | Redis connection URL required for multi-replica deployments and the BullMQ refund cron |
145
+ | `STORAGE_BACKEND` | | `redis` | Storage backend`redis` or `postgres` |
146
+ | `DATABASE_URL` | | — | PostgreSQL connection URL — required when `STORAGE_BACKEND=postgres` |
147
+ | `REDIS_URL` | ✅ | — | Redis connection URL — required for challenge state (or BullMQ refund cron when using Postgres) |
148
+ | `KEY0_MANAGED_INFRA` | | — | Optional comma-separated list of compose-managed infra (e.g. `redis,postgres`). Auto-detected at startup via DNS; only needed as an explicit override |
136
149
  | `GAS_WALLET_PRIVATE_KEY` | | — | Private key of a wallet holding ETH on Base — enables self-contained settlement without a CDP facilitator |
137
150
  | `KEY0_WALLET_PRIVATE_KEY` | | — | Private key of `KEY0_WALLET_ADDRESS` — required for the refund cron to send USDC back to payers |
138
151
  | `REFUND_INTERVAL_MS` | | `60000` | How often the refund cron runs (ms) — only active when `KEY0_WALLET_PRIVATE_KEY` is set |
@@ -299,8 +312,6 @@ app.listen(3000);
299
312
 
300
313
  ### Hono
301
314
 
302
- > A2A endpoints mount at `/a2a` by default (set `config.basePath` to override).
303
-
304
315
  ```typescript
305
316
  import { Hono } from "hono";
306
317
  import { key0App, honoValidateAccessToken } from "@key0ai/key0/hono";
@@ -329,8 +340,6 @@ export default { port: 3000, fetch: app.fetch };
329
340
 
330
341
  ### Fastify
331
342
 
332
- > A2A endpoints mount at `/a2a` by default (set `config.basePath` to override).
333
-
334
343
  ```typescript
335
344
  import Fastify from "fastify";
336
345
  import { key0Plugin, fastifyValidateAccessToken } from "@key0ai/key0/fastify";
@@ -367,8 +376,11 @@ fastify.listen({ port: 3000 });
367
376
  | `network` | `"testnet" \| "mainnet"` | ✅ | — | Base Sepolia or Base |
368
377
  | `plans` | `Plan[]` | ✅ | — | Pricing plans |
369
378
  | `fetchResourceCredentials` | `(params) => Promise<TokenIssuanceResult>` | ✅ | — | Issue the credential after payment |
379
+ | `tokenIssueTimeoutMs` | `number` | | `15000` | Timeout for `fetchResourceCredentials` callback (ms) |
380
+ | `tokenIssueRetries` | `number` | | `2` | Max retries for `fetchResourceCredentials` on transient failure |
370
381
  | `challengeTTLSeconds` | `number` | | `900` | Challenge validity window |
371
- | `basePath` | `string` | | `"/a2a"` | A2A endpoint path prefix |
382
+ | `version` | `string` | | `"1.0.0"` | Agent version shown in agent card and MCP discovery |
383
+ | `basePath` | `string` | | `"/agent"` | Path prefix for resource endpoint URLs |
372
384
  | `resourceEndpointTemplate` | `string` | | auto | URL template (use `{resourceId}`) |
373
385
  | `gasWalletPrivateKey` | `0x${string}` | | — | Private key for self-contained settlement |
374
386
  | `redis` | `IRedisLockClient` | | — | Redis client for distributed gas wallet settlement locking across replicas |
@@ -445,6 +457,17 @@ await queue.add("process", {}, { repeat: { every: 60_000 } });
445
457
  > The `walletPrivateKey` must correspond to `walletAddress` — the wallet that received the USDC payments.
446
458
  > Without Redis, a plain `setInterval` works for single-instance deployments (the atomic `PAID → REFUND_PENDING` CAS transition prevents double-refunds even with multiple overlapping ticks).
447
459
 
460
+ **Retrying failed refunds:**
461
+
462
+ If a refund fails (e.g. network error), the record moves to `REFUND_FAILED`. Use `retryFailedRefunds` to re-queue them:
463
+
464
+ ```typescript
465
+ import { retryFailedRefunds } from "@key0ai/key0";
466
+
467
+ // Re-queue specific failed refunds — they'll be picked up by the next processRefunds run
468
+ const requeued = await retryFailedRefunds(store, ["challengeId-1", "challengeId-2"]);
469
+ ```
470
+
448
471
  ### Environment Variables
449
472
 
450
473
  ```bash
@@ -467,6 +490,8 @@ Key0 supports two payment flows. Both follow the same `ChallengeRecord` lifecycl
467
490
 
468
491
  ### A2A Flow (Agent-to-Agent)
469
492
 
493
+ A2A-native clients send a `POST /x402/access` with the `X-A2A-Extensions` header, which delegates to the JSON-RPC handler. The payment flow uses the same `PENDING → PAID → DELIVERED` lifecycle.
494
+
470
495
  ```
471
496
  Client Agent Seller Server
472
497
  | |
@@ -474,7 +499,9 @@ Client Agent Seller Server
474
499
  |------------------------------------->|
475
500
  | <-- Agent card (skills, pricing) |
476
501
  | |
477
- | 2. POST /a2a/jsonrpc (AccessRequest)|
502
+ | 2. POST /x402/access |
503
+ | + X-A2A-Extensions header |
504
+ | (JSON-RPC AccessRequest) |
478
505
  |------------------------------------->|
479
506
  | <-- X402Challenge (amount, chain, |
480
507
  | destination, challengeId) |
@@ -483,7 +510,9 @@ Client Agent Seller Server
483
510
  |----> Blockchain |
484
511
  | <-- txHash |
485
512
  | |
486
- | 4. POST /a2a/jsonrpc (PaymentProof) |
513
+ | 4. POST /x402/access |
514
+ | + X-A2A-Extensions header |
515
+ | (JSON-RPC PaymentProof) |
487
516
  |------------------------------------->|
488
517
  | Server verifies tx on-chain --> |
489
518
  | <-- AccessGrant (JWT + endpoint) |
@@ -495,10 +524,10 @@ Client Agent Seller Server
495
524
  ```
496
525
 
497
526
  1. **Discovery** — Client fetches the agent card at `/.well-known/agent.json` to learn about available plans and pricing
498
- 2. **Access Request** — Client sends an `AccessRequest` with the resource ID and desired plan
527
+ 2. **Access Request** — Client sends a JSON-RPC `AccessRequest` to `/x402/access` with the `X-A2A-Extensions` header
499
528
  3. **Challenge** — Server creates a `PENDING` record and returns an `X402Challenge` with payment details
500
529
  4. **Payment** — Client pays on-chain USDC on Base — a standard ERC-20 transfer, no custom contracts
501
- 5. **Proof** — Client submits a `PaymentProof` with the transaction hash
530
+ 5. **Proof** — Client submits a JSON-RPC `PaymentProof` with the transaction hash
502
531
  6. **Verification** — Server verifies the payment on-chain (correct recipient, amount, not expired, not double-spent), transitions `PENDING → PAID`
503
532
  7. **Grant** — Server calls `fetchResourceCredentials`, transitions `PAID → DELIVERED`, returns an `AccessGrant` with the token and resource endpoint URL
504
533
  8. **Access** — Client uses the token as a Bearer header to access the protected resource
@@ -508,9 +537,9 @@ Client Agent Seller Server
508
537
  ```
509
538
  Client Seller Server
510
539
  | |
511
- | 1. POST /x402/access {} |
540
+ | 1. GET /discovery |
512
541
  |------------------------------------->|
513
- | <-- HTTP 402 + all plans |
542
+ | <-- 200 + all plans |
514
543
  | (discovery, no PENDING record) |
515
544
  | |
516
545
  | 2. POST /x402/access |
@@ -536,7 +565,7 @@ Client Seller Server
536
565
  | <-- Protected content |
537
566
  ```
538
567
 
539
- 1. **Discovery (optional)** — Client POSTs to `/x402/access` with no body to receive a 402 listing all available plans and pricing. No `PENDING` record is created.
568
+ 1. **Discovery (optional)** — Client calls `GET /discovery` to receive a 200 response listing all available plans and pricing. No `PENDING` record is created. `POST /x402/access` without a `planId` returns 400 and directs clients to `GET /discovery`.
540
569
  2. **Challenge** — Client POSTs `{ planId }` (and optionally `requestId`, `resourceId`). Server creates a `PENDING` record and returns HTTP 402 with x402 `PaymentRequirements` for that plan. `requestId` is auto-generated if omitted.
541
570
  3. **Payment + Settlement** — Client resends with the same `{ planId, requestId }` plus a `PAYMENT-SIGNATURE` header containing a signed EIP-3009 authorization. The gas wallet or facilitator settles on-chain; server transitions `PENDING → PAID → DELIVERED` and returns an `AccessGrant`.
542
571
  4. **Access** — Client uses the token as a Bearer header to access the protected resource.
@@ -667,6 +696,21 @@ fetchResourceCredentials: async (params) => {
667
696
  const decoded = await issuer.verifyWithFallback(token, [process.env.PREVIOUS_SECRET!]);
668
697
  ```
669
698
 
699
+ ### Lightweight Token Validator (Backend Services)
700
+
701
+ If your backend only needs to validate Key0 tokens without the full SDK, use `validateKey0Token`:
702
+
703
+ ```typescript
704
+ import { validateKey0Token } from "@key0ai/key0";
705
+
706
+ const payload = await validateKey0Token(req.headers.authorization, {
707
+ secret: process.env.ACCESS_TOKEN_SECRET!,
708
+ });
709
+ // payload: { sub, jti, resourceId, planId, txHash, ... }
710
+ ```
711
+
712
+ Supports both HS256 (shared secret) and RS256 (public key) algorithms. No blockchain connection needed.
713
+
670
714
  ### Settlement Strategies
671
715
 
672
716
  **Facilitator (default)** — Coinbase CDP executes an EIP-3009 `transferWithAuthorization` on-chain:
@@ -686,10 +730,10 @@ The gas wallet must hold ETH on Base to pay transaction fees.
686
730
 
687
731
  ## Networks
688
732
 
689
- | Network | Chain | Chain ID | USDC Contract | EIP-712 Domain Name |
690
- |---|---|---|---|---|
691
- | `testnet` | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `USD Coin` |
692
- | `mainnet` | Base | 8453 | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | `USD Coin` |
733
+ | Network | Chain | Chain ID | USDC Contract | EIP-712 Domain Name | EIP-712 Version |
734
+ |---|---|---|---|---|---|
735
+ | `testnet` | Base Sepolia | 84532 | `0x036CbD53842c5426634e7929541eC2318f3dCF7e` | `USDC` | `2` |
736
+ | `mainnet` | Base | 8453 | `0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913` | `USDC` | `2` |
693
737
 
694
738
  ---
695
739
 
@@ -724,6 +768,7 @@ bun run start
724
768
  | [`examples/refund-cron-example`](./examples/refund-cron-example) | BullMQ refund cron with Redis-backed storage |
725
769
  | [`examples/backend-integration`](./examples/backend-integration) | Key0 service + backend API coordination |
726
770
  | [`examples/client-agent`](./examples/client-agent) | Buyer agent with real on-chain USDC payments |
771
+ | [`examples/simple-x402-client.ts`](./examples/simple-x402-client.ts) | Minimal x402 HTTP client example (single file) |
727
772
 
728
773
  ---
729
774
 
@@ -131,7 +131,7 @@ describe("E2E: Full Key0 lifecycle (x402 Extension)", () => {
131
131
  // Agent card check — two A2A spec-compliant skills
132
132
  expect(agentCard.name).toBe("E2E Test Agent");
133
133
  expect(agentCard.skills).toHaveLength(2);
134
- expect(agentCard.skills[0].id).toBe("discover-products");
134
+ expect(agentCard.skills[0].id).toBe("discover-plans");
135
135
  expect(agentCard.skills[1].id).toBe("request-access");
136
136
  // Skills should NOT have pricing (A2A spec compliance)
137
137
  expect(agentCard.skills[0].pricing).toBeUndefined();
@@ -1 +1 @@
1
- {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"e2e.test.js","sourceRoot":"","sources":["../../src/__tests__/e2e.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { beforeEach, describe, expect, test } from "bun:test";
2
2
  import { AccessTokenIssuer } from "../core/access-token.js";
3
3
  import { ChallengeEngine } from "../core/challenge-engine.js";
4
- import { buildHttpPaymentRequirements, createX402HttpMiddleware, decodePaymentSignature, settleViaFacilitator, } from "../integrations/x402-http-middleware.js";
4
+ import { buildHttpPaymentRequirements, decodePaymentSignature, settleViaFacilitator, } from "../integrations/settlement.js";
5
5
  import { MockPaymentAdapter } from "../test-utils/index.js";
6
6
  import { TestChallengeStore, TestSeenTxStore } from "../test-utils/stores.js";
7
7
  import { CHAIN_CONFIGS } from "../types/config-shared.js";
@@ -34,51 +34,7 @@ function makeConfig() {
34
34
  },
35
35
  };
36
36
  }
37
- function createMockRequest(body, headers = {}) {
38
- return {
39
- body,
40
- headers: headers,
41
- };
42
- }
43
- function createMockResponse() {
44
- let statusCode = 200;
45
- let jsonData = null;
46
- const nextCalled = false;
47
- const headers = {};
48
- const res = {
49
- status: function (code) {
50
- statusCode = code;
51
- return this;
52
- },
53
- json: function (data) {
54
- jsonData = data;
55
- return this;
56
- },
57
- send: function (_data) {
58
- return this;
59
- },
60
- setHeader: function (name, value) {
61
- headers[name] = value;
62
- return this;
63
- },
64
- };
65
- return {
66
- res: res,
67
- get statusCode() {
68
- return statusCode;
69
- },
70
- get jsonData() {
71
- return jsonData;
72
- },
73
- get headers() {
74
- return headers;
75
- },
76
- get nextCalled() {
77
- return nextCalled;
78
- },
79
- };
80
- }
81
- describe("x402-http-middleware", () => {
37
+ describe("x402 settlement helpers", () => {
82
38
  describe("buildHttpPaymentRequirements", () => {
83
39
  test("should build correct payment requirements", () => {
84
40
  const config = makeConfig();
@@ -87,7 +43,7 @@ describe("x402-http-middleware", () => {
87
43
  // v2 response structure
88
44
  expect(requirements.x402Version).toBe(2);
89
45
  expect(requirements.resource).toBeDefined();
90
- expect(requirements.resource.url).toBe("https://agent.example.com/a2a/jsonrpc");
46
+ expect(requirements.resource.url).toBe("https://agent.example.com/x402/access");
91
47
  expect(requirements.resource.method).toBe("POST");
92
48
  // Payment requirements
93
49
  expect(requirements.accepts).toHaveLength(1);
@@ -109,172 +65,13 @@ describe("x402-http-middleware", () => {
109
65
  expect(() => buildHttpPaymentRequirements("invalid-tier", "default", config, networkConfig)).toThrow('Plan "invalid-tier" not found');
110
66
  });
111
67
  });
112
- describe("createX402HttpMiddleware", () => {
113
- let engine;
114
- let config;
115
- let middleware;
116
- beforeEach(() => {
117
- config = makeConfig();
118
- const store = new TestChallengeStore();
119
- const seenTxStore = new TestSeenTxStore();
120
- const adapter = new MockPaymentAdapter();
121
- engine = new ChallengeEngine({
122
- config,
123
- store,
124
- seenTxStore,
125
- adapter,
126
- });
127
- middleware = createX402HttpMiddleware(engine, config);
128
- });
129
- test("should pass through if X-A2A-Extensions header is present", async () => {
130
- const req = createMockRequest({
131
- method: "message/send",
132
- params: {
133
- message: {
134
- parts: [
135
- {
136
- kind: "data",
137
- data: { type: "AccessRequest", requestId: "test", planId: "basic" },
138
- },
139
- ],
140
- },
141
- },
142
- }, {
143
- "x-a2a-extensions": "https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.2",
144
- });
145
- let nextCalled = false;
146
- const next = (() => {
147
- nextCalled = true;
148
- });
149
- const mockRes = createMockResponse();
150
- await middleware(req, mockRes.res, next);
151
- expect(nextCalled).toBe(true);
152
- });
153
- test("should pass through if not message/send", async () => {
154
- const req = createMockRequest({
155
- method: "task/get",
156
- params: {},
157
- });
158
- let nextCalled = false;
159
- const next = (() => {
160
- nextCalled = true;
161
- });
162
- const mockRes = createMockResponse();
163
- await middleware(req, mockRes.res, next);
164
- expect(nextCalled).toBe(true);
165
- });
166
- test("should pass through if no AccessRequest in message parts", async () => {
167
- const req = createMockRequest({
168
- method: "message/send",
169
- params: {
170
- message: {
171
- parts: [{ kind: "data", data: { type: "SomethingElse" } }],
172
- },
173
- },
174
- });
175
- let nextCalled = false;
176
- const next = (() => {
177
- nextCalled = true;
178
- });
179
- const mockRes = createMockResponse();
180
- await middleware(req, mockRes.res, next);
181
- expect(nextCalled).toBe(true);
182
- });
183
- test("should return HTTP 402 for AccessRequest without X-Payment", async () => {
184
- const req = createMockRequest({
185
- method: "message/send",
186
- params: {
187
- message: {
188
- parts: [
189
- {
190
- kind: "data",
191
- data: {
192
- type: "AccessRequest",
193
- requestId: "req-123",
194
- planId: "basic",
195
- resourceId: "default",
196
- },
197
- },
198
- ],
199
- },
200
- },
201
- });
202
- const next = (() => { });
203
- const mockRes = createMockResponse();
204
- await middleware(req, mockRes.res, next);
205
- expect(mockRes.statusCode).toBe(402);
206
- expect(mockRes.jsonData.x402Version).toBe(2);
207
- expect(mockRes.jsonData.resource).toBeDefined();
208
- expect(mockRes.jsonData.accepts).toHaveLength(1);
209
- expect(mockRes.jsonData.accepts[0].amount).toBe("990000");
210
- // challengeId from PENDING record should be in the response
211
- expect(mockRes.jsonData.challengeId).toBeDefined();
212
- expect(mockRes.jsonData.challengeId).toMatch(/^http-/);
213
- // Check PAYMENT-REQUIRED header is set
214
- expect(mockRes.headers["payment-required"]).toBeDefined();
215
- const decodedHeader = JSON.parse(Buffer.from(mockRes.headers["payment-required"], "base64").toString());
216
- expect(decodedHeader.x402Version).toBe(2);
217
- });
218
- test("should return 400 for invalid tier", async () => {
219
- const req = createMockRequest({
220
- method: "message/send",
221
- params: {
222
- message: {
223
- parts: [
224
- {
225
- kind: "data",
226
- data: {
227
- type: "AccessRequest",
228
- requestId: "req-123",
229
- planId: "invalid-tier",
230
- resourceId: "default",
231
- },
232
- },
233
- ],
234
- },
235
- },
236
- });
237
- const next = (() => { });
238
- const mockRes = createMockResponse();
239
- await middleware(req, mockRes.res, next);
240
- expect(mockRes.statusCode).toBe(400);
241
- expect(mockRes.jsonData.code).toBe("TIER_NOT_FOUND");
242
- });
243
- test("should parse AccessRequest from text part", async () => {
244
- const req = createMockRequest({
245
- method: "message/send",
246
- params: {
247
- message: {
248
- parts: [
249
- {
250
- kind: "text",
251
- text: JSON.stringify({
252
- type: "AccessRequest",
253
- requestId: "req-123",
254
- planId: "basic",
255
- resourceId: "default",
256
- }),
257
- },
258
- ],
259
- },
260
- },
261
- });
262
- const next = (() => { });
263
- const mockRes = createMockResponse();
264
- await middleware(req, mockRes.res, next);
265
- expect(mockRes.statusCode).toBe(402);
266
- expect(mockRes.jsonData.x402Version).toBe(2);
267
- // Check PAYMENT-REQUIRED header is set
268
- expect(mockRes.headers["payment-required"]).toBeDefined();
269
- });
270
- });
271
68
  describe("settleViaFacilitator", () => {
272
69
  const mockPaymentPayload = {
273
70
  x402Version: 2,
274
71
  network: "eip155:84532",
275
72
  scheme: "exact",
276
73
  resource: {
277
- url: "https://agent.example.com/a2a/jsonrpc",
74
+ url: "https://agent.example.com/x402/access",
278
75
  method: "POST",
279
76
  description: "Access to default",
280
77
  mimeType: "application/json",
@@ -1 +1 @@
1
- {"version":3,"file":"x402-http-middleware.test.js","sourceRoot":"","sources":["../../src/__tests__/x402-http-middleware.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EACN,4BAA4B,EAC5B,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,GACpB,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,MAAM,MAAM,GAAG,oDAAoD,CAAC;AACpE,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;AAEvD,SAAS,UAAU;IAClB,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO;QACN,SAAS,EAAE,YAAY;QACvB,gBAAgB,EAAE,MAAM;QACxB,QAAQ,EAAE,2BAA2B;QACrC,YAAY,EAAE,eAAe;QAC7B,WAAW,EAAE,8BAA8B;QAC3C,aAAa,EAAE,MAAM;QACrB,OAAO,EAAE,SAAS;QAClB,KAAK,EAAE;YACN,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE;YACxC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE;SAC1C;QACD,mBAAmB,EAAE,GAAG;QACxB,wBAAwB,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAClC;gBACC,GAAG,EAAE,MAAM,CAAC,SAAS;gBACrB,GAAG,EAAE,MAAM,CAAC,WAAW;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,MAAM,EAAE,MAAM,CAAC,MAAM;aACrB,EACD,IAAI,CACJ,CAAC;YAEF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QACvC,CAAC;KACD,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAS,EAAE,UAAkC,EAAE;IACzE,OAAO;QACN,IAAI;QACJ,OAAO,EAAE,OAAc;KACvB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IAO1B,IAAI,UAAU,GAAG,GAAG,CAAC;IACrB,IAAI,QAAQ,GAAQ,IAAI,CAAC;IACzB,MAAM,UAAU,GAAG,KAAK,CAAC;IACzB,MAAM,OAAO,GAA2B,EAAE,CAAC;IAE3C,MAAM,GAAG,GAAG;QACX,MAAM,EAAE,UAAU,IAAY;YAC7B,UAAU,GAAG,IAAI,CAAC;YAClB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,EAAE,UAAU,IAAS;YACxB,QAAQ,GAAG,IAAI,CAAC;YAChB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,IAAI,EAAE,UAAU,KAAU;YACzB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,SAAS,EAAE,UAAU,IAAY,EAAE,KAAa;YAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;YACtB,OAAO,IAAI,CAAC;QACb,CAAC;KACD,CAAC;IAEF,OAAO;QACN,GAAG,EAAE,GAAwB;QAC7B,IAAI,UAAU;YACb,OAAO,UAAU,CAAC;QACnB,CAAC;QACD,IAAI,QAAQ;YACX,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,IAAI,OAAO;YACV,OAAO,OAAO,CAAC;QAChB,CAAC;QACD,IAAI,UAAU;YACb,OAAO,UAAU,CAAC;QACnB,CAAC;KACD,CAAC;AACH,CAAC;AAED,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,8BAA8B,EAAE,GAAG,EAAE;QAC7C,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACtD,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;YAE5C,MAAM,YAAY,GAAG,4BAA4B,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;YAE7F,wBAAwB;YACxB,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;YAChF,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAElD,uBAAuB;YACvB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,gBAAgB;YAC/E,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YACvE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa;YACrE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,2CAA2C;YAEzG,2CAA2C;YAC3C,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YACrD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9D,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;YAE5C,MAAM,CAAC,GAAG,EAAE,CACX,4BAA4B,CAAC,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAC9E,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACzC,IAAI,MAAuB,CAAC;QAC5B,IAAI,MAAoB,CAAC;QACzB,IAAI,UAAuD,CAAC;QAE5D,UAAU,CAAC,GAAG,EAAE;YACf,MAAM,GAAG,UAAU,EAAE,CAAC;YACtB,MAAM,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACvC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEzC,MAAM,GAAG,IAAI,eAAe,CAAC;gBAC5B,MAAM;gBACN,KAAK;gBACL,WAAW;gBACX,OAAO;aACP,CAAC,CAAC;YAEH,UAAU,GAAG,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,GAAG,GAAG,iBAAiB,CAC5B;gBACC,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACP,OAAO,EAAE;wBACR,KAAK,EAAE;4BACN;gCACC,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;6BACnE;yBACD;qBACD;iBACD;aACD,EACD;gBACC,kBAAkB,EACjB,yEAAyE;aAC1E,CACD,CAAC;YAEF,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;gBAClB,UAAU,GAAG,IAAI,CAAC;YACnB,CAAC,CAAiB,CAAC;YACnB,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,UAAU;gBAClB,MAAM,EAAE,EAAE;aACV,CAAC,CAAC;YAEH,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;gBAClB,UAAU,GAAG,IAAI,CAAC;YACnB,CAAC,CAAiB,CAAC;YACnB,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;YAC3E,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACP,OAAO,EAAE;wBACR,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,CAAC;qBAC1D;iBACD;aACD,CAAC,CAAC;YAEH,IAAI,UAAU,GAAG,KAAK,CAAC;YACvB,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;gBAClB,UAAU,GAAG,IAAI,CAAC;YACnB,CAAC,CAAiB,CAAC;YACnB,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC7E,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACP,OAAO,EAAE;wBACR,KAAK,EAAE;4BACN;gCACC,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;oCACL,IAAI,EAAE,eAAe;oCACrB,SAAS,EAAE,SAAS;oCACpB,MAAM,EAAE,OAAO;oCACf,UAAU,EAAE,SAAS;iCACrB;6BACD;yBACD;qBACD;iBACD;aACD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAE,CAAC,CAAiB,CAAC;YACxC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAChD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE1D,4DAA4D;YAC5D,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEvD,uCAAuC;YACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1D,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAC/B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAE,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CACtE,CAAC;YACF,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YACrD,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACP,OAAO,EAAE;wBACR,KAAK,EAAE;4BACN;gCACC,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE;oCACL,IAAI,EAAE,eAAe;oCACrB,SAAS,EAAE,SAAS;oCACpB,MAAM,EAAE,cAAc;oCACtB,UAAU,EAAE,SAAS;iCACrB;6BACD;yBACD;qBACD;iBACD;aACD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAE,CAAC,CAAiB,CAAC;YACxC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;YAC5D,MAAM,GAAG,GAAG,iBAAiB,CAAC;gBAC7B,MAAM,EAAE,cAAc;gBACtB,MAAM,EAAE;oBACP,OAAO,EAAE;wBACR,KAAK,EAAE;4BACN;gCACC,IAAI,EAAE,MAAM;gCACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oCACpB,IAAI,EAAE,eAAe;oCACrB,SAAS,EAAE,SAAS;oCACpB,MAAM,EAAE,OAAO;oCACf,UAAU,EAAE,SAAS;iCACrB,CAAC;6BACF;yBACD;qBACD;iBACD;aACD,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAE,CAAC,CAAiB,CAAC;YACxC,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;YAErC,MAAM,UAAU,CAAC,GAAc,EAAE,OAAO,CAAC,GAAe,EAAE,IAAI,CAAC,CAAC;YAEhE,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAE7C,uCAAuC;YACvC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3D,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACrC,MAAM,kBAAkB,GAAG;YAC1B,WAAW,EAAE,CAAC;YACd,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,OAAO;YACf,QAAQ,EAAE;gBACT,GAAG,EAAE,uCAAuC;gBAC5C,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,mBAAmB;gBAChC,QAAQ,EAAE,kBAAkB;aAC5B;YACD,QAAQ,EAAE;gBACT,MAAM,EAAE,OAAO;gBACf,OAAO,EAAE,cAAc;gBACvB,KAAK,EAAE,4CAA4C;gBACnD,MAAM,EAAE,QAAQ;gBAChB,KAAK,EAAE,MAAM;gBACb,iBAAiB,EAAE,GAAG;gBACtB,KAAK,EAAE;oBACN,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,GAAG;oBACZ,WAAW,EAAE,2BAA2B;iBACxC;aACD;YACD,OAAO,EAAE;gBACR,aAAa,EAAE;oBACd,IAAI,EAAE,4CAA4C;oBAClD,EAAE,EAAE,MAAM;oBACV,KAAK,EAAE,QAAQ;oBACf,UAAU,EAAE,YAAY;oBACxB,WAAW,EAAE,YAAY;oBACzB,KAAK,EAAE,oEAAoE;iBAC3E;gBACD,SAAS,EAAE,QAAQ;aACnB;SACD,CAAC;QAEF,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,UAAU,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAE3D,mCAAmC;YACnC,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;YACvC,MAAM,UAAU,GAAsC,EAAE,CAAC;YAExD,UAAkB,CAAC,KAAK,GAAG,KAAK,EAAE,GAA2B,EAAE,OAAa,EAAE,EAAE;gBAChF,MAAM,SAAS,GACd,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAC/E,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC7D,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE1C,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;wBACd,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,4CAA4C;qBACnD,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAChE,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;wBACd,OAAO,EAAE,IAAI;wBACb,WAAW,EAAE,UAAU;wBACvB,OAAO,EAAE,cAAc;wBACvB,KAAK,EAAE,4CAA4C;qBACnD,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAChE,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,IAAI,CAAC;gBACJ,MAAM,MAAM,GAAG,MAAM,oBAAoB,CACxC,kBAAkB,EAClB,iCAAiC,CACjC,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAA2B,CAAC,CAAC;gBACxD,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;gBACxE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEjD,oCAAoC;gBACpC,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBACnC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBAC1E,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;gBAE1E,6BAA6B;gBAC7B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;gBAC7D,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,qBAAqB,CAAC,CAAC;gBAClE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;gBACvE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YACtF,CAAC;oBAAS,CAAC;gBACV,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;YAC3D,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;YACtC,UAAkB,CAAC,KAAK,GAAG,KAAK,EAAE,GAA2B,EAAE,EAAE;gBACjE,MAAM,SAAS,GACd,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAE/E,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;wBACd,OAAO,EAAE,KAAK;wBACd,aAAa,EAAE,oBAAoB;wBACnC,KAAK,EAAE,4CAA4C;qBACnD,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAChE,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,IAAI,CAAC;gBACJ,MAAM,MAAM,CACX,oBAAoB,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzC,CAAC;oBAAS,CAAC;gBACV,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;YACtC,UAAkB,CAAC,KAAK,GAAG,KAAK,EAAE,GAA2B,EAAE,EAAE;gBACjE,MAAM,SAAS,GACd,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAE/E,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,EAAE;wBACjE,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAC/C,CAAC,CAAC;gBACJ,CAAC;gBAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,IAAI,CAAC;gBACJ,MAAM,MAAM,CACX,oBAAoB,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;YACtC,CAAC;oBAAS,CAAC;gBACV,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;YAC9D,MAAM,aAAa,GAAG,UAAU,CAAC,KAAK,CAAC;YACtC,UAAkB,CAAC,KAAK,GAAG,KAAK,EAAE,GAA2B,EAAE,EAAE;gBACjE,MAAM,SAAS,GACd,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;gBAE/E,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;wBACd,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,4CAA4C;qBACnD,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAChE,CAAC;gBACH,CAAC;gBAED,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBACnC,OAAO,IAAI,QAAQ,CAClB,IAAI,CAAC,SAAS,CAAC;wBACd,OAAO,EAAE,KAAK;wBACd,WAAW,EAAE,oBAAoB;wBACjC,WAAW,EAAE,EAAE;wBACf,OAAO,EAAE,cAAc;qBACvB,CAAC,EACF,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,CAChE,CAAC;gBACH,CAAC;gBAED,OAAO,IAAI,QAAQ,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC;YAEF,IAAI,CAAC;gBACJ,MAAM,MAAM,CACX,oBAAoB,CAAC,kBAAkB,EAAE,iCAAiC,CAAC,CAC3E,CAAC,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YACzC,CAAC;oBAAS,CAAC;gBACV,UAAU,CAAC,KAAK,GAAG,aAAa,CAAC;YAClC,CAAC;QACF,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YACnE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;YAE5C,MAAM,MAAM,CACX,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CACtE,CAAC,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAClD,IAAI,MAAuB,CAAC;QAC5B,IAAI,MAAoB,CAAC;QACzB,IAAI,KAAyB,CAAC;QAE9B,UAAU,CAAC,GAAG,EAAE;YACf,MAAM,GAAG,UAAU,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACjC,MAAM,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEzC,MAAM,GAAG,IAAI,eAAe,CAAC;gBAC5B,MAAM;gBACN,KAAK;gBACL,WAAW;gBACX,OAAO;aACP,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;YACtE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE3E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,CAAC,MAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACrC,MAAM,CAAC,MAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,uDAAuD,EAAE,KAAK,IAAI,EAAE;YACxE,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC1E,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAE3E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzF,+BAA+B,CAC/B,CAAC;QACH,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,oCAAoC,EAAE,GAAG,EAAE;QACnD,IAAI,MAAuB,CAAC;QAC5B,IAAI,MAAoB,CAAC;QACzB,IAAI,KAAyB,CAAC;QAC9B,IAAI,WAA4B,CAAC;QAEjC,UAAU,CAAC,GAAG,EAAE;YACf,MAAM,GAAG,UAAU,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,kBAAkB,EAAE,CAAC;YACjC,WAAW,GAAG,IAAI,eAAe,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAEzC,MAAM,GAAG,IAAI,eAAe,CAAC;gBAC5B,MAAM;gBACN,KAAK;gBACL,WAAW;gBACX,OAAO;aACP,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAChE,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAEnF,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAClC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iEAAiE,EAAE,KAAK,IAAI,EAAE;YAClF,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAEtD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1F,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAEtD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;YAE1F,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAEtF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YAClD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,MAAO,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;YACnF,MAAM,UAAU,GAAiB;gBAChC,GAAG,MAAM;gBACT,wBAAwB,EAAE,KAAK,IAAI,EAAE;oBACpC,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBAC1C,CAAC;aACD,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,kBAAkB,EAAE,CAAC;YAC3C,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC;gBACtC,MAAM,EAAE,UAAU;gBAClB,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,UAAU;gBACvB,OAAO,EAAE,IAAI,kBAAkB,EAAE;aACjC,CAAC,CAAC;YAEH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,UAAU,CAAC,iBAAiB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,KAAK,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAEtD,MAAM,MAAM,CACX,UAAU,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,CAC5E,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAE3C,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7B,MAAM,CAAC,MAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACnC,MAAM,CAAC,MAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACxC,MAAM,CAAC,MAAO,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;YAC7C,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAEvD,MAAM,MAAM,CACX,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,CAAC,CACrE,CAAC,OAAO,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;YACjE,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YAEvD,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAErE,MAAM,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC3F,kCAAkC,CAClC,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,mCAAmC,EAAE,KAAK,IAAI,EAAE;YACpD,MAAM,MAAM,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;YACvD,MAAM,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAErE,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"x402-http-middleware.test.js","sourceRoot":"","sources":["../../src/__tests__/x402-http-middleware.test.ts"],"names":[],"mappings":"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"}