@chaoschain/sdk 0.1.2 → 0.1.3

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/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/WalletManager.ts","../src/utils/contracts.ts","../src/ChaosAgent.ts","../src/exceptions.ts","../src/X402PaymentManager.ts","../src/PaymentManager.ts","../src/X402Server.ts","../src/GoogleAP2Integration.ts","../src/A2AX402Extension.ts","../src/ProcessIntegrity.ts","../src/StorageBackends.ts","../src/utils/networks.ts","../src/ChaosChainSDK.ts","../src/providers/storage/IPFSLocal.ts","../src/types.ts","../src/index.ts"],"names":["ethers","fs","path","PaymentError","crypto","axios","http","path2","fs2","privateKey","jose","paymentData","createHash","FormData","NetworkConfig","AgentRole","ValidationStatus","PaymentMethod"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Wallet management for ChaosChain SDK\n * Handles private keys, HD wallets, and secure key storage\n */\n\nimport { ethers } from 'ethers';\nimport { WalletConfig } from './types';\nimport * as fs from 'fs';\nimport * as path from 'path';\n// import * as crypto from 'crypto';\n\nexport class WalletManager {\n private wallet: ethers.Wallet | ethers.HDNodeWallet;\n private provider?: ethers.Provider;\n\n constructor(config: WalletConfig, provider?: ethers.Provider) {\n this.wallet = this.initializeWallet(config);\n this.provider = provider;\n\n if (provider) {\n this.wallet = this.wallet.connect(provider);\n }\n }\n\n /**\n * Initialize wallet from various sources\n */\n private initializeWallet(config: WalletConfig): ethers.Wallet {\n if (config.privateKey) {\n return new ethers.Wallet(config.privateKey);\n }\n\n if (config.mnemonic) {\n return ethers.Wallet.fromPhrase(config.mnemonic);\n }\n\n if (config.walletFile) {\n return this.loadFromFile(config.walletFile);\n }\n\n // Generate new random wallet\n return ethers.Wallet.createRandom();\n }\n\n /**\n * Load wallet from encrypted file\n */\n private loadFromFile(filePath: string): ethers.Wallet {\n try {\n const walletData = fs.readFileSync(filePath, 'utf8');\n const data = JSON.parse(walletData);\n\n if (data.encrypted) {\n throw new Error('Encrypted wallets require password (not yet implemented)');\n }\n\n return new ethers.Wallet(data.privateKey);\n } catch (error) {\n throw new Error(`Failed to load wallet from file: ${(error as Error).message}`);\n }\n }\n\n /**\n * Save wallet to encrypted file\n */\n async saveToFile(filePath: string, password?: string): Promise<void> {\n const directory = path.dirname(filePath);\n if (!fs.existsSync(directory)) {\n fs.mkdirSync(directory, { recursive: true });\n }\n\n if (password) {\n // Use ethers built-in encryption\n const encrypted = await this.wallet.encrypt(password);\n fs.writeFileSync(filePath, encrypted, 'utf8');\n } else {\n // Save unencrypted (not recommended for production)\n const data = {\n address: this.wallet.address,\n privateKey: this.wallet.privateKey,\n mnemonic: this.wallet.mnemonic?.phrase,\n encrypted: false,\n };\n fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf8');\n }\n }\n\n /**\n * Get wallet instance\n */\n getWallet(): ethers.Wallet {\n return this.wallet;\n }\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.wallet.address;\n }\n\n /**\n * Get private key (use with caution)\n */\n getPrivateKey(): string {\n return this.wallet.privateKey;\n }\n\n /**\n * Get mnemonic phrase (if available)\n */\n getMnemonic(): string | undefined {\n return this.wallet.mnemonic?.phrase;\n }\n\n /**\n * Sign a message\n */\n async signMessage(message: string): Promise<string> {\n return this.wallet.signMessage(message);\n }\n\n /**\n * Sign typed data (EIP-712)\n */\n async signTypedData(\n domain: ethers.TypedDataDomain,\n types: Record<string, ethers.TypedDataField[]>,\n value: Record<string, unknown>\n ): Promise<string> {\n return this.wallet.signTypedData(domain, types, value);\n }\n\n /**\n * Get balance\n */\n async getBalance(): Promise<bigint> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getBalance(this.wallet.address);\n }\n\n /**\n * Get nonce\n */\n async getNonce(): Promise<number> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getTransactionCount(this.wallet.address);\n }\n\n /**\n * Connect to a new provider\n */\n connect(provider: ethers.Provider): void {\n this.provider = provider;\n this.wallet = this.wallet.connect(provider);\n }\n\n /**\n * Generate a new random wallet\n */\n static createRandom(): WalletManager {\n const wallet = ethers.Wallet.createRandom();\n return new WalletManager({ privateKey: wallet.privateKey });\n }\n\n /**\n * Create from mnemonic\n */\n static fromMnemonic(mnemonic: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ mnemonic }, provider);\n }\n\n /**\n * Create from private key\n */\n static fromPrivateKey(privateKey: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ privateKey }, provider);\n }\n\n /**\n * Generate new mnemonic\n */\n static generateMnemonic(): string {\n return ethers.Wallet.createRandom().mnemonic?.phrase || '';\n }\n\n /**\n * Validate mnemonic\n */\n static isValidMnemonic(mnemonic: string): boolean {\n try {\n ethers.Wallet.fromPhrase(mnemonic);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Validate private key\n */\n static isValidPrivateKey(privateKey: string): boolean {\n try {\n new ethers.Wallet(privateKey);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Derive child wallet from HD path\n */\n static deriveChild(mnemonic: string, path: string): WalletManager {\n const hdNode = ethers.HDNodeWallet.fromPhrase(mnemonic, undefined, path);\n return new WalletManager({ privateKey: hdNode.privateKey });\n }\n}\n\n","/**\n * ERC-8004 v1.0 Contract ABIs and Addresses\n * \n * Complete ABIs extracted from Python SDK (chaos_agent.py lines 155-637)\n * \n * This module contains the complete ABIs for all ERC-8004 v1.0 contracts.\n * These are the official ABIs deployed on testnets.\n */\n\nimport { NetworkConfig } from '../types';\n\n/**\n * Identity Registry ABI (ERC-8004 v1.0 with ERC-721)\n */\nexport const IDENTITY_REGISTRY_ABI = [\n {\n inputs: [\n { name: 'tokenURI_', type: 'string' },\n {\n name: 'metadata',\n type: 'tuple[]',\n components: [\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' }\n ]\n }\n ],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenURI_', type: 'string' }],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // ERC-721 Standard Functions\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'ownerOf',\n outputs: [{ name: 'owner', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'owner', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: 'balance', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'tokenURI',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' }\n ],\n name: 'transferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' }\n ],\n name: 'approve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'operator', type: 'address' },\n { name: 'approved', type: 'bool' }\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'getApproved',\n outputs: [{ name: 'operator', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'operator', type: 'address' }\n ],\n name: 'isApprovedForAll',\n outputs: [{ name: 'approved', type: 'bool' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Metadata Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' }\n ],\n name: 'setMetadata',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' }\n ],\n name: 'getMetadata',\n outputs: [{ name: 'value', type: 'bytes' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Additional Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'newUri', type: 'string' }\n ],\n name: 'setAgentUri',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [],\n name: 'totalAgents',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'tokenURI', type: 'string' },\n { indexed: true, name: 'owner', type: 'address' }\n ],\n name: 'Registered',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'indexedKey', type: 'string' },\n { indexed: false, name: 'key', type: 'string' },\n { indexed: false, name: 'value', type: 'bytes' }\n ],\n name: 'MetadataSet',\n type: 'event'\n },\n // ERC-721 Standard Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' }\n ],\n name: 'Transfer',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'approved', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' }\n ],\n name: 'Approval',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'operator', type: 'address' },\n { indexed: false, name: 'approved', type: 'bool' }\n ],\n name: 'ApprovalForAll',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'newUri', type: 'string' },\n { indexed: true, name: 'updatedBy', type: 'address' }\n ],\n name: 'UriUpdated',\n type: 'event'\n }\n ];\n\n/**\n * Get Reputation Registry ABI (ERC-8004 v1.0)\n * \n * v1.0 uses cryptographic signatures (EIP-191/ERC-1271) for feedback authorization.\n * Key changes:\n * - giveFeedback() with signature-based authorization\n * - On-chain scores (0-100) with tags\n * - revokeFeedback() support\n * - appendResponse() for audit trails\n */\nexport const REPUTATION_REGISTRY_ABI = [\n // Core Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'score', type: 'uint8' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'feedbackUri', type: 'string' },\n { name: 'feedbackHash', type: 'bytes32' },\n { name: 'feedbackAuth', type: 'bytes' }\n ],\n name: 'giveFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'feedbackIndex', type: 'uint64' }\n ],\n name: 'revokeFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'feedbackIndex', type: 'uint64' },\n { name: 'responseUri', type: 'string' },\n { name: 'responseHash', type: 'bytes32' }\n ],\n name: 'appendResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // Read Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' }\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'averageScore', type: 'uint8' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'index', type: 'uint64' }\n ],\n name: 'readFeedback',\n outputs: [\n { name: 'score', type: 'uint8' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'isRevoked', type: 'bool' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'includeRevoked', type: 'bool' }\n ],\n name: 'readAllFeedback',\n outputs: [\n { name: 'clients', type: 'address[]' },\n { name: 'scores', type: 'uint8[]' },\n { name: 'tag1s', type: 'bytes32[]' },\n { name: 'tag2s', type: 'bytes32[]' },\n { name: 'revokedStatuses', type: 'bool[]' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getClients',\n outputs: [{ name: 'clientList', type: 'address[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' }\n ],\n name: 'getLastIndex',\n outputs: [{ name: 'lastIndex', type: 'uint64' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'score', type: 'uint8' },\n { indexed: true, name: 'tag1', type: 'bytes32' },\n { indexed: false, name: 'tag2', type: 'bytes32' },\n { indexed: false, name: 'feedbackUri', type: 'string' },\n { indexed: false, name: 'feedbackHash', type: 'bytes32' }\n ],\n name: 'NewFeedback',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'feedbackIndex', type: 'uint64' },\n { indexed: true, name: 'responder', type: 'address' },\n { indexed: false, name: 'responseUri', type: 'string' },\n { indexed: false, name: 'responseHash', type: 'bytes32' }\n ],\n name: 'ResponseAppended',\n type: 'event'\n }\n ];\n\n/**\n * Get Validation Registry ABI (ERC-8004 v1.0)\n * \n * v1.0 uses URI-based validation with off-chain evidence storage.\n * Key changes:\n * - validationRequest() uses validatorAddress instead of validatorAgentId\n * - requestUri and requestHash for off-chain evidence\n * - validationResponse() uses requestHash with response (0-100)\n * - Support for multiple responses per request (progressive validation)\n */\nexport const VALIDATION_REGISTRY_ABI = [\n // Core Functions\n {\n inputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'requestUri', type: 'string' },\n { name: 'requestHash', type: 'bytes32' }\n ],\n name: 'validationRequest',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'requestHash', type: 'bytes32' },\n { name: 'response', type: 'uint8' },\n { name: 'responseUri', type: 'string' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' }\n ],\n name: 'validationResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // Read Functions\n {\n inputs: [{ name: 'requestHash', type: 'bytes32' }],\n name: 'getValidationStatus',\n outputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'response', type: 'uint8' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' },\n { name: 'lastUpdate', type: 'uint256' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'validatorAddresses', type: 'address[]' },\n { name: 'tag', type: 'bytes32' }\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'avgResponse', type: 'uint8' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getAgentValidations',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'validatorAddress', type: 'address' }],\n name: 'getValidatorRequests',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'requestUri', type: 'string' },\n { indexed: true, name: 'requestHash', type: 'bytes32' }\n ],\n name: 'ValidationRequest',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'requestHash', type: 'bytes32' },\n { indexed: false, name: 'response', type: 'uint8' },\n { indexed: false, name: 'responseUri', type: 'string' },\n { indexed: false, name: 'responseHash', type: 'bytes32' },\n { indexed: false, name: 'tag', type: 'bytes32' }\n ],\n name: 'ValidationResponse',\n type: 'event'\n }\n ];\n\n/**\n * ERC-20 USDC ABI (for x402 payments)\n */\nexport const ERC20_ABI = [\n {\n inputs: [{ name: 'account', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'amount', type: 'uint256' }\n ],\n name: 'transfer',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'spender', type: 'address' },\n { name: 'amount', type: 'uint256' }\n ],\n name: 'approve',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' }\n ],\n name: 'allowance',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [{ name: '', type: 'uint8' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'symbol',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'name',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' }\n ],\n name: 'Transfer',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'spender', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' }\n ],\n name: 'Approval',\n type: 'event'\n }\n];\n\n/**\n * USDC token addresses by network\n */\nexport const USDC_ADDRESSES: Record<string, string> = {\n 'ethereum-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n 'base-sepolia': '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n 'optimism-sepolia': '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n 'linea-sepolia': '0x0000000000000000000000000000000000000000',\n 'hedera-testnet': '0x0000000000000000000000000000000000000000',\n '0g-testnet': '0x0000000000000000000000000000000000000000',\n local: '0x0000000000000000000000000000000000000000'\n};\n\n/**\n * Get USDC address for network\n */\nexport function getUSDCAddress(network: string): string {\n return USDC_ADDRESSES[network] || '0x0000000000000000000000000000000000000000';\n}\n\n/**\n * ERC-8004 v1.0 Contract Addresses by Network\n */\nexport const CONTRACT_ADDRESSES = {\n 'ethereum-sepolia': {\n identity: '0x8004a6090Cd10A7288092483047B097295Fb8847',\n reputation: '0x8004B8FD1A363aa02fDC07635C0c5F94f6Af5B7E',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'base-sepolia': {\n identity: '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n reputation: '0x8004bd8daB57f14Ed299135749a5CB5c42d341BF',\n validation: '0x8004C269D0A5647E51E121FeB226200ECE932d55',\n usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'linea-sepolia': {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'hedera-testnet': {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n '0g-testnet': {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n }\n} as const;\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: string) {\n return CONTRACT_ADDRESSES[network as keyof typeof CONTRACT_ADDRESSES];\n}\n\n/**\n * Common contract errors\n */\nexport const CONTRACT_ERRORS = {\n AGENT_NOT_FOUND: 'Agent does not exist',\n UNAUTHORIZED: 'Caller is not authorized',\n INVALID_RATING: 'Rating must be between 0 and 100',\n FEEDBACK_NOT_FOUND: 'Feedback does not exist',\n FEEDBACK_REVOKED: 'Feedback has been revoked',\n VALIDATION_NOT_FOUND: 'Validation request does not exist',\n VALIDATION_ALREADY_RESPONDED: 'Validation already responded',\n INSUFFICIENT_BALANCE: 'Insufficient balance'\n} as const;\n","/**\n * ChaosAgent - ERC-8004 v1.0 Contract Interactions\n * Handles Identity, Reputation, and Validation Registry interactions\n */\n\nimport { ethers } from 'ethers';\nimport {\n AgentMetadata,\n AgentRegistration,\n FeedbackParams,\n FeedbackRecord,\n ValidationRequestParams,\n ValidationRequest,\n ValidationStatus,\n ContractAddresses,\n} from './types';\nimport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI,\n} from './utils/contracts';\n\nexport class ChaosAgent {\n private identityContract: ethers.Contract;\n private reputationContract: ethers.Contract;\n private validationContract: ethers.Contract;\n private signer: ethers.Signer;\n\n constructor(\n addresses: ContractAddresses,\n signer: ethers.Signer,\n _provider: ethers.Provider\n ) {\n this.signer = signer;\n\n // Initialize contract instances\n this.identityContract = new ethers.Contract(\n addresses.identity,\n IDENTITY_REGISTRY_ABI,\n signer\n );\n this.reputationContract = new ethers.Contract(\n addresses.reputation,\n REPUTATION_REGISTRY_ABI,\n signer\n );\n this.validationContract = new ethers.Contract(\n addresses.validation,\n VALIDATION_REGISTRY_ABI,\n signer\n );\n }\n\n // ============================================================================\n // Identity Registry Methods\n // ============================================================================\n\n /**\n * Register a new agent identity (ERC-8004)\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n // Create metadata URI (JSON)\n const uri = metadata ? `data:application/json,${JSON.stringify(metadata)}` : '';\n\n // Call register with the appropriate overload\n let tx;\n if (uri) {\n // Use register(string) overload\n tx = await this.identityContract['register(string)'](uri);\n } else {\n // Use register() overload\n tx = await this.identityContract['register()']();\n }\n const receipt = await tx.wait();\n\n // Parse Registered event\n const event = receipt.logs\n .map((log: ethers.Log) => {\n try {\n return this.identityContract.interface.parseLog({\n topics: [...log.topics],\n data: log.data,\n });\n } catch {\n return null;\n }\n })\n .find((e: ethers.LogDescription | null) => e?.name === 'Registered');\n\n if (!event) {\n throw new Error('Registered event not found');\n }\n\n return {\n agentId: event.args.agentId,\n txHash: receipt.hash,\n owner: event.args.owner,\n };\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n try {\n const uri = await this.identityContract.tokenURI(agentId);\n \n if (!uri) {\n return null;\n }\n\n // Parse data URI\n if (uri.startsWith('data:application/json,')) {\n const json = uri.substring('data:application/json,'.length);\n return JSON.parse(decodeURIComponent(json));\n }\n\n // Parse ipfs:// URI (fetch from gateway)\n if (uri.startsWith('ipfs://')) {\n const cid = uri.substring(7);\n const response = await fetch(`https://ipfs.io/ipfs/${cid}`);\n return response.json();\n }\n\n // Parse https:// URI\n if (uri.startsWith('https://') || uri.startsWith('http://')) {\n const response = await fetch(uri);\n return response.json();\n }\n\n return null;\n } catch (error) {\n console.error('Failed to get agent metadata:', error);\n return null;\n }\n }\n\n /**\n * Set agent URI\n */\n async setAgentUri(agentId: bigint, uri: string): Promise<string> {\n const tx = await this.identityContract.setAgentUri(agentId, uri);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n const uri = `data:application/json,${JSON.stringify(metadata)}`;\n return this.setAgentUri(agentId, uri);\n }\n\n /**\n * Check if agent exists\n */\n async agentExists(agentId: bigint): Promise<boolean> {\n return this.identityContract.agentExists(agentId);\n }\n\n /**\n * Get agent owner\n */\n async getAgentOwner(agentId: bigint): Promise<string> {\n return this.identityContract.ownerOf(agentId);\n }\n\n /**\n * Get total number of agents\n */\n async getTotalAgents(): Promise<bigint> {\n return this.identityContract.totalAgents();\n }\n\n /**\n * Transfer agent ownership\n */\n async transferAgent(agentId: bigint, to: string): Promise<string> {\n const from = await this.signer.getAddress();\n const tx = await this.identityContract.transferFrom(from, to, agentId);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ============================================================================\n // Reputation Registry Methods\n // ============================================================================\n\n /**\n * Generate EIP-191 signed feedback authorization (ERC-8004 v1.0)\n * \n * This signature allows a client to submit feedback to an agent's reputation.\n * The agent owner signs to authorize the client to give feedback up to a certain index.\n * \n * @param agentId Target agent ID receiving feedback\n * @param clientAddress Address of the client giving feedback\n * @param indexLimit Maximum feedback index this authorization permits\n * @param expiry Unix timestamp when authorization expires\n * @returns Signed feedbackAuth bytes for use in giveFeedback()\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n try {\n // Get chain ID\n const network = await this.signer.provider!.getNetwork();\n const chainId = network.chainId;\n\n // Get identity registry address\n const identityAddress = await this.identityContract.getAddress();\n\n // Get signer address\n const signerAddress = await this.signer.getAddress();\n\n // Pack the FeedbackAuth struct (7 fields)\n // As per ERC-8004 v1.0 spec: (agentId, clientAddress, indexLimit, expiry, chainId, identityRegistry, signerAddress)\n const feedbackAuthData = ethers.solidityPackedKeccak256(\n ['uint256', 'address', 'uint64', 'uint256', 'uint256', 'address', 'address'],\n [agentId, clientAddress, indexLimit, expiry, chainId, identityAddress, signerAddress]\n );\n\n // Sign with agent's private key (EIP-191)\n const signature = await this.signer.signMessage(ethers.getBytes(feedbackAuthData));\n const signatureBytes = ethers.getBytes(signature); // 65 bytes (r + s + v)\n\n // Pack struct data + signature (224 bytes + 65 bytes = 289 bytes)\n const structBytes = ethers.concat([\n ethers.toBeHex(agentId, 32),\n ethers.zeroPadValue(clientAddress, 32),\n ethers.concat([ethers.toBeHex(indexLimit, 8), ethers.zeroPadValue('0x', 24)]), // uint64 padded\n ethers.toBeHex(expiry, 32),\n ethers.toBeHex(chainId, 32),\n ethers.zeroPadValue(identityAddress, 32),\n ethers.zeroPadValue(signerAddress, 32)\n ]);\n\n // Return struct + signature\n const feedbackAuth = ethers.hexlify(ethers.concat([structBytes, signatureBytes]));\n\n console.log(`✅ Generated feedback authorization for agent #${agentId}`);\n return feedbackAuth;\n } catch (e: any) {\n throw new Error(`Failed to generate feedback authorization: ${e.message}`);\n }\n }\n\n /**\n * Give feedback to an agent (ERC-8004 v1.0)\n *\n * @param params Feedback parameters including agentId, rating, feedbackUri, and optional auth\n * @returns Transaction hash\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n const { agentId, rating, feedbackUri, feedbackData } = params;\n\n // Validate rating (0-100)\n if (rating < 0 || rating > 100) {\n throw new Error('Rating must be between 0 and 100');\n }\n\n // ERC-8004 v1.0 requires: (agentId, score, tag1, tag2, feedbackUri, feedbackHash, feedbackAuth)\n const score = rating; // 0-100\n const tag1 = feedbackData?.tag1 || ethers.ZeroHash; // bytes32\n const tag2 = feedbackData?.tag2 || ethers.ZeroHash; // bytes32\n\n // Calculate feedback hash\n const feedbackContent = feedbackData?.content || feedbackUri;\n const feedbackHash = ethers.keccak256(ethers.toUtf8Bytes(feedbackContent));\n\n // Feedback auth (289 bytes: struct + signature)\n // If not provided, use empty bytes (will work if no auth required or for self-feedback)\n const feedbackAuth = feedbackData?.feedbackAuth || '0x';\n\n const tx = await this.reputationContract.giveFeedback(\n agentId,\n score,\n tag1,\n tag2,\n feedbackUri,\n feedbackHash,\n feedbackAuth\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Revoke feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param feedbackIndex Index of the feedback to revoke (uint64)\n */\n async revokeFeedback(agentId: bigint, feedbackIndex: bigint): Promise<string> {\n const tx = await this.reputationContract.revokeFeedback(agentId, feedbackIndex);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Append response to feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param feedbackIndex Index of the feedback\n * @param responseUri URI containing the response data\n * @param responseHash Hash of the response content\n */\n async appendResponse(\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responseUri: string,\n responseHash: string\n ): Promise<string> {\n const tx = await this.reputationContract.appendResponse(\n agentId,\n clientAddress,\n feedbackIndex,\n responseUri,\n responseHash\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Read specific feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param index Index of the feedback\n */\n async readFeedback(\n agentId: bigint,\n clientAddress: string,\n index: bigint\n ): Promise<{\n score: number;\n tag1: string;\n tag2: string;\n isRevoked: boolean;\n }> {\n const feedback = await this.reputationContract.readFeedback(agentId, clientAddress, index);\n return {\n score: Number(feedback.score),\n tag1: feedback.tag1,\n tag2: feedback.tag2,\n isRevoked: feedback.isRevoked,\n };\n }\n\n /**\n * Read all feedback for an agent (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n * @param includeRevoked Whether to include revoked feedback\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash,\n includeRevoked: boolean = false\n ): Promise<{\n clients: string[];\n scores: number[];\n tag1s: string[];\n tag2s: string[];\n revokedStatuses: boolean[];\n }> {\n const result = await this.reputationContract.readAllFeedback(\n agentId,\n clientAddresses,\n tag1,\n tag2,\n includeRevoked\n );\n return {\n clients: result.clients,\n scores: result.scores.map((s: bigint) => Number(s)),\n tag1s: result.tag1s,\n tag2s: result.tag2s,\n revokedStatuses: result.revokedStatuses,\n };\n }\n\n /**\n * Get summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n */\n async getSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash\n ): Promise<{\n count: bigint;\n averageScore: number;\n }> {\n const result = await this.reputationContract.getSummary(agentId, clientAddresses, tag1, tag2);\n return {\n count: result.count,\n averageScore: Number(result.averageScore),\n };\n }\n\n /**\n * Get list of clients who gave feedback\n * @param agentId Agent ID\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.reputationContract.getClients(agentId);\n }\n\n /**\n * Get last feedback index for a client\n * @param agentId Agent ID\n * @param clientAddress Client address\n */\n async getLastIndex(agentId: bigint, clientAddress: string): Promise<bigint> {\n return this.reputationContract.getLastIndex(agentId, clientAddress);\n }\n\n /**\n * Get identity registry address from reputation contract\n */\n async getIdentityRegistry(): Promise<string> {\n return this.reputationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Validation Registry Methods\n // ============================================================================\n\n /**\n * Request validation from a validator (ERC-8004 v1.0)\n * @param validatorAddress Address of the validator\n * @param agentId Agent ID requesting validation\n * @param requestUri URI containing validation request data\n * @param requestHash Hash of the request content (bytes32)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n // Ensure requestHash is bytes32 format\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n\n const tx = await this.validationContract.validationRequest(\n validatorAddress,\n agentId,\n requestUri,\n hashBytes\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n * @param requestHash Hash of the original validation request (bytes32)\n * @param response Response score (0-100, where 100 = approved)\n * @param responseUri URI containing response data\n * @param responseHash Hash of the response content (bytes32)\n * @param tag Optional tag for categorization (bytes32)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string = ethers.ZeroHash\n ): Promise<string> {\n // Validate response (0-100)\n if (response < 0 || response > 100) {\n throw new Error('Response must be between 0 and 100');\n }\n\n // Ensure hashes are bytes32 format\n const reqHashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const resHashBytes = responseHash.startsWith('0x') ? responseHash : ethers.id(responseHash);\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n\n const tx = await this.validationContract.validationResponse(\n reqHashBytes,\n response,\n responseUri,\n resHashBytes,\n tagBytes\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Get validation status (ERC-8004 v1.0)\n * @param requestHash Hash of the validation request (bytes32)\n */\n async getValidationStatus(requestHash: string): Promise<{\n validatorAddress: string;\n agentId: bigint;\n response: number;\n responseHash: string;\n tag: string;\n lastUpdate: bigint;\n }> {\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const result = await this.validationContract.getValidationStatus(hashBytes);\n return {\n validatorAddress: result.validatorAddress,\n agentId: result.agentId,\n response: Number(result.response),\n responseHash: result.responseHash,\n tag: result.tag,\n lastUpdate: result.lastUpdate,\n };\n }\n\n /**\n * Get validation summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param validatorAddresses Array of validator addresses (empty for all)\n * @param tag Tag filter (ZeroHash for no filter)\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ): Promise<{\n count: bigint;\n avgResponse: number;\n }> {\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n const result = await this.validationContract.getSummary(agentId, validatorAddresses, tagBytes);\n return {\n count: result.count,\n avgResponse: Number(result.avgResponse),\n };\n }\n\n /**\n * Get all validation request hashes for an agent\n * @param agentId Agent ID\n */\n async getAgentValidations(agentId: bigint): Promise<string[]> {\n return this.validationContract.getAgentValidations(agentId);\n }\n\n /**\n * Get all validation requests for a validator\n * @param validatorAddress Validator address\n */\n async getValidatorRequests(validatorAddress: string): Promise<string[]> {\n return this.validationContract.getValidatorRequests(validatorAddress);\n }\n\n /**\n * Get identity registry address from validation contract\n */\n async getValidationIdentityRegistry(): Promise<string> {\n return this.validationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Event Listening\n // ============================================================================\n\n /**\n * Listen for Registered events\n */\n onAgentRegistered(callback: (agentId: bigint, owner: string, uri: string) => void): void {\n this.identityContract.on('Registered', callback);\n }\n\n /**\n * Listen for NewFeedback events (ERC-8004 v1.0)\n */\n onNewFeedback(\n callback: (\n agentId: bigint,\n clientAddress: string,\n score: number,\n tag1: string,\n tag2: string,\n feedbackUri: string,\n feedbackHash: string\n ) => void\n ): void {\n this.reputationContract.on('NewFeedback', callback);\n }\n\n /**\n * Listen for ResponseAppended events (ERC-8004 v1.0)\n */\n onResponseAppended(\n callback: (\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responder: string,\n responseUri: string,\n responseHash: string\n ) => void\n ): void {\n this.reputationContract.on('ResponseAppended', callback);\n }\n\n /**\n * Listen for ValidationRequest events (ERC-8004 v1.0)\n */\n onValidationRequest(\n callback: (validatorAddress: string, agentId: bigint, requestUri: string, requestHash: string) => void\n ): void {\n this.validationContract.on('ValidationRequest', callback);\n }\n\n /**\n * Listen for ValidationResponse events (ERC-8004 v1.0)\n */\n onValidationResponse(\n callback: (\n validatorAddress: string,\n agentId: bigint,\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string\n ) => void\n ): void {\n this.validationContract.on('ValidationResponse', callback);\n }\n\n /**\n * Remove all event listeners\n */\n removeAllListeners(): void {\n this.identityContract.removeAllListeners();\n this.reputationContract.removeAllListeners();\n this.validationContract.removeAllListeners();\n }\n}\n\n","/**\n * Exception classes for the ChaosChain SDK.\n *\n * This module defines all custom exceptions used throughout the SDK\n * to provide clear error handling and debugging information.\n */\n\nexport class ChaosChainSDKError extends Error {\n public details: Record<string, any>;\n\n constructor(message: string, details: Record<string, any> = {}) {\n super(message);\n this.name = 'ChaosChainSDKError';\n this.details = details;\n Object.setPrototypeOf(this, ChaosChainSDKError.prototype);\n }\n\n toString(): string {\n if (Object.keys(this.details).length > 0) {\n return `${this.message} | Details: ${JSON.stringify(this.details)}`;\n }\n return this.message;\n }\n}\n\nexport class AgentRegistrationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AgentRegistrationError';\n Object.setPrototypeOf(this, AgentRegistrationError.prototype);\n }\n}\n\nexport class PaymentError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'PaymentError';\n Object.setPrototypeOf(this, PaymentError.prototype);\n }\n}\n\nexport class StorageError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'StorageError';\n Object.setPrototypeOf(this, StorageError.prototype);\n }\n}\n\nexport class IntegrityVerificationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'IntegrityVerificationError';\n Object.setPrototypeOf(this, IntegrityVerificationError.prototype);\n }\n}\n\nexport class NetworkError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'NetworkError';\n Object.setPrototypeOf(this, NetworkError.prototype);\n }\n}\n\nexport class ContractError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ContractError';\n Object.setPrototypeOf(this, ContractError.prototype);\n }\n}\n\nexport class ValidationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class ConfigurationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ConfigurationError';\n Object.setPrototypeOf(this, ConfigurationError.prototype);\n }\n}\n\nexport class AuthenticationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\n","/**\n * X402 Payment Manager for ChaosChain SDK\n *\n * This module implements the Coinbase x402 HTTP 402 payment protocol,\n * enabling seamless cryptocurrency payments between AI agents.\n *\n * Based on: https://www.x402.org/ and https://github.com/coinbase/x402\n */\n\nimport { ethers } from 'ethers';\n// import axios from 'axios'; // Not currently used\nimport { PaymentError } from './exceptions';\nimport { NetworkConfig } from './types';\n\nexport interface X402PaymentRequest {\n payment_id: string;\n from_agent: string;\n to_agent: string;\n amount: number;\n currency: string;\n service_description: string;\n network: NetworkConfig;\n protocol_fee: number;\n created_at: string;\n settlement_address?: string;\n}\n\nexport interface X402PaymentProof {\n payment_id: string;\n transaction_hash: string;\n main_transaction_hash: string;\n fee_transaction_hash?: string;\n from_address: string;\n to_address: string;\n treasury_address: string;\n amount: number;\n currency: string;\n protocol_fee: number;\n network: NetworkConfig;\n chain_id: number;\n block_number?: number;\n timestamp: Date;\n status: string;\n confirmations: number;\n}\n\nexport interface X402PaymentRequirements {\n amount: number;\n currency: string;\n service_description: string;\n settlement_address: string;\n network: NetworkConfig;\n protocol_version: string;\n expires_at: string;\n payment_endpoint: string;\n}\n\n/**\n * X402 Payment Manager - Coinbase HTTP 402 protocol implementation\n * \n * Features:\n * - Real USDC/ETH transfers on Base, Ethereum, Optimism\n * - Automatic 2.5% protocol fee to ChaosChain treasury\n * - Cryptographic payment receipts\n * - Multi-network support\n */\nexport class X402PaymentManager {\n private wallet: ethers.Wallet;\n private provider: ethers.JsonRpcProvider;\n private network: NetworkConfig;\n private treasuryAddress: string;\n private protocolFeePercentage: number;\n private usdcAddresses: Record<string, string>;\n\n constructor(wallet: ethers.Wallet, network: NetworkConfig) {\n this.wallet = wallet;\n this.network = network;\n this.protocolFeePercentage = 0.025; // 2.5% ChaosChain fee\n\n // ChaosChain treasury addresses (per network)\n this.treasuryAddress = this.getTreasuryAddress(network);\n\n // USDC contract addresses\n this.usdcAddresses = {\n 'base-sepolia': '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n 'ethereum-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n 'optimism-sepolia': '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n 'linea-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'\n };\n\n // Get provider from wallet\n this.provider = wallet.provider as ethers.JsonRpcProvider;\n\n console.log(`✅ X402 Payment Manager initialized on ${network}`);\n console.log(`💰 Treasury: ${this.treasuryAddress}`);\n console.log(`📊 Protocol Fee: ${this.protocolFeePercentage * 100}%`);\n }\n\n /**\n * Get ChaosChain treasury address for network\n */\n private getTreasuryAddress(network: NetworkConfig): string {\n const treasuries: Record<string, string> = {\n 'base-sepolia': '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n 'ethereum-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'optimism-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'linea-sepolia': '0x8004aa7C931bCE1233973a0C6A667f73F66282e7'\n };\n\n return treasuries[network] || treasuries['base-sepolia'];\n }\n\n /**\n * Create x402 payment request\n */\n createPaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): X402PaymentRequest {\n const paymentId = `x402_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 9)}`;\n const protocolFee = amount * this.protocolFeePercentage;\n\n const request: X402PaymentRequest = {\n payment_id: paymentId,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: protocolFee,\n created_at: new Date().toISOString()\n };\n\n console.log(`📄 Created x402 payment request: ${paymentId}`);\n console.log(` From: ${fromAgent} → To: ${toAgent}`);\n console.log(` Amount: ${amount} ${currency} + ${protocolFee.toFixed(4)} ${currency} fee`);\n\n return request;\n }\n\n /**\n * Execute x402 payment on-chain\n */\n async executePayment(paymentRequest: X402PaymentRequest, recipientAddress: string): Promise<X402PaymentProof> {\n console.log(`💸 Executing x402 payment: ${paymentRequest.payment_id}`);\n console.log(` Network: ${this.network}`);\n console.log(` Recipient: ${recipientAddress}`);\n\n const currency = paymentRequest.currency.toUpperCase();\n const amount = paymentRequest.amount;\n const protocolFee = paymentRequest.protocol_fee;\n\n let mainTxHash: string;\n let feeTxHash: string | undefined;\n let chainId: number;\n\n try {\n // Get network details\n const networkInfo = await this.provider.getNetwork();\n chainId = Number(networkInfo.chainId);\n\n if (currency === 'ETH' || currency === 'NATIVE') {\n // Native token transfer\n const { mainTx, feeTx } = await this.executeNativePayment(recipientAddress, amount, protocolFee);\n mainTxHash = mainTx;\n feeTxHash = feeTx;\n } else if (currency === 'USDC') {\n // USDC transfer\n const { mainTx, feeTx } = await this.executeUsdcPayment(recipientAddress, amount, protocolFee);\n mainTxHash = mainTx;\n feeTxHash = feeTx;\n } else {\n throw new PaymentError(`Unsupported currency: ${currency}`);\n }\n\n // Get transaction receipt\n const receipt = await this.provider.getTransactionReceipt(mainTxHash);\n\n // Create payment proof\n const proof: X402PaymentProof = {\n payment_id: paymentRequest.payment_id,\n transaction_hash: mainTxHash,\n main_transaction_hash: mainTxHash,\n fee_transaction_hash: feeTxHash,\n from_address: this.wallet.address,\n to_address: recipientAddress,\n treasury_address: this.treasuryAddress,\n amount,\n currency,\n protocol_fee: protocolFee,\n network: this.network,\n chain_id: chainId,\n block_number: receipt?.blockNumber,\n timestamp: new Date(),\n status: receipt?.status === 1 ? 'confirmed' : 'failed',\n confirmations: 1\n };\n\n console.log(`✅ x402 payment executed successfully`);\n console.log(` Main TX: ${mainTxHash}`);\n if (feeTxHash) {\n console.log(` Fee TX: ${feeTxHash}`);\n }\n\n return proof;\n } catch (e: any) {\n throw new PaymentError(`x402 payment failed: ${e.message}`, { payment_id: paymentRequest.payment_id });\n }\n }\n\n /**\n * Execute native token (ETH) payment\n */\n private async executeNativePayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string }> {\n // Convert to wei\n const amountWei = ethers.parseEther(amount.toString());\n const feeWei = ethers.parseEther(protocolFee.toString());\n\n // Send main payment\n const mainTx = await this.wallet.sendTransaction({\n to: recipientAddress,\n value: amountWei\n });\n await mainTx.wait();\n\n // Send protocol fee to treasury\n let feeTxHash: string | undefined;\n if (protocolFee > 0) {\n const feeTx = await this.wallet.sendTransaction({\n to: this.treasuryAddress,\n value: feeWei\n });\n await feeTx.wait();\n feeTxHash = feeTx.hash;\n }\n\n return {\n mainTx: mainTx.hash,\n feeTx: feeTxHash\n };\n }\n\n /**\n * Execute USDC payment\n */\n private async executeUsdcPayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string }> {\n // Get USDC contract address\n const usdcAddress = this.usdcAddresses[this.network];\n if (!usdcAddress) {\n throw new PaymentError(`USDC not supported on ${this.network}`);\n }\n\n // USDC has 6 decimals\n const amountUsdc = ethers.parseUnits(amount.toString(), 6);\n const feeUsdc = ethers.parseUnits(protocolFee.toString(), 6);\n\n // ERC-20 ABI (transfer function)\n const erc20Abi = ['function transfer(address to, uint256 amount) returns (bool)'];\n\n // Create USDC contract instance\n const usdcContract = new ethers.Contract(usdcAddress, erc20Abi, this.wallet);\n\n // Send main payment\n const mainTx = await usdcContract.transfer(recipientAddress, amountUsdc);\n await mainTx.wait();\n\n // Send protocol fee to treasury\n let feeTxHash: string | undefined;\n if (protocolFee > 0) {\n const feeTx = await usdcContract.transfer(this.treasuryAddress, feeUsdc);\n await feeTx.wait();\n feeTxHash = feeTx.hash;\n }\n\n return {\n mainTx: mainTx.hash,\n feeTx: feeTxHash\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n async verifyPayment(paymentProof: X402PaymentProof): Promise<boolean> {\n try {\n // Get transaction receipt\n const receipt = await this.provider.getTransactionReceipt(paymentProof.main_transaction_hash);\n\n if (!receipt) {\n console.error(`❌ Transaction not found: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify transaction status\n if (receipt.status !== 1) {\n console.error(`❌ Transaction failed: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify recipient\n const tx = await this.provider.getTransaction(paymentProof.main_transaction_hash);\n if (tx?.to?.toLowerCase() !== paymentProof.to_address.toLowerCase()) {\n console.error(`❌ Recipient mismatch`);\n return false;\n }\n\n console.log(`✅ Payment verified on-chain: ${paymentProof.main_transaction_hash}`);\n return true;\n } catch (e) {\n console.error(`❌ Payment verification failed: ${e}`);\n return false;\n }\n }\n\n /**\n * Create payment requirements for receiving payments\n */\n createPaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n expiryMinutes: number = 30\n ): X402PaymentRequirements {\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n return {\n amount,\n currency,\n service_description: serviceDescription,\n settlement_address: this.wallet.address,\n network: this.network,\n protocol_version: 'x402-v1.0',\n expires_at: expiryTime.toISOString(),\n payment_endpoint: `x402://pay/${this.wallet.address}`\n };\n }\n\n /**\n * Get payment history (from on-chain events)\n */\n async getPaymentHistory(limit: number = 10): Promise<X402PaymentProof[]> {\n // In production, query blockchain events\n // For now, return empty array\n console.log(`📊 Payment history: querying last ${limit} payments...`);\n return [];\n }\n\n /**\n * Create cryptographic receipt for payment\n */\n createPaymentReceipt(paymentProof: X402PaymentProof): Record<string, any> {\n const receiptData = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.main_transaction_hash,\n from_address: paymentProof.from_address,\n to_address: paymentProof.to_address,\n amount: paymentProof.amount,\n currency: paymentProof.currency,\n protocol_fee: paymentProof.protocol_fee,\n network: paymentProof.network,\n chain_id: paymentProof.chain_id,\n timestamp: paymentProof.timestamp.toISOString(),\n status: paymentProof.status\n };\n\n // Create receipt hash\n const crypto = require('crypto');\n const receiptJson = JSON.stringify(receiptData);\n const receiptHash = crypto.createHash('sha256').update(receiptJson).digest('hex');\n\n return {\n receipt_type: 'x402_payment',\n receipt_hash: receiptHash,\n receipt_data: receiptData,\n verification_url: `https://explorer.base.org/tx/${paymentProof.main_transaction_hash}`,\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n network: this.network,\n wallet_address: this.wallet.address,\n treasury_address: this.treasuryAddress,\n protocol_fee_percentage: this.protocolFeePercentage * 100,\n supported_currencies: ['ETH', 'USDC'],\n features: {\n instant_settlement: true,\n on_chain_verification: true,\n protocol_fees: true,\n multi_currency: true,\n payment_receipts: true\n }\n };\n }\n}\n\n","/**\n * Payment Manager for ChaosChain SDK\n *\n * This module manages traditional and crypto payment processing,\n * supporting multiple payment methods (cards, Google Pay, Apple Pay, PayPal, crypto).\n */\n\nimport { ethers } from 'ethers';\nimport axios from 'axios';\n// import { PaymentError } from './exceptions';\nimport { NetworkConfig } from './types';\n\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\n\nexport interface TraditionalPaymentRequest {\n payment_method: PaymentMethod;\n amount: number;\n currency: string;\n payment_data: Record<string, any>;\n description: string;\n}\n\nexport interface TraditionalPaymentResult {\n payment_id: string;\n transaction_id: string;\n status: string;\n amount: number;\n currency: string;\n payment_method: PaymentMethod;\n timestamp: string;\n processor_response?: Record<string, any>;\n}\n\nexport interface PaymentMethodCredentials {\n stripe_secret_key?: string;\n google_pay_merchant_id?: string;\n apple_pay_merchant_id?: string;\n paypal_client_id?: string;\n paypal_client_secret?: string;\n}\n\n/**\n * Payment Manager - handles all payment types\n * \n * Supports:\n * - Basic card payments (Visa, Mastercard via Stripe)\n * - Google Pay\n * - Apple Pay\n * - PayPal\n * - Cryptocurrency (via x402 protocol)\n */\nexport class PaymentManager {\n private agentName: string;\n private network: NetworkConfig;\n private wallet: ethers.Wallet;\n private credentials: PaymentMethodCredentials;\n private stripeAxiosInstance?: axios.AxiosInstance;\n private paypalAccessToken?: string;\n\n constructor(\n agentName: string,\n network: NetworkConfig,\n wallet: ethers.Wallet,\n credentials: PaymentMethodCredentials = {}\n ) {\n this.agentName = agentName;\n this.network = network;\n this.wallet = wallet;\n this.credentials = credentials;\n\n // Initialize Stripe if API key provided\n if (credentials.stripe_secret_key) {\n this.stripeAxiosInstance = axios.create({\n baseURL: 'https://api.stripe.com/v1',\n headers: {\n Authorization: `Bearer ${credentials.stripe_secret_key}`,\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n });\n console.log('✅ Stripe integration enabled');\n }\n\n // Initialize PayPal if credentials provided\n if (credentials.paypal_client_id && credentials.paypal_client_secret) {\n this.initializePayPal().catch(console.error);\n }\n\n console.log(`💳 Payment Manager initialized for ${agentName}`);\n }\n\n /**\n * Initialize PayPal OAuth access token\n */\n private async initializePayPal(): Promise<void> {\n try {\n const auth = Buffer.from(\n `${this.credentials.paypal_client_id}:${this.credentials.paypal_client_secret}`\n ).toString('base64');\n\n const response = await axios.post(\n 'https://api-m.sandbox.paypal.com/v1/oauth2/token',\n 'grant_type=client_credentials',\n {\n headers: {\n Authorization: `Basic ${auth}`,\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n }\n );\n\n this.paypalAccessToken = response.data.access_token;\n console.log('✅ PayPal integration enabled');\n } catch (e) {\n console.error('❌ Failed to initialize PayPal:', e);\n }\n }\n\n /**\n * Execute traditional payment (cards, wallets, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData_unused: Record<string, any>\n ): TraditionalPaymentResult {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Route to appropriate payment processor\n switch (paymentMethod) {\n case PaymentMethod.BASIC_CARD:\n return this.processBasicCard(amount, currency, paymentData);\n\n case PaymentMethod.GOOGLE_PAY:\n return this.processGooglePay(amount, currency, paymentData);\n\n case PaymentMethod.APPLE_PAY:\n return this.processApplePay(amount, currency, paymentData);\n\n case PaymentMethod.PAYPAL:\n return this.processPayPal(amount, currency, paymentData);\n\n case PaymentMethod.A2A_X402:\n return this.processA2AX402(amount, currency, paymentData);\n\n default:\n throw new PaymentError(`Unsupported payment method: ${paymentMethod}`);\n }\n }\n\n /**\n * Process Basic Card payment (Visa, Mastercard, Amex, etc.) via Stripe\n */\n private processBasicCard(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('💳 Processing Basic Card via Stripe...');\n\n // Check if Stripe is configured\n if (!this.stripeAxiosInstance) {\n console.warn('⚠️ Stripe not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n }\n\n try {\n // In production, create Stripe Payment Intent\n // const response = await this.stripeAxiosInstance.post('/payment_intents', {\n // amount: Math.round(amount * 100), // Stripe uses cents\n // currency: currency.toLowerCase(),\n // payment_method_types: ['card'],\n // description: `Payment for ${this.agentName}`\n // });\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n } catch (e) {\n throw new PaymentError(`Basic card payment failed: ${e}`);\n }\n }\n\n /**\n * Process Google Pay payment\n */\n private processGooglePay(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🅶 Processing Google Pay...');\n\n // Check if Google Pay is configured\n if (!this.credentials.google_pay_merchant_id) {\n console.warn('⚠️ Google Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n // In production, verify Google Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n /**\n * Process Apple Pay payment\n */\n private processApplePay(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🍎 Processing Apple Pay...');\n\n // Check if Apple Pay is configured\n if (!this.credentials.apple_pay_merchant_id) {\n console.warn('⚠️ Apple Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n // In production, verify Apple Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, decrypt, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n /**\n * Process PayPal payment\n */\n private processPayPal(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('💙 Processing PayPal...');\n\n // Check if PayPal is configured\n if (!this.paypalAccessToken) {\n console.warn('⚠️ PayPal not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n }\n\n try {\n // In production, create PayPal order and execute\n // const response = await axios.post(\n // 'https://api-m.sandbox.paypal.com/v2/checkout/orders',\n // {\n // intent: 'CAPTURE',\n // purchase_units: [{\n // amount: { currency_code: currency, value: amount.toString() }\n // }]\n // },\n // {\n // headers: {\n // Authorization: `Bearer ${this.paypalAccessToken}`,\n // 'Content-Type': 'application/json'\n // }\n // }\n // );\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n } catch (e) {\n throw new PaymentError(`PayPal payment failed: ${e}`);\n }\n }\n\n /**\n * Process A2A-x402 crypto payment\n */\n private processA2AX402(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🔗 Processing A2A-x402 crypto payment...');\n\n // Crypto payments are handled by X402PaymentManager\n // This just creates a result showing it was routed to crypto\n const paymentId = `a2a_x402_${Date.now().toString(36)}`;\n\n return {\n payment_id: paymentId,\n transaction_id: paymentData.transaction_hash || `crypto_tx_${paymentId}`,\n status: 'pending_crypto_confirmation',\n amount,\n currency,\n payment_method: PaymentMethod.A2A_X402,\n timestamp: new Date().toISOString(),\n processor_response: {\n network: this.network,\n settlement_type: 'crypto',\n requires_blockchain_confirmation: true\n }\n };\n }\n\n /**\n * Simulate traditional payment (for testing/fallback)\n */\n private simulateTraditionalPayment(\n method: PaymentMethod,\n amount: number,\n currency: string\n ): TraditionalPaymentResult {\n const paymentId = `sim_${method}_${Date.now().toString(36)}`;\n const transactionId = `txn_${paymentId}`;\n\n console.log(`🔄 Simulating ${method} payment`);\n\n return {\n payment_id: paymentId,\n transaction_id: transactionId,\n status: 'completed',\n amount,\n currency,\n payment_method: method,\n timestamp: new Date().toISOString(),\n processor_response: {\n simulation: true,\n authorization_code: `AUTH_${Math.random().toString(36).substring(2, 10).toUpperCase()}`,\n network: method === PaymentMethod.BASIC_CARD ? 'visa' : method,\n last4: method === PaymentMethod.BASIC_CARD ? '4242' : undefined\n }\n };\n }\n\n /**\n * Get payment method configuration status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n return {\n [PaymentMethod.BASIC_CARD]: !!this.credentials.stripe_secret_key,\n [PaymentMethod.GOOGLE_PAY]: !!this.credentials.google_pay_merchant_id,\n [PaymentMethod.APPLE_PAY]: !!this.credentials.apple_pay_merchant_id,\n [PaymentMethod.PAYPAL]: !!this.paypalAccessToken,\n [PaymentMethod.A2A_X402]: true // Always available via wallet\n };\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n const status = this.getPaymentMethodsStatus();\n return Object.entries(status)\n .filter(([_, enabled]) => enabled)\n .map(([method, _]) => method as PaymentMethod);\n }\n\n /**\n * Validate payment method credentials\n */\n async validateCredentials(): Promise<Record<string, boolean>> {\n const results: Record<string, boolean> = {};\n\n // Test Stripe\n if (this.credentials.stripe_secret_key) {\n try {\n await this.stripeAxiosInstance!.get('/balance');\n results.stripe = true;\n } catch (e) {\n results.stripe = false;\n }\n }\n\n // Test PayPal\n if (this.credentials.paypal_client_id) {\n results.paypal = !!this.paypalAccessToken;\n }\n\n // Google Pay and Apple Pay don't have API validation (merchant IDs are validated during checkout)\n results.google_pay = !!this.credentials.google_pay_merchant_id;\n results.apple_pay = !!this.credentials.apple_pay_merchant_id;\n\n // Crypto is always valid if we have a wallet\n results.crypto = !!this.wallet;\n\n return results;\n }\n\n /**\n * Create x402 payment request (for crypto payments)\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string,\n serviceDescription: string\n ): Record<string, any> {\n return {\n payment_id: `x402_${Date.now().toString(36)}`,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: amount * 0.025, // 2.5% ChaosChain fee\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Execute x402 crypto payment (delegated to X402PaymentManager)\n */\n executeX402Payment(paymentRequest: Record<string, any>): Record<string, any> {\n // This is a placeholder - actual implementation is in X402PaymentManager\n const transactionHash = `0x${Math.random().toString(16).substring(2, 66)}`;\n\n return {\n payment_id: paymentRequest.payment_id,\n transaction_hash: transactionHash,\n status: 'confirmed',\n timestamp: new Date(),\n network: this.network,\n from_address: this.wallet.address,\n to_address: paymentRequest.to_agent\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n agent_name: this.agentName,\n network: this.network,\n wallet_address: this.wallet.address,\n supported_methods: this.getSupportedPaymentMethods().length,\n payment_methods_status: this.getPaymentMethodsStatus(),\n features: {\n traditional_payments: true,\n crypto_payments: true,\n multi_currency: true,\n instant_settlement: true\n }\n };\n }\n}\n\n","/**\n * X402 Paywall Server for ChaosChain SDK\n *\n * This module implements an HTTP 402 paywall server for protecting API endpoints\n * with cryptocurrency payments.\n */\n\nimport * as http from 'http';\nimport { X402PaymentManager, X402PaymentProof } from './X402PaymentManager';\n// import { PaymentError } from './exceptions';\n\nexport interface X402EndpointConfig {\n path: string;\n amount: number;\n currency: string;\n description: string;\n handler: (data: any) => any;\n}\n\nexport interface X402PaywallConfig {\n port: number;\n host?: string;\n defaultCurrency?: string;\n}\n\n/**\n * X402 Paywall Server - HTTP 402 payment-protected API\n * \n * Features:\n * - HTTP 402 Payment Required responses\n * - Automatic payment verification\n * - Per-endpoint payment requirements\n * - Payment receipt generation\n */\nexport class X402Server {\n private paymentManager: X402PaymentManager;\n private server: http.Server | null = null;\n private endpoints: Map<string, X402EndpointConfig> = new Map();\n private paymentCache: Map<string, X402PaymentProof> = new Map();\n private config: Required<X402PaywallConfig>;\n\n constructor(paymentManager: X402PaymentManager, config: X402PaywallConfig) {\n this.paymentManager = paymentManager;\n this.config = {\n port: config.port,\n host: config.host || '0.0.0.0',\n defaultCurrency: config.defaultCurrency || 'USDC'\n };\n\n console.log(`🔒 X402 Paywall Server initialized on port ${this.config.port}`);\n }\n\n /**\n * Register a payment-protected endpoint\n */\n requirePayment(amount: number, description: string, currency?: string) {\n return (handler: (data: any) => any) => {\n const path = `/${handler.name || 'endpoint'}`;\n\n const endpointConfig: X402EndpointConfig = {\n path,\n amount,\n currency: currency || this.config.defaultCurrency,\n description,\n handler\n };\n\n this.endpoints.set(path, endpointConfig);\n console.log(`💰 Registered paywall endpoint: ${path} (${amount} ${currency || this.config.defaultCurrency})`);\n\n return handler;\n };\n }\n\n /**\n * Start the HTTP 402 server\n */\n start(): void {\n if (this.server) {\n console.warn('⚠️ Server already running');\n return;\n }\n\n this.server = http.createServer((req, res) => {\n this.handleRequest(req, res).catch((error) => {\n console.error('❌ Request handler error:', error);\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Internal server error' }));\n });\n });\n\n this.server.listen(this.config.port, this.config.host, () => {\n console.log(`🚀 X402 Paywall Server running at http://${this.config.host}:${this.config.port}`);\n console.log(`📋 Registered endpoints: ${this.endpoints.size}`);\n this.endpoints.forEach((config, path) => {\n console.log(` - ${path}: ${config.amount} ${config.currency} - ${config.description}`);\n });\n });\n }\n\n /**\n * Stop the server\n */\n stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n this.server.close((err) => {\n if (err) {\n reject(err);\n } else {\n console.log('🛑 X402 Paywall Server stopped');\n this.server = null;\n resolve();\n }\n });\n });\n }\n\n /**\n * Handle incoming HTTP requests\n */\n private async handleRequest(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {\n const url = new URL(req.url || '/', `http://${req.headers.host}`);\n const path = url.pathname;\n\n // Check if endpoint exists\n const endpointConfig = this.endpoints.get(path);\n if (!endpointConfig) {\n res.writeHead(404, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Endpoint not found' }));\n return;\n }\n\n // Check for payment proof\n const paymentToken = req.headers['x-payment-token'] as string;\n const paymentTxHash = req.headers['x-payment-tx'] as string;\n\n if (!paymentToken && !paymentTxHash) {\n // No payment provided - return 402 with payment requirements\n this.sendPaymentRequired(res, endpointConfig);\n return;\n }\n\n // Verify payment\n const isValidPayment = await this.verifyPayment(paymentToken || paymentTxHash, endpointConfig);\n\n if (!isValidPayment) {\n res.writeHead(402, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Invalid or insufficient payment' }));\n return;\n }\n\n // Payment verified - execute endpoint\n try {\n // Parse request body\n let requestData: any = {};\n if (req.method === 'POST' || req.method === 'PUT') {\n const chunks: Buffer[] = [];\n req.on('data', (chunk) => chunks.push(chunk));\n await new Promise((resolve) => req.on('end', resolve));\n const body = Buffer.concat(chunks).toString();\n requestData = body ? JSON.parse(body) : {};\n }\n\n // Execute handler\n const result = await endpointConfig.handler(requestData);\n\n // Send response\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ success: true, data: result }));\n } catch (error: any) {\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: error.message }));\n }\n }\n\n /**\n * Send HTTP 402 Payment Required response\n */\n private sendPaymentRequired(res: http.ServerResponse, endpointConfig: X402EndpointConfig): void {\n const paymentRequirements = this.paymentManager.createPaymentRequirements(\n endpointConfig.amount,\n endpointConfig.currency,\n endpointConfig.description\n );\n\n const response = {\n error: 'Payment Required',\n payment_required: true,\n payment_requirements: paymentRequirements,\n instructions: {\n step_1: 'Execute payment using x402 protocol',\n step_2: 'Include payment transaction hash in X-Payment-Tx header',\n step_3: 'Retry request with payment proof'\n }\n };\n\n res.writeHead(402, {\n 'Content-Type': 'application/json',\n 'X-Payment-Required': 'true',\n 'X-Payment-Amount': endpointConfig.amount.toString(),\n 'X-Payment-Currency': endpointConfig.currency,\n 'X-Payment-Address': paymentRequirements.settlement_address\n });\n\n res.end(JSON.stringify(response));\n }\n\n /**\n * Verify payment\n */\n private async verifyPayment(paymentIdentifier: string, endpointConfig: X402EndpointConfig): Promise<boolean> {\n try {\n // Check cache first\n const cachedPayment = this.paymentCache.get(paymentIdentifier);\n if (cachedPayment) {\n // Check if payment amount matches\n if (cachedPayment.amount >= endpointConfig.amount && cachedPayment.currency === endpointConfig.currency) {\n console.log(`✅ Payment verified from cache: ${paymentIdentifier}`);\n return true;\n }\n }\n\n // Verify payment on-chain if it looks like a transaction hash\n if (paymentIdentifier.startsWith('0x') && paymentIdentifier.length === 66) {\n // Create a mock payment proof for verification\n const mockProof: X402PaymentProof = {\n payment_id: paymentIdentifier,\n transaction_hash: paymentIdentifier,\n main_transaction_hash: paymentIdentifier,\n from_address: '0x0000000000000000000000000000000000000000',\n to_address: '0x0000000000000000000000000000000000000000',\n treasury_address: '0x0000000000000000000000000000000000000000',\n amount: endpointConfig.amount,\n currency: endpointConfig.currency,\n protocol_fee: 0,\n network: 'base-sepolia' as any,\n chain_id: 84532,\n timestamp: new Date(),\n status: 'confirmed',\n confirmations: 1\n };\n\n const isValid = await this.paymentManager.verifyPayment(mockProof);\n if (isValid) {\n // Cache the payment\n this.paymentCache.set(paymentIdentifier, mockProof);\n console.log(`✅ Payment verified on-chain: ${paymentIdentifier}`);\n return true;\n }\n }\n\n console.error(`❌ Payment verification failed: ${paymentIdentifier}`);\n return false;\n } catch (error) {\n console.error(`❌ Payment verification error: ${error}`);\n return false;\n }\n }\n\n /**\n * Get server statistics\n */\n getServerStats(): Record<string, any> {\n return {\n running: !!this.server,\n port: this.config.port,\n host: this.config.host,\n endpoints: Array.from(this.endpoints.entries()).map(([path, config]) => ({\n path,\n amount: config.amount,\n currency: config.currency,\n description: config.description\n })),\n payments_cached: this.paymentCache.size,\n default_currency: this.config.defaultCurrency\n };\n }\n\n /**\n * Clear payment cache\n */\n clearPaymentCache(): void {\n this.paymentCache.clear();\n console.log('🗑️ Payment cache cleared');\n }\n}\n\n","/**\n * Google AP2 Integration for ChaosChain SDK\n *\n * This module integrates Google's official AP2 types with the ChaosChain protocol,\n * providing real AP2 intent verification and mandate management.\n */\n\nimport * as crypto from 'crypto';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as jose from 'jose';\nimport { ConfigurationError, PaymentError } from './exceptions';\n\nexport interface IntentMandate {\n user_cart_confirmation_required: boolean;\n natural_language_description: string;\n merchants?: string[];\n skus?: string[];\n requires_refundability: boolean;\n intent_expiry: string;\n}\n\nexport interface CartMandate {\n contents: CartContents;\n merchant_authorization: string;\n}\n\nexport interface CartContents {\n id: string;\n user_cart_confirmation_required: boolean;\n payment_request: PaymentRequest;\n cart_expiry: string;\n merchant_name: string;\n}\n\nexport interface PaymentRequest {\n method_data: PaymentMethodData[];\n details: PaymentDetailsInit;\n}\n\nexport interface PaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface PaymentDetailsInit {\n id: string;\n display_items: PaymentItem[];\n total: PaymentItem;\n}\n\nexport interface PaymentItem {\n label: string;\n amount: PaymentCurrencyAmount;\n}\n\nexport interface PaymentCurrencyAmount {\n currency: string;\n value: number | string;\n}\n\nexport interface GoogleAP2IntegrationResult {\n intent_mandate?: IntentMandate;\n cart_mandate?: CartMandate;\n payment_mandate?: any;\n jwt_token?: string;\n success: boolean;\n error?: string;\n}\n\n/**\n * Production Google AP2 integration for ChaosChain SDK\n * \n * This integrates Google's official AP2 library for real intent verification\n * and mandate management with production-grade security.\n */\nexport class GoogleAP2Integration {\n private agentName: string;\n private privateKey: crypto.KeyObject;\n private publicKey: string;\n private merchantPrivateKey: string;\n\n constructor(agentName: string, merchantPrivateKey?: string) {\n this.agentName = agentName;\n this.merchantPrivateKey = merchantPrivateKey || 'demo_private_key_123';\n\n // Generate or load RSA keypair for production JWT signing\n const keypair = this.getOrGenerateRsaKeypair();\n this.privateKey = keypair.privateKey;\n this.publicKey = keypair.publicKey;\n\n console.log(`✅ Google AP2 Integration initialized for ${agentName}`);\n }\n\n /**\n * Generate or load RSA keypair for production JWT signing\n */\n private getOrGenerateRsaKeypair(): { privateKey: crypto.KeyObject; publicKey: string } {\n const keyDir = path.join(process.cwd(), 'keys');\n const privateKeyPath = path.join(keyDir, `${this.agentName}_ap2_private.pem`);\n const publicKeyPath = path.join(keyDir, `${this.agentName}_ap2_public.pem`);\n\n // Create keys directory if it doesn't exist\n if (!fs.existsSync(keyDir)) {\n fs.mkdirSync(keyDir, { recursive: true });\n }\n\n // Try to load existing keys\n if (fs.existsSync(privateKeyPath) && fs.existsSync(publicKeyPath)) {\n try {\n const privateKeyPem = fs.readFileSync(privateKeyPath, 'utf-8');\n const publicKeyPem = fs.readFileSync(publicKeyPath, 'utf-8');\n\n const privateKey = crypto.createPrivateKey(privateKeyPem);\n console.log(`🔑 Loaded existing RSA keypair for ${this.agentName}`);\n\n return { privateKey, publicKey: publicKeyPem };\n } catch (e) {\n console.warn(`⚠️ Failed to load existing keys: ${e}`);\n }\n }\n\n // Generate new RSA keypair\n console.log(`🔑 Generating new RSA keypair for ${this.agentName}`);\n const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {\n modulusLength: 2048,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n });\n\n // Save keys to disk\n try {\n fs.writeFileSync(privateKeyPath, privateKey as string);\n fs.writeFileSync(publicKeyPath, publicKey);\n console.log(`💾 RSA keypair saved to ${keyDir}`);\n } catch (e) {\n console.warn(`⚠️ Failed to save keys: ${e}`);\n }\n\n return {\n privateKey: crypto.createPrivateKey(privateKey as string),\n publicKey: publicKey as string\n };\n }\n\n /**\n * Create an IntentMandate using Google's official AP2 types\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create IntentMandate using Google's types\n const intentMandate: IntentMandate = {\n user_cart_confirmation_required: true,\n natural_language_description: userDescription,\n merchants,\n skus,\n requires_refundability: requiresRefundability,\n intent_expiry: expiryTime.toISOString()\n };\n\n console.log(`📝 Created Google AP2 IntentMandate`);\n console.log(` Description: ${userDescription}`);\n console.log(` Expires: ${expiryTime.toISOString()}`);\n\n return {\n intent_mandate: intentMandate,\n success: true\n };\n } catch (e) {\n console.error(`❌ Failed to create IntentMandate: ${e}`);\n return {\n success: false,\n error: String(e)\n };\n }\n }\n\n /**\n * Create a CartMandate using Google's official AP2 types with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create PaymentItems using Google's types\n const paymentItems: PaymentItem[] = items.map((item) => ({\n label: item.name,\n amount: {\n currency,\n value: item.price\n }\n }));\n\n // Create total PaymentItem\n const totalItem: PaymentItem = {\n label: 'Total',\n amount: {\n currency,\n value: totalAmount\n }\n };\n\n // Create PaymentMethodData (supporting multiple methods)\n const methodData: PaymentMethodData[] = [\n {\n supported_methods: 'basic-card',\n data: { supportedNetworks: ['visa', 'mastercard'] }\n },\n {\n supported_methods: 'google-pay',\n data: { environment: 'TEST' }\n },\n {\n supported_methods: 'crypto',\n data: { supportedCurrencies: ['USDC', 'ETH'] }\n }\n ];\n\n // Create PaymentRequest\n const paymentRequest: PaymentRequest = {\n method_data: methodData,\n details: {\n id: `payment_${cartId}`,\n display_items: paymentItems,\n total: totalItem\n }\n };\n\n // Create CartContents\n const cartContents: CartContents = {\n id: cartId,\n user_cart_confirmation_required: true,\n payment_request: paymentRequest,\n cart_expiry: expiryTime.toISOString(),\n merchant_name: merchantName || this.agentName\n };\n\n // Create JWT for merchant authorization\n const jwtToken = await this.createMerchantJwt(cartContents);\n\n // Create CartMandate\n const cartMandate: CartMandate = {\n contents: cartContents,\n merchant_authorization: jwtToken\n };\n\n console.log(`🛒 Created Google AP2 CartMandate with JWT`);\n console.log(` Cart ID: ${cartId}`);\n console.log(` Items: ${items.length} items, Total: ${totalAmount} ${currency}`);\n console.log(` JWT: ${jwtToken.slice(0, 50)}...`);\n\n return {\n cart_mandate: cartMandate,\n jwt_token: jwtToken,\n success: true\n };\n } catch (e) {\n console.error(`❌ Failed to create CartMandate: ${e}`);\n return {\n success: false,\n error: String(e)\n };\n }\n }\n\n /**\n * Create a JWT token for merchant authorization as per Google's AP2 spec\n */\n private async createMerchantJwt(cartContents: CartContents): Promise<string> {\n // Create cart hash for integrity\n const cartJson = JSON.stringify(cartContents);\n const cartHash = crypto.createHash('sha256').update(cartJson).digest('hex');\n\n // JWT Payload\n const now = Math.floor(Date.now() / 1000);\n const payload = {\n iss: `did:chaoschain:${this.agentName}`, // Issuer (DID format)\n sub: cartContents.id, // Subject (cart ID)\n aud: 'chaoschain:payment_processor', // Audience\n iat: now, // Issued at\n exp: now + 15 * 60, // Expires (15 minutes)\n jti: `jwt_${cartContents.id}_${now}`, // JWT ID\n cart_hash: cartHash, // Cart integrity hash\n merchant_name: cartContents.merchant_name\n };\n\n // Create JWT with RSA256 signing\n const jwt = await new jose.SignJWT(payload)\n .setProtectedHeader({\n alg: 'RS256',\n kid: `did:chaoschain:${this.agentName}#key-1`\n })\n .sign(this.privateKey);\n\n return jwt;\n }\n\n /**\n * Verify a JWT token (for validation purposes)\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n try {\n // Get public key for verification\n const publicKey = crypto.createPublicKey(this.publicKey);\n\n // Decode and verify JWT with RSA256\n const { payload } = await jose.jwtVerify(token, publicKey, {\n algorithms: ['RS256'],\n audience: 'chaoschain:payment_processor'\n });\n\n console.log(`✅ JWT token verified successfully with RSA256`);\n return payload as Record<string, any>;\n } catch (e: any) {\n if (e.code === 'ERR_JWT_EXPIRED') {\n console.error(`❌ JWT token has expired`);\n } else if (e.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED') {\n console.error(`❌ JWT token has invalid audience`);\n } else {\n console.error(`❌ JWT token is invalid: ${e}`);\n }\n return {};\n }\n }\n\n /**\n * Get a summary of the Google AP2 integration capabilities\n */\n getIntegrationSummary(): Record<string, any> {\n return {\n integration_type: 'Google Official AP2',\n agent_name: this.agentName,\n supported_features: [\n 'IntentMandate creation with Google types',\n 'CartMandate creation with JWT signing',\n 'W3C PaymentRequest API compliance',\n 'Multi-payment method support',\n 'JWT-based merchant authorization',\n 'Proper expiry handling',\n 'Cart integrity verification'\n ],\n cryptographic_features: [\n 'JWT signing with RS256 (production)',\n 'Cart content hashing for integrity',\n 'Timestamp-based expiry',\n 'Replay attack prevention with JTI'\n ],\n compliance: ['Google AP2 Protocol', 'W3C Payment Request API', 'JWT RFC 7519', 'ISO 8601 timestamps']\n };\n }\n}\n\n","/**\n * A2A-x402 Extension Implementation for ChaosChain SDK\n *\n * This module implements Google's A2A-x402 extension for cryptocurrency payments,\n * enabling seamless crypto settlement within the AP2 framework.\n *\n * Based on: https://github.com/google-agentic-commerce/a2a-x402/blob/main/v0.1/spec.md\n */\n\nimport { NetworkConfig } from './types';\n\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\nimport { PaymentError } from './exceptions';\n\nexport interface X402PaymentMethod {\n supported_methods: string[];\n supported_networks: string[];\n payment_endpoint: string;\n verification_endpoint: string;\n method_data?: Record<string, any>;\n}\n\nexport interface W3CPaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface TraditionalPaymentResponse {\n payment_id: string;\n method: string;\n amount: number;\n currency: string;\n status: string;\n transaction_id?: string;\n authorization_code?: string;\n timestamp: string;\n receipt_data?: Record<string, any>;\n}\n\nexport interface X402PaymentRequest {\n id: string;\n total: Record<string, any>;\n display_items: Array<Record<string, any>>;\n x402_methods: X402PaymentMethod[];\n settlement_address: string;\n network: string;\n expires_at: string;\n}\n\nexport interface X402PaymentResponse {\n payment_id: string;\n transaction_hash: string;\n network: string;\n amount: number;\n currency: string;\n settlement_address: string;\n confirmation_blocks: number;\n status: string;\n timestamp: string;\n gas_fee?: number;\n protocol_fee?: number;\n}\n\n/**\n * A2A-x402 Extension for cryptocurrency payments within AP2 framework\n * \n * This class bridges Google's AP2 protocol with x402 crypto payments,\n * enabling seamless crypto settlement for agent-to-agent commerce.\n */\nexport class A2AX402Extension {\n private agentName: string;\n private network: NetworkConfig;\n private paymentManager: any;\n private supportedCryptoMethods: string[];\n private supportedNetworks: string[];\n private w3cPaymentMethods: W3CPaymentMethodData[];\n\n constructor(agentName: string, network: NetworkConfig, paymentManager: any) {\n this.agentName = agentName;\n this.network = network;\n this.paymentManager = paymentManager;\n\n // Supported payment methods (W3C compliant)\n this.supportedCryptoMethods = ['usdc', 'eth', 'native'];\n this.supportedNetworks = ['base-sepolia', 'ethereum-sepolia', 'optimism-sepolia'];\n\n // W3C Payment Request API compliant payment methods\n this.w3cPaymentMethods = this.initializeW3cPaymentMethods();\n\n console.log(`✅ A2A-x402 Extension initialized for ${agentName} on ${network}`);\n console.log(`💳 Multi-payment support: ${this.w3cPaymentMethods.length} methods available`);\n }\n\n /**\n * Initialize W3C Payment Request API compliant payment methods\n */\n private initializeW3cPaymentMethods(): W3CPaymentMethodData[] {\n const methods: W3CPaymentMethodData[] = [];\n\n // 1. Basic Card Support (Visa, Mastercard, Amex, etc.)\n methods.push({\n supported_methods: 'basic-card',\n data: {\n supportedNetworks: ['visa', 'mastercard', 'amex', 'discover'],\n supportedTypes: ['credit', 'debit']\n }\n });\n\n // 2. Google Pay\n methods.push({\n supported_methods: 'https://google.com/pay',\n data: {\n environment: 'PRODUCTION',\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA']\n }\n }\n ]\n }\n });\n\n // 3. Apple Pay\n methods.push({\n supported_methods: 'https://apple.com/apple-pay',\n data: {\n version: 3,\n merchantIdentifier: `merchant.chaoschain.${this.agentName.toLowerCase()}`,\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['visa', 'masterCard', 'amex', 'discover']\n }\n });\n\n // 4. ChaosChain Crypto Pay (our A2A-x402 implementation)\n methods.push({\n supported_methods: 'https://a2a.org/x402',\n data: {\n supportedCryptocurrencies: this.supportedCryptoMethods,\n supportedNetworks: this.supportedNetworks,\n settlementAddress: 'dynamic',\n protocolVersion: 'x402-v1.0'\n }\n });\n\n // 5. PayPal (for completeness)\n methods.push({\n supported_methods: 'https://paypal.com',\n data: {\n environment: 'sandbox',\n intent: 'capture'\n }\n });\n\n return methods;\n }\n\n /**\n * Create x402 payment method descriptor with W3C compliance\n */\n createX402PaymentMethod(settlementAddress: string): X402PaymentMethod {\n // Extract all W3C method identifiers\n const w3cMethods = this.w3cPaymentMethods.map((method) => method.supported_methods);\n\n return {\n supported_methods: w3cMethods,\n supported_networks: this.supportedNetworks,\n payment_endpoint: `x402://${this.agentName}.chaoschain.com/pay`,\n verification_endpoint: `https://${this.agentName}.chaoschain.com/verify`,\n method_data: {\n w3c_methods: this.w3cPaymentMethods.map((method) => ({\n supportedMethods: method.supported_methods,\n data: method.data\n })),\n crypto_settlement_address: settlementAddress\n }\n };\n }\n\n /**\n * Create enhanced payment request with x402 crypto support\n */\n createEnhancedPaymentRequest(\n cartId: string,\n totalAmount: number,\n currency: string,\n items: Array<Record<string, any>>,\n settlementAddress: string\n ): X402PaymentRequest {\n // Create x402 payment methods\n const x402Methods = [this.createX402PaymentMethod(settlementAddress)];\n\n // Create enhanced payment request\n const paymentRequest: X402PaymentRequest = {\n id: `x402_${cartId}_${Date.now().toString(36)}`,\n total: {\n amount: { value: totalAmount.toString(), currency },\n label: `Payment for ${items.length} items`\n },\n display_items: items.map((item) => ({\n label: item.name || item.service || 'Item',\n amount: { value: (item.price || 0).toString(), currency }\n })),\n x402_methods: x402Methods,\n settlement_address: settlementAddress,\n network: this.network,\n expires_at: new Date(Date.now() + 30 * 60 * 1000).toISOString()\n };\n\n console.log(`💳 Created x402 payment request: ${paymentRequest.id}`);\n return paymentRequest;\n }\n\n /**\n * Execute x402 crypto payment using the real payment manager\n */\n async executeX402Payment(\n paymentRequest: X402PaymentRequest,\n payerAgent: string,\n serviceDescription: string = 'A2A Service'\n ): Promise<X402PaymentResponse> {\n console.log(`💸 Executing x402 payment: ${payerAgent} → ${this.agentName}`);\n\n // Extract payment details\n const amount = parseFloat(paymentRequest.total.amount.value);\n const currency = paymentRequest.total.amount.currency;\n\n // Create payment request for the payment manager\n const pmPaymentRequest = this.paymentManager.createX402PaymentRequest(\n payerAgent,\n this.agentName,\n amount,\n currency,\n serviceDescription\n );\n\n // Execute payment via payment manager\n const paymentProof = this.paymentManager.executeX402Payment(pmPaymentRequest);\n\n // Create x402 payment response\n const response: X402PaymentResponse = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.transaction_hash,\n network: this.network,\n amount,\n currency,\n settlement_address: paymentRequest.settlement_address,\n confirmation_blocks: 1,\n status: 'confirmed',\n timestamp: paymentProof.timestamp.toISOString(),\n gas_fee: undefined,\n protocol_fee: pmPaymentRequest.protocol_fee\n };\n\n console.log(`✅ x402 payment confirmed: ${response.transaction_hash}`);\n return response;\n }\n\n /**\n * Execute traditional payment (cards, Google Pay, Apple Pay, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: string,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): TraditionalPaymentResponse {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Use the payment manager's traditional payment execution\n if (this.paymentManager) {\n // Convert to PaymentMethod enum\n let methodEnum: PaymentMethod | undefined;\n if (paymentMethod === 'basic-card') {\n methodEnum = PaymentMethod.BASIC_CARD;\n } else if (paymentMethod === 'https://google.com/pay') {\n methodEnum = PaymentMethod.GOOGLE_PAY;\n } else if (paymentMethod === 'https://apple.com/apple-pay') {\n methodEnum = PaymentMethod.APPLE_PAY;\n } else if (paymentMethod === 'https://paypal.com') {\n methodEnum = PaymentMethod.PAYPAL;\n } else if (paymentMethod === 'https://a2a.org/x402') {\n methodEnum = PaymentMethod.A2A_X402;\n }\n\n if (methodEnum) {\n const result = this.paymentManager.executeTraditionalPayment(methodEnum, amount, currency, paymentData);\n\n // Convert to TraditionalPaymentResponse\n return {\n payment_id: result.payment_id,\n method: paymentMethod,\n amount,\n currency,\n status: result.status,\n transaction_id: result.transaction_id,\n authorization_code: result.processor_response?.authorization_code,\n timestamp: result.timestamp,\n receipt_data: result.processor_response\n };\n }\n }\n\n // Fallback for unsupported methods\n const paymentId = `trad_${Date.now().toString(36)}`;\n return {\n payment_id: paymentId,\n method: paymentMethod,\n amount,\n currency,\n status: 'failed',\n timestamp: new Date().toISOString(),\n receipt_data: { error: 'Unsupported payment method' }\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n verifyX402Payment(paymentResponse: X402PaymentResponse): boolean {\n // In production, this would verify the transaction on-chain\n // For now, we check if we have a valid transaction hash\n return (\n paymentResponse.status === 'confirmed' &&\n !!paymentResponse.transaction_hash &&\n paymentResponse.transaction_hash.length === 66\n );\n }\n\n /**\n * Create cryptographic proof of x402 payment\n */\n createPaymentProof(paymentResponse: X402PaymentResponse): Record<string, any> {\n const proofData = {\n payment_id: paymentResponse.payment_id,\n transaction_hash: paymentResponse.transaction_hash,\n network: paymentResponse.network,\n amount: paymentResponse.amount,\n currency: paymentResponse.currency,\n settlement_address: paymentResponse.settlement_address,\n timestamp: paymentResponse.timestamp,\n agent_payer: 'unknown',\n agent_payee: this.agentName\n };\n\n // Create proof hash\n const proofJson = JSON.stringify(proofData);\n const crypto = require('crypto');\n const proofHash = crypto.createHash('sha256').update(proofJson).digest('hex');\n\n return {\n proof_type: 'a2a_x402_payment',\n proof_hash: proofHash,\n proof_data: proofData,\n verification_method: 'on_chain_transaction',\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Get A2A-x402 extension capabilities with W3C Payment Request API compliance\n */\n getExtensionCapabilities(): Record<string, any> {\n return {\n extension_name: 'a2a-x402-multi-payment',\n version: '1.0.0',\n w3c_payment_methods: this.w3cPaymentMethods.map((m) => m.supported_methods),\n supported_crypto_methods: this.supportedCryptoMethods,\n supported_networks: this.supportedNetworks,\n features: [\n 'w3c_payment_request_api',\n 'multi_payment_methods',\n 'basic_card_support',\n 'google_pay_integration',\n 'apple_pay_integration',\n 'paypal_integration',\n 'crypto_payments',\n 'instant_settlement',\n 'on_chain_verification',\n 'protocol_fees',\n 'gas_optimization',\n 'multi_network_support'\n ],\n compliance: [\n 'W3C Payment Request API',\n 'A2A-x402 Specification v0.1',\n 'Google Pay API v2',\n 'Apple Pay JS API v3',\n 'PayPal Checkout API',\n 'EIP-20 Token Standard',\n 'HTTP 402 Payment Required'\n ],\n payment_processors: {\n traditional: ['simulated_processor', 'google_pay', 'apple_pay', 'paypal'],\n crypto: ['chaoschain_x402', 'base_sepolia', 'ethereum']\n }\n };\n }\n}\n\n","/**\n * Production-ready process integrity verification for ChaosChain agents.\n *\n * This module provides cryptographic proof of correct code execution,\n * ensuring that agents perform work as intended with verifiable evidence.\n *\n * Features:\n * - Local code hashing (SHA-256)\n * - Optional TEE attestations (0G Compute, AWS Nitro, etc.)\n * - Dual-layer verification: Code + Execution\n * - Pluggable compute providers for maximum flexibility\n */\n\nimport { createHash } from 'crypto';\nimport { IntegrityProof } from './types';\nimport { IntegrityVerificationError } from './exceptions';\n\nexport interface StorageProvider {\n uploadJson(data: any, filename: string): Promise<string>;\n}\n\nexport interface TEEAttestation {\n job_id: string;\n provider: string;\n execution_hash: string;\n verification_method: string;\n model?: string;\n attestation_data: any;\n proof?: string;\n metadata?: any;\n timestamp: string;\n}\n\nexport interface ComputeProvider {\n submit(task: any): Promise<string>;\n status(jobId: string): Promise<{ state: string; [key: string]: any }>;\n result(jobId: string): Promise<{\n success: boolean;\n execution_hash: string;\n verification_method: { value: string };\n proof?: Buffer;\n metadata?: any;\n error?: string;\n }>;\n attestation(jobId: string): Promise<any>;\n}\n\n/**\n * Production-ready process integrity verifier for ChaosChain agents.\n * \n * Provides dual-layer cryptographic proof:\n * 1. Local code hashing (SHA-256 of function code)\n * 2. Optional TEE attestations (hardware-verified execution from 0G Compute, AWS Nitro, etc.)\n * \n * This enables the \"Process Integrity\" layer of the Triple-Verified Stack:\n * - Layer 1: AP2 Intent Verification (Google)\n * - Layer 2: Process Integrity (ChaosChain + TEE attestations) ← THIS MODULE\n * - Layer 3: Accountability\n */\nexport class ProcessIntegrity {\n private agentName: string;\n private storageManager: StorageProvider | null;\n private computeProvider: ComputeProvider | null;\n private registeredFunctions: Map<string, Function>;\n private functionHashes: Map<string, string>;\n\n constructor(\n agentName: string,\n storageManager: StorageProvider | null = null,\n computeProvider: ComputeProvider | null = null\n ) {\n this.agentName = agentName;\n this.storageManager = storageManager;\n this.computeProvider = computeProvider;\n this.registeredFunctions = new Map();\n this.functionHashes = new Map();\n\n const verificationMode = !computeProvider ? 'local' : 'local + TEE attestation';\n console.log(\n `✅ ChaosChain Process Integrity Verifier initialized: ${agentName} (${verificationMode})`\n );\n }\n\n /**\n * Register a function for integrity checking.\n */\n registerFunction(func: Function, functionName?: string): string {\n const name = functionName || func.name;\n\n // Generate code hash\n const codeHash = this.generateCodeHash(func);\n\n // Store function and hash\n this.registeredFunctions.set(name, func);\n this.functionHashes.set(name, codeHash);\n\n console.log(`📝 Registered integrity-checked function: ${name}`);\n console.log(` Code hash: ${codeHash.slice(0, 16)}...`);\n\n return codeHash;\n }\n\n /**\n * Execute a registered function with integrity proof generation.\n */\n async executeWithProof(\n functionName: string,\n inputs: Record<string, any>,\n requireProof: boolean = true,\n useTee: boolean = true\n ): Promise<[any, IntegrityProof | null]> {\n if (!this.registeredFunctions.has(functionName)) {\n const available = Array.from(this.registeredFunctions.keys());\n throw new IntegrityVerificationError(`Function not registered: ${functionName}`, {\n available_functions: available\n });\n }\n\n const func = this.registeredFunctions.get(functionName)!;\n const codeHash = this.functionHashes.get(functionName)!;\n\n const executionMode = useTee && this.computeProvider ? 'local + TEE' : 'local';\n console.log(`⚡ Executing with ChaosChain Process Integrity: ${functionName} (${executionMode})`);\n\n // Execute function\n const startTime = new Date();\n let teeAttestation: TEEAttestation | null = null;\n\n try {\n // Execute the function\n const result = await func(inputs);\n const executionTime = new Date();\n\n // Optionally get TEE attestation\n if (useTee && this.computeProvider) {\n try {\n teeAttestation = await this.getTeeAttestation(functionName, inputs, result);\n } catch (e) {\n console.warn(`⚠️ TEE attestation failed (continuing with local proof): ${e}`);\n }\n }\n\n if (!requireProof) {\n return [result, null];\n }\n\n // Generate integrity proof (includes TEE attestation if available)\n const proof = this.generateIntegrityProof(\n functionName,\n codeHash,\n inputs,\n result,\n startTime,\n executionTime,\n teeAttestation\n );\n\n // Store proof on IPFS if storage manager available\n if (this.storageManager) {\n await this.storeProofOnIpfs(proof);\n }\n\n return [result, proof];\n } catch (e) {\n throw new IntegrityVerificationError(`Function execution failed: ${e}`, {\n function_name: functionName,\n inputs\n });\n }\n }\n\n /**\n * Generate a hash of the function's code.\n */\n private generateCodeHash(func: Function): string {\n try {\n // Get function source code\n const sourceCode = func.toString();\n\n // Create hash\n return createHash('sha256').update(sourceCode).digest('hex');\n } catch {\n // Fallback to function name\n const funcInfo = `${func.name}`;\n return createHash('sha256').update(funcInfo).digest('hex');\n }\n }\n\n /**\n * Get TEE attestation from compute provider (e.g., 0G Compute).\n */\n private async getTeeAttestation(\n functionName: string,\n inputs: Record<string, any>,\n result: any\n ): Promise<TEEAttestation | null> {\n if (!this.computeProvider) {\n return null;\n }\n\n console.log(`🔐 Requesting TEE attestation from compute provider...`);\n\n try {\n // Submit task to TEE compute provider\n const taskData = {\n function: functionName,\n inputs,\n model: 'gpt-oss-120b', // Default model for 0G Compute\n prompt: `Execute function: ${functionName} with inputs: ${JSON.stringify(inputs)}`\n };\n\n const jobId = await this.computeProvider.submit(taskData);\n\n // Wait for completion\n const maxWait = 60000; // 60 seconds timeout\n const startWait = Date.now();\n\n while (Date.now() - startWait < maxWait) {\n const statusResult = await this.computeProvider.status(jobId);\n const state = statusResult.state || 'unknown';\n\n if (state === 'completed') {\n // Get full result (includes execution_hash, verification_method)\n const computeResult = await this.computeProvider.result(jobId);\n\n if (computeResult.success) {\n // Get attestation (proof data)\n const attestationData = await this.computeProvider.attestation(jobId);\n\n console.log(`✅ TEE attestation received: ${jobId}`);\n console.log(` Execution Hash: ${computeResult.execution_hash}`);\n console.log(` Verification: ${computeResult.verification_method.value}`);\n\n // Match actual 0G Compute response structure\n return {\n job_id: jobId,\n provider: '0g-compute',\n execution_hash: computeResult.execution_hash, // TEE execution ID\n verification_method: computeResult.verification_method.value,\n model: taskData.model,\n attestation_data: attestationData, // Full attestation proof\n proof: computeResult.proof?.toString('hex'),\n metadata: computeResult.metadata,\n timestamp: new Date().toISOString()\n };\n } else {\n console.warn(`⚠️ Compute result failed: ${computeResult.error}`);\n return null;\n }\n } else if (state === 'failed') {\n console.warn(`⚠️ TEE execution failed`);\n return null;\n }\n\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n console.warn(`⚠️ TEE attestation timeout after ${maxWait}ms`);\n return null;\n } catch (e) {\n console.warn(`⚠️ TEE attestation error: ${e}`);\n return null;\n }\n }\n\n /**\n * Generate a cryptographic integrity proof.\n */\n private generateIntegrityProof(\n functionName: string,\n codeHash: string,\n inputs: Record<string, any>,\n result: any,\n startTime: Date,\n executionTime: Date,\n teeAttestation: TEEAttestation | null\n ): IntegrityProof {\n const proofId = `proof_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n // Create execution hash\n const executionData = {\n function_name: functionName,\n code_hash: codeHash,\n inputs,\n result: this.serializeResult(result),\n start_time: startTime.toISOString(),\n execution_time: executionTime.toISOString(),\n agent_name: this.agentName\n };\n\n const executionHash = createHash('sha256')\n .update(JSON.stringify(executionData))\n .digest('hex');\n\n // Build proof with optional TEE data\n const proof: IntegrityProof = {\n proof_id: proofId,\n function_name: functionName,\n code_hash: codeHash,\n execution_hash: executionHash,\n timestamp: executionTime,\n agent_name: this.agentName,\n verification_status: 'verified',\n ipfs_cid: undefined,\n // TEE fields (if available)\n tee_attestation: teeAttestation || undefined,\n tee_provider: teeAttestation?.provider,\n tee_job_id: teeAttestation?.job_id,\n tee_execution_hash: teeAttestation?.execution_hash\n };\n\n const verificationLevel = teeAttestation ? 'local + TEE' : 'local';\n console.log(`✅ Process integrity proof generated: ${proofId} (${verificationLevel})`);\n\n return proof;\n }\n\n /**\n * Store integrity proof on IPFS for persistence.\n */\n private async storeProofOnIpfs(proof: IntegrityProof): Promise<void> {\n if (!this.storageManager) return;\n\n try {\n const proofData = {\n type: 'chaoschain_process_integrity_proof_v2', // v2 includes TEE\n proof: {\n proof_id: proof.proof_id,\n function_name: proof.function_name,\n code_hash: proof.code_hash,\n execution_hash: proof.execution_hash,\n timestamp: proof.timestamp.toISOString(),\n agent_name: proof.agent_name,\n verification_status: proof.verification_status,\n // TEE attestation (if available)\n tee_attestation: proof.tee_attestation,\n tee_provider: proof.tee_provider,\n tee_job_id: proof.tee_job_id,\n tee_execution_hash: proof.tee_execution_hash\n },\n verification_layers: {\n local_code_hash: true,\n tee_attestation: !!proof.tee_attestation\n },\n timestamp: new Date().toISOString(),\n agent_name: this.agentName\n };\n\n const filename = `process_integrity_proof_${proof.proof_id}.json`;\n const cid = await this.storageManager.uploadJson(proofData, filename);\n\n if (cid) {\n proof.ipfs_cid = cid;\n console.log(`📁 Process Integrity Proof stored on IPFS: ${cid}`);\n }\n } catch (e) {\n console.warn(`⚠️ Failed to store process integrity proof on IPFS: ${e}`);\n }\n }\n\n /**\n * Serialize function result for hashing.\n */\n private serializeResult(result: any): any {\n try {\n // Try direct JSON serialization\n JSON.stringify(result);\n return result;\n } catch {\n // Fallback to string representation\n return String(result);\n }\n }\n\n /**\n * Create a process insurance policy for a function.\n */\n createInsurancePolicy(\n functionName: string,\n coverageAmount: number,\n conditions: Record<string, any>\n ): Record<string, any> {\n const policyId = `policy_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const policy = {\n policy_id: policyId,\n function_name: functionName,\n agent_name: this.agentName,\n coverage_amount: coverageAmount,\n conditions,\n created_at: new Date().toISOString(),\n status: 'active'\n };\n\n console.log(`🛡️ Process insurance policy created: ${policyId}`);\n console.log(` Function: ${functionName}`);\n console.log(` Coverage: $${coverageAmount}`);\n\n return policy;\n }\n\n /**\n * Configure autonomous agent capabilities with integrity verification.\n */\n configureAutonomousAgent(\n capabilities: string[],\n constraints: Record<string, any>\n ): Record<string, any> {\n const configId = `config_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const configuration = {\n config_id: configId,\n agent_name: this.agentName,\n capabilities,\n constraints,\n integrity_verification: true,\n registered_functions: Array.from(this.registeredFunctions.keys()),\n created_at: new Date().toISOString()\n };\n\n console.log(`🤖 Autonomous agent configured: ${configId}`);\n console.log(` Capabilities: ${capabilities.length}`);\n console.log(` Registered functions: ${this.registeredFunctions.size}`);\n\n return configuration;\n }\n}\n\n/**\n * Decorator for automatically registering functions with integrity checking.\n */\nexport function integrityCheckedFunction(verifier?: ProcessIntegrityVerifier) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (...args: any[]) {\n if (verifier) {\n // Register function if not already registered\n if (!verifier['registeredFunctions'].has(propertyKey)) {\n verifier.registerFunction(originalMethod, propertyKey);\n }\n\n // Execute with integrity proof\n const inputs = { args };\n const [result] = await verifier.executeWithProof(propertyKey, inputs, true);\n return result;\n } else {\n // Execute without integrity checking\n return await originalMethod.apply(this, args);\n }\n };\n\n return descriptor;\n };\n}\n\n","/**\n * Storage Backends for ChaosChain SDK\n *\n * This module provides a unified interface for multiple storage providers,\n * allowing seamless switching between IPFS, Pinata, Irys, and 0G Storage.\n */\n\nimport axios from 'axios';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { StorageError } from './exceptions';\n\nexport interface StorageResult {\n cid: string;\n url?: string;\n size?: number;\n provider: string;\n}\n\nexport interface StorageBackend {\n put(data: Buffer | string, mime?: string): Promise<StorageResult>;\n get(cid: string): Promise<Buffer>;\n pin?(cid: string): Promise<void>;\n unpin?(cid: string): Promise<void>;\n}\n\n/**\n * Local IPFS Storage Backend\n * \n * Requires: ipfs daemon running locally\n * Cost: Free\n * Setup: brew install ipfs && ipfs daemon\n */\nexport class LocalIPFSStorage implements StorageBackend {\n private apiUrl: string;\n\n constructor(apiUrl: string = 'http://127.0.0.1:5001') {\n this.apiUrl = apiUrl;\n console.log(`📦 Local IPFS Storage initialized: ${apiUrl}`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n // Use multipart/form-data to upload\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', buffer, { contentType: mime });\n\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, form, {\n headers: form.getHeaders(),\n maxBodyLength: Infinity\n });\n\n const cid = response.data.Hash;\n console.log(`✅ Uploaded to local IPFS: ${cid}`);\n\n return {\n cid,\n url: `ipfs://${cid}`,\n size: response.data.Size,\n provider: 'local-ipfs'\n };\n } catch (e: any) {\n if (e.code === 'ECONNREFUSED') {\n throw new StorageError(\n 'Local IPFS daemon not running. Start with: ipfs daemon',\n { api_url: this.apiUrl }\n );\n }\n throw new StorageError(`Local IPFS upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.post(\n `${this.apiUrl}/api/v0/cat`,\n null,\n {\n params: { arg: cid },\n responseType: 'arraybuffer'\n }\n );\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from IPFS: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid }\n });\n console.log(`📌 Pinned to local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin CID: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid }\n });\n console.log(`📌 Unpinned from local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin CID: ${e.message}`);\n }\n }\n}\n\n/**\n * Pinata Cloud IPFS Storage Backend\n * \n * Requires: Pinata API key\n * Cost: Free tier + paid plans\n * Setup: Get JWT from https://pinata.cloud\n */\nexport class PinataStorage implements StorageBackend {\n private jwtToken: string;\n private gatewayUrl: string;\n\n constructor(jwtToken: string, gatewayUrl: string = 'https://gateway.pinata.cloud') {\n this.jwtToken = jwtToken;\n this.gatewayUrl = gatewayUrl;\n console.log(`🌐 Pinata Storage initialized`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', buffer, {\n contentType: mime,\n filename: `file_${Date.now()}`\n });\n\n const response = await axios.post('https://api.pinata.cloud/pinning/pinFileToIPFS', form, {\n headers: {\n ...form.getHeaders(),\n Authorization: `Bearer ${this.jwtToken}`\n },\n maxBodyLength: Infinity\n });\n\n const cid = response.data.IpfsHash;\n console.log(`✅ Uploaded to Pinata: ${cid}`);\n\n return {\n cid,\n url: `${this.gatewayUrl}/ipfs/${cid}`,\n size: response.data.PinSize,\n provider: 'pinata'\n };\n } catch (e: any) {\n throw new StorageError(`Pinata upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer'\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Pinata: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(\n 'https://api.pinata.cloud/pinning/pinByHash',\n { hashToPin: cid },\n {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`,\n 'Content-Type': 'application/json'\n }\n }\n );\n console.log(`📌 Pinned to Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin to Pinata: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.delete(`https://api.pinata.cloud/pinning/unpin/${cid}`, {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`\n }\n });\n console.log(`📌 Unpinned from Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin from Pinata: ${e.message}`);\n }\n }\n}\n\n/**\n * Irys (Arweave) Storage Backend\n * \n * Requires: Arweave wallet key\n * Cost: Pay per upload (permanent storage)\n * Setup: Fund wallet with AR tokens\n */\nexport class IrysStorage implements StorageBackend {\n private walletKey: string;\n\n constructor(walletKey: string) {\n this.walletKey = walletKey;\n console.log(`💎 Irys (Arweave) Storage initialized`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, use @irys/sdk\n // const Irys = require('@irys/sdk').default;\n // const irys = new Irys({ network: 'mainnet', token: 'ethereum', key: this.walletKey });\n // const receipt = await irys.upload(data, { tags: [{ name: 'Content-Type', value: mime }] });\n\n // For now, simulate\n const mockCid = `ar_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to Irys: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `https://arweave.net/${mockCid}`,\n provider: 'irys'\n };\n } catch (e: any) {\n throw new StorageError(`Irys upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`https://arweave.net/${cid}`, {\n responseType: 'arraybuffer'\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Arweave: ${e.message}`);\n }\n }\n}\n\n/**\n * 0G Storage Backend\n * \n * Requires: 0G CLI running as sidecar\n * Cost: Gas fees on 0G Network\n * Setup: Install 0G CLI and start sidecar\n */\nexport class ZeroGStorage implements StorageBackend {\n private grpcUrl: string;\n private privateKey: string;\n\n constructor(privateKey: string, grpcUrl: string = 'localhost:50051') {\n this.privateKey = privateKey;\n this.grpcUrl = grpcUrl;\n console.log(`⚡ 0G Storage initialized: ${grpcUrl}`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, call 0G Storage CLI via gRPC\n // For now, simulate\n const mockCid = `0g_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to 0G Storage: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `0g://${mockCid}`,\n provider: '0g-storage'\n };\n } catch (e: any) {\n throw new StorageError(`0G Storage upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n // In production, retrieve from 0G Storage via CLI\n // For now, throw error\n throw new StorageError('0G Storage retrieval not yet implemented');\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from 0G Storage: ${e.message}`);\n }\n }\n}\n\n/**\n * Auto-detecting Storage Manager\n * \n * Automatically selects the best available storage backend:\n * 1. Try local IPFS first (fastest, free)\n * 2. Fall back to Pinata if configured\n * 3. Fall back to Irys if configured\n * 4. Fall back to 0G Storage if configured\n */\nexport class AutoStorageManager implements StorageBackend {\n private backends: StorageBackend[] = [];\n private preferredBackend: StorageBackend | null = null;\n\n constructor() {\n this.detectAvailableBackends();\n }\n\n private detectAvailableBackends(): void {\n console.log('🔍 Auto-detecting available storage backends...');\n\n // Try local IPFS\n try {\n const localIpfs = new LocalIPFSStorage();\n this.backends.push(localIpfs);\n this.preferredBackend = localIpfs;\n console.log('✅ Local IPFS available');\n } catch (e) {\n console.log('❌ Local IPFS not available');\n }\n\n // Try Pinata\n const pinataJwt = process.env.PINATA_JWT;\n if (pinataJwt) {\n const pinata = new PinataStorage(pinataJwt);\n this.backends.push(pinata);\n if (!this.preferredBackend) this.preferredBackend = pinata;\n console.log('✅ Pinata available');\n }\n\n // Try Irys\n const irysKey = process.env.IRYS_WALLET_KEY;\n if (irysKey) {\n const irys = new IrysStorage(irysKey);\n this.backends.push(irys);\n if (!this.preferredBackend) this.preferredBackend = irys;\n console.log('✅ Irys available');\n }\n\n // Try 0G Storage\n const zerogKey = process.env.ZEROG_TESTNET_PRIVATE_KEY;\n if (zerogKey) {\n const zerog = new ZeroGStorage(zerogKey);\n this.backends.push(zerog);\n if (!this.preferredBackend) this.preferredBackend = zerog;\n console.log('✅ 0G Storage available');\n }\n\n if (this.backends.length === 0) {\n console.warn('⚠️ No storage backends available! Please configure at least one.');\n } else {\n console.log(`📦 ${this.backends.length} storage backend(s) available`);\n }\n }\n\n async put(data: Buffer | string, mime?: string): Promise<StorageResult> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n try {\n return await this.preferredBackend.put(data, mime);\n } catch (e) {\n // Try other backends\n for (const backend of this.backends) {\n if (backend !== this.preferredBackend) {\n try {\n console.log(`⚠️ Trying fallback storage backend...`);\n return await backend.put(data, mime);\n } catch (fallbackError) {\n continue;\n }\n }\n }\n\n throw new StorageError(`All storage backends failed: ${e}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n return await this.preferredBackend.get(cid);\n }\n\n getAvailableBackends(): string[] {\n return this.backends.map((backend) => backend.constructor.name);\n }\n}\n\n","/**\n * Network configurations for supported chains\n */\n\nimport { NetworkConfig, NetworkInfo, ContractAddresses } from '../types';\n\n/**\n * ERC-8004 v1.0 contract addresses (pre-deployed)\n */\nexport const ERC8004_ADDRESSES: Record<string, ContractAddresses> = {\n 'ethereum-sepolia': {\n identity: '0x8004a6090Cd10A7288092483047B097295Fb8847',\n reputation: '0x8004B8FD1A363aa02fDC07635C0c5F94f6Af5B7E',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n },\n 'base-sepolia': {\n identity: '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n reputation: '0x8004bd8daB57f14Ed299135749a5CB5c42d341BF',\n validation: '0x8004C269D0A5647E51E121FeB226200ECE932d55',\n },\n 'linea-sepolia': {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n },\n 'hedera-testnet': {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n },\n '0g-testnet': {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n },\n};\n\n/**\n * Network information and RPC endpoints\n */\nexport const NETWORK_INFO: Record<string, NetworkInfo> = {\n 'ethereum-sepolia': {\n chainId: 11155111,\n name: 'Ethereum Sepolia Testnet',\n rpcUrl: process.env.ETHEREUM_SEPOLIA_RPC_URL || 'https://rpc.sepolia.org',\n contracts: ERC8004_ADDRESSES['ethereum-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'base-sepolia': {\n chainId: 84532,\n name: 'Base Sepolia Testnet',\n rpcUrl: process.env.BASE_SEPOLIA_RPC_URL || 'https://sepolia.base.org',\n contracts: ERC8004_ADDRESSES['base-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'linea-sepolia': {\n chainId: 59141,\n name: 'Linea Sepolia Testnet',\n rpcUrl: process.env.LINEA_SEPOLIA_RPC_URL || 'https://rpc.sepolia.linea.build',\n contracts: ERC8004_ADDRESSES['linea-sepolia'],\n nativeCurrency: {\n name: 'Linea ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'hedera-testnet': {\n chainId: 296,\n name: 'Hedera Testnet',\n rpcUrl: process.env.HEDERA_TESTNET_RPC_URL || 'https://testnet.hashio.io/api',\n contracts: ERC8004_ADDRESSES['hedera-testnet'],\n nativeCurrency: {\n name: 'HBAR',\n symbol: 'HBAR',\n decimals: 18,\n },\n },\n '0g-testnet': {\n chainId: 16600,\n name: '0G Network Testnet',\n rpcUrl: process.env.ZEROG_TESTNET_RPC_URL || 'https://evmrpc-testnet.0g.ai',\n contracts: ERC8004_ADDRESSES['0g-testnet'],\n nativeCurrency: {\n name: 'A0GI',\n symbol: 'A0GI',\n decimals: 18,\n },\n },\n local: {\n chainId: 31337,\n name: 'Local Network',\n rpcUrl: process.env.LOCAL_RPC_URL || 'http://localhost:8545',\n contracts: {\n identity: '0x5FbDB2315678afecb367f032d93F642f64180aa3',\n reputation: '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512',\n validation: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0',\n },\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n};\n\n/**\n * Get network info by name\n */\nexport function getNetworkInfo(network: NetworkConfig | string): NetworkInfo {\n const networkKey = typeof network === 'string' ? network : network.valueOf();\n const info = NETWORK_INFO[networkKey];\n\n if (!info) {\n throw new Error(`Unsupported network: ${networkKey}`);\n }\n\n return info;\n}\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: NetworkConfig | string): ContractAddresses {\n return getNetworkInfo(network).contracts;\n}\n\n/**\n * Check if network is supported\n */\nexport function isNetworkSupported(network: string): boolean {\n return network in NETWORK_INFO;\n}\n\n/**\n * Get all supported networks\n */\nexport function getSupportedNetworks(): string[] {\n return Object.keys(NETWORK_INFO);\n}\n\n","/**\n * ChaosChain SDK - Main Entry Point\n * Production-ready SDK for building verifiable AI agents with complete feature parity to Python SDK\n */\n\nimport { ethers } from 'ethers';\nimport { WalletManager } from './WalletManager';\nimport { ChaosAgent } from './ChaosAgent';\nimport { X402PaymentManager } from './X402PaymentManager';\nimport { PaymentManager, PaymentMethodCredentials } from './PaymentManager';\nimport { X402Server } from './X402Server';\nimport { GoogleAP2Integration, GoogleAP2IntegrationResult } from './GoogleAP2Integration';\nimport { A2AX402Extension } from './A2AX402Extension';\nimport { ProcessIntegrity } from './ProcessIntegrity';\nimport { AutoStorageManager, StorageBackend } from './StorageBackends';\n// import { IPFSLocalStorage } from './providers/storage/IPFSLocal'; // Not used\nimport {\n ChaosChainSDKConfig,\n NetworkConfig,\n AgentRole,\n AgentMetadata,\n AgentRegistration,\n FeedbackParams,\n ValidationRequestParams,\n UploadResult,\n UploadOptions,\n ComputeProvider,\n} from './types';\nimport { PaymentMethod } from './PaymentManager';\nimport { getNetworkInfo, getContractAddresses } from './utils/networks';\n\n/**\n * Main ChaosChain SDK Class - Complete TypeScript implementation\n * \n * Features:\n * - ERC-8004 v1.0 on-chain identity, reputation, and validation\n * - x402 crypto payments (USDC/ETH)\n * - Traditional payments (cards, Google Pay, Apple Pay, PayPal)\n * - Google AP2 intent verification\n * - Process integrity with cryptographic proofs\n * - Pluggable storage providers (IPFS, Pinata, Irys, 0G)\n * - Pluggable compute providers\n * - A2A-x402 extension for multi-payment support\n * - HTTP 402 paywall server\n */\nexport class ChaosChainSDK {\n // Core components\n private walletManager: WalletManager;\n private chaosAgent: ChaosAgent;\n private x402PaymentManager?: X402PaymentManager;\n private paymentManager?: PaymentManager;\n private storageBackend: StorageBackend;\n private computeProvider?: ComputeProvider;\n private provider: ethers.Provider;\n\n // Advanced integrations\n public googleAP2?: GoogleAP2Integration;\n public a2aX402Extension?: A2AX402Extension;\n public processIntegrity?: ProcessIntegrity;\n\n // Configuration\n public readonly agentName: string;\n public readonly agentDomain: string;\n public readonly agentRole: AgentRole | string;\n public readonly network: NetworkConfig | string;\n public readonly networkInfo: ReturnType<typeof getNetworkInfo>;\n\n // Current agent ID (set after registration)\n private _agentId?: bigint;\n\n constructor(config: ChaosChainSDKConfig) {\n this.agentName = config.agentName;\n this.agentDomain = config.agentDomain;\n this.agentRole = config.agentRole;\n this.network = config.network;\n\n // Get network info\n this.networkInfo = getNetworkInfo(config.network);\n\n // Initialize provider\n const rpcUrl = config.rpcUrl || this.networkInfo.rpcUrl;\n this.provider = new ethers.JsonRpcProvider(rpcUrl);\n\n // Initialize wallet\n this.walletManager = new WalletManager(\n {\n privateKey: config.privateKey,\n mnemonic: config.mnemonic,\n walletFile: config.walletFile,\n },\n this.provider\n );\n\n // Initialize ChaosAgent (ERC-8004)\n const contractAddresses = getContractAddresses(config.network);\n this.chaosAgent = new ChaosAgent(\n contractAddresses,\n this.walletManager.getWallet(),\n this.provider\n );\n\n // Initialize storage provider\n if (config.storageProvider) {\n this.storageBackend = config.storageProvider as any as StorageBackend;\n } else if (config.enableStorage !== false) {\n // Auto-detect available storage backends\n this.storageBackend = new AutoStorageManager();\n } else {\n // Dummy storage provider\n this.storageBackend = {\n put: async () => ({ cid: '', provider: 'none' }),\n get: async () => Buffer.from(''),\n };\n }\n\n // Initialize payment managers (if enabled)\n if (config.enablePayments !== false) {\n // Crypto payments (x402)\n this.x402PaymentManager = new X402PaymentManager(\n this.walletManager.getWallet(),\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network\n );\n\n // Traditional + crypto payments (multi-method)\n const paymentCredentials: PaymentMethodCredentials = {\n stripe_secret_key: process.env.STRIPE_SECRET_KEY,\n google_pay_merchant_id: process.env.GOOGLE_PAY_MERCHANT_ID,\n apple_pay_merchant_id: process.env.APPLE_PAY_MERCHANT_ID,\n paypal_client_id: process.env.PAYPAL_CLIENT_ID,\n paypal_client_secret: process.env.PAYPAL_CLIENT_SECRET\n };\n\n this.paymentManager = new PaymentManager(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.walletManager.getWallet(),\n paymentCredentials\n );\n\n // A2A-x402 Extension (multi-payment support)\n this.a2aX402Extension = new A2AX402Extension(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.paymentManager\n );\n }\n\n // Initialize Google AP2 (if enabled)\n if (config.enableAP2 !== false) {\n this.googleAP2 = new GoogleAP2Integration(\n this.agentName,\n process.env.GOOGLE_AP2_MERCHANT_PRIVATE_KEY\n );\n }\n\n // Initialize Process Integrity (if enabled)\n if (config.enableProcessIntegrity !== false) {\n this.processIntegrity = new ProcessIntegrity(\n this.storageBackend,\n this.computeProvider\n );\n }\n\n // Initialize compute provider (if provided)\n this.computeProvider = config.computeProvider;\n\n console.log(`🚀 ChaosChain SDK initialized for ${this.agentName}`);\n console.log(` Network: ${this.network}`);\n console.log(` Wallet: ${this.walletManager.getAddress()}`);\n console.log(` Features:`);\n console.log(` - ERC-8004: ✅`);\n console.log(` - x402 Payments: ${this.x402PaymentManager ? '✅' : '❌'}`);\n console.log(` - Multi-Payment: ${this.paymentManager ? '✅' : '❌'}`);\n console.log(` - Google AP2: ${this.googleAP2 ? '✅' : '❌'}`);\n console.log(` - Process Integrity: ${this.processIntegrity ? '✅' : '❌'}`);\n console.log(` - Storage: ✅`);\n }\n\n // ============================================================================\n // ERC-8004 Identity Methods\n // ============================================================================\n\n /**\n * Register agent identity on-chain\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n const meta: AgentMetadata = metadata || {\n name: this.agentName,\n domain: this.agentDomain,\n role: this.agentRole,\n };\n\n const registration = await this.chaosAgent.registerIdentity(meta);\n this._agentId = registration.agentId;\n\n console.log(`✅ Agent #${registration.agentId} registered on-chain`);\n return registration;\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n return this.chaosAgent.getAgentMetadata(agentId);\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n return this.chaosAgent.updateAgentMetadata(agentId, metadata);\n }\n\n /**\n * Get current agent ID\n */\n getAgentId(): bigint | undefined {\n return this._agentId;\n }\n\n // ============================================================================\n // ERC-8004 Reputation Methods\n // ============================================================================\n\n /**\n * Generate feedback authorization (EIP-191 signing)\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n return this.chaosAgent.generateFeedbackAuthorization(agentId, clientAddress, indexLimit, expiry);\n }\n\n /**\n * Give feedback to an agent\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n return this.chaosAgent.giveFeedback(params);\n }\n\n /**\n * Submit feedback with payment proof (ERC-8004 reputation enrichment)\n */\n async submitFeedbackWithPayment(\n agentId: bigint,\n score: number,\n feedbackData: Record<string, any>,\n paymentProof: Record<string, any>\n ): Promise<{ feedbackTxHash: string; feedbackUri: string }> {\n // Store feedback data with payment proof\n const fullFeedbackData = {\n ...feedbackData,\n score,\n proof_of_payment: paymentProof,\n timestamp: new Date().toISOString()\n };\n\n // Upload to storage\n const feedbackJson = JSON.stringify(fullFeedbackData);\n const result = await (this.storageBackend as any).put(Buffer.from(feedbackJson), 'application/json');\n const feedbackUri = `ipfs://${result.cid}`;\n\n // Submit feedback on-chain\n const txHash = await this.chaosAgent.giveFeedback({\n agentId,\n rating: score,\n feedbackUri\n });\n\n console.log(`✅ Feedback submitted with payment proof`);\n console.log(` TX: ${txHash}`);\n console.log(` URI: ${feedbackUri}`);\n\n return { feedbackTxHash: txHash, feedbackUri };\n }\n\n /**\n * Get agent reputation score (ERC-8004 v1.0)\n */\n async getReputationScore(agentId: bigint): Promise<number> {\n const summary = await this.chaosAgent.getSummary(agentId, [], ethers.ZeroHash, ethers.ZeroHash);\n return summary.averageScore;\n }\n\n /**\n * Read all feedback for an agent\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash,\n includeRevoked: boolean = false\n ) {\n return this.chaosAgent.readAllFeedback(agentId, clientAddresses, tag1, tag2, includeRevoked);\n }\n\n /**\n * Get feedback summary statistics\n */\n async getFeedbackSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getSummary(agentId, clientAddresses, tag1, tag2);\n }\n\n /**\n * Get clients who gave feedback\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.chaosAgent.getClients(agentId);\n }\n\n // ============================================================================\n // ERC-8004 Validation Methods\n // ============================================================================\n\n /**\n * Request validation from validator (ERC-8004 v1.0)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n return this.chaosAgent.requestValidation(validatorAddress, agentId, requestUri, requestHash);\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag?: string\n ): Promise<string> {\n return this.chaosAgent.respondToValidation(requestHash, response, responseUri, responseHash, tag);\n }\n\n /**\n * Get validation status\n */\n async getValidationStatus(requestHash: string) {\n return this.chaosAgent.getValidationStatus(requestHash);\n }\n\n /**\n * Get validation summary for an agent\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getValidationSummary(agentId, validatorAddresses, tag);\n }\n\n /**\n * Get validation stats (alias for getValidationSummary)\n */\n async getValidationStats(agentId: bigint) {\n return this.getValidationSummary(agentId);\n }\n\n // ============================================================================\n // x402 Crypto Payment Methods\n // ============================================================================\n\n /**\n * Create x402 payment request\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequest(fromAgent, toAgent, amount, currency, serviceDescription);\n }\n\n /**\n * Execute x402 crypto payment\n */\n async executeX402Payment(\n paymentRequest: Record<string, any>,\n recipientAddress: string\n ): Promise<Record<string, any>> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.executePayment(paymentRequest as any, recipientAddress);\n }\n\n /**\n * Create x402 payment requirements (for receiving payments)\n */\n createX402PaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n expiryMinutes: number = 30\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequirements(amount, currency, serviceDescription, expiryMinutes);\n }\n\n /**\n * Create x402 paywall server\n */\n createX402PaywallServer(port: number = 8402): X402Server {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return new X402Server(this.x402PaymentManager, { port });\n }\n\n /**\n * Get x402 payment history\n */\n async getX402PaymentHistory(limit: number = 10): Promise<any[]> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.getPaymentHistory(limit);\n }\n\n /**\n * Calculate total cost including protocol fee (2.5%)\n */\n calculateTotalCost(\n amount: string,\n currency: string = 'USDC'\n ): { amount: string; fee: string; total: string; currency: string } {\n const amountNum = parseFloat(amount);\n const fee = amountNum * 0.025; // 2.5% protocol fee\n const total = amountNum + fee;\n\n return {\n amount: amountNum.toFixed(6),\n fee: fee.toFixed(6),\n total: total.toFixed(6),\n currency,\n };\n }\n\n /**\n * Get ETH balance\n */\n async getETHBalance(): Promise<string> {\n const balance = await this.provider.getBalance(this.getAddress());\n return ethers.formatEther(balance);\n }\n\n /**\n * Get USDC balance (if USDC contract exists on network)\n */\n async getUSDCBalance(): Promise<string> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled - cannot get USDC balance');\n }\n // This would need USDC contract address for the network\n // For now, return placeholder\n return '0.0';\n }\n\n // ============================================================================\n // Traditional Payment Methods (Cards, Google Pay, Apple Pay, PayPal)\n // ============================================================================\n\n /**\n * Execute traditional payment\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): Record<string, any> {\n if (!this.paymentManager) {\n throw new Error('Payment manager not enabled');\n }\n return this.paymentManager.executeTraditionalPayment(paymentMethod, amount, currency, paymentData);\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n if (!this.paymentManager) {\n return [];\n }\n return this.paymentManager.getSupportedPaymentMethods();\n }\n\n /**\n * Get payment methods status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n if (!this.paymentManager) {\n return {};\n }\n return this.paymentManager.getPaymentMethodsStatus();\n }\n\n // ============================================================================\n // Google AP2 Intent Verification Methods\n // ============================================================================\n\n /**\n * Create Google AP2 intent mandate\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createIntentMandate(userDescription, merchants, skus, requiresRefundability, expiryMinutes);\n }\n\n /**\n * Create Google AP2 cart mandate with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createCartMandate(cartId, items, totalAmount, currency, merchantName, expiryMinutes);\n }\n\n /**\n * Verify JWT token\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.verifyJwtToken(token);\n }\n\n // ============================================================================\n // Process Integrity Methods\n // ============================================================================\n\n /**\n * Register function for integrity verification\n */\n registerFunction(func: (...args: any[]) => Promise<any>): void {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n this.processIntegrity.registerFunction(func);\n }\n\n /**\n * Execute function with integrity proof\n */\n async executeWithIntegrityProof(\n functionName: string,\n args: Record<string, any>\n ): Promise<{ result: any; proof: Record<string, any> }> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n const [result, proof] = await this.processIntegrity.executeWithProof(functionName, args);\n return { result, proof: proof as any };\n }\n\n /**\n * Verify integrity proof\n */\n async verifyIntegrityProof(_proof: Record<string, any>): Promise<boolean> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n // TODO: Implement verifyProof in ProcessIntegrity\n return true;\n }\n\n // ============================================================================\n // Storage Methods\n // ============================================================================\n\n /**\n * Upload data to storage\n */\n async upload(data: any, _options?: UploadOptions): Promise<UploadResult> {\n const jsonData = typeof data === 'string' ? data : JSON.stringify(data);\n const buffer = Buffer.from(jsonData);\n\n const result = await this.storageBackend.put(buffer, 'application/json');\n\n return {\n cid: result.cid,\n uri: result.url || `ipfs://${result.cid}`\n };\n }\n\n /**\n * Download data from storage\n */\n async download(cid: string): Promise<any> {\n const buffer = await this.storageBackend.get(cid);\n const data = buffer.toString('utf-8');\n\n try {\n return JSON.parse(data);\n } catch {\n return data;\n }\n }\n\n /**\n * Store evidence (convenience method)\n */\n async storeEvidence(evidenceData: Record<string, any>): Promise<string> {\n const result = await (this.storageBackend as any).put(Buffer.from(JSON.stringify(evidenceData)), 'application/json');\n console.log(`📦 Stored evidence: ${result.cid}`);\n return result.cid;\n }\n\n // ============================================================================\n // Wallet & Network Methods\n // ============================================================================\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.walletManager.getAddress();\n }\n\n /**\n * Get wallet balance\n */\n async getBalance(): Promise<string> {\n return this.walletManager.getBalance();\n }\n\n /**\n * Get network info\n */\n getNetworkInfo() {\n return this.networkInfo;\n }\n\n /**\n * Get SDK capabilities summary\n */\n getCapabilities(): Record<string, any> {\n return {\n agent_name: this.agentName,\n agent_domain: this.agentDomain,\n agent_role: this.agentRole,\n network: this.network,\n wallet_address: this.walletManager.getAddress(),\n agent_id: this._agentId ? this._agentId.toString() : undefined,\n features: {\n erc_8004_identity: true,\n erc_8004_reputation: true,\n erc_8004_validation: true,\n x402_crypto_payments: !!this.x402PaymentManager,\n traditional_payments: !!this.paymentManager,\n google_ap2_intents: !!this.googleAP2,\n process_integrity: !!this.processIntegrity,\n storage: true,\n compute: !!this.computeProvider\n },\n supported_payment_methods: this.paymentManager ? this.paymentManager.getSupportedPaymentMethods() : [],\n storage_backends: this.storageBackend instanceof AutoStorageManager \n ? (this.storageBackend as AutoStorageManager).getAvailableBackends() \n : [this.storageBackend.constructor.name]\n };\n }\n}\n","/**\n * Local IPFS Storage Provider\n * Uses HTTP API client to interact with local IPFS daemon\n */\n\nimport axios from 'axios';\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport class IPFSLocalStorage implements StorageProvider {\n private apiUrl: string;\n private gatewayUrl: string;\n\n constructor(apiUrl: string = 'http://localhost:5001', gatewayUrl: string = 'http://localhost:8080') {\n this.apiUrl = apiUrl;\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Upload data to local IPFS\n */\n async upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult> {\n try {\n let buffer: Buffer;\n\n // Convert data to buffer\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (typeof data === 'string') {\n buffer = Buffer.from(data, 'utf-8');\n } else {\n buffer = Buffer.from(JSON.stringify(data), 'utf-8');\n }\n\n // Create form data\n const formData = new FormData();\n const blob = new Blob([buffer], { type: options?.mime || 'application/octet-stream' });\n formData.append('file', blob);\n\n // Upload to IPFS\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n params: {\n pin: options?.pin !== false, // Pin by default\n },\n });\n\n const cid = response.data.Hash;\n\n return {\n cid,\n uri: `ipfs://${cid}`,\n size: response.data.Size,\n };\n } catch (error) {\n throw new Error(`Failed to upload to IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Download data from IPFS\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (error) {\n throw new Error(`Failed to download from IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Pin content\n */\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to pin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Unpin content\n */\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to unpin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Check if IPFS daemon is running\n */\n async isAvailable(): Promise<boolean> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/version`);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get IPFS version\n */\n async getVersion(): Promise<string> {\n try {\n const response = await axios.post(`${this.apiUrl}/api/v0/version`);\n return response.data.Version;\n } catch (error) {\n throw new Error(`Failed to get IPFS version: ${(error as Error).message}`);\n }\n }\n}\n\n","/**\n * ChaosChain SDK Type Definitions\n * TypeScript types and interfaces for building verifiable AI agents\n */\n\nimport { ethers } from 'ethers';\n\n// ============================================================================\n// Core Enums\n// ============================================================================\n\n/**\n * Supported blockchain networks with pre-deployed ERC-8004 contracts\n */\nexport enum NetworkConfig {\n ETHEREUM_SEPOLIA = 'ethereum-sepolia',\n BASE_SEPOLIA = 'base-sepolia',\n LINEA_SEPOLIA = 'linea-sepolia',\n HEDERA_TESTNET = 'hedera-testnet',\n MODE_TESTNET = 'mode-testnet',\n ZEROG_TESTNET = '0g-testnet',\n LOCAL = 'local',\n}\n\n/**\n * Agent role in the ChaosChain network\n */\nexport enum AgentRole {\n SERVER = 'server',\n CLIENT = 'client',\n VALIDATOR = 'validator',\n BOTH = 'both',\n}\n\n// ============================================================================\n// Contract Types\n// ============================================================================\n\n/**\n * ERC-8004 contract addresses for a network\n */\nexport interface ContractAddresses {\n identity: string;\n reputation: string;\n validation: string;\n}\n\n/**\n * Network configuration with RPC and contract addresses\n */\nexport interface NetworkInfo {\n chainId: number;\n name: string;\n rpcUrl: string;\n contracts: ContractAddresses;\n nativeCurrency: {\n name: string;\n symbol: string;\n decimals: number;\n };\n}\n\n// ============================================================================\n// Agent Types\n// ============================================================================\n\n/**\n * Agent metadata structure (ERC-8004 compliant)\n */\nexport interface AgentMetadata {\n name: string;\n domain: string;\n role: AgentRole | string;\n capabilities?: string[];\n version?: string;\n description?: string;\n image?: string;\n contact?: string;\n supportedTrust?: string[];\n}\n\n/**\n * Agent registration result\n */\nexport interface AgentRegistration {\n agentId: bigint;\n txHash: string;\n owner: string;\n}\n\n// ============================================================================\n// ERC-8004 Reputation Types\n// ============================================================================\n\n/**\n * Feedback submission parameters\n */\nexport interface FeedbackParams {\n agentId: bigint;\n rating: number;\n feedbackUri: string;\n feedbackData?: Record<string, unknown>;\n}\n\n/**\n * Feedback record\n */\nexport interface FeedbackRecord {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n feedbackUri: string;\n timestamp: number;\n revoked: boolean;\n}\n\n// ============================================================================\n// ERC-8004 Validation Types\n// ============================================================================\n\n/**\n * Validation request parameters\n */\nexport interface ValidationRequestParams {\n validatorAgentId: bigint;\n requestUri: string;\n requestHash: string;\n}\n\n/**\n * Validation request record\n */\nexport interface ValidationRequest {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n requestUri: string;\n requestHash: string;\n status: ValidationStatus;\n responseUri?: string;\n timestamp: number;\n}\n\n/**\n * Validation status enum\n */\nexport enum ValidationStatus {\n PENDING = 0,\n APPROVED = 1,\n REJECTED = 2,\n}\n\n// ============================================================================\n// Payment Types\n// ============================================================================\n\n/**\n * x402 payment parameters\n */\nexport interface X402PaymentParams {\n toAgent: string;\n amount: string;\n currency?: string;\n serviceType?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * x402 payment result\n */\nexport interface X402Payment {\n from: string;\n to: string;\n amount: string;\n currency: string;\n txHash: string;\n timestamp: number;\n feeAmount?: string;\n feeTxHash?: string;\n}\n\n/**\n * Payment receipt\n */\nexport interface PaymentReceipt {\n paymentId: string;\n from: string;\n to: string;\n amount: string;\n currency: string;\n timestamp: number;\n signature: string;\n txHash: string;\n}\n\n// ============================================================================\n// Storage Provider Types\n// ============================================================================\n\n/**\n * Storage upload options\n */\nexport interface UploadOptions {\n mime?: string;\n metadata?: Record<string, unknown>;\n pin?: boolean;\n}\n\n/**\n * Storage upload result\n */\nexport interface UploadResult {\n cid: string;\n uri: string;\n size?: number;\n}\n\n/**\n * Storage provider interface\n */\nexport interface StorageProvider {\n upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult>;\n download(cid: string): Promise<Buffer>;\n pin(cid: string): Promise<void>;\n unpin(cid: string): Promise<void>;\n}\n\n// ============================================================================\n// Compute Provider Types\n// ============================================================================\n\n/**\n * Compute provider interface\n */\nexport interface ComputeProvider {\n inference(model: string, input: unknown): Promise<unknown>;\n getModels(): Promise<string[]>;\n}\n\n// ============================================================================\n// Process Integrity Types\n// ============================================================================\n\n/**\n * TEE attestation data\n */\nexport interface TEEAttestation {\n provider: 'phala' | 'sgx' | 'nitro' | 'zerog';\n attestationData: string;\n publicKey: string;\n timestamp: number;\n}\n\n/**\n * Integrity proof structure\n */\nexport interface IntegrityProof {\n proofId: string;\n functionName: string;\n inputs: Record<string, unknown>;\n outputs: Record<string, unknown>;\n codeHash: string;\n executionHash: string;\n timestamp: number;\n signature: string;\n ipfsCid?: string;\n teeAttestation?: TEEAttestation;\n}\n\n// ============================================================================\n// SDK Configuration Types\n// ============================================================================\n\n/**\n * Main SDK configuration\n */\nexport interface ChaosChainSDKConfig {\n agentName: string;\n agentDomain: string;\n agentRole: AgentRole | string;\n network: NetworkConfig | string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enablePayments?: boolean;\n enableStorage?: boolean;\n storageProvider?: StorageProvider;\n computeProvider?: ComputeProvider;\n walletFile?: string;\n}\n\n/**\n * Wallet configuration\n */\nexport interface WalletConfig {\n privateKey?: string;\n mnemonic?: string;\n walletFile?: string;\n}\n\n// ============================================================================\n// Event Types\n// ============================================================================\n\n/**\n * Contract event data\n */\nexport interface ContractEvent {\n event: string;\n args: unknown[];\n blockNumber: number;\n transactionHash: string;\n logIndex: number;\n}\n\n/**\n * Agent registered event\n */\nexport interface AgentRegisteredEvent extends ContractEvent {\n agentId: bigint;\n owner: string;\n uri: string;\n}\n\n/**\n * Feedback given event\n */\nexport interface FeedbackGivenEvent extends ContractEvent {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n}\n\n/**\n * Validation requested event\n */\nexport interface ValidationRequestedEvent extends ContractEvent {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n}\n\n// ============================================================================\n// Helper Types\n// ============================================================================\n\n/**\n * Transaction result\n */\nexport interface TransactionResult {\n hash: string;\n receipt?: ethers.TransactionReceipt;\n confirmations?: number;\n}\n\n/**\n * Query result with pagination\n */\nexport interface QueryResult<T> {\n items: T[];\n total: number;\n page?: number;\n pageSize?: number;\n}\n\n/**\n * Error response\n */\nexport interface ErrorResponse {\n error: string;\n code?: string;\n details?: unknown;\n}\n\n","/**\n * ChaosChain SDK - TypeScript Entry Point\n * \n * Complete TypeScript implementation with feature parity to Python SDK\n * \n * @packageDocumentation\n */\n\n// ============================================================================\n// Main SDK Export\n// ============================================================================\nexport { ChaosChainSDK } from './ChaosChainSDK';\n\n// ============================================================================\n// Core Components\n// ============================================================================\nexport { WalletManager } from './WalletManager';\nexport { ChaosAgent } from './ChaosAgent';\n\n// ============================================================================\n// Payment Components\n// ============================================================================\nexport { X402PaymentManager } from './X402PaymentManager';\nexport { PaymentManager } from './PaymentManager';\nexport { X402Server } from './X402Server';\n\n// ============================================================================\n// Advanced Integrations\n// ============================================================================\nexport { GoogleAP2Integration } from './GoogleAP2Integration';\nexport { A2AX402Extension } from './A2AX402Extension';\n// export { ProcessIntegrity } from './ProcessIntegrity'; // TODO: Fix export\n\n// ============================================================================\n// Storage Backends\n// ============================================================================\nexport {\n LocalIPFSStorage,\n PinataStorage,\n IrysStorage,\n ZeroGStorage,\n AutoStorageManager,\n type StorageBackend,\n type StorageResult\n} from './StorageBackends';\n\n// ============================================================================\n// Storage Providers (Legacy exports)\n// ============================================================================\nexport { IPFSLocalStorage } from './providers/storage/IPFSLocal';\nexport { PinataStorage as IPFSPinataStorage } from './StorageBackends';\nexport { IrysStorage as IrysStorageProvider } from './StorageBackends';\n\n// ============================================================================\n// Exceptions\n// ============================================================================\nexport {\n ChaosChainSDKError,\n AgentRegistrationError,\n // FeedbackSubmissionError, // Not defined yet\n // ValidationError as SDKValidationError, // Not defined yet\n PaymentError,\n StorageError,\n ContractError,\n ConfigurationError,\n IntegrityVerificationError,\n // WalletError, // Not defined yet\n // NetworkError, // Not defined yet\n} from './exceptions';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\nexport type {\n // Core Config\n ChaosChainSDKConfig,\n WalletConfig,\n \n // Agent Types\n AgentMetadata,\n AgentRegistration,\n \n // Feedback & Reputation\n FeedbackParams,\n FeedbackRecord,\n \n // Validation\n ValidationRequestParams,\n ValidationRequest,\n \n // Payments\n X402PaymentParams,\n X402Payment,\n // X402PaymentReceipt, // Use PaymentReceipt instead\n \n // Storage\n StorageProvider,\n UploadOptions,\n UploadResult,\n \n // Compute\n ComputeProvider,\n \n // Network\n ContractAddresses,\n \n // Process Integrity\n IntegrityProof,\n TEEAttestation,\n \n // Transaction\n TransactionResult,\n} from './types';\n\n// ============================================================================\n// Enums\n// ============================================================================\nexport { \n NetworkConfig,\n AgentRole,\n ValidationStatus\n // PaymentMethod // Not defined in types.ts yet\n} from './types';\n\n// PaymentMethod enum for traditional + crypto payments\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\nexport { \n getNetworkInfo, \n getContractAddresses\n // SUPPORTED_NETWORKS // Not exported from networks.ts\n} from './utils/networks';\n\nexport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI\n // getIdentityRegistryABI, // Now exported as const\n // getReputationRegistryABI, // Now exported as const\n // getValidationRegistryABI // Now exported as const\n} from './utils/contracts';\n\n// ============================================================================\n// Version Info\n// ============================================================================\nexport const SDK_VERSION = '0.1.2';\nexport const ERC8004_VERSION = '1.0';\nexport const X402_VERSION = '1.0';\n\n// ============================================================================\n// Default Export\n// ============================================================================\nimport { ChaosChainSDK as SDK } from './ChaosChainSDK';\nexport default SDK;\n\n// ============================================================================\n// Quick Start Helper\n// ============================================================================\n\n/**\n * Initialize ChaosChain SDK with minimal configuration\n * \n * @example\n * ```typescript\n * import { initChaosChainSDK, ChaosChainSDK } from '@chaoschain/sdk';\n * \n * const sdk = initChaosChainSDK({\n * agentName: 'MyAgent',\n * agentDomain: 'myagent.example.com',\n * agentRole: 'server',\n * network: 'base-sepolia',\n * privateKey: process.env.PRIVATE_KEY\n * });\n * \n * const { agentId } = await sdk.registerIdentity();\n * console.log(`Agent registered with ID: ${agentId}`);\n * ```\n */\nexport function initChaosChainSDK(config: {\n agentName: string;\n agentDomain: string;\n agentRole: string;\n network: string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enablePayments?: boolean;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enableStorage?: boolean;\n}): SDK {\n return new SDK(config as any);\n}\n"]}
1
+ {"version":3,"sources":["../node_modules/delayed-stream/lib/delayed_stream.js","../node_modules/combined-stream/lib/combined_stream.js","../node_modules/mime-db/db.json","../node_modules/mime-db/index.js","../node_modules/mime-types/index.js","../node_modules/asynckit/lib/defer.js","../node_modules/asynckit/lib/async.js","../node_modules/asynckit/lib/abort.js","../node_modules/asynckit/lib/iterate.js","../node_modules/asynckit/lib/state.js","../node_modules/asynckit/lib/terminator.js","../node_modules/asynckit/parallel.js","../node_modules/asynckit/serialOrdered.js","../node_modules/asynckit/serial.js","../node_modules/asynckit/index.js","../node_modules/es-object-atoms/index.js","../node_modules/es-errors/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/math-intrinsics/abs.js","../node_modules/math-intrinsics/floor.js","../node_modules/math-intrinsics/max.js","../node_modules/math-intrinsics/min.js","../node_modules/math-intrinsics/pow.js","../node_modules/math-intrinsics/round.js","../node_modules/math-intrinsics/isNaN.js","../node_modules/math-intrinsics/sign.js","../node_modules/gopd/gOPD.js","../node_modules/gopd/index.js","../node_modules/es-define-property/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/get-proto/Reflect.getPrototypeOf.js","../node_modules/get-proto/Object.getPrototypeOf.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/call-bind-apply-helpers/functionCall.js","../node_modules/call-bind-apply-helpers/functionApply.js","../node_modules/call-bind-apply-helpers/reflectApply.js","../node_modules/call-bind-apply-helpers/actualApply.js","../node_modules/call-bind-apply-helpers/index.js","../node_modules/dunder-proto/get.js","../node_modules/get-proto/index.js","../node_modules/hasown/index.js","../node_modules/get-intrinsic/index.js","../node_modules/has-tostringtag/shams.js","../node_modules/es-set-tostringtag/index.js","../node_modules/form-data/lib/populate.js","../node_modules/form-data/lib/form_data.js","../node_modules/proxy-from-env/index.js","../node_modules/ms/index.js","../node_modules/debug/src/common.js","../node_modules/debug/src/browser.js","../node_modules/has-flag/index.js","../node_modules/supports-color/index.js","../node_modules/debug/src/node.js","../node_modules/debug/src/index.js","../node_modules/follow-redirects/debug.js","../node_modules/follow-redirects/index.js","../src/WalletManager.ts","../src/utils/contracts.ts","../src/ChaosAgent.ts","../src/exceptions.ts","../src/X402PaymentManager.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/platform/node/classes/FormData.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/node/classes/URLSearchParams.js","../node_modules/axios/lib/platform/node/index.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/adapters/http.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/fromDataURI.js","../node_modules/axios/lib/helpers/AxiosTransformStream.js","../node_modules/axios/lib/helpers/readBlob.js","../node_modules/axios/lib/helpers/formDataToStream.js","../node_modules/axios/lib/helpers/ZlibHeaderTransformStream.js","../node_modules/axios/lib/helpers/callbackify.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/helpers/throttle.js","../node_modules/axios/lib/helpers/progressEventReducer.js","../node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/helpers/resolveConfig.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/helpers/composeSignals.js","../node_modules/axios/lib/helpers/trackStream.js","../node_modules/axios/lib/adapters/fetch.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/PaymentManager.ts","../src/X402Server.ts","../src/GoogleAP2Integration.ts","../src/A2AX402Extension.ts","../src/ProcessIntegrity.ts","../src/StorageBackends.ts","../src/utils/networks.ts","../src/ChaosChainSDK.ts","../src/providers/storage/IPFSLocal.ts","../src/types.ts","../src/index.ts"],"names":["util","stream","self","charset","path","extension","iterator","isNaN","concatty","slicy","bind","Empty","undefined","doEval","stringToPath","getBaseIntrinsic","require_shams","toStringTag","http","https","fs","crypto","FormData","append","defaults","url","extend","useColors","URL","isFunction","noop","isString","isBuffer","exports","spread","ethers","PaymentError","prototype","descriptors","filter","hasOwnProperty","toString","encode","isFormData","isFileList","transitional","validateStatus","Readable","zlib","followRedirects","proxyFromEnv","EventEmitter","origin","merge","signal","done","ReadableStream","TextEncoder","fetch","adapter","validators","Axios","AxiosError","CanceledError","isCancel","CancelToken","VERSION","all","isAxiosError","toFormData","AxiosHeaders","HttpStatusCode","mergeConfig","http2","path2","fs2","privateKey","crypto2","jose","paymentData","createHash","NetworkConfig","AgentRole","ValidationStatus","PaymentMethod"],"mappings":"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","file":"index.js","sourcesContent":["var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + filename + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce); // eslint-disable-line no-invalid-this\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","'use strict';\n\nvar parseUrl = require('url').parse;\n\nvar DEFAULT_PORTS = {\n ftp: 21,\n gopher: 70,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443,\n};\n\nvar stringEndsWith = String.prototype.endsWith || function(s) {\n return s.length <= this.length &&\n this.indexOf(s, this.length - s.length) !== -1;\n};\n\n/**\n * @param {string|object} url - The URL, or the result from url.parse.\n * @return {string} The URL of the proxy that should handle the request to the\n * given URL. If no proxy is set, this will be an empty string.\n */\nfunction getProxyForUrl(url) {\n var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {};\n var proto = parsedUrl.protocol;\n var hostname = parsedUrl.host;\n var port = parsedUrl.port;\n if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') {\n return ''; // Don't proxy URLs without a valid scheme or host.\n }\n\n proto = proto.split(':', 1)[0];\n // Stripping ports in this way instead of using parsedUrl.hostname to make\n // sure that the brackets around IPv6 addresses are kept.\n hostname = hostname.replace(/:\\d*$/, '');\n port = parseInt(port) || DEFAULT_PORTS[proto] || 0;\n if (!shouldProxy(hostname, port)) {\n return ''; // Don't proxy URLs that match NO_PROXY.\n }\n\n var proxy =\n getEnv('npm_config_' + proto + '_proxy') ||\n getEnv(proto + '_proxy') ||\n getEnv('npm_config_proxy') ||\n getEnv('all_proxy');\n if (proxy && proxy.indexOf('://') === -1) {\n // Missing scheme in proxy, default to the requested URL's scheme.\n proxy = proto + '://' + proxy;\n }\n return proxy;\n}\n\n/**\n * Determines whether a given URL should be proxied.\n *\n * @param {string} hostname - The host name of the URL.\n * @param {number} port - The effective port of the URL.\n * @returns {boolean} Whether the given URL should be proxied.\n * @private\n */\nfunction shouldProxy(hostname, port) {\n var NO_PROXY =\n (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase();\n if (!NO_PROXY) {\n return true; // Always proxy if NO_PROXY is not set.\n }\n if (NO_PROXY === '*') {\n return false; // Never proxy if wildcard is set.\n }\n\n return NO_PROXY.split(/[,\\s]/).every(function(proxy) {\n if (!proxy) {\n return true; // Skip zero-length hosts.\n }\n var parsedProxy = proxy.match(/^(.+):(\\d+)$/);\n var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy;\n var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0;\n if (parsedProxyPort && parsedProxyPort !== port) {\n return true; // Skip if ports don't match.\n }\n\n if (!/^[.*]/.test(parsedProxyHostname)) {\n // No wildcards, so stop proxying if there is an exact match.\n return hostname !== parsedProxyHostname;\n }\n\n if (parsedProxyHostname.charAt(0) === '*') {\n // Remove leading wildcard.\n parsedProxyHostname = parsedProxyHostname.slice(1);\n }\n // Stop proxying if the hostname ends with the no_proxy host.\n return !stringEndsWith.call(hostname, parsedProxyHostname);\n });\n}\n\n/**\n * Get the value for an environment variable.\n *\n * @param {string} key - The name of the environment variable.\n * @return {string} The value of the environment variable.\n * @private\n */\nfunction getEnv(key) {\n return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || '';\n}\n\nexports.getProxyForUrl = getProxyForUrl;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '')\n\t\t\t.trim()\n\t\t\t.replace(/\\s+/g, ',')\n\t\t\t.split(',')\n\t\t\t.filter(Boolean);\n\n\t\tfor (const ns of split) {\n\t\t\tif (ns[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(ns.slice(1));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(ns);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Checks if the given string matches a namespace template, honoring\n\t * asterisks as wildcards.\n\t *\n\t * @param {String} search\n\t * @param {String} template\n\t * @return {Boolean}\n\t */\n\tfunction matchesTemplate(search, template) {\n\t\tlet searchIndex = 0;\n\t\tlet templateIndex = 0;\n\t\tlet starIndex = -1;\n\t\tlet matchIndex = 0;\n\n\t\twhile (searchIndex < search.length) {\n\t\t\tif (templateIndex < template.length && (template[templateIndex] === search[searchIndex] || template[templateIndex] === '*')) {\n\t\t\t\t// Match character or proceed with wildcard\n\t\t\t\tif (template[templateIndex] === '*') {\n\t\t\t\t\tstarIndex = templateIndex;\n\t\t\t\t\tmatchIndex = searchIndex;\n\t\t\t\t\ttemplateIndex++; // Skip the '*'\n\t\t\t\t} else {\n\t\t\t\t\tsearchIndex++;\n\t\t\t\t\ttemplateIndex++;\n\t\t\t\t}\n\t\t\t} else if (starIndex !== -1) { // eslint-disable-line no-negated-condition\n\t\t\t\t// Backtrack to the last '*' and try to match more characters\n\t\t\t\ttemplateIndex = starIndex + 1;\n\t\t\t\tmatchIndex++;\n\t\t\t\tsearchIndex = matchIndex;\n\t\t\t} else {\n\t\t\t\treturn false; // No match\n\t\t\t}\n\t\t}\n\n\t\t// Handle trailing '*' in template\n\t\twhile (templateIndex < template.length && template[templateIndex] === '*') {\n\t\t\ttemplateIndex++;\n\t\t}\n\n\t\treturn templateIndex === template.length;\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names,\n\t\t\t...createDebug.skips.map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tfor (const skip of createDebug.skips) {\n\t\t\tif (matchesTemplate(name, skip)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (const ns of createDebug.names) {\n\t\t\tif (matchesTemplate(name, ns)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\tlet m;\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\t// eslint-disable-next-line no-return-assign\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && (m = navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/)) && parseInt(m[1], 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug') || exports.storage.getItem('DEBUG') ;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","'use strict';\n\nmodule.exports = (flag, argv = process.argv) => {\n\tconst prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--');\n\tconst position = argv.indexOf(prefix + flag);\n\tconst terminatorPosition = argv.indexOf('--');\n\treturn position !== -1 && (terminatorPosition === -1 || position < terminatorPosition);\n};\n","'use strict';\nconst os = require('os');\nconst tty = require('tty');\nconst hasFlag = require('has-flag');\n\nconst {env} = process;\n\nlet forceColor;\nif (hasFlag('no-color') ||\n\thasFlag('no-colors') ||\n\thasFlag('color=false') ||\n\thasFlag('color=never')) {\n\tforceColor = 0;\n} else if (hasFlag('color') ||\n\thasFlag('colors') ||\n\thasFlag('color=true') ||\n\thasFlag('color=always')) {\n\tforceColor = 1;\n}\n\nif ('FORCE_COLOR' in env) {\n\tif (env.FORCE_COLOR === 'true') {\n\t\tforceColor = 1;\n\t} else if (env.FORCE_COLOR === 'false') {\n\t\tforceColor = 0;\n\t} else {\n\t\tforceColor = env.FORCE_COLOR.length === 0 ? 1 : Math.min(parseInt(env.FORCE_COLOR, 10), 3);\n\t}\n}\n\nfunction translateLevel(level) {\n\tif (level === 0) {\n\t\treturn false;\n\t}\n\n\treturn {\n\t\tlevel,\n\t\thasBasic: true,\n\t\thas256: level >= 2,\n\t\thas16m: level >= 3\n\t};\n}\n\nfunction supportsColor(haveStream, streamIsTTY) {\n\tif (forceColor === 0) {\n\t\treturn 0;\n\t}\n\n\tif (hasFlag('color=16m') ||\n\t\thasFlag('color=full') ||\n\t\thasFlag('color=truecolor')) {\n\t\treturn 3;\n\t}\n\n\tif (hasFlag('color=256')) {\n\t\treturn 2;\n\t}\n\n\tif (haveStream && !streamIsTTY && forceColor === undefined) {\n\t\treturn 0;\n\t}\n\n\tconst min = forceColor || 0;\n\n\tif (env.TERM === 'dumb') {\n\t\treturn min;\n\t}\n\n\tif (process.platform === 'win32') {\n\t\t// Windows 10 build 10586 is the first Windows release that supports 256 colors.\n\t\t// Windows 10 build 14931 is the first release that supports 16m/TrueColor.\n\t\tconst osRelease = os.release().split('.');\n\t\tif (\n\t\t\tNumber(osRelease[0]) >= 10 &&\n\t\t\tNumber(osRelease[2]) >= 10586\n\t\t) {\n\t\t\treturn Number(osRelease[2]) >= 14931 ? 3 : 2;\n\t\t}\n\n\t\treturn 1;\n\t}\n\n\tif ('CI' in env) {\n\t\tif (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE'].some(sign => sign in env) || env.CI_NAME === 'codeship') {\n\t\t\treturn 1;\n\t\t}\n\n\t\treturn min;\n\t}\n\n\tif ('TEAMCITY_VERSION' in env) {\n\t\treturn /^(9\\.(0*[1-9]\\d*)\\.|\\d{2,}\\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0;\n\t}\n\n\tif (env.COLORTERM === 'truecolor') {\n\t\treturn 3;\n\t}\n\n\tif ('TERM_PROGRAM' in env) {\n\t\tconst version = parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10);\n\n\t\tswitch (env.TERM_PROGRAM) {\n\t\t\tcase 'iTerm.app':\n\t\t\t\treturn version >= 3 ? 3 : 2;\n\t\t\tcase 'Apple_Terminal':\n\t\t\t\treturn 2;\n\t\t\t// No default\n\t\t}\n\t}\n\n\tif (/-256(color)?$/i.test(env.TERM)) {\n\t\treturn 2;\n\t}\n\n\tif (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) {\n\t\treturn 1;\n\t}\n\n\tif ('COLORTERM' in env) {\n\t\treturn 1;\n\t}\n\n\treturn min;\n}\n\nfunction getSupportLevel(stream) {\n\tconst level = supportsColor(stream, stream && stream.isTTY);\n\treturn translateLevel(level);\n}\n\nmodule.exports = {\n\tsupportsColor: getSupportLevel,\n\tstdout: translateLevel(supportsColor(true, tty.isatty(1))),\n\tstderr: translateLevel(supportsColor(true, tty.isatty(2)))\n};\n","/**\n * Module dependencies.\n */\n\nconst tty = require('tty');\nconst util = require('util');\n\n/**\n * This is the Node.js implementation of `debug()`.\n */\n\nexports.init = init;\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.destroy = util.deprecate(\n\t() => {},\n\t'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'\n);\n\n/**\n * Colors.\n */\n\nexports.colors = [6, 2, 3, 4, 5, 1];\n\ntry {\n\t// Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json)\n\t// eslint-disable-next-line import/no-extraneous-dependencies\n\tconst supportsColor = require('supports-color');\n\n\tif (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) {\n\t\texports.colors = [\n\t\t\t20,\n\t\t\t21,\n\t\t\t26,\n\t\t\t27,\n\t\t\t32,\n\t\t\t33,\n\t\t\t38,\n\t\t\t39,\n\t\t\t40,\n\t\t\t41,\n\t\t\t42,\n\t\t\t43,\n\t\t\t44,\n\t\t\t45,\n\t\t\t56,\n\t\t\t57,\n\t\t\t62,\n\t\t\t63,\n\t\t\t68,\n\t\t\t69,\n\t\t\t74,\n\t\t\t75,\n\t\t\t76,\n\t\t\t77,\n\t\t\t78,\n\t\t\t79,\n\t\t\t80,\n\t\t\t81,\n\t\t\t92,\n\t\t\t93,\n\t\t\t98,\n\t\t\t99,\n\t\t\t112,\n\t\t\t113,\n\t\t\t128,\n\t\t\t129,\n\t\t\t134,\n\t\t\t135,\n\t\t\t148,\n\t\t\t149,\n\t\t\t160,\n\t\t\t161,\n\t\t\t162,\n\t\t\t163,\n\t\t\t164,\n\t\t\t165,\n\t\t\t166,\n\t\t\t167,\n\t\t\t168,\n\t\t\t169,\n\t\t\t170,\n\t\t\t171,\n\t\t\t172,\n\t\t\t173,\n\t\t\t178,\n\t\t\t179,\n\t\t\t184,\n\t\t\t185,\n\t\t\t196,\n\t\t\t197,\n\t\t\t198,\n\t\t\t199,\n\t\t\t200,\n\t\t\t201,\n\t\t\t202,\n\t\t\t203,\n\t\t\t204,\n\t\t\t205,\n\t\t\t206,\n\t\t\t207,\n\t\t\t208,\n\t\t\t209,\n\t\t\t214,\n\t\t\t215,\n\t\t\t220,\n\t\t\t221\n\t\t];\n\t}\n} catch (error) {\n\t// Swallow - we only care if `supports-color` is available; it doesn't have to be.\n}\n\n/**\n * Build up the default `inspectOpts` object from the environment variables.\n *\n * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js\n */\n\nexports.inspectOpts = Object.keys(process.env).filter(key => {\n\treturn /^debug_/i.test(key);\n}).reduce((obj, key) => {\n\t// Camel-case\n\tconst prop = key\n\t\t.substring(6)\n\t\t.toLowerCase()\n\t\t.replace(/_([a-z])/g, (_, k) => {\n\t\t\treturn k.toUpperCase();\n\t\t});\n\n\t// Coerce string value into JS value\n\tlet val = process.env[key];\n\tif (/^(yes|on|true|enabled)$/i.test(val)) {\n\t\tval = true;\n\t} else if (/^(no|off|false|disabled)$/i.test(val)) {\n\t\tval = false;\n\t} else if (val === 'null') {\n\t\tval = null;\n\t} else {\n\t\tval = Number(val);\n\t}\n\n\tobj[prop] = val;\n\treturn obj;\n}, {});\n\n/**\n * Is stdout a TTY? Colored output is enabled when `true`.\n */\n\nfunction useColors() {\n\treturn 'colors' in exports.inspectOpts ?\n\t\tBoolean(exports.inspectOpts.colors) :\n\t\ttty.isatty(process.stderr.fd);\n}\n\n/**\n * Adds ANSI color escape codes if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\tconst {namespace: name, useColors} = this;\n\n\tif (useColors) {\n\t\tconst c = this.color;\n\t\tconst colorCode = '\\u001B[3' + (c < 8 ? c : '8;5;' + c);\n\t\tconst prefix = ` ${colorCode};1m${name} \\u001B[0m`;\n\n\t\targs[0] = prefix + args[0].split('\\n').join('\\n' + prefix);\n\t\targs.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\\u001B[0m');\n\t} else {\n\t\targs[0] = getDate() + name + ' ' + args[0];\n\t}\n}\n\nfunction getDate() {\n\tif (exports.inspectOpts.hideDate) {\n\t\treturn '';\n\t}\n\treturn new Date().toISOString() + ' ';\n}\n\n/**\n * Invokes `util.formatWithOptions()` with the specified arguments and writes to stderr.\n */\n\nfunction log(...args) {\n\treturn process.stderr.write(util.formatWithOptions(exports.inspectOpts, ...args) + '\\n');\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\tif (namespaces) {\n\t\tprocess.env.DEBUG = namespaces;\n\t} else {\n\t\t// If you set a process.env field to null or undefined, it gets cast to the\n\t\t// string 'null' or 'undefined'. Just delete instead.\n\t\tdelete process.env.DEBUG;\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n\treturn process.env.DEBUG;\n}\n\n/**\n * Init logic for `debug` instances.\n *\n * Create a new `inspectOpts` object in case `useColors` is set\n * differently for a particular `debug` instance.\n */\n\nfunction init(debug) {\n\tdebug.inspectOpts = {};\n\n\tconst keys = Object.keys(exports.inspectOpts);\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tdebug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]];\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %o to `util.inspect()`, all on a single line.\n */\n\nformatters.o = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts)\n\t\t.split('\\n')\n\t\t.map(str => str.trim())\n\t\t.join(' ');\n};\n\n/**\n * Map %O to `util.inspect()`, allowing multiple lines if needed.\n */\n\nformatters.O = function (v) {\n\tthis.inspectOpts.colors = this.useColors;\n\treturn util.inspect(v, this.inspectOpts);\n};\n","/**\n * Detect Electron renderer / nwjs process, which is node, but we should\n * treat as a browser.\n */\n\nif (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) {\n\tmodule.exports = require('./browser.js');\n} else {\n\tmodule.exports = require('./node.js');\n}\n","var debug;\n\nmodule.exports = function () {\n if (!debug) {\n try {\n /* eslint global-require: off */\n debug = require(\"debug\")(\"follow-redirects\");\n }\n catch (error) { /* */ }\n if (typeof debug !== \"function\") {\n debug = function () { /* */ };\n }\n }\n debug.apply(null, arguments);\n};\n","var url = require(\"url\");\nvar URL = url.URL;\nvar http = require(\"http\");\nvar https = require(\"https\");\nvar Writable = require(\"stream\").Writable;\nvar assert = require(\"assert\");\nvar debug = require(\"./debug\");\n\n// Preventive platform detection\n// istanbul ignore next\n(function detectUnsupportedEnvironment() {\n var looksLikeNode = typeof process !== \"undefined\";\n var looksLikeBrowser = typeof window !== \"undefined\" && typeof document !== \"undefined\";\n var looksLikeV8 = isFunction(Error.captureStackTrace);\n if (!looksLikeNode && (looksLikeBrowser || !looksLikeV8)) {\n console.warn(\"The follow-redirects package should be excluded from browser builds.\");\n }\n}());\n\n// Whether to use the native URL object or the legacy url module\nvar useNativeURL = false;\ntry {\n assert(new URL(\"\"));\n}\ncatch (error) {\n useNativeURL = error.code === \"ERR_INVALID_URL\";\n}\n\n// URL fields to preserve in copy operations\nvar preservedUrlFields = [\n \"auth\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"hash\",\n];\n\n// Create handlers that pass events from native requests\nvar events = [\"abort\", \"aborted\", \"connect\", \"error\", \"socket\", \"timeout\"];\nvar eventHandlers = Object.create(null);\nevents.forEach(function (event) {\n eventHandlers[event] = function (arg1, arg2, arg3) {\n this._redirectable.emit(event, arg1, arg2, arg3);\n };\n});\n\n// Error types with codes\nvar InvalidUrlError = createErrorType(\n \"ERR_INVALID_URL\",\n \"Invalid URL\",\n TypeError\n);\nvar RedirectionError = createErrorType(\n \"ERR_FR_REDIRECTION_FAILURE\",\n \"Redirected request failed\"\n);\nvar TooManyRedirectsError = createErrorType(\n \"ERR_FR_TOO_MANY_REDIRECTS\",\n \"Maximum number of redirects exceeded\",\n RedirectionError\n);\nvar MaxBodyLengthExceededError = createErrorType(\n \"ERR_FR_MAX_BODY_LENGTH_EXCEEDED\",\n \"Request body larger than maxBodyLength limit\"\n);\nvar WriteAfterEndError = createErrorType(\n \"ERR_STREAM_WRITE_AFTER_END\",\n \"write after end\"\n);\n\n// istanbul ignore next\nvar destroy = Writable.prototype.destroy || noop;\n\n// An HTTP(S) request that can be redirected\nfunction RedirectableRequest(options, responseCallback) {\n // Initialize the request\n Writable.call(this);\n this._sanitizeOptions(options);\n this._options = options;\n this._ended = false;\n this._ending = false;\n this._redirectCount = 0;\n this._redirects = [];\n this._requestBodyLength = 0;\n this._requestBodyBuffers = [];\n\n // Attach a callback if passed\n if (responseCallback) {\n this.on(\"response\", responseCallback);\n }\n\n // React to responses of native requests\n var self = this;\n this._onNativeResponse = function (response) {\n try {\n self._processResponse(response);\n }\n catch (cause) {\n self.emit(\"error\", cause instanceof RedirectionError ?\n cause : new RedirectionError({ cause: cause }));\n }\n };\n\n // Perform the first request\n this._performRequest();\n}\nRedirectableRequest.prototype = Object.create(Writable.prototype);\n\nRedirectableRequest.prototype.abort = function () {\n destroyRequest(this._currentRequest);\n this._currentRequest.abort();\n this.emit(\"abort\");\n};\n\nRedirectableRequest.prototype.destroy = function (error) {\n destroyRequest(this._currentRequest, error);\n destroy.call(this, error);\n return this;\n};\n\n// Writes buffered data to the current native request\nRedirectableRequest.prototype.write = function (data, encoding, callback) {\n // Writing is not allowed if end has been called\n if (this._ending) {\n throw new WriteAfterEndError();\n }\n\n // Validate input and shift parameters if necessary\n if (!isString(data) && !isBuffer(data)) {\n throw new TypeError(\"data should be a string, Buffer or Uint8Array\");\n }\n if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Ignore empty buffers, since writing them doesn't invoke the callback\n // https://github.com/nodejs/node/issues/22066\n if (data.length === 0) {\n if (callback) {\n callback();\n }\n return;\n }\n // Only write when we don't exceed the maximum body length\n if (this._requestBodyLength + data.length <= this._options.maxBodyLength) {\n this._requestBodyLength += data.length;\n this._requestBodyBuffers.push({ data: data, encoding: encoding });\n this._currentRequest.write(data, encoding, callback);\n }\n // Error when we exceed the maximum body length\n else {\n this.emit(\"error\", new MaxBodyLengthExceededError());\n this.abort();\n }\n};\n\n// Ends the current native request\nRedirectableRequest.prototype.end = function (data, encoding, callback) {\n // Shift parameters if necessary\n if (isFunction(data)) {\n callback = data;\n data = encoding = null;\n }\n else if (isFunction(encoding)) {\n callback = encoding;\n encoding = null;\n }\n\n // Write data if needed and end\n if (!data) {\n this._ended = this._ending = true;\n this._currentRequest.end(null, null, callback);\n }\n else {\n var self = this;\n var currentRequest = this._currentRequest;\n this.write(data, encoding, function () {\n self._ended = true;\n currentRequest.end(null, null, callback);\n });\n this._ending = true;\n }\n};\n\n// Sets a header value on the current native request\nRedirectableRequest.prototype.setHeader = function (name, value) {\n this._options.headers[name] = value;\n this._currentRequest.setHeader(name, value);\n};\n\n// Clears a header value on the current native request\nRedirectableRequest.prototype.removeHeader = function (name) {\n delete this._options.headers[name];\n this._currentRequest.removeHeader(name);\n};\n\n// Global timeout for all underlying requests\nRedirectableRequest.prototype.setTimeout = function (msecs, callback) {\n var self = this;\n\n // Destroys the socket on timeout\n function destroyOnTimeout(socket) {\n socket.setTimeout(msecs);\n socket.removeListener(\"timeout\", socket.destroy);\n socket.addListener(\"timeout\", socket.destroy);\n }\n\n // Sets up a timer to trigger a timeout event\n function startTimer(socket) {\n if (self._timeout) {\n clearTimeout(self._timeout);\n }\n self._timeout = setTimeout(function () {\n self.emit(\"timeout\");\n clearTimer();\n }, msecs);\n destroyOnTimeout(socket);\n }\n\n // Stops a timeout from triggering\n function clearTimer() {\n // Clear the timeout\n if (self._timeout) {\n clearTimeout(self._timeout);\n self._timeout = null;\n }\n\n // Clean up all attached listeners\n self.removeListener(\"abort\", clearTimer);\n self.removeListener(\"error\", clearTimer);\n self.removeListener(\"response\", clearTimer);\n self.removeListener(\"close\", clearTimer);\n if (callback) {\n self.removeListener(\"timeout\", callback);\n }\n if (!self.socket) {\n self._currentRequest.removeListener(\"socket\", startTimer);\n }\n }\n\n // Attach callback if passed\n if (callback) {\n this.on(\"timeout\", callback);\n }\n\n // Start the timer if or when the socket is opened\n if (this.socket) {\n startTimer(this.socket);\n }\n else {\n this._currentRequest.once(\"socket\", startTimer);\n }\n\n // Clean up on events\n this.on(\"socket\", destroyOnTimeout);\n this.on(\"abort\", clearTimer);\n this.on(\"error\", clearTimer);\n this.on(\"response\", clearTimer);\n this.on(\"close\", clearTimer);\n\n return this;\n};\n\n// Proxy all other public ClientRequest methods\n[\n \"flushHeaders\", \"getHeader\",\n \"setNoDelay\", \"setSocketKeepAlive\",\n].forEach(function (method) {\n RedirectableRequest.prototype[method] = function (a, b) {\n return this._currentRequest[method](a, b);\n };\n});\n\n// Proxy all public ClientRequest properties\n[\"aborted\", \"connection\", \"socket\"].forEach(function (property) {\n Object.defineProperty(RedirectableRequest.prototype, property, {\n get: function () { return this._currentRequest[property]; },\n });\n});\n\nRedirectableRequest.prototype._sanitizeOptions = function (options) {\n // Ensure headers are always present\n if (!options.headers) {\n options.headers = {};\n }\n\n // Since http.request treats host as an alias of hostname,\n // but the url module interprets host as hostname plus port,\n // eliminate the host property to avoid confusion.\n if (options.host) {\n // Use hostname if set, because it has precedence\n if (!options.hostname) {\n options.hostname = options.host;\n }\n delete options.host;\n }\n\n // Complete the URL object when necessary\n if (!options.pathname && options.path) {\n var searchPos = options.path.indexOf(\"?\");\n if (searchPos < 0) {\n options.pathname = options.path;\n }\n else {\n options.pathname = options.path.substring(0, searchPos);\n options.search = options.path.substring(searchPos);\n }\n }\n};\n\n\n// Executes the next native request (initial or redirect)\nRedirectableRequest.prototype._performRequest = function () {\n // Load the native protocol\n var protocol = this._options.protocol;\n var nativeProtocol = this._options.nativeProtocols[protocol];\n if (!nativeProtocol) {\n throw new TypeError(\"Unsupported protocol \" + protocol);\n }\n\n // If specified, use the agent corresponding to the protocol\n // (HTTP and HTTPS use different types of agents)\n if (this._options.agents) {\n var scheme = protocol.slice(0, -1);\n this._options.agent = this._options.agents[scheme];\n }\n\n // Create the native request and set up its event handlers\n var request = this._currentRequest =\n nativeProtocol.request(this._options, this._onNativeResponse);\n request._redirectable = this;\n for (var event of events) {\n request.on(event, eventHandlers[event]);\n }\n\n // RFC7230§5.3.1: When making a request directly to an origin server, […]\n // a client MUST send only the absolute path […] as the request-target.\n this._currentUrl = /^\\//.test(this._options.path) ?\n url.format(this._options) :\n // When making a request to a proxy, […]\n // a client MUST send the target URI in absolute-form […].\n this._options.path;\n\n // End a redirected request\n // (The first request must be ended explicitly with RedirectableRequest#end)\n if (this._isRedirect) {\n // Write the request entity and end\n var i = 0;\n var self = this;\n var buffers = this._requestBodyBuffers;\n (function writeNext(error) {\n // Only write if this request has not been redirected yet\n // istanbul ignore else\n if (request === self._currentRequest) {\n // Report any write errors\n // istanbul ignore if\n if (error) {\n self.emit(\"error\", error);\n }\n // Write the next buffer if there are still left\n else if (i < buffers.length) {\n var buffer = buffers[i++];\n // istanbul ignore else\n if (!request.finished) {\n request.write(buffer.data, buffer.encoding, writeNext);\n }\n }\n // End the request if `end` has been called on us\n else if (self._ended) {\n request.end();\n }\n }\n }());\n }\n};\n\n// Processes a response from the current native request\nRedirectableRequest.prototype._processResponse = function (response) {\n // Store the redirected response\n var statusCode = response.statusCode;\n if (this._options.trackRedirects) {\n this._redirects.push({\n url: this._currentUrl,\n headers: response.headers,\n statusCode: statusCode,\n });\n }\n\n // RFC7231§6.4: The 3xx (Redirection) class of status code indicates\n // that further action needs to be taken by the user agent in order to\n // fulfill the request. If a Location header field is provided,\n // the user agent MAY automatically redirect its request to the URI\n // referenced by the Location field value,\n // even if the specific status code is not understood.\n\n // If the response is not a redirect; return it as-is\n var location = response.headers.location;\n if (!location || this._options.followRedirects === false ||\n statusCode < 300 || statusCode >= 400) {\n response.responseUrl = this._currentUrl;\n response.redirects = this._redirects;\n this.emit(\"response\", response);\n\n // Clean up\n this._requestBodyBuffers = [];\n return;\n }\n\n // The response is a redirect, so abort the current request\n destroyRequest(this._currentRequest);\n // Discard the remainder of the response to avoid waiting for data\n response.destroy();\n\n // RFC7231§6.4: A client SHOULD detect and intervene\n // in cyclical redirections (i.e., \"infinite\" redirection loops).\n if (++this._redirectCount > this._options.maxRedirects) {\n throw new TooManyRedirectsError();\n }\n\n // Store the request headers if applicable\n var requestHeaders;\n var beforeRedirect = this._options.beforeRedirect;\n if (beforeRedirect) {\n requestHeaders = Object.assign({\n // The Host header was set by nativeProtocol.request\n Host: response.req.getHeader(\"host\"),\n }, this._options.headers);\n }\n\n // RFC7231§6.4: Automatic redirection needs to done with\n // care for methods not known to be safe, […]\n // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change\n // the request method from POST to GET for the subsequent request.\n var method = this._options.method;\n if ((statusCode === 301 || statusCode === 302) && this._options.method === \"POST\" ||\n // RFC7231§6.4.4: The 303 (See Other) status code indicates that\n // the server is redirecting the user agent to a different resource […]\n // A user agent can perform a retrieval request targeting that URI\n // (a GET or HEAD request if using HTTP) […]\n (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) {\n this._options.method = \"GET\";\n // Drop a possible entity and headers related to it\n this._requestBodyBuffers = [];\n removeMatchingHeaders(/^content-/i, this._options.headers);\n }\n\n // Drop the Host header, as the redirect might lead to a different host\n var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers);\n\n // If the redirect is relative, carry over the host of the last request\n var currentUrlParts = parseUrl(this._currentUrl);\n var currentHost = currentHostHeader || currentUrlParts.host;\n var currentUrl = /^\\w+:/.test(location) ? this._currentUrl :\n url.format(Object.assign(currentUrlParts, { host: currentHost }));\n\n // Create the redirected request\n var redirectUrl = resolveUrl(location, currentUrl);\n debug(\"redirecting to\", redirectUrl.href);\n this._isRedirect = true;\n spreadUrlObject(redirectUrl, this._options);\n\n // Drop confidential headers when redirecting to a less secure protocol\n // or to a different domain that is not a superdomain\n if (redirectUrl.protocol !== currentUrlParts.protocol &&\n redirectUrl.protocol !== \"https:\" ||\n redirectUrl.host !== currentHost &&\n !isSubdomain(redirectUrl.host, currentHost)) {\n removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);\n }\n\n // Evaluate the beforeRedirect callback\n if (isFunction(beforeRedirect)) {\n var responseDetails = {\n headers: response.headers,\n statusCode: statusCode,\n };\n var requestDetails = {\n url: currentUrl,\n method: method,\n headers: requestHeaders,\n };\n beforeRedirect(this._options, responseDetails, requestDetails);\n this._sanitizeOptions(this._options);\n }\n\n // Perform the redirected request\n this._performRequest();\n};\n\n// Wraps the key/value object of protocols with redirect functionality\nfunction wrap(protocols) {\n // Default settings\n var exports = {\n maxRedirects: 21,\n maxBodyLength: 10 * 1024 * 1024,\n };\n\n // Wrap each protocol\n var nativeProtocols = {};\n Object.keys(protocols).forEach(function (scheme) {\n var protocol = scheme + \":\";\n var nativeProtocol = nativeProtocols[protocol] = protocols[scheme];\n var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol);\n\n // Executes a request, following redirects\n function request(input, options, callback) {\n // Parse parameters, ensuring that input is an object\n if (isURL(input)) {\n input = spreadUrlObject(input);\n }\n else if (isString(input)) {\n input = spreadUrlObject(parseUrl(input));\n }\n else {\n callback = options;\n options = validateUrl(input);\n input = { protocol: protocol };\n }\n if (isFunction(options)) {\n callback = options;\n options = null;\n }\n\n // Set defaults\n options = Object.assign({\n maxRedirects: exports.maxRedirects,\n maxBodyLength: exports.maxBodyLength,\n }, input, options);\n options.nativeProtocols = nativeProtocols;\n if (!isString(options.host) && !isString(options.hostname)) {\n options.hostname = \"::1\";\n }\n\n assert.equal(options.protocol, protocol, \"protocol mismatch\");\n debug(\"options\", options);\n return new RedirectableRequest(options, callback);\n }\n\n // Executes a GET request, following redirects\n function get(input, options, callback) {\n var wrappedRequest = wrappedProtocol.request(input, options, callback);\n wrappedRequest.end();\n return wrappedRequest;\n }\n\n // Expose the properties on the wrapped protocol\n Object.defineProperties(wrappedProtocol, {\n request: { value: request, configurable: true, enumerable: true, writable: true },\n get: { value: get, configurable: true, enumerable: true, writable: true },\n });\n });\n return exports;\n}\n\nfunction noop() { /* empty */ }\n\nfunction parseUrl(input) {\n var parsed;\n // istanbul ignore else\n if (useNativeURL) {\n parsed = new URL(input);\n }\n else {\n // Ensure the URL is valid and absolute\n parsed = validateUrl(url.parse(input));\n if (!isString(parsed.protocol)) {\n throw new InvalidUrlError({ input });\n }\n }\n return parsed;\n}\n\nfunction resolveUrl(relative, base) {\n // istanbul ignore next\n return useNativeURL ? new URL(relative, base) : parseUrl(url.resolve(base, relative));\n}\n\nfunction validateUrl(input) {\n if (/^\\[/.test(input.hostname) && !/^\\[[:0-9a-f]+\\]$/i.test(input.hostname)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n if (/^\\[/.test(input.host) && !/^\\[[:0-9a-f]+\\](:\\d+)?$/i.test(input.host)) {\n throw new InvalidUrlError({ input: input.href || input });\n }\n return input;\n}\n\nfunction spreadUrlObject(urlObject, target) {\n var spread = target || {};\n for (var key of preservedUrlFields) {\n spread[key] = urlObject[key];\n }\n\n // Fix IPv6 hostname\n if (spread.hostname.startsWith(\"[\")) {\n spread.hostname = spread.hostname.slice(1, -1);\n }\n // Ensure port is a number\n if (spread.port !== \"\") {\n spread.port = Number(spread.port);\n }\n // Concatenate path\n spread.path = spread.search ? spread.pathname + spread.search : spread.pathname;\n\n return spread;\n}\n\nfunction removeMatchingHeaders(regex, headers) {\n var lastValue;\n for (var header in headers) {\n if (regex.test(header)) {\n lastValue = headers[header];\n delete headers[header];\n }\n }\n return (lastValue === null || typeof lastValue === \"undefined\") ?\n undefined : String(lastValue).trim();\n}\n\nfunction createErrorType(code, message, baseClass) {\n // Create constructor\n function CustomError(properties) {\n // istanbul ignore else\n if (isFunction(Error.captureStackTrace)) {\n Error.captureStackTrace(this, this.constructor);\n }\n Object.assign(this, properties || {});\n this.code = code;\n this.message = this.cause ? message + \": \" + this.cause.message : message;\n }\n\n // Attach constructor and set default properties\n CustomError.prototype = new (baseClass || Error)();\n Object.defineProperties(CustomError.prototype, {\n constructor: {\n value: CustomError,\n enumerable: false,\n },\n name: {\n value: \"Error [\" + code + \"]\",\n enumerable: false,\n },\n });\n return CustomError;\n}\n\nfunction destroyRequest(request, error) {\n for (var event of events) {\n request.removeListener(event, eventHandlers[event]);\n }\n request.on(\"error\", noop);\n request.destroy(error);\n}\n\nfunction isSubdomain(subdomain, domain) {\n assert(isString(subdomain) && isString(domain));\n var dot = subdomain.length - domain.length - 1;\n return dot > 0 && subdomain[dot] === \".\" && subdomain.endsWith(domain);\n}\n\nfunction isString(value) {\n return typeof value === \"string\" || value instanceof String;\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction isBuffer(value) {\n return typeof value === \"object\" && (\"length\" in value);\n}\n\nfunction isURL(value) {\n return URL && value instanceof URL;\n}\n\n// Exports\nmodule.exports = wrap({ http: http, https: https });\nmodule.exports.wrap = wrap;\n","/**\n * Wallet management for ChaosChain SDK\n * Handles private keys, HD wallets, and secure key storage\n */\n\nimport { ethers } from 'ethers';\nimport { WalletConfig } from './types';\nimport * as fs from 'fs';\nimport * as path from 'path';\n// import * as crypto from 'crypto';\n\nexport class WalletManager {\n private wallet: ethers.Wallet | ethers.HDNodeWallet;\n private provider?: ethers.Provider;\n\n constructor(config: WalletConfig, provider?: ethers.Provider) {\n this.wallet = this.initializeWallet(config);\n this.provider = provider;\n\n if (provider) {\n this.wallet = this.wallet.connect(provider);\n }\n }\n\n /**\n * Initialize wallet from various sources\n */\n private initializeWallet(config: WalletConfig): ethers.Wallet {\n if (config.privateKey) {\n return new ethers.Wallet(config.privateKey);\n }\n\n if (config.mnemonic) {\n return ethers.Wallet.fromPhrase(config.mnemonic);\n }\n\n if (config.walletFile) {\n return this.loadFromFile(config.walletFile);\n }\n\n // Generate new random wallet\n return ethers.Wallet.createRandom();\n }\n\n /**\n * Load wallet from encrypted file\n */\n private loadFromFile(filePath: string): ethers.Wallet {\n try {\n const walletData = fs.readFileSync(filePath, 'utf8');\n const data = JSON.parse(walletData);\n\n if (data.encrypted) {\n throw new Error('Encrypted wallets require password (not yet implemented)');\n }\n\n return new ethers.Wallet(data.privateKey);\n } catch (error) {\n throw new Error(`Failed to load wallet from file: ${(error as Error).message}`);\n }\n }\n\n /**\n * Save wallet to encrypted file\n */\n async saveToFile(filePath: string, password?: string): Promise<void> {\n const directory = path.dirname(filePath);\n if (!fs.existsSync(directory)) {\n fs.mkdirSync(directory, { recursive: true });\n }\n\n if (password) {\n // Use ethers built-in encryption\n const encrypted = await this.wallet.encrypt(password);\n fs.writeFileSync(filePath, encrypted, 'utf8');\n } else {\n // Save unencrypted (not recommended for production)\n const data = {\n address: this.wallet.address,\n privateKey: this.wallet.privateKey,\n mnemonic: this.wallet.mnemonic?.phrase,\n encrypted: false,\n };\n fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf8');\n }\n }\n\n /**\n * Get wallet instance\n */\n getWallet(): ethers.Wallet {\n return this.wallet;\n }\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.wallet.address;\n }\n\n /**\n * Get private key (use with caution)\n */\n getPrivateKey(): string {\n return this.wallet.privateKey;\n }\n\n /**\n * Get mnemonic phrase (if available)\n */\n getMnemonic(): string | undefined {\n return this.wallet.mnemonic?.phrase;\n }\n\n /**\n * Sign a message\n */\n async signMessage(message: string): Promise<string> {\n return this.wallet.signMessage(message);\n }\n\n /**\n * Sign typed data (EIP-712)\n */\n async signTypedData(\n domain: ethers.TypedDataDomain,\n types: Record<string, ethers.TypedDataField[]>,\n value: Record<string, unknown>\n ): Promise<string> {\n return this.wallet.signTypedData(domain, types, value);\n }\n\n /**\n * Get balance\n */\n async getBalance(): Promise<bigint> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getBalance(this.wallet.address);\n }\n\n /**\n * Get nonce\n */\n async getNonce(): Promise<number> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getTransactionCount(this.wallet.address);\n }\n\n /**\n * Connect to a new provider\n */\n connect(provider: ethers.Provider): void {\n this.provider = provider;\n this.wallet = this.wallet.connect(provider);\n }\n\n /**\n * Generate a new random wallet\n */\n static createRandom(): WalletManager {\n const wallet = ethers.Wallet.createRandom();\n return new WalletManager({ privateKey: wallet.privateKey });\n }\n\n /**\n * Create from mnemonic\n */\n static fromMnemonic(mnemonic: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ mnemonic }, provider);\n }\n\n /**\n * Create from private key\n */\n static fromPrivateKey(privateKey: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ privateKey }, provider);\n }\n\n /**\n * Generate new mnemonic\n */\n static generateMnemonic(): string {\n return ethers.Wallet.createRandom().mnemonic?.phrase || '';\n }\n\n /**\n * Validate mnemonic\n */\n static isValidMnemonic(mnemonic: string): boolean {\n try {\n ethers.Wallet.fromPhrase(mnemonic);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Validate private key\n */\n static isValidPrivateKey(privateKey: string): boolean {\n try {\n new ethers.Wallet(privateKey);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Derive child wallet from HD path\n */\n static deriveChild(mnemonic: string, path: string): WalletManager {\n const hdNode = ethers.HDNodeWallet.fromPhrase(mnemonic, undefined, path);\n return new WalletManager({ privateKey: hdNode.privateKey });\n }\n}\n\n","/**\n * ERC-8004 v1.0 Contract ABIs and Addresses\n * \n * Complete ABIs extracted from Python SDK (chaos_agent.py lines 155-637)\n * \n * This module contains the complete ABIs for all ERC-8004 v1.0 contracts.\n * These are the official ABIs deployed on testnets.\n */\n\nimport { NetworkConfig } from '../types';\n\n/**\n * Identity Registry ABI (ERC-8004 v1.0 with ERC-721)\n */\nexport const IDENTITY_REGISTRY_ABI = [\n {\n inputs: [\n { name: 'tokenURI_', type: 'string' },\n {\n name: 'metadata',\n type: 'tuple[]',\n components: [\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' }\n ]\n }\n ],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenURI_', type: 'string' }],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // ERC-721 Standard Functions\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'ownerOf',\n outputs: [{ name: 'owner', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'owner', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: 'balance', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'tokenURI',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' }\n ],\n name: 'transferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' }\n ],\n name: 'approve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'operator', type: 'address' },\n { name: 'approved', type: 'bool' }\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'getApproved',\n outputs: [{ name: 'operator', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'operator', type: 'address' }\n ],\n name: 'isApprovedForAll',\n outputs: [{ name: 'approved', type: 'bool' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Metadata Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' }\n ],\n name: 'setMetadata',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' }\n ],\n name: 'getMetadata',\n outputs: [{ name: 'value', type: 'bytes' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Additional Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'newUri', type: 'string' }\n ],\n name: 'setAgentUri',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [],\n name: 'totalAgents',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'tokenURI', type: 'string' },\n { indexed: true, name: 'owner', type: 'address' }\n ],\n name: 'Registered',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'indexedKey', type: 'string' },\n { indexed: false, name: 'key', type: 'string' },\n { indexed: false, name: 'value', type: 'bytes' }\n ],\n name: 'MetadataSet',\n type: 'event'\n },\n // ERC-721 Standard Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' }\n ],\n name: 'Transfer',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'approved', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' }\n ],\n name: 'Approval',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'operator', type: 'address' },\n { indexed: false, name: 'approved', type: 'bool' }\n ],\n name: 'ApprovalForAll',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'newUri', type: 'string' },\n { indexed: true, name: 'updatedBy', type: 'address' }\n ],\n name: 'UriUpdated',\n type: 'event'\n }\n ];\n\n/**\n * Get Reputation Registry ABI (ERC-8004 v1.0)\n * \n * v1.0 uses cryptographic signatures (EIP-191/ERC-1271) for feedback authorization.\n * Key changes:\n * - giveFeedback() with signature-based authorization\n * - On-chain scores (0-100) with tags\n * - revokeFeedback() support\n * - appendResponse() for audit trails\n */\nexport const REPUTATION_REGISTRY_ABI = [\n // Core Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'score', type: 'uint8' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'feedbackUri', type: 'string' },\n { name: 'feedbackHash', type: 'bytes32' },\n { name: 'feedbackAuth', type: 'bytes' }\n ],\n name: 'giveFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'feedbackIndex', type: 'uint64' }\n ],\n name: 'revokeFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'feedbackIndex', type: 'uint64' },\n { name: 'responseUri', type: 'string' },\n { name: 'responseHash', type: 'bytes32' }\n ],\n name: 'appendResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // Read Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' }\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'averageScore', type: 'uint8' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'index', type: 'uint64' }\n ],\n name: 'readFeedback',\n outputs: [\n { name: 'score', type: 'uint8' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'isRevoked', type: 'bool' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'bytes32' },\n { name: 'tag2', type: 'bytes32' },\n { name: 'includeRevoked', type: 'bool' }\n ],\n name: 'readAllFeedback',\n outputs: [\n { name: 'clients', type: 'address[]' },\n { name: 'scores', type: 'uint8[]' },\n { name: 'tag1s', type: 'bytes32[]' },\n { name: 'tag2s', type: 'bytes32[]' },\n { name: 'revokedStatuses', type: 'bool[]' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getClients',\n outputs: [{ name: 'clientList', type: 'address[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' }\n ],\n name: 'getLastIndex',\n outputs: [{ name: 'lastIndex', type: 'uint64' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'score', type: 'uint8' },\n { indexed: true, name: 'tag1', type: 'bytes32' },\n { indexed: false, name: 'tag2', type: 'bytes32' },\n { indexed: false, name: 'feedbackUri', type: 'string' },\n { indexed: false, name: 'feedbackHash', type: 'bytes32' }\n ],\n name: 'NewFeedback',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'feedbackIndex', type: 'uint64' },\n { indexed: true, name: 'responder', type: 'address' },\n { indexed: false, name: 'responseUri', type: 'string' },\n { indexed: false, name: 'responseHash', type: 'bytes32' }\n ],\n name: 'ResponseAppended',\n type: 'event'\n }\n ];\n\n/**\n * Get Validation Registry ABI (ERC-8004 v1.0)\n * \n * v1.0 uses URI-based validation with off-chain evidence storage.\n * Key changes:\n * - validationRequest() uses validatorAddress instead of validatorAgentId\n * - requestUri and requestHash for off-chain evidence\n * - validationResponse() uses requestHash with response (0-100)\n * - Support for multiple responses per request (progressive validation)\n */\nexport const VALIDATION_REGISTRY_ABI = [\n // Core Functions\n {\n inputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'requestUri', type: 'string' },\n { name: 'requestHash', type: 'bytes32' }\n ],\n name: 'validationRequest',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'requestHash', type: 'bytes32' },\n { name: 'response', type: 'uint8' },\n { name: 'responseUri', type: 'string' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' }\n ],\n name: 'validationResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n // Read Functions\n {\n inputs: [{ name: 'requestHash', type: 'bytes32' }],\n name: 'getValidationStatus',\n outputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'response', type: 'uint8' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' },\n { name: 'lastUpdate', type: 'uint256' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'validatorAddresses', type: 'address[]' },\n { name: 'tag', type: 'bytes32' }\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'avgResponse', type: 'uint8' }\n ],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getAgentValidations',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [{ name: 'validatorAddress', type: 'address' }],\n name: 'getValidatorRequests',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function'\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'requestUri', type: 'string' },\n { indexed: true, name: 'requestHash', type: 'bytes32' }\n ],\n name: 'ValidationRequest',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'requestHash', type: 'bytes32' },\n { indexed: false, name: 'response', type: 'uint8' },\n { indexed: false, name: 'responseUri', type: 'string' },\n { indexed: false, name: 'responseHash', type: 'bytes32' },\n { indexed: false, name: 'tag', type: 'bytes32' }\n ],\n name: 'ValidationResponse',\n type: 'event'\n }\n ];\n\n/**\n * ERC-20 USDC ABI (for x402 payments)\n */\nexport const ERC20_ABI = [\n {\n inputs: [{ name: 'account', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'amount', type: 'uint256' }\n ],\n name: 'transfer',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'spender', type: 'address' },\n { name: 'amount', type: 'uint256' }\n ],\n name: 'approve',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function'\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' }\n ],\n name: 'allowance',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [{ name: '', type: 'uint8' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'symbol',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n inputs: [],\n name: 'name',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' }\n ],\n name: 'Transfer',\n type: 'event'\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'spender', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' }\n ],\n name: 'Approval',\n type: 'event'\n }\n];\n\n/**\n * USDC token addresses by network\n */\nexport const USDC_ADDRESSES: Record<string, string> = {\n 'ethereum-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n 'base-sepolia': '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n 'optimism-sepolia': '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n 'linea-sepolia': '0x0000000000000000000000000000000000000000',\n 'hedera-testnet': '0x0000000000000000000000000000000000000000',\n '0g-testnet': '0x0000000000000000000000000000000000000000',\n 'bsc-testnet': '0x0000000000000000000000000000000000000000',\n local: '0x0000000000000000000000000000000000000000'\n};\n\n/**\n * Get USDC address for network\n */\nexport function getUSDCAddress(network: string): string {\n return USDC_ADDRESSES[network] || '0x0000000000000000000000000000000000000000';\n}\n\n/**\n * ERC-8004 v1.0 Contract Addresses by Network\n */\nexport const CONTRACT_ADDRESSES = {\n 'ethereum-sepolia': {\n identity: '0x8004a6090Cd10A7288092483047B097295Fb8847',\n reputation: '0x8004B8FD1A363aa02fDC07635C0c5F94f6Af5B7E',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'base-sepolia': {\n identity: '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n reputation: '0x8004bd8daB57f14Ed299135749a5CB5c42d341BF',\n validation: '0x8004C269D0A5647E51E121FeB226200ECE932d55',\n usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'linea-sepolia': {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'hedera-testnet': {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n '0g-testnet': {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n },\n 'bsc-testnet': {\n identity: '0xabbd26d86435b35d9c45177725084ee6a2812e40',\n reputation: '0xeced1af52a0446275e9e6e4f6f26c99977400a6a',\n validation: '0x7866bd057f09a4940fe2ce43320518c8749a921e',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70'\n }\n} as const;\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: string) {\n return CONTRACT_ADDRESSES[network as keyof typeof CONTRACT_ADDRESSES];\n}\n\n/**\n * Common contract errors\n */\nexport const CONTRACT_ERRORS = {\n AGENT_NOT_FOUND: 'Agent does not exist',\n UNAUTHORIZED: 'Caller is not authorized',\n INVALID_RATING: 'Rating must be between 0 and 100',\n FEEDBACK_NOT_FOUND: 'Feedback does not exist',\n FEEDBACK_REVOKED: 'Feedback has been revoked',\n VALIDATION_NOT_FOUND: 'Validation request does not exist',\n VALIDATION_ALREADY_RESPONDED: 'Validation already responded',\n INSUFFICIENT_BALANCE: 'Insufficient balance'\n} as const;\n","/**\n * ChaosAgent - ERC-8004 v1.0 Contract Interactions\n * Handles Identity, Reputation, and Validation Registry interactions\n */\n\nimport { ethers } from 'ethers';\nimport {\n AgentMetadata,\n AgentRegistration,\n FeedbackParams,\n FeedbackRecord,\n ValidationRequestParams,\n ValidationRequest,\n ValidationStatus,\n ContractAddresses,\n} from './types';\nimport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI,\n} from './utils/contracts';\n\nexport class ChaosAgent {\n private identityContract: ethers.Contract;\n private reputationContract: ethers.Contract;\n private validationContract: ethers.Contract;\n private signer: ethers.Signer;\n\n constructor(\n addresses: ContractAddresses,\n signer: ethers.Signer,\n _provider: ethers.Provider\n ) {\n this.signer = signer;\n\n // Initialize contract instances\n this.identityContract = new ethers.Contract(\n addresses.identity,\n IDENTITY_REGISTRY_ABI,\n signer\n );\n this.reputationContract = new ethers.Contract(\n addresses.reputation,\n REPUTATION_REGISTRY_ABI,\n signer\n );\n this.validationContract = new ethers.Contract(\n addresses.validation,\n VALIDATION_REGISTRY_ABI,\n signer\n );\n }\n\n // ============================================================================\n // Identity Registry Methods\n // ============================================================================\n\n /**\n * Register a new agent identity (ERC-8004)\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n // Create metadata URI (JSON)\n const uri = metadata ? `data:application/json,${JSON.stringify(metadata)}` : '';\n\n // Call register with the appropriate overload\n let tx;\n if (uri) {\n // Use register(string) overload\n tx = await this.identityContract['register(string)'](uri);\n } else {\n // Use register() overload\n tx = await this.identityContract['register()']();\n }\n const receipt = await tx.wait();\n\n // Parse Registered event\n const event = receipt.logs\n .map((log: ethers.Log) => {\n try {\n return this.identityContract.interface.parseLog({\n topics: [...log.topics],\n data: log.data,\n });\n } catch {\n return null;\n }\n })\n .find((e: ethers.LogDescription | null) => e?.name === 'Registered');\n\n if (!event) {\n throw new Error('Registered event not found');\n }\n\n return {\n agentId: event.args.agentId,\n txHash: receipt.hash,\n owner: event.args.owner,\n };\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n try {\n const uri = await this.identityContract.tokenURI(agentId);\n \n if (!uri) {\n return null;\n }\n\n // Parse data URI\n if (uri.startsWith('data:application/json,')) {\n const json = uri.substring('data:application/json,'.length);\n return JSON.parse(decodeURIComponent(json));\n }\n\n // Parse ipfs:// URI (fetch from gateway)\n if (uri.startsWith('ipfs://')) {\n const cid = uri.substring(7);\n const response = await fetch(`https://ipfs.io/ipfs/${cid}`);\n return response.json();\n }\n\n // Parse https:// URI\n if (uri.startsWith('https://') || uri.startsWith('http://')) {\n const response = await fetch(uri);\n return response.json();\n }\n\n return null;\n } catch (error) {\n console.error('Failed to get agent metadata:', error);\n return null;\n }\n }\n\n /**\n * Set agent URI\n */\n async setAgentUri(agentId: bigint, uri: string): Promise<string> {\n const tx = await this.identityContract.setAgentUri(agentId, uri);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n const uri = `data:application/json,${JSON.stringify(metadata)}`;\n return this.setAgentUri(agentId, uri);\n }\n\n /**\n * Check if agent exists\n */\n async agentExists(agentId: bigint): Promise<boolean> {\n return this.identityContract.agentExists(agentId);\n }\n\n /**\n * Get agent owner\n */\n async getAgentOwner(agentId: bigint): Promise<string> {\n return this.identityContract.ownerOf(agentId);\n }\n\n /**\n * Get total number of agents\n */\n async getTotalAgents(): Promise<bigint> {\n return this.identityContract.totalAgents();\n }\n\n /**\n * Transfer agent ownership\n */\n async transferAgent(agentId: bigint, to: string): Promise<string> {\n const from = await this.signer.getAddress();\n const tx = await this.identityContract.transferFrom(from, to, agentId);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ============================================================================\n // Reputation Registry Methods\n // ============================================================================\n\n /**\n * Generate EIP-191 signed feedback authorization (ERC-8004 v1.0)\n * \n * This signature allows a client to submit feedback to an agent's reputation.\n * The agent owner signs to authorize the client to give feedback up to a certain index.\n * \n * @param agentId Target agent ID receiving feedback\n * @param clientAddress Address of the client giving feedback\n * @param indexLimit Maximum feedback index this authorization permits\n * @param expiry Unix timestamp when authorization expires\n * @returns Signed feedbackAuth bytes for use in giveFeedback()\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n try {\n // Get chain ID\n const network = await this.signer.provider!.getNetwork();\n const chainId = network.chainId;\n\n // Get identity registry address\n const identityAddress = await this.identityContract.getAddress();\n\n // Get signer address\n const signerAddress = await this.signer.getAddress();\n\n // Pack the FeedbackAuth struct (7 fields)\n // As per ERC-8004 v1.0 spec: (agentId, clientAddress, indexLimit, expiry, chainId, identityRegistry, signerAddress)\n const feedbackAuthData = ethers.solidityPackedKeccak256(\n ['uint256', 'address', 'uint64', 'uint256', 'uint256', 'address', 'address'],\n [agentId, clientAddress, indexLimit, expiry, chainId, identityAddress, signerAddress]\n );\n\n // Sign with agent's private key (EIP-191)\n const signature = await this.signer.signMessage(ethers.getBytes(feedbackAuthData));\n const signatureBytes = ethers.getBytes(signature); // 65 bytes (r + s + v)\n\n // Pack struct data + signature (224 bytes + 65 bytes = 289 bytes)\n const structBytes = ethers.concat([\n ethers.toBeHex(agentId, 32),\n ethers.zeroPadValue(clientAddress, 32),\n ethers.concat([ethers.toBeHex(indexLimit, 8), ethers.zeroPadValue('0x', 24)]), // uint64 padded\n ethers.toBeHex(expiry, 32),\n ethers.toBeHex(chainId, 32),\n ethers.zeroPadValue(identityAddress, 32),\n ethers.zeroPadValue(signerAddress, 32)\n ]);\n\n // Return struct + signature\n const feedbackAuth = ethers.hexlify(ethers.concat([structBytes, signatureBytes]));\n\n console.log(`✅ Generated feedback authorization for agent #${agentId}`);\n return feedbackAuth;\n } catch (e: any) {\n throw new Error(`Failed to generate feedback authorization: ${e.message}`);\n }\n }\n\n /**\n * Give feedback to an agent (ERC-8004 v1.0)\n *\n * @param params Feedback parameters including agentId, rating, feedbackUri, and optional auth\n * @returns Transaction hash\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n const { agentId, rating, feedbackUri, feedbackData } = params;\n\n // Validate rating (0-100)\n if (rating < 0 || rating > 100) {\n throw new Error('Rating must be between 0 and 100');\n }\n\n // ERC-8004 v1.0 requires: (agentId, score, tag1, tag2, feedbackUri, feedbackHash, feedbackAuth)\n const score = rating; // 0-100\n const tag1 = feedbackData?.tag1 || ethers.ZeroHash; // bytes32\n const tag2 = feedbackData?.tag2 || ethers.ZeroHash; // bytes32\n\n // Calculate feedback hash\n const feedbackContent = feedbackData?.content || feedbackUri;\n const feedbackHash = ethers.keccak256(ethers.toUtf8Bytes(feedbackContent));\n\n // Feedback auth (289 bytes: struct + signature)\n // If not provided, use empty bytes (will work if no auth required or for self-feedback)\n const feedbackAuth = feedbackData?.feedbackAuth || '0x';\n\n const tx = await this.reputationContract.giveFeedback(\n agentId,\n score,\n tag1,\n tag2,\n feedbackUri,\n feedbackHash,\n feedbackAuth\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Revoke feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param feedbackIndex Index of the feedback to revoke (uint64)\n */\n async revokeFeedback(agentId: bigint, feedbackIndex: bigint): Promise<string> {\n const tx = await this.reputationContract.revokeFeedback(agentId, feedbackIndex);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Append response to feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param feedbackIndex Index of the feedback\n * @param responseUri URI containing the response data\n * @param responseHash Hash of the response content\n */\n async appendResponse(\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responseUri: string,\n responseHash: string\n ): Promise<string> {\n const tx = await this.reputationContract.appendResponse(\n agentId,\n clientAddress,\n feedbackIndex,\n responseUri,\n responseHash\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Read specific feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param index Index of the feedback\n */\n async readFeedback(\n agentId: bigint,\n clientAddress: string,\n index: bigint\n ): Promise<{\n score: number;\n tag1: string;\n tag2: string;\n isRevoked: boolean;\n }> {\n const feedback = await this.reputationContract.readFeedback(agentId, clientAddress, index);\n return {\n score: Number(feedback.score),\n tag1: feedback.tag1,\n tag2: feedback.tag2,\n isRevoked: feedback.isRevoked,\n };\n }\n\n /**\n * Read all feedback for an agent (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n * @param includeRevoked Whether to include revoked feedback\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash,\n includeRevoked: boolean = false\n ): Promise<{\n clients: string[];\n scores: number[];\n tag1s: string[];\n tag2s: string[];\n revokedStatuses: boolean[];\n }> {\n const result = await this.reputationContract.readAllFeedback(\n agentId,\n clientAddresses,\n tag1,\n tag2,\n includeRevoked\n );\n return {\n clients: result.clients,\n scores: result.scores.map((s: bigint) => Number(s)),\n tag1s: result.tag1s,\n tag2s: result.tag2s,\n revokedStatuses: result.revokedStatuses,\n };\n }\n\n /**\n * Get summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n */\n async getSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash\n ): Promise<{\n count: bigint;\n averageScore: number;\n }> {\n const result = await this.reputationContract.getSummary(agentId, clientAddresses, tag1, tag2);\n return {\n count: result.count,\n averageScore: Number(result.averageScore),\n };\n }\n\n /**\n * Get list of clients who gave feedback\n * @param agentId Agent ID\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.reputationContract.getClients(agentId);\n }\n\n /**\n * Get last feedback index for a client\n * @param agentId Agent ID\n * @param clientAddress Client address\n */\n async getLastIndex(agentId: bigint, clientAddress: string): Promise<bigint> {\n return this.reputationContract.getLastIndex(agentId, clientAddress);\n }\n\n /**\n * Get identity registry address from reputation contract\n */\n async getIdentityRegistry(): Promise<string> {\n return this.reputationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Validation Registry Methods\n // ============================================================================\n\n /**\n * Request validation from a validator (ERC-8004 v1.0)\n * @param validatorAddress Address of the validator\n * @param agentId Agent ID requesting validation\n * @param requestUri URI containing validation request data\n * @param requestHash Hash of the request content (bytes32)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n // Ensure requestHash is bytes32 format\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n\n const tx = await this.validationContract.validationRequest(\n validatorAddress,\n agentId,\n requestUri,\n hashBytes\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n * @param requestHash Hash of the original validation request (bytes32)\n * @param response Response score (0-100, where 100 = approved)\n * @param responseUri URI containing response data\n * @param responseHash Hash of the response content (bytes32)\n * @param tag Optional tag for categorization (bytes32)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string = ethers.ZeroHash\n ): Promise<string> {\n // Validate response (0-100)\n if (response < 0 || response > 100) {\n throw new Error('Response must be between 0 and 100');\n }\n\n // Ensure hashes are bytes32 format\n const reqHashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const resHashBytes = responseHash.startsWith('0x') ? responseHash : ethers.id(responseHash);\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n\n const tx = await this.validationContract.validationResponse(\n reqHashBytes,\n response,\n responseUri,\n resHashBytes,\n tagBytes\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Get validation status (ERC-8004 v1.0)\n * @param requestHash Hash of the validation request (bytes32)\n */\n async getValidationStatus(requestHash: string): Promise<{\n validatorAddress: string;\n agentId: bigint;\n response: number;\n responseHash: string;\n tag: string;\n lastUpdate: bigint;\n }> {\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const result = await this.validationContract.getValidationStatus(hashBytes);\n return {\n validatorAddress: result.validatorAddress,\n agentId: result.agentId,\n response: Number(result.response),\n responseHash: result.responseHash,\n tag: result.tag,\n lastUpdate: result.lastUpdate,\n };\n }\n\n /**\n * Get validation summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param validatorAddresses Array of validator addresses (empty for all)\n * @param tag Tag filter (ZeroHash for no filter)\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ): Promise<{\n count: bigint;\n avgResponse: number;\n }> {\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n const result = await this.validationContract.getSummary(agentId, validatorAddresses, tagBytes);\n return {\n count: result.count,\n avgResponse: Number(result.avgResponse),\n };\n }\n\n /**\n * Get all validation request hashes for an agent\n * @param agentId Agent ID\n */\n async getAgentValidations(agentId: bigint): Promise<string[]> {\n return this.validationContract.getAgentValidations(agentId);\n }\n\n /**\n * Get all validation requests for a validator\n * @param validatorAddress Validator address\n */\n async getValidatorRequests(validatorAddress: string): Promise<string[]> {\n return this.validationContract.getValidatorRequests(validatorAddress);\n }\n\n /**\n * Get identity registry address from validation contract\n */\n async getValidationIdentityRegistry(): Promise<string> {\n return this.validationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Event Listening\n // ============================================================================\n\n /**\n * Listen for Registered events\n */\n onAgentRegistered(callback: (agentId: bigint, owner: string, uri: string) => void): void {\n this.identityContract.on('Registered', callback);\n }\n\n /**\n * Listen for NewFeedback events (ERC-8004 v1.0)\n */\n onNewFeedback(\n callback: (\n agentId: bigint,\n clientAddress: string,\n score: number,\n tag1: string,\n tag2: string,\n feedbackUri: string,\n feedbackHash: string\n ) => void\n ): void {\n this.reputationContract.on('NewFeedback', callback);\n }\n\n /**\n * Listen for ResponseAppended events (ERC-8004 v1.0)\n */\n onResponseAppended(\n callback: (\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responder: string,\n responseUri: string,\n responseHash: string\n ) => void\n ): void {\n this.reputationContract.on('ResponseAppended', callback);\n }\n\n /**\n * Listen for ValidationRequest events (ERC-8004 v1.0)\n */\n onValidationRequest(\n callback: (validatorAddress: string, agentId: bigint, requestUri: string, requestHash: string) => void\n ): void {\n this.validationContract.on('ValidationRequest', callback);\n }\n\n /**\n * Listen for ValidationResponse events (ERC-8004 v1.0)\n */\n onValidationResponse(\n callback: (\n validatorAddress: string,\n agentId: bigint,\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string\n ) => void\n ): void {\n this.validationContract.on('ValidationResponse', callback);\n }\n\n /**\n * Remove all event listeners\n */\n removeAllListeners(): void {\n this.identityContract.removeAllListeners();\n this.reputationContract.removeAllListeners();\n this.validationContract.removeAllListeners();\n }\n}\n\n","/**\n * Exception classes for the ChaosChain SDK.\n *\n * This module defines all custom exceptions used throughout the SDK\n * to provide clear error handling and debugging information.\n */\n\nexport class ChaosChainSDKError extends Error {\n public details: Record<string, any>;\n\n constructor(message: string, details: Record<string, any> = {}) {\n super(message);\n this.name = 'ChaosChainSDKError';\n this.details = details;\n Object.setPrototypeOf(this, ChaosChainSDKError.prototype);\n }\n\n toString(): string {\n if (Object.keys(this.details).length > 0) {\n return `${this.message} | Details: ${JSON.stringify(this.details)}`;\n }\n return this.message;\n }\n}\n\nexport class AgentRegistrationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AgentRegistrationError';\n Object.setPrototypeOf(this, AgentRegistrationError.prototype);\n }\n}\n\nexport class PaymentError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'PaymentError';\n Object.setPrototypeOf(this, PaymentError.prototype);\n }\n}\n\nexport class StorageError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'StorageError';\n Object.setPrototypeOf(this, StorageError.prototype);\n }\n}\n\nexport class IntegrityVerificationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'IntegrityVerificationError';\n Object.setPrototypeOf(this, IntegrityVerificationError.prototype);\n }\n}\n\nexport class NetworkError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'NetworkError';\n Object.setPrototypeOf(this, NetworkError.prototype);\n }\n}\n\nexport class ContractError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ContractError';\n Object.setPrototypeOf(this, ContractError.prototype);\n }\n}\n\nexport class ValidationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class ConfigurationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ConfigurationError';\n Object.setPrototypeOf(this, ConfigurationError.prototype);\n }\n}\n\nexport class AuthenticationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\n","/**\n * X402 Payment Manager for ChaosChain SDK\n *\n * This module implements the Coinbase x402 HTTP 402 payment protocol with EIP-3009,\n * enabling seamless, gasless cryptocurrency payments between AI agents via facilitators.\n *\n * Based on: https://www.x402.org/ and https://github.com/coinbase/x402\n */\n\nimport { ethers } from 'ethers';\nimport { PaymentError } from './exceptions';\nimport { NetworkConfig } from './types';\n\n// ============================================================================\n// CORE TYPES\n// ============================================================================\n\nexport interface X402PaymentRequest {\n payment_id: string;\n from_agent: string;\n to_agent: string;\n amount: number;\n currency: string;\n service_description: string;\n network: NetworkConfig;\n protocol_fee: number;\n created_at: string;\n settlement_address?: string;\n}\n\nexport interface X402PaymentProof {\n payment_id: string;\n transaction_hash: string;\n main_transaction_hash: string;\n fee_transaction_hash?: string;\n from_address: string;\n to_address: string;\n treasury_address: string;\n amount: number;\n currency: string;\n protocol_fee: number;\n network: NetworkConfig;\n chain_id: number;\n block_number?: number;\n timestamp: Date;\n status: string;\n confirmations: number;\n fee_amount?: string; // Fee in base units\n net_amount?: string; // Net amount in base units\n evidence_hash?: string; // ChaosChain Proof-of-Agency\n}\n\n/**\n * Official x402 Payment Requirements schema\n * Spec: https://github.com/coinbase/x402\n */\nexport interface X402PaymentRequirements {\n scheme: string; // e.g., \"exact\"\n network: string; // Network ID\n maxAmountRequired: string; // uint256 as string\n resource: string; // URL of resource\n description: string; // Service description\n mimeType: string; // Response MIME type\n outputSchema?: object | null; // Response schema\n payTo: string; // Address to pay\n maxTimeoutSeconds: number; // Max timeout\n asset: string; // ERC-20 contract address (or 0x0 for ETH)\n extra: object | null; // Extra info (EIP-3009 details for USDC)\n}\n\n// ============================================================================\n// EIP-3009 TYPES\n// ============================================================================\n\n/**\n * EIP-3009 Payment Header\n * Transmitted as base64-encoded JSON in X-PAYMENT header\n */\nexport interface PaymentHeader {\n sender: string; // Payer address\n nonce: string; // Unique nonce (hex string)\n validAfter?: string; // ISO timestamp or unix seconds\n validBefore?: string; // ISO timestamp or unix seconds\n signature?: string; // EIP-712 signature (hex string)\n}\n\n/**\n * EIP-3009 Transfer Authorization Parameters\n * Used for signing and on-chain execution\n */\nexport interface TransferAuthorizationParams {\n from: string; // Payer address\n to: string; // Recipient address\n value: bigint; // Amount in token base units\n validAfter: bigint; // Unix timestamp (seconds)\n validBefore: bigint; // Unix timestamp (seconds)\n nonce: string; // Unique hex nonce (32 bytes)\n}\n\n// ============================================================================\n// FACILITATOR TYPES\n// ============================================================================\n\n/**\n * Facilitator Configuration\n */\nexport interface X402FacilitatorConfig {\n facilitatorUrl?: string; // Default: https://facilitator.chaoscha.in\n apiKey?: string; // Optional API key\n mode?: 'managed' | 'decentralized';\n agentId?: string; // ERC-8004 tokenId\n}\n\n/**\n * Facilitator Settlement Request\n */\nexport interface SettleRequest {\n x402Version: number;\n paymentHeader: PaymentHeader | string; // Object or base64 string\n paymentRequirements: X402PaymentRequirements;\n agentId?: string; // ERC-8004 tokenId\n}\n\n/**\n * Facilitator Settlement Response\n */\nexport interface SettleResponse {\n success: boolean;\n error: string | null;\n txHash: string | null;\n txHashFee?: string; // Fee transaction hash\n networkId: string | null;\n consensusProof?: string; // CRE consensus proof\n timestamp?: number;\n feeAmount?: string; // Fee in base units\n netAmount?: string; // Net amount in base units\n status?: 'pending' | 'partial_settlement' | 'confirmed' | 'failed';\n evidenceHash?: string; // Proof-of-Agency evidence\n proofOfAgency?: string; // ValidationRegistry tx hash\n}\n\n/**\n * X402 Payment Manager - Coinbase HTTP 402 protocol with EIP-3009\n * \n * Features:\n * - ✅ EIP-3009 gasless transfers via facilitator\n * - ✅ Signature-based payment authorization\n * - ✅ Automatic protocol fee collection\n * - ✅ Multi-network support (Base, Ethereum, Optimism, Linea)\n * - ✅ ChaosChain Proof-of-Agency integration\n */\nexport class X402PaymentManager {\n private wallet: ethers.Wallet;\n private provider: ethers.JsonRpcProvider;\n private network: NetworkConfig;\n private treasuryAddress: string;\n private protocolFeePercentage: number;\n private usdcAddresses: Record<string, string>;\n private facilitatorUrl: string;\n private facilitatorApiKey?: string;\n private facilitatorMode: 'managed' | 'decentralized';\n private agentId?: string;\n\n constructor(\n wallet: ethers.Wallet,\n network: NetworkConfig,\n facilitatorConfig: X402FacilitatorConfig = {}\n ) {\n this.wallet = wallet;\n this.network = network;\n this.protocolFeePercentage = 0.025; // 2.5% ChaosChain fee\n\n // ChaosChain treasury addresses (per network)\n this.treasuryAddress = this.getTreasuryAddress(network);\n\n // USDC contract addresses (EIP-3009 compatible)\n this.usdcAddresses = {\n 'base-sepolia': '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n 'ethereum-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n 'optimism-sepolia': '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n 'linea-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238'\n };\n\n // Facilitator configuration\n this.facilitatorUrl = facilitatorConfig.facilitatorUrl ||\n process.env.CC_FACILITATOR_URL ||\n 'https://facilitator.chaoscha.in';\n this.facilitatorApiKey = facilitatorConfig.apiKey || process.env.CC_API_KEY;\n this.facilitatorMode = facilitatorConfig.mode || 'managed';\n this.agentId = facilitatorConfig.agentId;\n\n // Get provider from wallet\n this.provider = wallet.provider as ethers.JsonRpcProvider;\n\n console.log(`✅ X402 Payment Manager initialized (EIP-3009 mode)`);\n console.log(`🌐 Network: ${network}`);\n console.log(`💰 Treasury: ${this.treasuryAddress}`);\n console.log(`📊 Protocol Fee: ${this.protocolFeePercentage * 100}%`);\n console.log(`🔗 Facilitator: ${this.facilitatorUrl}`);\n console.log(`⚙️ Mode: ${this.facilitatorMode}`);\n if (this.agentId) {\n console.log(`🤖 Agent ID: ${this.agentId}`);\n }\n }\n\n /**\n * Get ChaosChain treasury address for network\n */\n private getTreasuryAddress(network: NetworkConfig): string {\n const treasuries: Record<string, string> = {\n 'base-sepolia': '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n 'ethereum-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'optimism-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'linea-sepolia': '0x8004aa7C931bCE1233973a0C6A667f73F66282e7'\n };\n\n return treasuries[network] || treasuries['base-sepolia'];\n }\n\n /**\n * Get chain ID for network\n */\n private getChainId(network: NetworkConfig): number {\n const chainIds: Record<string, number> = {\n 'base-sepolia': 84532,\n 'ethereum-sepolia': 11155111,\n 'optimism-sepolia': 11155420,\n 'linea-sepolia': 59141,\n 'base': 8453,\n 'ethereum': 1,\n 'optimism': 10,\n 'linea': 59144\n };\n\n return chainIds[network] || 84532;\n }\n\n // ============================================================================\n // EIP-3009 SIGNING METHODS\n // ============================================================================\n\n /**\n * Generate unique nonce for EIP-3009 transfer authorization\n * Returns 32-byte hex string (0x-prefixed)\n */\n private generateNonce(): string {\n return ethers.hexlify(ethers.randomBytes(32));\n }\n\n /**\n * Sign EIP-3009 Transfer Authorization\n * \n * This creates an EIP-712 signature for USDC's transferWithAuthorization function.\n * The facilitator will use this signature to execute a gasless transfer on-chain.\n * \n * Spec: https://eips.ethereum.org/EIPS/eip-3009\n */\n async signTransferAuthorization(\n params: TransferAuthorizationParams\n ): Promise<string> {\n const usdcAddress = this.usdcAddresses[this.network];\n if (!usdcAddress) {\n throw new PaymentError(`USDC not supported on ${this.network}`);\n }\n\n // EIP-712 domain for USDC contract\n const domain = {\n name: 'USD Coin',\n version: '2',\n chainId: this.getChainId(this.network),\n verifyingContract: usdcAddress\n };\n\n // EIP-712 types for transferWithAuthorization\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' }\n ]\n };\n\n // Message to sign\n const message = {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce\n };\n\n // Sign with EIP-712\n const signature = await this.wallet.signTypedData(domain, types, message);\n\n console.log(`🔏 EIP-3009 signature generated`);\n console.log(` From: ${params.from}`);\n console.log(` To: ${params.to}`);\n console.log(` Value: ${params.value.toString()}`);\n console.log(` Nonce: ${params.nonce}`);\n\n return signature;\n }\n\n // ============================================================================\n // FACILITATOR CLIENT METHODS\n // ============================================================================\n\n /**\n * Call facilitator API endpoint\n */\n private async callFacilitator(endpoint: string, body: any): Promise<any> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json'\n };\n\n // Add API key if configured\n if (this.facilitatorApiKey) {\n headers['X-CC-ApiKey'] = this.facilitatorApiKey;\n }\n\n // Add idempotency key for settlement calls\n if (endpoint.includes('/settle')) {\n const idempotencyKey = `${this.agentId || 'anon'}_${Date.now()}_${Math.random().toString(36).substring(2)}`;\n headers['Idempotency-Key'] = idempotencyKey;\n }\n\n console.log(`🔗 Calling facilitator: ${this.facilitatorUrl}${endpoint}`);\n\n try {\n const response = await fetch(`${this.facilitatorUrl}${endpoint}`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body)\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new PaymentError(`Facilitator error (${response.status}): ${errorText}`);\n }\n\n return await response.json();\n } catch (e: any) {\n throw new PaymentError(`Facilitator call failed: ${e.message}`);\n }\n }\n\n /**\n * Settle payment with facilitator (EIP-3009 execution)\n * \n * The facilitator will:\n * 1. Verify the EIP-712 signature\n * 2. Call USDC.transferWithAuthorization() on-chain\n * 3. Sponsor the gas fees\n * 4. Return the transaction hash\n */\n async settleWithFacilitator(\n paymentHeader: PaymentHeader,\n paymentRequirements: X402PaymentRequirements\n ): Promise<SettleResponse> {\n const request: SettleRequest = {\n x402Version: 1,\n paymentHeader,\n paymentRequirements,\n agentId: this.agentId\n };\n\n console.log(`💸 Settling payment with facilitator...`);\n console.log(` Amount: ${paymentRequirements.maxAmountRequired}`);\n console.log(` Asset: ${paymentRequirements.asset}`);\n console.log(` PayTo: ${paymentRequirements.payTo}`);\n\n const response = await this.callFacilitator('/settle', request);\n\n if (!response.success) {\n throw new PaymentError(`Settlement failed: ${response.error}`);\n }\n\n console.log(`✅ Settlement successful`);\n console.log(` TX Hash: ${response.txHash}`);\n if (response.txHashFee) {\n console.log(` Fee TX Hash: ${response.txHashFee}`);\n }\n if (response.feeAmount) {\n console.log(` Fee: ${response.feeAmount} (${response.netAmount} net)`);\n }\n\n return response;\n }\n\n /**\n * Create x402 payment request\n */\n createPaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): X402PaymentRequest {\n const paymentId = `x402_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 9)}`;\n const protocolFee = amount * this.protocolFeePercentage;\n\n const request: X402PaymentRequest = {\n payment_id: paymentId,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: protocolFee,\n created_at: new Date().toISOString()\n };\n\n console.log(`📄 Created x402 payment request: ${paymentId}`);\n console.log(` From: ${fromAgent} → To: ${toAgent}`);\n console.log(` Amount: ${amount} ${currency} + ${protocolFee.toFixed(4)} ${currency} fee`);\n\n return request;\n }\n\n /**\n * Execute x402 payment (EIP-3009 mode)\n * \n * This method uses EIP-3009 + facilitator for gasless, signature-based payments\n */\n async executePayment(paymentRequest: X402PaymentRequest, recipientAddress: string): Promise<X402PaymentProof> {\n console.log(`💸 Executing x402 payment (EIP-3009): ${paymentRequest.payment_id}`);\n console.log(` Network: ${this.network}`);\n console.log(` Recipient: ${recipientAddress}`);\n\n const currency = paymentRequest.currency.toUpperCase();\n const amount = paymentRequest.amount;\n const protocolFee = paymentRequest.protocol_fee;\n\n let mainTxHash: string;\n let feeTxHash: string | undefined;\n let feeAmount: string | undefined;\n let netAmount: string | undefined;\n let chainId: number;\n\n try {\n // Get network details\n const networkInfo = await this.provider.getNetwork();\n chainId = Number(networkInfo.chainId);\n\n if (currency === 'ETH' || currency === 'NATIVE') {\n // Native token transfer (old flow, TODO: add EIP-3009 for ETH)\n const { mainTx, feeTx } = await this.executeNativePayment(recipientAddress, amount, protocolFee);\n mainTxHash = mainTx;\n feeTxHash = feeTx;\n } else if (currency === 'USDC') {\n // USDC transfer (NEW: EIP-3009 + facilitator)\n const result = await this.executeUsdcPayment(recipientAddress, amount, protocolFee);\n mainTxHash = result.mainTx;\n feeTxHash = result.feeTx;\n feeAmount = result.feeAmount;\n netAmount = result.netAmount;\n } else {\n throw new PaymentError(`Unsupported currency: ${currency}`);\n }\n\n // Get transaction receipt (may be pending if just submitted)\n const receipt = await this.provider.getTransactionReceipt(mainTxHash);\n\n // Create payment proof\n const proof: X402PaymentProof = {\n payment_id: paymentRequest.payment_id,\n transaction_hash: mainTxHash,\n main_transaction_hash: mainTxHash,\n fee_transaction_hash: feeTxHash,\n from_address: this.wallet.address,\n to_address: recipientAddress,\n treasury_address: this.treasuryAddress,\n amount,\n currency,\n protocol_fee: protocolFee,\n network: this.network,\n chain_id: chainId,\n block_number: receipt?.blockNumber,\n timestamp: new Date(),\n status: receipt?.status === 1 ? 'confirmed' : 'pending',\n confirmations: receipt ? 1 : 0,\n fee_amount: feeAmount,\n net_amount: netAmount\n };\n\n console.log(`✅ x402 payment executed successfully (EIP-3009)`);\n console.log(` Main TX: ${mainTxHash}`);\n if (feeTxHash) {\n console.log(` Fee TX: ${feeTxHash}`);\n }\n if (feeAmount && netAmount) {\n console.log(` Fee: ${feeAmount} | Net: ${netAmount}`);\n }\n\n return proof;\n } catch (e: any) {\n throw new PaymentError(`x402 payment failed: ${e.message}`, { payment_id: paymentRequest.payment_id });\n }\n }\n\n /**\n * Execute native token (ETH) payment\n */\n private async executeNativePayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string }> {\n // Convert to wei\n const amountWei = ethers.parseEther(amount.toString());\n const feeWei = ethers.parseEther(protocolFee.toString());\n\n // Send main payment\n const mainTx = await this.wallet.sendTransaction({\n to: recipientAddress,\n value: amountWei\n });\n await mainTx.wait();\n\n // Send protocol fee to treasury\n let feeTxHash: string | undefined;\n if (protocolFee > 0) {\n const feeTx = await this.wallet.sendTransaction({\n to: this.treasuryAddress,\n value: feeWei\n });\n await feeTx.wait();\n feeTxHash = feeTx.hash;\n }\n\n return {\n mainTx: mainTx.hash,\n feeTx: feeTxHash\n };\n }\n\n /**\n * Execute USDC payment using EIP-3009 + Facilitator\n * \n * NEW FLOW (EIP-3009 compliant):\n * 1. Generate EIP-712 signature for transferWithAuthorization\n * 2. Send signature to facilitator\n * 3. Facilitator executes on-chain (gas-sponsored)\n * 4. Return transaction hash\n * \n * Benefits:\n * - ✅ Gasless (facilitator pays gas)\n * - ✅ Single signature (no approve + transfer)\n * - ✅ Facilitator manages fee collection\n */\n private async executeUsdcPayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string; feeAmount?: string; netAmount?: string }> {\n // Get USDC contract address\n const usdcAddress = this.usdcAddresses[this.network];\n if (!usdcAddress) {\n throw new PaymentError(`USDC not supported on ${this.network}`);\n }\n\n // USDC has 6 decimals\n const totalAmountWei = ethers.parseUnits(amount.toString(), 6);\n const feeWei = ethers.parseUnits(protocolFee.toString(), 6);\n const netAmountWei = totalAmountWei - feeWei;\n\n console.log(`💳 Preparing EIP-3009 payment authorization...`);\n console.log(` Total: ${amount} USDC`);\n console.log(` Fee: ${protocolFee} USDC`);\n console.log(` Net: ${(amount - protocolFee).toFixed(6)} USDC`);\n\n // Generate unique nonce for this transfer\n const nonce = this.generateNonce();\n\n // Set validity window (now to 1 hour from now)\n const now = BigInt(Math.floor(Date.now() / 1000));\n const validAfter = now;\n const validBefore = now + BigInt(3600); // 1 hour\n\n // Create transfer authorization parameters\n // NOTE: In managed mode, facilitator handles fee splitting\n // We authorize the full amount to the recipient\n const authParams: TransferAuthorizationParams = {\n from: this.wallet.address,\n to: recipientAddress,\n value: totalAmountWei, // Full amount (facilitator splits fee)\n validAfter,\n validBefore,\n nonce\n };\n\n // Sign EIP-712 authorization\n const signature = await this.signTransferAuthorization(authParams);\n\n // Create payment header for facilitator\n const paymentHeader: PaymentHeader = {\n sender: this.wallet.address,\n nonce: nonce,\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n signature\n };\n\n // Create payment requirements for facilitator\n const paymentRequirements: X402PaymentRequirements = {\n scheme: 'exact',\n network: this.network,\n maxAmountRequired: totalAmountWei.toString(),\n resource: '/',\n description: 'ChaosChain x402 Payment',\n mimeType: 'application/json',\n outputSchema: null,\n payTo: recipientAddress,\n maxTimeoutSeconds: 3600,\n asset: usdcAddress,\n extra: {\n name: 'USD Coin',\n version: '2',\n // ChaosChain fee configuration\n protocolFee: feeWei.toString(),\n treasuryAddress: this.treasuryAddress,\n feePercentage: this.protocolFeePercentage * 100\n }\n };\n\n // Settle with facilitator\n const settleResponse = await this.settleWithFacilitator(paymentHeader, paymentRequirements);\n\n if (!settleResponse.success || !settleResponse.txHash) {\n throw new PaymentError(`EIP-3009 settlement failed: ${settleResponse.error}`);\n }\n\n return {\n mainTx: settleResponse.txHash,\n feeTx: settleResponse.txHashFee,\n feeAmount: settleResponse.feeAmount,\n netAmount: settleResponse.netAmount\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n async verifyPayment(paymentProof: X402PaymentProof): Promise<boolean> {\n try {\n // Get transaction receipt\n const receipt = await this.provider.getTransactionReceipt(paymentProof.main_transaction_hash);\n\n if (!receipt) {\n console.error(`❌ Transaction not found: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify transaction status\n if (receipt.status !== 1) {\n console.error(`❌ Transaction failed: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify recipient\n const tx = await this.provider.getTransaction(paymentProof.main_transaction_hash);\n if (tx?.to?.toLowerCase() !== paymentProof.to_address.toLowerCase()) {\n console.error(`❌ Recipient mismatch`);\n return false;\n }\n\n console.log(`✅ Payment verified on-chain: ${paymentProof.main_transaction_hash}`);\n return true;\n } catch (e) {\n console.error(`❌ Payment verification failed: ${e}`);\n return false;\n }\n }\n\n /**\n * Create payment requirements for receiving payments\n * Official x402 spec: https://github.com/coinbase/x402\n */\n createPaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n resource: string = '/'\n ): X402PaymentRequirements {\n // Get USDC address for asset field\n const asset = currency === 'USDC' ? this.usdcAddresses[this.network] : '0x0000000000000000000000000000000000000000';\n\n // Official x402 paymentRequirements schema\n return {\n scheme: 'exact', // x402 scheme for exact payment amount\n network: this.network,\n maxAmountRequired: ethers.parseUnits(amount.toString(), currency === 'USDC' ? 6 : 18).toString(),\n resource: resource,\n description: serviceDescription,\n mimeType: 'application/json',\n outputSchema: null,\n payTo: this.wallet.address,\n maxTimeoutSeconds: 60,\n asset: asset || '0x0000000000000000000000000000000000000000',\n extra: currency === 'USDC' && asset ? {\n name: 'USD Coin',\n version: '2'\n } : null\n };\n }\n\n /**\n * Get payment history (from on-chain events)\n */\n async getPaymentHistory(limit: number = 10): Promise<X402PaymentProof[]> {\n // In production, query blockchain events\n // For now, return empty array\n console.log(`📊 Payment history: querying last ${limit} payments...`);\n return [];\n }\n\n /**\n * Create cryptographic receipt for payment\n */\n createPaymentReceipt(paymentProof: X402PaymentProof): Record<string, any> {\n const receiptData = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.main_transaction_hash,\n from_address: paymentProof.from_address,\n to_address: paymentProof.to_address,\n amount: paymentProof.amount,\n currency: paymentProof.currency,\n protocol_fee: paymentProof.protocol_fee,\n network: paymentProof.network,\n chain_id: paymentProof.chain_id,\n timestamp: paymentProof.timestamp.toISOString(),\n status: paymentProof.status\n };\n\n // Create receipt hash\n const crypto = require('crypto');\n const receiptJson = JSON.stringify(receiptData);\n const receiptHash = crypto.createHash('sha256').update(receiptJson).digest('hex');\n\n return {\n receipt_type: 'x402_payment',\n receipt_hash: receiptHash,\n receipt_data: receiptData,\n verification_url: `https://explorer.base.org/tx/${paymentProof.main_transaction_hash}`,\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n network: this.network,\n wallet_address: this.wallet.address,\n treasury_address: this.treasuryAddress,\n protocol_fee_percentage: this.protocolFeePercentage * 100,\n supported_currencies: ['ETH', 'USDC'],\n features: {\n instant_settlement: true,\n on_chain_verification: true,\n protocol_fees: true,\n multi_currency: true,\n payment_receipts: true,\n gasless_transfers: true // NEW: EIP-3009 gasless transfers\n }\n };\n }\n}\n\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\nconst {iterator, toStringTag} = Symbol;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(toStringTag in val) && !(iterator in val);\n}\n\n/**\n * Determine if a value is an empty object (safely handles Buffers)\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an empty object, otherwise false\n */\nconst isEmptyObject = (val) => {\n // Early return for non-objects or Buffers to prevent RangeError\n if (!isObject(val) || isBuffer(val)) {\n return false;\n }\n\n try {\n return Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n } catch (e) {\n // Fallback for any other objects that might cause RangeError with Object.keys()\n return false;\n }\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\nconst [isReadableStream, isRequest, isResponse, isHeaders] = ['ReadableStream', 'Request', 'Response', 'Headers'].map(kindOfTest);\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Buffer check\n if (isBuffer(obj)) {\n return;\n }\n\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n if (isBuffer(obj)){\n return null;\n }\n\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless, skipUndefined} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else if (!skipUndefined || !isUndefined(val)) {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object<any, any>} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[iterator];\n\n const _iterator = generator.call(obj);\n\n let result;\n\n while ((result = _iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array<boolean>}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n return value != null && Number.isFinite(value = +value) ? value : defaultValue;\n}\n\n\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[toStringTag] === 'FormData' && thing[iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n //Buffer check\n if (isBuffer(source)) {\n return source;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\n// original code\n// https://github.com/DigitalBrainJS/AxiosPromise/blob/16deab13710ec09779922131f3fa5954320f83ab/lib/utils.js#L11-L34\n\nconst _setImmediate = ((setImmediateSupported, postMessageSupported) => {\n if (setImmediateSupported) {\n return setImmediate;\n }\n\n return postMessageSupported ? ((token, callbacks) => {\n _global.addEventListener(\"message\", ({source, data}) => {\n if (source === _global && data === token) {\n callbacks.length && callbacks.shift()();\n }\n }, false);\n\n return (cb) => {\n callbacks.push(cb);\n _global.postMessage(token, \"*\");\n }\n })(`axios@${Math.random()}`, []) : (cb) => setTimeout(cb);\n})(\n typeof setImmediate === 'function',\n isFunction(_global.postMessage)\n);\n\nconst asap = typeof queueMicrotask !== 'undefined' ?\n queueMicrotask.bind(_global) : ( typeof process !== 'undefined' && process.nextTick || _setImmediate);\n\n// *********************\n\n\nconst isIterable = (thing) => thing != null && isFunction(thing[iterator]);\n\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isEmptyObject,\n isReadableStream,\n isRequest,\n isResponse,\n isHeaders,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable,\n setImmediate: _setImmediate,\n asap,\n isIterable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n if (response) {\n this.response = response;\n this.status = response.status ? response.status : null;\n }\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.status\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n const msg = error && error.message ? error.message : 'Error';\n\n // Prefer explicit code; otherwise copy the low-level error's code (e.g. ECONNREFUSED)\n const errCode = code == null && error ? error.code : code;\n AxiosError.call(axiosError, msg, errCode, config, request, response);\n\n // Chain the original error on the standard field; non-enumerable to avoid JSON noise\n if (error && axiosError.cause == null) {\n Object.defineProperty(axiosError, 'cause', { value: error, configurable: true });\n }\n\n axiosError.name = (error && error.name) || 'Error';\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","import FormData from 'form-data';\n\nexport default FormData;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array<any>} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object<any, any>} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object<string, any>} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isBoolean(value)) {\n return value.toString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array<String|Number>} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object<string, any>} params - The parameters to be converted to a FormData object.\n * @param {Object<string, any>} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?(object|Function)} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n if (utils.isFunction(options)) {\n options = {\n serialize: options\n };\n } \n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","'use strict';\n\nimport url from 'url';\nexport default url.URLSearchParams;\n","import crypto from 'crypto';\nimport URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n const randomValues = new Uint32Array(size);\n crypto.randomFillSync(randomValues);\n for (let i = 0; i < size; i++) {\n str += alphabet[randomValues[i] % length];\n }\n\n return str;\n}\n\n\nexport default {\n isNode: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob: typeof Blob !== 'undefined' && Blob || null\n },\n ALPHABET,\n generateString,\n protocols: [ 'http', 'https', 'file', 'data' ]\n};\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\nconst _navigator = typeof navigator === 'object' && navigator || undefined;\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = hasBrowserEnv &&\n (!_navigator || ['ReactNative', 'NativeScript', 'NS'].indexOf(_navigator.product) < 0);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nconst origin = hasBrowserEnv && window.location.href || 'http://localhost';\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv,\n _navigator as navigator,\n origin\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), {\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n },\n ...options\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array<any>} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object<string, any> | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http', 'fetch'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data) ||\n utils.isReadableStream(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (utils.isResponse(data) || utils.isReadableStream(data)) {\n return data;\n }\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data, this.parseReviver);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else if (utils.isObject(header) && utils.isIterable(header)) {\n let obj = {}, dest, key;\n for (const entry of header) {\n if (!utils.isArray(entry)) {\n throw TypeError('Object iterator must return a key-value pair');\n }\n\n obj[key = entry[0]] = (dest = obj[key]) ?\n (utils.isArray(dest) ? [...dest, entry[1]] : [dest, entry[1]]) : entry[1];\n }\n\n setHeaders(obj, valueOrRewrite)\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n getSetCookie() {\n return this.get(\"set-cookie\") || [];\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL, allowAbsoluteUrls) {\n let isRelativeUrl = !isAbsoluteURL(requestedURL);\n if (baseURL && (isRelativeUrl || allowAbsoluteUrls == false)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport buildURL from './../helpers/buildURL.js';\nimport proxyFromEnv from 'proxy-from-env';\nimport http from 'http';\nimport https from 'https';\nimport util from 'util';\nimport followRedirects from 'follow-redirects';\nimport zlib from 'zlib';\nimport {VERSION} from '../env/data.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport platform from '../platform/index.js';\nimport fromDataURI from '../helpers/fromDataURI.js';\nimport stream from 'stream';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport AxiosTransformStream from '../helpers/AxiosTransformStream.js';\nimport {EventEmitter} from 'events';\nimport formDataToStream from \"../helpers/formDataToStream.js\";\nimport readBlob from \"../helpers/readBlob.js\";\nimport ZlibHeaderTransformStream from '../helpers/ZlibHeaderTransformStream.js';\nimport callbackify from \"../helpers/callbackify.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport estimateDataURLDecodedBytes from '../helpers/estimateDataURLDecodedBytes.js';\n\nconst zlibOptions = {\n flush: zlib.constants.Z_SYNC_FLUSH,\n finishFlush: zlib.constants.Z_SYNC_FLUSH\n};\n\nconst brotliOptions = {\n flush: zlib.constants.BROTLI_OPERATION_FLUSH,\n finishFlush: zlib.constants.BROTLI_OPERATION_FLUSH\n}\n\nconst isBrotliSupported = utils.isFunction(zlib.createBrotliDecompress);\n\nconst {http: httpFollow, https: httpsFollow} = followRedirects;\n\nconst isHttps = /https:?/;\n\nconst supportedProtocols = platform.protocols.map(protocol => {\n return protocol + ':';\n});\n\n\nconst flushOnFinish = (stream, [throttled, flush]) => {\n stream\n .on('end', flush)\n .on('error', flush);\n\n return throttled;\n}\n\n\n/**\n * If the proxy or config beforeRedirects functions are defined, call them with the options\n * object.\n *\n * @param {Object<string, any>} options - The options object that was passed to the request.\n *\n * @returns {Object<string, any>}\n */\nfunction dispatchBeforeRedirect(options, responseDetails) {\n if (options.beforeRedirects.proxy) {\n options.beforeRedirects.proxy(options);\n }\n if (options.beforeRedirects.config) {\n options.beforeRedirects.config(options, responseDetails);\n }\n}\n\n/**\n * If the proxy or config afterRedirects functions are defined, call them with the options\n *\n * @param {http.ClientRequestArgs} options\n * @param {AxiosProxyConfig} configProxy configuration from Axios options object\n * @param {string} location\n *\n * @returns {http.ClientRequestArgs}\n */\nfunction setProxy(options, configProxy, location) {\n let proxy = configProxy;\n if (!proxy && proxy !== false) {\n const proxyUrl = proxyFromEnv.getProxyForUrl(location);\n if (proxyUrl) {\n proxy = new URL(proxyUrl);\n }\n }\n if (proxy) {\n // Basic proxy authorization\n if (proxy.username) {\n proxy.auth = (proxy.username || '') + ':' + (proxy.password || '');\n }\n\n if (proxy.auth) {\n // Support proxy auth object form\n if (proxy.auth.username || proxy.auth.password) {\n proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || '');\n }\n const base64 = Buffer\n .from(proxy.auth, 'utf8')\n .toString('base64');\n options.headers['Proxy-Authorization'] = 'Basic ' + base64;\n }\n\n options.headers.host = options.hostname + (options.port ? ':' + options.port : '');\n const proxyHost = proxy.hostname || proxy.host;\n options.hostname = proxyHost;\n // Replace 'host' since options is not a URL object\n options.host = proxyHost;\n options.port = proxy.port;\n options.path = location;\n if (proxy.protocol) {\n options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`;\n }\n }\n\n options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) {\n // Configure proxy for redirected request, passing the original config proxy to apply\n // the exact same logic as if the redirected request was performed by axios directly.\n setProxy(redirectOptions, configProxy, redirectOptions.href);\n };\n}\n\nconst isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process';\n\n// temporary hotfix\n\nconst wrapAsync = (asyncExecutor) => {\n return new Promise((resolve, reject) => {\n let onDone;\n let isDone;\n\n const done = (value, isRejected) => {\n if (isDone) return;\n isDone = true;\n onDone && onDone(value, isRejected);\n }\n\n const _resolve = (value) => {\n done(value);\n resolve(value);\n };\n\n const _reject = (reason) => {\n done(reason, true);\n reject(reason);\n }\n\n asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject);\n })\n};\n\nconst resolveFamily = ({address, family}) => {\n if (!utils.isString(address)) {\n throw TypeError('address must be a string');\n }\n return ({\n address,\n family: family || (address.indexOf('.') < 0 ? 6 : 4)\n });\n}\n\nconst buildAddressEntry = (address, family) => resolveFamily(utils.isObject(address) ? address : {address, family});\n\n/*eslint consistent-return:0*/\nexport default isHttpAdapterSupported && function httpAdapter(config) {\n return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) {\n let {data, lookup, family} = config;\n const {responseType, responseEncoding} = config;\n const method = config.method.toUpperCase();\n let isDone;\n let rejected = false;\n let req;\n\n if (lookup) {\n const _lookup = callbackify(lookup, (value) => utils.isArray(value) ? value : [value]);\n // hotfix to support opt.all option which is required for node 20.x\n lookup = (hostname, opt, cb) => {\n _lookup(hostname, opt, (err, arg0, arg1) => {\n if (err) {\n return cb(err);\n }\n\n const addresses = utils.isArray(arg0) ? arg0.map(addr => buildAddressEntry(addr)) : [buildAddressEntry(arg0, arg1)];\n\n opt.all ? cb(err, addresses) : cb(err, addresses[0].address, addresses[0].family);\n });\n }\n }\n\n // temporary internal emitter until the AxiosRequest class will be implemented\n const emitter = new EventEmitter();\n\n const onFinished = () => {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(abort);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', abort);\n }\n\n emitter.removeAllListeners();\n }\n\n onDone((value, isRejected) => {\n isDone = true;\n if (isRejected) {\n rejected = true;\n onFinished();\n }\n });\n\n function abort(reason) {\n emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason);\n }\n\n emitter.once('abort', reject);\n\n if (config.cancelToken || config.signal) {\n config.cancelToken && config.cancelToken.subscribe(abort);\n if (config.signal) {\n config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort);\n }\n }\n\n // Parse url\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n const parsed = new URL(fullPath, platform.hasBrowserEnv ? platform.origin : undefined);\n const protocol = parsed.protocol || supportedProtocols[0];\n\n if (protocol === 'data:') {\n // Apply the same semantics as HTTP: only enforce if a finite, non-negative cap is set.\n if (config.maxContentLength > -1) {\n // Use the exact string passed to fromDataURI (config.url); fall back to fullPath if needed.\n const dataUrl = String(config.url || fullPath || '');\n const estimated = estimateDataURLDecodedBytes(dataUrl);\n\n if (estimated > config.maxContentLength) {\n return reject(new AxiosError(\n 'maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE,\n config\n ));\n }\n }\n\n let convertedData;\n\n if (method !== 'GET') {\n return settle(resolve, reject, {\n status: 405,\n statusText: 'method not allowed',\n headers: {},\n config\n });\n }\n\n try {\n convertedData = fromDataURI(config.url, responseType === 'blob', {\n Blob: config.env && config.env.Blob\n });\n } catch (err) {\n throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config);\n }\n\n if (responseType === 'text') {\n convertedData = convertedData.toString(responseEncoding);\n\n if (!responseEncoding || responseEncoding === 'utf8') {\n convertedData = utils.stripBOM(convertedData);\n }\n } else if (responseType === 'stream') {\n convertedData = stream.Readable.from(convertedData);\n }\n\n return settle(resolve, reject, {\n data: convertedData,\n status: 200,\n statusText: 'OK',\n headers: new AxiosHeaders(),\n config\n });\n }\n\n if (supportedProtocols.indexOf(protocol) === -1) {\n return reject(new AxiosError(\n 'Unsupported protocol ' + protocol,\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n const headers = AxiosHeaders.from(config.headers).normalize();\n\n // Set User-Agent (required by some servers)\n // See https://github.com/axios/axios/issues/69\n // User-Agent is specified; handle case where no UA header is desired\n // Only set header if it hasn't been set in config\n headers.set('User-Agent', 'axios/' + VERSION, false);\n\n const {onUploadProgress, onDownloadProgress} = config;\n const maxRate = config.maxRate;\n let maxUploadRate = undefined;\n let maxDownloadRate = undefined;\n\n // support for spec compliant FormData objects\n if (utils.isSpecCompliantForm(data)) {\n const userBoundary = headers.getContentType(/boundary=([-_\\w\\d]{10,70})/i);\n\n data = formDataToStream(data, (formHeaders) => {\n headers.set(formHeaders);\n }, {\n tag: `axios-${VERSION}-boundary`,\n boundary: userBoundary && userBoundary[1] || undefined\n });\n // support for https://www.npmjs.com/package/form-data api\n } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) {\n headers.set(data.getHeaders());\n\n if (!headers.hasContentLength()) {\n try {\n const knownLength = await util.promisify(data.getLength).call(data);\n Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength);\n /*eslint no-empty:0*/\n } catch (e) {\n }\n }\n } else if (utils.isBlob(data) || utils.isFile(data)) {\n data.size && headers.setContentType(data.type || 'application/octet-stream');\n headers.setContentLength(data.size || 0);\n data = stream.Readable.from(readBlob(data));\n } else if (data && !utils.isStream(data)) {\n if (Buffer.isBuffer(data)) {\n // Nothing to do...\n } else if (utils.isArrayBuffer(data)) {\n data = Buffer.from(new Uint8Array(data));\n } else if (utils.isString(data)) {\n data = Buffer.from(data, 'utf-8');\n } else {\n return reject(new AxiosError(\n 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n\n // Add Content-Length header if data exists\n headers.setContentLength(data.length, false);\n\n if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) {\n return reject(new AxiosError(\n 'Request body larger than maxBodyLength limit',\n AxiosError.ERR_BAD_REQUEST,\n config\n ));\n }\n }\n\n const contentLength = utils.toFiniteNumber(headers.getContentLength());\n\n if (utils.isArray(maxRate)) {\n maxUploadRate = maxRate[0];\n maxDownloadRate = maxRate[1];\n } else {\n maxUploadRate = maxDownloadRate = maxRate;\n }\n\n if (data && (onUploadProgress || maxUploadRate)) {\n if (!utils.isStream(data)) {\n data = stream.Readable.from(data, {objectMode: false});\n }\n\n data = stream.pipeline([data, new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxUploadRate)\n })], utils.noop);\n\n onUploadProgress && data.on('progress', flushOnFinish(\n data,\n progressEventDecorator(\n contentLength,\n progressEventReducer(asyncDecorator(onUploadProgress), false, 3)\n )\n ));\n }\n\n // HTTP basic authentication\n let auth = undefined;\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password || '';\n auth = username + ':' + password;\n }\n\n if (!auth && parsed.username) {\n const urlUsername = parsed.username;\n const urlPassword = parsed.password;\n auth = urlUsername + ':' + urlPassword;\n }\n\n auth && headers.delete('authorization');\n\n let path;\n\n try {\n path = buildURL(\n parsed.pathname + parsed.search,\n config.params,\n config.paramsSerializer\n ).replace(/^\\?/, '');\n } catch (err) {\n const customErr = new Error(err.message);\n customErr.config = config;\n customErr.url = config.url;\n customErr.exists = true;\n return reject(customErr);\n }\n\n headers.set(\n 'Accept-Encoding',\n 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false\n );\n\n const options = {\n path,\n method: method,\n headers: headers.toJSON(),\n agents: { http: config.httpAgent, https: config.httpsAgent },\n auth,\n protocol,\n family,\n beforeRedirect: dispatchBeforeRedirect,\n beforeRedirects: {}\n };\n\n // cacheable-lookup integration hotfix\n !utils.isUndefined(lookup) && (options.lookup = lookup);\n\n if (config.socketPath) {\n options.socketPath = config.socketPath;\n } else {\n options.hostname = parsed.hostname.startsWith(\"[\") ? parsed.hostname.slice(1, -1) : parsed.hostname;\n options.port = parsed.port;\n setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path);\n }\n\n let transport;\n const isHttpsRequest = isHttps.test(options.protocol);\n options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent;\n if (config.transport) {\n transport = config.transport;\n } else if (config.maxRedirects === 0) {\n transport = isHttpsRequest ? https : http;\n } else {\n if (config.maxRedirects) {\n options.maxRedirects = config.maxRedirects;\n }\n if (config.beforeRedirect) {\n options.beforeRedirects.config = config.beforeRedirect;\n }\n transport = isHttpsRequest ? httpsFollow : httpFollow;\n }\n\n if (config.maxBodyLength > -1) {\n options.maxBodyLength = config.maxBodyLength;\n } else {\n // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited\n options.maxBodyLength = Infinity;\n }\n\n if (config.insecureHTTPParser) {\n options.insecureHTTPParser = config.insecureHTTPParser;\n }\n\n // Create the request\n req = transport.request(options, function handleResponse(res) {\n if (req.destroyed) return;\n\n const streams = [res];\n\n const responseLength = +res.headers['content-length'];\n\n if (onDownloadProgress || maxDownloadRate) {\n const transformStream = new AxiosTransformStream({\n maxRate: utils.toFiniteNumber(maxDownloadRate)\n });\n\n onDownloadProgress && transformStream.on('progress', flushOnFinish(\n transformStream,\n progressEventDecorator(\n responseLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true, 3)\n )\n ));\n\n streams.push(transformStream);\n }\n\n // decompress the response body transparently if required\n let responseStream = res;\n\n // return the last request in case of redirects\n const lastRequest = res.req || req;\n\n // if decompress disabled we should not decompress\n if (config.decompress !== false && res.headers['content-encoding']) {\n // if no content, but headers still say that it is encoded,\n // remove the header not confuse downstream operations\n if (method === 'HEAD' || res.statusCode === 204) {\n delete res.headers['content-encoding'];\n }\n\n switch ((res.headers['content-encoding'] || '').toLowerCase()) {\n /*eslint default-case:0*/\n case 'gzip':\n case 'x-gzip':\n case 'compress':\n case 'x-compress':\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'deflate':\n streams.push(new ZlibHeaderTransformStream());\n\n // add the unzipper to the body stream processing pipeline\n streams.push(zlib.createUnzip(zlibOptions));\n\n // remove the content-encoding in order to not confuse downstream operations\n delete res.headers['content-encoding'];\n break;\n case 'br':\n if (isBrotliSupported) {\n streams.push(zlib.createBrotliDecompress(brotliOptions));\n delete res.headers['content-encoding'];\n }\n }\n }\n\n responseStream = streams.length > 1 ? stream.pipeline(streams, utils.noop) : streams[0];\n\n const offListeners = stream.finished(responseStream, () => {\n offListeners();\n onFinished();\n });\n\n const response = {\n status: res.statusCode,\n statusText: res.statusMessage,\n headers: new AxiosHeaders(res.headers),\n config,\n request: lastRequest\n };\n\n if (responseType === 'stream') {\n response.data = responseStream;\n settle(resolve, reject, response);\n } else {\n const responseBuffer = [];\n let totalResponseBytes = 0;\n\n responseStream.on('data', function handleStreamData(chunk) {\n responseBuffer.push(chunk);\n totalResponseBytes += chunk.length;\n\n // make sure the content length is not over the maxContentLength if specified\n if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) {\n // stream.destroy() emit aborted event before calling reject() on Node.js v16\n rejected = true;\n responseStream.destroy();\n reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded',\n AxiosError.ERR_BAD_RESPONSE, config, lastRequest));\n }\n });\n\n responseStream.on('aborted', function handlerStreamAborted() {\n if (rejected) {\n return;\n }\n\n const err = new AxiosError(\n 'stream has been aborted',\n AxiosError.ERR_BAD_RESPONSE,\n config,\n lastRequest\n );\n responseStream.destroy(err);\n reject(err);\n });\n\n responseStream.on('error', function handleStreamError(err) {\n if (req.destroyed) return;\n reject(AxiosError.from(err, null, config, lastRequest));\n });\n\n responseStream.on('end', function handleStreamEnd() {\n try {\n let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer);\n if (responseType !== 'arraybuffer') {\n responseData = responseData.toString(responseEncoding);\n if (!responseEncoding || responseEncoding === 'utf8') {\n responseData = utils.stripBOM(responseData);\n }\n }\n response.data = responseData;\n } catch (err) {\n return reject(AxiosError.from(err, null, config, response.request, response));\n }\n settle(resolve, reject, response);\n });\n }\n\n emitter.once('abort', err => {\n if (!responseStream.destroyed) {\n responseStream.emit('error', err);\n responseStream.destroy();\n }\n });\n });\n\n emitter.once('abort', err => {\n reject(err);\n req.destroy(err);\n });\n\n // Handle errors\n req.on('error', function handleRequestError(err) {\n // @todo remove\n // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return;\n reject(AxiosError.from(err, null, config, req));\n });\n\n // set tcp keep alive to prevent drop connection by peer\n req.on('socket', function handleRequestSocket(socket) {\n // default interval of sending ack packet is 1 minute\n socket.setKeepAlive(true, 1000 * 60);\n });\n\n // Handle request timeout\n if (config.timeout) {\n // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types.\n const timeout = parseInt(config.timeout, 10);\n\n if (Number.isNaN(timeout)) {\n reject(new AxiosError(\n 'error trying to parse `config.timeout` to int',\n AxiosError.ERR_BAD_OPTION_VALUE,\n config,\n req\n ));\n\n return;\n }\n\n // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system.\n // And timer callback will be fired, and abort() will be invoked before connection, then get \"socket hang up\" and code ECONNRESET.\n // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up.\n // And then these socket which be hang up will devouring CPU little by little.\n // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect.\n req.setTimeout(timeout, function handleRequestTimeout() {\n if (isDone) return;\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n req\n ));\n abort();\n });\n }\n\n\n // Send the request\n if (utils.isStream(data)) {\n let ended = false;\n let errored = false;\n\n data.on('end', () => {\n ended = true;\n });\n\n data.once('error', err => {\n errored = true;\n req.destroy(err);\n });\n\n data.on('close', () => {\n if (!ended && !errored) {\n abort(new CanceledError('Request stream has been aborted', config, req));\n }\n });\n\n data.pipe(req);\n } else {\n req.end(data);\n }\n });\n}\n\nexport const __setProxy = setProxy;\n","export const VERSION = \"1.12.2\";","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport parseProtocol from './parseProtocol.js';\nimport platform from '../platform/index.js';\n\nconst DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\\s\\S]*)$/;\n\n/**\n * Parse data uri to a Buffer or Blob\n *\n * @param {String} uri\n * @param {?Boolean} asBlob\n * @param {?Object} options\n * @param {?Function} options.Blob\n *\n * @returns {Buffer|Blob}\n */\nexport default function fromDataURI(uri, asBlob, options) {\n const _Blob = options && options.Blob || platform.classes.Blob;\n const protocol = parseProtocol(uri);\n\n if (asBlob === undefined && _Blob) {\n asBlob = true;\n }\n\n if (protocol === 'data') {\n uri = protocol.length ? uri.slice(protocol.length + 1) : uri;\n\n const match = DATA_URL_PATTERN.exec(uri);\n\n if (!match) {\n throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL);\n }\n\n const mime = match[1];\n const isBase64 = match[2];\n const body = match[3];\n const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8');\n\n if (asBlob) {\n if (!_Blob) {\n throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT);\n }\n\n return new _Blob([buffer], {type: mime});\n }\n\n return buffer;\n }\n\n throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT);\n}\n","'use strict';\n\nimport stream from 'stream';\nimport utils from '../utils.js';\n\nconst kInternals = Symbol('internals');\n\nclass AxiosTransformStream extends stream.Transform{\n constructor(options) {\n options = utils.toFlatObject(options, {\n maxRate: 0,\n chunkSize: 64 * 1024,\n minChunkSize: 100,\n timeWindow: 500,\n ticksRate: 2,\n samplesCount: 15\n }, null, (prop, source) => {\n return !utils.isUndefined(source[prop]);\n });\n\n super({\n readableHighWaterMark: options.chunkSize\n });\n\n const internals = this[kInternals] = {\n timeWindow: options.timeWindow,\n chunkSize: options.chunkSize,\n maxRate: options.maxRate,\n minChunkSize: options.minChunkSize,\n bytesSeen: 0,\n isCaptured: false,\n notifiedBytesLoaded: 0,\n ts: Date.now(),\n bytes: 0,\n onReadCallback: null\n };\n\n this.on('newListener', event => {\n if (event === 'progress') {\n if (!internals.isCaptured) {\n internals.isCaptured = true;\n }\n }\n });\n }\n\n _read(size) {\n const internals = this[kInternals];\n\n if (internals.onReadCallback) {\n internals.onReadCallback();\n }\n\n return super._read(size);\n }\n\n _transform(chunk, encoding, callback) {\n const internals = this[kInternals];\n const maxRate = internals.maxRate;\n\n const readableHighWaterMark = this.readableHighWaterMark;\n\n const timeWindow = internals.timeWindow;\n\n const divider = 1000 / timeWindow;\n const bytesThreshold = (maxRate / divider);\n const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0;\n\n const pushChunk = (_chunk, _callback) => {\n const bytes = Buffer.byteLength(_chunk);\n internals.bytesSeen += bytes;\n internals.bytes += bytes;\n\n internals.isCaptured && this.emit('progress', internals.bytesSeen);\n\n if (this.push(_chunk)) {\n process.nextTick(_callback);\n } else {\n internals.onReadCallback = () => {\n internals.onReadCallback = null;\n process.nextTick(_callback);\n };\n }\n }\n\n const transformChunk = (_chunk, _callback) => {\n const chunkSize = Buffer.byteLength(_chunk);\n let chunkRemainder = null;\n let maxChunkSize = readableHighWaterMark;\n let bytesLeft;\n let passed = 0;\n\n if (maxRate) {\n const now = Date.now();\n\n if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) {\n internals.ts = now;\n bytesLeft = bytesThreshold - internals.bytes;\n internals.bytes = bytesLeft < 0 ? -bytesLeft : 0;\n passed = 0;\n }\n\n bytesLeft = bytesThreshold - internals.bytes;\n }\n\n if (maxRate) {\n if (bytesLeft <= 0) {\n // next time window\n return setTimeout(() => {\n _callback(null, _chunk);\n }, timeWindow - passed);\n }\n\n if (bytesLeft < maxChunkSize) {\n maxChunkSize = bytesLeft;\n }\n }\n\n if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) {\n chunkRemainder = _chunk.subarray(maxChunkSize);\n _chunk = _chunk.subarray(0, maxChunkSize);\n }\n\n pushChunk(_chunk, chunkRemainder ? () => {\n process.nextTick(_callback, null, chunkRemainder);\n } : _callback);\n };\n\n transformChunk(chunk, function transformNextChunk(err, _chunk) {\n if (err) {\n return callback(err);\n }\n\n if (_chunk) {\n transformChunk(_chunk, transformNextChunk);\n } else {\n callback(null);\n }\n });\n }\n}\n\nexport default AxiosTransformStream;\n","const {asyncIterator} = Symbol;\n\nconst readBlob = async function* (blob) {\n if (blob.stream) {\n yield* blob.stream()\n } else if (blob.arrayBuffer) {\n yield await blob.arrayBuffer()\n } else if (blob[asyncIterator]) {\n yield* blob[asyncIterator]();\n } else {\n yield blob;\n }\n}\n\nexport default readBlob;\n","import util from 'util';\nimport {Readable} from 'stream';\nimport utils from \"../utils.js\";\nimport readBlob from \"./readBlob.js\";\nimport platform from \"../platform/index.js\";\n\nconst BOUNDARY_ALPHABET = platform.ALPHABET.ALPHA_DIGIT + '-_';\n\nconst textEncoder = typeof TextEncoder === 'function' ? new TextEncoder() : new util.TextEncoder();\n\nconst CRLF = '\\r\\n';\nconst CRLF_BYTES = textEncoder.encode(CRLF);\nconst CRLF_BYTES_COUNT = 2;\n\nclass FormDataPart {\n constructor(name, value) {\n const {escapeName} = this.constructor;\n const isStringValue = utils.isString(value);\n\n let headers = `Content-Disposition: form-data; name=\"${escapeName(name)}\"${\n !isStringValue && value.name ? `; filename=\"${escapeName(value.name)}\"` : ''\n }${CRLF}`;\n\n if (isStringValue) {\n value = textEncoder.encode(String(value).replace(/\\r?\\n|\\r\\n?/g, CRLF));\n } else {\n headers += `Content-Type: ${value.type || \"application/octet-stream\"}${CRLF}`\n }\n\n this.headers = textEncoder.encode(headers + CRLF);\n\n this.contentLength = isStringValue ? value.byteLength : value.size;\n\n this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT;\n\n this.name = name;\n this.value = value;\n }\n\n async *encode(){\n yield this.headers;\n\n const {value} = this;\n\n if(utils.isTypedArray(value)) {\n yield value;\n } else {\n yield* readBlob(value);\n }\n\n yield CRLF_BYTES;\n }\n\n static escapeName(name) {\n return String(name).replace(/[\\r\\n\"]/g, (match) => ({\n '\\r' : '%0D',\n '\\n' : '%0A',\n '\"' : '%22',\n }[match]));\n }\n}\n\nconst formDataToStream = (form, headersHandler, options) => {\n const {\n tag = 'form-data-boundary',\n size = 25,\n boundary = tag + '-' + platform.generateString(size, BOUNDARY_ALPHABET)\n } = options || {};\n\n if(!utils.isFormData(form)) {\n throw TypeError('FormData instance required');\n }\n\n if (boundary.length < 1 || boundary.length > 70) {\n throw Error('boundary must be 10-70 characters long')\n }\n\n const boundaryBytes = textEncoder.encode('--' + boundary + CRLF);\n const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF);\n let contentLength = footerBytes.byteLength;\n\n const parts = Array.from(form.entries()).map(([name, value]) => {\n const part = new FormDataPart(name, value);\n contentLength += part.size;\n return part;\n });\n\n contentLength += boundaryBytes.byteLength * parts.length;\n\n contentLength = utils.toFiniteNumber(contentLength);\n\n const computedHeaders = {\n 'Content-Type': `multipart/form-data; boundary=${boundary}`\n }\n\n if (Number.isFinite(contentLength)) {\n computedHeaders['Content-Length'] = contentLength;\n }\n\n headersHandler && headersHandler(computedHeaders);\n\n return Readable.from((async function *() {\n for(const part of parts) {\n yield boundaryBytes;\n yield* part.encode();\n }\n\n yield footerBytes;\n })());\n};\n\nexport default formDataToStream;\n","\"use strict\";\n\nimport stream from \"stream\";\n\nclass ZlibHeaderTransformStream extends stream.Transform {\n __transform(chunk, encoding, callback) {\n this.push(chunk);\n callback();\n }\n\n _transform(chunk, encoding, callback) {\n if (chunk.length !== 0) {\n this._transform = this.__transform;\n\n // Add Default Compression headers if no zlib headers are present\n if (chunk[0] !== 120) { // Hex: 78\n const header = Buffer.alloc(2);\n header[0] = 120; // Hex: 78\n header[1] = 156; // Hex: 9C \n this.push(header, encoding);\n }\n }\n\n this.__transform(chunk, encoding, callback);\n }\n}\n\nexport default ZlibHeaderTransformStream;\n","import utils from \"../utils.js\";\n\nconst callbackify = (fn, reducer) => {\n return utils.isAsyncFn(fn) ? function (...args) {\n const cb = args.pop();\n fn.apply(this, args).then((value) => {\n try {\n reducer ? cb(null, ...reducer(value)) : cb(null, value);\n } catch (err) {\n cb(err);\n }\n }, cb);\n } : fn;\n}\n\nexport default callbackify;\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","/**\n * Throttle decorator\n * @param {Function} fn\n * @param {Number} freq\n * @return {Function}\n */\nfunction throttle(fn, freq) {\n let timestamp = 0;\n let threshold = 1000 / freq;\n let lastArgs;\n let timer;\n\n const invoke = (args, now = Date.now()) => {\n timestamp = now;\n lastArgs = null;\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n fn(...args);\n }\n\n const throttled = (...args) => {\n const now = Date.now();\n const passed = now - timestamp;\n if ( passed >= threshold) {\n invoke(args, now);\n } else {\n lastArgs = args;\n if (!timer) {\n timer = setTimeout(() => {\n timer = null;\n invoke(lastArgs)\n }, threshold - passed);\n }\n }\n }\n\n const flush = () => lastArgs && invoke(lastArgs);\n\n return [throttled, flush];\n}\n\nexport default throttle;\n","import speedometer from \"./speedometer.js\";\nimport throttle from \"./throttle.js\";\nimport utils from \"../utils.js\";\n\nexport const progressEventReducer = (listener, isDownloadStream, freq = 3) => {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return throttle(e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e,\n lengthComputable: total != null,\n [isDownloadStream ? 'download' : 'upload']: true\n };\n\n listener(data);\n }, freq);\n}\n\nexport const progressEventDecorator = (total, throttled) => {\n const lengthComputable = total != null;\n\n return [(loaded) => throttled[0]({\n lengthComputable,\n total,\n loaded\n }), throttled[1]];\n}\n\nexport const asyncDecorator = (fn) => (...args) => utils.asap(() => fn(...args));\n","/**\n * Estimate decoded byte length of a data:// URL *without* allocating large buffers.\n * - For base64: compute exact decoded size using length and padding;\n * handle %XX at the character-count level (no string allocation).\n * - For non-base64: use UTF-8 byteLength of the encoded body as a safe upper bound.\n *\n * @param {string} url\n * @returns {number}\n */\nexport default function estimateDataURLDecodedBytes(url) {\n if (!url || typeof url !== 'string') return 0;\n if (!url.startsWith('data:')) return 0;\n\n const comma = url.indexOf(',');\n if (comma < 0) return 0;\n\n const meta = url.slice(5, comma);\n const body = url.slice(comma + 1);\n const isBase64 = /;base64/i.test(meta);\n\n if (isBase64) {\n let effectiveLen = body.length;\n const len = body.length; // cache length\n\n for (let i = 0; i < len; i++) {\n if (body.charCodeAt(i) === 37 /* '%' */ && i + 2 < len) {\n const a = body.charCodeAt(i + 1);\n const b = body.charCodeAt(i + 2);\n const isHex =\n ((a >= 48 && a <= 57) || (a >= 65 && a <= 70) || (a >= 97 && a <= 102)) &&\n ((b >= 48 && b <= 57) || (b >= 65 && b <= 70) || (b >= 97 && b <= 102));\n\n if (isHex) {\n effectiveLen -= 2;\n i += 2;\n }\n }\n }\n\n let pad = 0;\n let idx = len - 1;\n\n const tailIsPct3D = (j) =>\n j >= 2 &&\n body.charCodeAt(j - 2) === 37 && // '%'\n body.charCodeAt(j - 1) === 51 && // '3'\n (body.charCodeAt(j) === 68 || body.charCodeAt(j) === 100); // 'D' or 'd'\n\n if (idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n idx--;\n } else if (tailIsPct3D(idx)) {\n pad++;\n idx -= 3;\n }\n }\n\n if (pad === 1 && idx >= 0) {\n if (body.charCodeAt(idx) === 61 /* '=' */) {\n pad++;\n } else if (tailIsPct3D(idx)) {\n pad++;\n }\n }\n\n const groups = Math.floor(effectiveLen / 4);\n const bytes = groups * 3 - (pad || 0);\n return bytes > 0 ? bytes : 0;\n }\n\n return Buffer.byteLength(body, 'utf8');\n}\n","import platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ? ((origin, isMSIE) => (url) => {\n url = new URL(url, platform.origin);\n\n return (\n origin.protocol === url.protocol &&\n origin.host === url.host &&\n (isMSIE || origin.port === url.port)\n );\n})(\n new URL(platform.origin),\n platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)\n) : () => true;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing } : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, prop, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, prop , caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, prop , caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, prop , caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b , prop) => mergeDeepProperties(headersToObject(a), headersToObject(b),prop, true)\n };\n\n utils.forEach(Object.keys({...config1, ...config2}), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport isURLSameOrigin from \"./isURLSameOrigin.js\";\nimport cookies from \"./cookies.js\";\nimport buildFullPath from \"../core/buildFullPath.js\";\nimport mergeConfig from \"../core/mergeConfig.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport buildURL from \"./buildURL.js\";\n\nexport default (config) => {\n const newConfig = mergeConfig({}, config);\n\n let { data, withXSRFToken, xsrfHeaderName, xsrfCookieName, headers, auth } = newConfig;\n\n newConfig.headers = headers = AxiosHeaders.from(headers);\n\n newConfig.url = buildURL(buildFullPath(newConfig.baseURL, newConfig.url, newConfig.allowAbsoluteUrls), config.params, config.paramsSerializer);\n\n // HTTP basic authentication\n if (auth) {\n headers.set('Authorization', 'Basic ' +\n btoa((auth.username || '') + ':' + (auth.password ? unescape(encodeURIComponent(auth.password)) : ''))\n );\n }\n\n if (utils.isFormData(data)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n headers.setContentType(undefined); // browser handles it\n } else if (utils.isFunction(data.getHeaders)) {\n // Node.js FormData (like form-data package)\n const formHeaders = data.getHeaders();\n // Only set safe headers to avoid overwriting security headers\n const allowedHeaders = ['content-type', 'content-length'];\n Object.entries(formHeaders).forEach(([key, val]) => {\n if (allowedHeaders.includes(key.toLowerCase())) {\n headers.set(key, val);\n }\n });\n }\n } \n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n if (platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(newConfig));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(newConfig.url))) {\n // Add xsrf header\n const xsrfValue = xsrfHeaderName && xsrfCookieName && cookies.read(xsrfCookieName);\n\n if (xsrfValue) {\n headers.set(xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n return newConfig;\n}\n\n","import utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport {progressEventReducer} from '../helpers/progressEventReducer.js';\nimport resolveConfig from \"../helpers/resolveConfig.js\";\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n const _config = resolveConfig(config);\n let requestData = _config.data;\n const requestHeaders = AxiosHeaders.from(_config.headers).normalize();\n let {responseType, onUploadProgress, onDownloadProgress} = _config;\n let onCanceled;\n let uploadThrottled, downloadThrottled;\n let flushUpload, flushDownload;\n\n function done() {\n flushUpload && flushUpload(); // flush events\n flushDownload && flushDownload(); // flush events\n\n _config.cancelToken && _config.cancelToken.unsubscribe(onCanceled);\n\n _config.signal && _config.signal.removeEventListener('abort', onCanceled);\n }\n\n let request = new XMLHttpRequest();\n\n request.open(_config.method.toUpperCase(), _config.url, true);\n\n // Set the request timeout in MS\n request.timeout = _config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError(event) {\n // Browsers deliver a ProgressEvent in XHR onerror\n // (message may be empty; when present, surface it)\n // See https://developer.mozilla.org/docs/Web/API/XMLHttpRequest/error_event\n const msg = event && event.message ? event.message : 'Network Error';\n const err = new AxiosError(msg, AxiosError.ERR_NETWORK, config, request);\n // attach the underlying event for consumers who want details\n err.event = event || null;\n reject(err);\n request = null;\n };\n \n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = _config.timeout ? 'timeout of ' + _config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = _config.transitional || transitionalDefaults;\n if (_config.timeoutErrorMessage) {\n timeoutErrorMessage = _config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(_config.withCredentials)) {\n request.withCredentials = !!_config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = _config.responseType;\n }\n\n // Handle progress if needed\n if (onDownloadProgress) {\n ([downloadThrottled, flushDownload] = progressEventReducer(onDownloadProgress, true));\n request.addEventListener('progress', downloadThrottled);\n }\n\n // Not all browsers support upload events\n if (onUploadProgress && request.upload) {\n ([uploadThrottled, flushUpload] = progressEventReducer(onUploadProgress));\n\n request.upload.addEventListener('progress', uploadThrottled);\n\n request.upload.addEventListener('loadend', flushUpload);\n }\n\n if (_config.cancelToken || _config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n _config.cancelToken && _config.cancelToken.subscribe(onCanceled);\n if (_config.signal) {\n _config.signal.aborted ? onCanceled() : _config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(_config.url);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import CanceledError from \"../cancel/CanceledError.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport utils from '../utils.js';\n\nconst composeSignals = (signals, timeout) => {\n const {length} = (signals = signals ? signals.filter(Boolean) : []);\n\n if (timeout || length) {\n let controller = new AbortController();\n\n let aborted;\n\n const onabort = function (reason) {\n if (!aborted) {\n aborted = true;\n unsubscribe();\n const err = reason instanceof Error ? reason : this.reason;\n controller.abort(err instanceof AxiosError ? err : new CanceledError(err instanceof Error ? err.message : err));\n }\n }\n\n let timer = timeout && setTimeout(() => {\n timer = null;\n onabort(new AxiosError(`timeout ${timeout} of ms exceeded`, AxiosError.ETIMEDOUT))\n }, timeout)\n\n const unsubscribe = () => {\n if (signals) {\n timer && clearTimeout(timer);\n timer = null;\n signals.forEach(signal => {\n signal.unsubscribe ? signal.unsubscribe(onabort) : signal.removeEventListener('abort', onabort);\n });\n signals = null;\n }\n }\n\n signals.forEach((signal) => signal.addEventListener('abort', onabort));\n\n const {signal} = controller;\n\n signal.unsubscribe = () => utils.asap(unsubscribe);\n\n return signal;\n }\n}\n\nexport default composeSignals;\n","\nexport const streamChunk = function* (chunk, chunkSize) {\n let len = chunk.byteLength;\n\n if (!chunkSize || len < chunkSize) {\n yield chunk;\n return;\n }\n\n let pos = 0;\n let end;\n\n while (pos < len) {\n end = pos + chunkSize;\n yield chunk.slice(pos, end);\n pos = end;\n }\n}\n\nexport const readBytes = async function* (iterable, chunkSize) {\n for await (const chunk of readStream(iterable)) {\n yield* streamChunk(chunk, chunkSize);\n }\n}\n\nconst readStream = async function* (stream) {\n if (stream[Symbol.asyncIterator]) {\n yield* stream;\n return;\n }\n\n const reader = stream.getReader();\n try {\n for (;;) {\n const {done, value} = await reader.read();\n if (done) {\n break;\n }\n yield value;\n }\n } finally {\n await reader.cancel();\n }\n}\n\nexport const trackStream = (stream, chunkSize, onProgress, onFinish) => {\n const iterator = readBytes(stream, chunkSize);\n\n let bytes = 0;\n let done;\n let _onFinish = (e) => {\n if (!done) {\n done = true;\n onFinish && onFinish(e);\n }\n }\n\n return new ReadableStream({\n async pull(controller) {\n try {\n const {done, value} = await iterator.next();\n\n if (done) {\n _onFinish();\n controller.close();\n return;\n }\n\n let len = value.byteLength;\n if (onProgress) {\n let loadedBytes = bytes += len;\n onProgress(loadedBytes);\n }\n controller.enqueue(new Uint8Array(value));\n } catch (err) {\n _onFinish(err);\n throw err;\n }\n },\n cancel(reason) {\n _onFinish(reason);\n return iterator.return();\n }\n }, {\n highWaterMark: 2\n })\n}\n","import platform from \"../platform/index.js\";\nimport utils from \"../utils.js\";\nimport AxiosError from \"../core/AxiosError.js\";\nimport composeSignals from \"../helpers/composeSignals.js\";\nimport {trackStream} from \"../helpers/trackStream.js\";\nimport AxiosHeaders from \"../core/AxiosHeaders.js\";\nimport {progressEventReducer, progressEventDecorator, asyncDecorator} from \"../helpers/progressEventReducer.js\";\nimport resolveConfig from \"../helpers/resolveConfig.js\";\nimport settle from \"../core/settle.js\";\n\nconst DEFAULT_CHUNK_SIZE = 64 * 1024;\n\nconst {isFunction} = utils;\n\nconst globalFetchAPI = (({Request, Response}) => ({\n Request, Response\n}))(utils.global);\n\nconst {\n ReadableStream, TextEncoder\n} = utils.global;\n\n\nconst test = (fn, ...args) => {\n try {\n return !!fn(...args);\n } catch (e) {\n return false\n }\n}\n\nconst factory = (env) => {\n env = utils.merge.call({\n skipUndefined: true\n }, globalFetchAPI, env);\n\n const {fetch: envFetch, Request, Response} = env;\n const isFetchSupported = envFetch ? isFunction(envFetch) : typeof fetch === 'function';\n const isRequestSupported = isFunction(Request);\n const isResponseSupported = isFunction(Response);\n\n if (!isFetchSupported) {\n return false;\n }\n\n const isReadableStreamSupported = isFetchSupported && isFunction(ReadableStream);\n\n const encodeText = isFetchSupported && (typeof TextEncoder === 'function' ?\n ((encoder) => (str) => encoder.encode(str))(new TextEncoder()) :\n async (str) => new Uint8Array(await new Request(str).arrayBuffer())\n );\n\n const supportsRequestStream = isRequestSupported && isReadableStreamSupported && test(() => {\n let duplexAccessed = false;\n\n const hasContentType = new Request(platform.origin, {\n body: new ReadableStream(),\n method: 'POST',\n get duplex() {\n duplexAccessed = true;\n return 'half';\n },\n }).headers.has('Content-Type');\n\n return duplexAccessed && !hasContentType;\n });\n\n const supportsResponseStream = isResponseSupported && isReadableStreamSupported &&\n test(() => utils.isReadableStream(new Response('').body));\n\n const resolvers = {\n stream: supportsResponseStream && ((res) => res.body)\n };\n\n isFetchSupported && ((() => {\n ['text', 'arrayBuffer', 'blob', 'formData', 'stream'].forEach(type => {\n !resolvers[type] && (resolvers[type] = (res, config) => {\n let method = res && res[type];\n\n if (method) {\n return method.call(res);\n }\n\n throw new AxiosError(`Response type '${type}' is not supported`, AxiosError.ERR_NOT_SUPPORT, config);\n })\n });\n })());\n\n const getBodyLength = async (body) => {\n if (body == null) {\n return 0;\n }\n\n if (utils.isBlob(body)) {\n return body.size;\n }\n\n if (utils.isSpecCompliantForm(body)) {\n const _request = new Request(platform.origin, {\n method: 'POST',\n body,\n });\n return (await _request.arrayBuffer()).byteLength;\n }\n\n if (utils.isArrayBufferView(body) || utils.isArrayBuffer(body)) {\n return body.byteLength;\n }\n\n if (utils.isURLSearchParams(body)) {\n body = body + '';\n }\n\n if (utils.isString(body)) {\n return (await encodeText(body)).byteLength;\n }\n }\n\n const resolveBodyLength = async (headers, body) => {\n const length = utils.toFiniteNumber(headers.getContentLength());\n\n return length == null ? getBodyLength(body) : length;\n }\n\n return async (config) => {\n let {\n url,\n method,\n data,\n signal,\n cancelToken,\n timeout,\n onDownloadProgress,\n onUploadProgress,\n responseType,\n headers,\n withCredentials = 'same-origin',\n fetchOptions\n } = resolveConfig(config);\n\n let _fetch = envFetch || fetch;\n\n responseType = responseType ? (responseType + '').toLowerCase() : 'text';\n\n let composedSignal = composeSignals([signal, cancelToken && cancelToken.toAbortSignal()], timeout);\n\n let request = null;\n\n const unsubscribe = composedSignal && composedSignal.unsubscribe && (() => {\n composedSignal.unsubscribe();\n });\n\n let requestContentLength;\n\n try {\n if (\n onUploadProgress && supportsRequestStream && method !== 'get' && method !== 'head' &&\n (requestContentLength = await resolveBodyLength(headers, data)) !== 0\n ) {\n let _request = new Request(url, {\n method: 'POST',\n body: data,\n duplex: \"half\"\n });\n\n let contentTypeHeader;\n\n if (utils.isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {\n headers.setContentType(contentTypeHeader)\n }\n\n if (_request.body) {\n const [onProgress, flush] = progressEventDecorator(\n requestContentLength,\n progressEventReducer(asyncDecorator(onUploadProgress))\n );\n\n data = trackStream(_request.body, DEFAULT_CHUNK_SIZE, onProgress, flush);\n }\n }\n\n if (!utils.isString(withCredentials)) {\n withCredentials = withCredentials ? 'include' : 'omit';\n }\n\n // Cloudflare Workers throws when credentials are defined\n // see https://github.com/cloudflare/workerd/issues/902\n const isCredentialsSupported = isRequestSupported && \"credentials\" in Request.prototype;\n\n const resolvedOptions = {\n ...fetchOptions,\n signal: composedSignal,\n method: method.toUpperCase(),\n headers: headers.normalize().toJSON(),\n body: data,\n duplex: \"half\",\n credentials: isCredentialsSupported ? withCredentials : undefined\n };\n\n request = isRequestSupported && new Request(url, resolvedOptions);\n\n let response = await (isRequestSupported ? _fetch(request, fetchOptions) : _fetch(url, resolvedOptions));\n\n const isStreamResponse = supportsResponseStream && (responseType === 'stream' || responseType === 'response');\n\n if (supportsResponseStream && (onDownloadProgress || (isStreamResponse && unsubscribe))) {\n const options = {};\n\n ['status', 'statusText', 'headers'].forEach(prop => {\n options[prop] = response[prop];\n });\n\n const responseContentLength = utils.toFiniteNumber(response.headers.get('content-length'));\n\n const [onProgress, flush] = onDownloadProgress && progressEventDecorator(\n responseContentLength,\n progressEventReducer(asyncDecorator(onDownloadProgress), true)\n ) || [];\n\n response = new Response(\n trackStream(response.body, DEFAULT_CHUNK_SIZE, onProgress, () => {\n flush && flush();\n unsubscribe && unsubscribe();\n }),\n options\n );\n }\n\n responseType = responseType || 'text';\n\n let responseData = await resolvers[utils.findKey(resolvers, responseType) || 'text'](response, config);\n\n !isStreamResponse && unsubscribe && unsubscribe();\n\n return await new Promise((resolve, reject) => {\n settle(resolve, reject, {\n data: responseData,\n headers: AxiosHeaders.from(response.headers),\n status: response.status,\n statusText: response.statusText,\n config,\n request\n })\n })\n } catch (err) {\n unsubscribe && unsubscribe();\n\n if (err && err.name === 'TypeError' && /Load failed|fetch/i.test(err.message)) {\n throw Object.assign(\n new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request),\n {\n cause: err.cause || err\n }\n )\n }\n\n throw AxiosError.from(err, err && err.code, config, request);\n }\n }\n}\n\nconst seedCache = new Map();\n\nexport const getFetch = (config) => {\n let env = config ? config.env : {};\n const {fetch, Request, Response} = env;\n const seeds = [\n Request, Response, fetch\n ];\n\n let len = seeds.length, i = len,\n seed, target, map = seedCache;\n\n while (i--) {\n seed = seeds[i];\n target = map.get(seed);\n\n target === undefined && map.set(seed, target = (i ? new Map() : factory(env)))\n\n map = target;\n }\n\n return target;\n};\n\nconst adapter = getFetch();\n\nexport default adapter;\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport * as fetchAdapter from './fetch.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter,\n fetch: {\n get: fetchAdapter.getFetch,\n }\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters, config) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter && (utils.isFunction(adapter) || (adapter = adapter.get(config)))) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter, config);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\nvalidators.spelling = function spelling(correctSpelling) {\n return (value, opt) => {\n // eslint-disable-next-line no-console\n console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);\n return true;\n }\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig || {};\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy = {};\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n try {\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n } catch (e) {\n // ignore the case where \"stack\" is an un-writable property\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.allowAbsoluteUrls\n if (config.allowAbsoluteUrls !== undefined) {\n // do nothing\n } else if (this.defaults.allowAbsoluteUrls !== undefined) {\n config.allowAbsoluteUrls = this.defaults.allowAbsoluteUrls;\n } else {\n config.allowAbsoluteUrls = true;\n }\n\n validator.assertOptions(config, {\n baseUrl: validators.spelling('baseURL'),\n withXsrfToken: validators.spelling('withXSRFToken')\n }, true);\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift(...requestInterceptorChain);\n chain.push(...responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url, config.allowAbsoluteUrls);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n toAbortSignal() {\n const controller = new AbortController();\n\n const abort = (err) => {\n controller.abort(err);\n };\n\n this.subscribe(abort);\n\n controller.signal.unsubscribe = () => this.unsubscribe(abort);\n\n return controller.signal;\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","import axios from './lib/axios.js';\n\n// This module is intended to unwrap Axios default export as named.\n// Keep top-level export same with static properties\n// so that it can keep same with es module or cjs\nconst {\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n} = axios;\n\nexport {\n axios as default,\n Axios,\n AxiosError,\n CanceledError,\n isCancel,\n CancelToken,\n VERSION,\n all,\n Cancel,\n isAxiosError,\n spread,\n toFormData,\n AxiosHeaders,\n HttpStatusCode,\n formToJSON,\n getAdapter,\n mergeConfig\n}\n","/**\n * Payment Manager for ChaosChain SDK\n *\n * This module manages traditional and crypto payment processing,\n * supporting multiple payment methods (cards, Google Pay, Apple Pay, PayPal, crypto).\n */\n\nimport { ethers } from 'ethers';\nimport axios from 'axios';\n// import { PaymentError } from './exceptions';\nimport { NetworkConfig } from './types';\n\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\n\nexport interface TraditionalPaymentRequest {\n payment_method: PaymentMethod;\n amount: number;\n currency: string;\n payment_data: Record<string, any>;\n description: string;\n}\n\nexport interface TraditionalPaymentResult {\n payment_id: string;\n transaction_id: string;\n status: string;\n amount: number;\n currency: string;\n payment_method: PaymentMethod;\n timestamp: string;\n processor_response?: Record<string, any>;\n}\n\nexport interface PaymentMethodCredentials {\n stripe_secret_key?: string;\n google_pay_merchant_id?: string;\n apple_pay_merchant_id?: string;\n paypal_client_id?: string;\n paypal_client_secret?: string;\n}\n\n/**\n * Payment Manager - handles all payment types\n * \n * Supports:\n * - Basic card payments (Visa, Mastercard via Stripe)\n * - Google Pay\n * - Apple Pay\n * - PayPal\n * - Cryptocurrency (via x402 protocol)\n */\nexport class PaymentManager {\n private agentName: string;\n private network: NetworkConfig;\n private wallet: ethers.Wallet;\n private credentials: PaymentMethodCredentials;\n private stripeAxiosInstance?: axios.AxiosInstance;\n private paypalAccessToken?: string;\n\n constructor(\n agentName: string,\n network: NetworkConfig,\n wallet: ethers.Wallet,\n credentials: PaymentMethodCredentials = {}\n ) {\n this.agentName = agentName;\n this.network = network;\n this.wallet = wallet;\n this.credentials = credentials;\n\n // Initialize Stripe if API key provided\n if (credentials.stripe_secret_key) {\n this.stripeAxiosInstance = axios.create({\n baseURL: 'https://api.stripe.com/v1',\n headers: {\n Authorization: `Bearer ${credentials.stripe_secret_key}`,\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n });\n console.log('✅ Stripe integration enabled');\n }\n\n // Initialize PayPal if credentials provided\n if (credentials.paypal_client_id && credentials.paypal_client_secret) {\n this.initializePayPal().catch(console.error);\n }\n\n console.log(`💳 Payment Manager initialized for ${agentName}`);\n }\n\n /**\n * Initialize PayPal OAuth access token\n */\n private async initializePayPal(): Promise<void> {\n try {\n const auth = Buffer.from(\n `${this.credentials.paypal_client_id}:${this.credentials.paypal_client_secret}`\n ).toString('base64');\n\n const response = await axios.post(\n 'https://api-m.sandbox.paypal.com/v1/oauth2/token',\n 'grant_type=client_credentials',\n {\n headers: {\n Authorization: `Basic ${auth}`,\n 'Content-Type': 'application/x-www-form-urlencoded'\n }\n }\n );\n\n this.paypalAccessToken = response.data.access_token;\n console.log('✅ PayPal integration enabled');\n } catch (e) {\n console.error('❌ Failed to initialize PayPal:', e);\n }\n }\n\n /**\n * Execute traditional payment (cards, wallets, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData_unused: Record<string, any>\n ): TraditionalPaymentResult {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Route to appropriate payment processor\n switch (paymentMethod) {\n case PaymentMethod.BASIC_CARD:\n return this.processBasicCard(amount, currency, paymentData);\n\n case PaymentMethod.GOOGLE_PAY:\n return this.processGooglePay(amount, currency, paymentData);\n\n case PaymentMethod.APPLE_PAY:\n return this.processApplePay(amount, currency, paymentData);\n\n case PaymentMethod.PAYPAL:\n return this.processPayPal(amount, currency, paymentData);\n\n case PaymentMethod.A2A_X402:\n return this.processA2AX402(amount, currency, paymentData);\n\n default:\n throw new PaymentError(`Unsupported payment method: ${paymentMethod}`);\n }\n }\n\n /**\n * Process Basic Card payment (Visa, Mastercard, Amex, etc.) via Stripe\n */\n private processBasicCard(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('💳 Processing Basic Card via Stripe...');\n\n // Check if Stripe is configured\n if (!this.stripeAxiosInstance) {\n console.warn('⚠️ Stripe not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n }\n\n try {\n // In production, create Stripe Payment Intent\n // const response = await this.stripeAxiosInstance.post('/payment_intents', {\n // amount: Math.round(amount * 100), // Stripe uses cents\n // currency: currency.toLowerCase(),\n // payment_method_types: ['card'],\n // description: `Payment for ${this.agentName}`\n // });\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n } catch (e) {\n throw new PaymentError(`Basic card payment failed: ${e}`);\n }\n }\n\n /**\n * Process Google Pay payment\n */\n private processGooglePay(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🅶 Processing Google Pay...');\n\n // Check if Google Pay is configured\n if (!this.credentials.google_pay_merchant_id) {\n console.warn('⚠️ Google Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n // In production, verify Google Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n /**\n * Process Apple Pay payment\n */\n private processApplePay(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🍎 Processing Apple Pay...');\n\n // Check if Apple Pay is configured\n if (!this.credentials.apple_pay_merchant_id) {\n console.warn('⚠️ Apple Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n // In production, verify Apple Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, decrypt, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n /**\n * Process PayPal payment\n */\n private processPayPal(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('💙 Processing PayPal...');\n\n // Check if PayPal is configured\n if (!this.paypalAccessToken) {\n console.warn('⚠️ PayPal not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n }\n\n try {\n // In production, create PayPal order and execute\n // const response = await axios.post(\n // 'https://api-m.sandbox.paypal.com/v2/checkout/orders',\n // {\n // intent: 'CAPTURE',\n // purchase_units: [{\n // amount: { currency_code: currency, value: amount.toString() }\n // }]\n // },\n // {\n // headers: {\n // Authorization: `Bearer ${this.paypalAccessToken}`,\n // 'Content-Type': 'application/json'\n // }\n // }\n // );\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n } catch (e) {\n throw new PaymentError(`PayPal payment failed: ${e}`);\n }\n }\n\n /**\n * Process A2A-x402 crypto payment\n */\n private processA2AX402(amount: number, currency: string, paymentData_unused: Record<string, any>): TraditionalPaymentResult {\n console.log('🔗 Processing A2A-x402 crypto payment...');\n\n // Crypto payments are handled by X402PaymentManager\n // This just creates a result showing it was routed to crypto\n const paymentId = `a2a_x402_${Date.now().toString(36)}`;\n\n return {\n payment_id: paymentId,\n transaction_id: paymentData.transaction_hash || `crypto_tx_${paymentId}`,\n status: 'pending_crypto_confirmation',\n amount,\n currency,\n payment_method: PaymentMethod.A2A_X402,\n timestamp: new Date().toISOString(),\n processor_response: {\n network: this.network,\n settlement_type: 'crypto',\n requires_blockchain_confirmation: true\n }\n };\n }\n\n /**\n * Simulate traditional payment (for testing/fallback)\n */\n private simulateTraditionalPayment(\n method: PaymentMethod,\n amount: number,\n currency: string\n ): TraditionalPaymentResult {\n const paymentId = `sim_${method}_${Date.now().toString(36)}`;\n const transactionId = `txn_${paymentId}`;\n\n console.log(`🔄 Simulating ${method} payment`);\n\n return {\n payment_id: paymentId,\n transaction_id: transactionId,\n status: 'completed',\n amount,\n currency,\n payment_method: method,\n timestamp: new Date().toISOString(),\n processor_response: {\n simulation: true,\n authorization_code: `AUTH_${Math.random().toString(36).substring(2, 10).toUpperCase()}`,\n network: method === PaymentMethod.BASIC_CARD ? 'visa' : method,\n last4: method === PaymentMethod.BASIC_CARD ? '4242' : undefined\n }\n };\n }\n\n /**\n * Get payment method configuration status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n return {\n [PaymentMethod.BASIC_CARD]: !!this.credentials.stripe_secret_key,\n [PaymentMethod.GOOGLE_PAY]: !!this.credentials.google_pay_merchant_id,\n [PaymentMethod.APPLE_PAY]: !!this.credentials.apple_pay_merchant_id,\n [PaymentMethod.PAYPAL]: !!this.paypalAccessToken,\n [PaymentMethod.A2A_X402]: true // Always available via wallet\n };\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n const status = this.getPaymentMethodsStatus();\n return Object.entries(status)\n .filter(([_, enabled]) => enabled)\n .map(([method, _]) => method as PaymentMethod);\n }\n\n /**\n * Validate payment method credentials\n */\n async validateCredentials(): Promise<Record<string, boolean>> {\n const results: Record<string, boolean> = {};\n\n // Test Stripe\n if (this.credentials.stripe_secret_key) {\n try {\n await this.stripeAxiosInstance!.get('/balance');\n results.stripe = true;\n } catch (e) {\n results.stripe = false;\n }\n }\n\n // Test PayPal\n if (this.credentials.paypal_client_id) {\n results.paypal = !!this.paypalAccessToken;\n }\n\n // Google Pay and Apple Pay don't have API validation (merchant IDs are validated during checkout)\n results.google_pay = !!this.credentials.google_pay_merchant_id;\n results.apple_pay = !!this.credentials.apple_pay_merchant_id;\n\n // Crypto is always valid if we have a wallet\n results.crypto = !!this.wallet;\n\n return results;\n }\n\n /**\n * Create x402 payment request (for crypto payments)\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string,\n serviceDescription: string\n ): Record<string, any> {\n return {\n payment_id: `x402_${Date.now().toString(36)}`,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: amount * 0.025, // 2.5% ChaosChain fee\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Execute x402 crypto payment (delegated to X402PaymentManager)\n */\n executeX402Payment(paymentRequest: Record<string, any>): Record<string, any> {\n // This is a placeholder - actual implementation is in X402PaymentManager\n const transactionHash = `0x${Math.random().toString(16).substring(2, 66)}`;\n\n return {\n payment_id: paymentRequest.payment_id,\n transaction_hash: transactionHash,\n status: 'confirmed',\n timestamp: new Date(),\n network: this.network,\n from_address: this.wallet.address,\n to_address: paymentRequest.to_agent\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n agent_name: this.agentName,\n network: this.network,\n wallet_address: this.wallet.address,\n supported_methods: this.getSupportedPaymentMethods().length,\n payment_methods_status: this.getPaymentMethodsStatus(),\n features: {\n traditional_payments: true,\n crypto_payments: true,\n multi_currency: true,\n instant_settlement: true\n }\n };\n }\n}\n\n","/**\n * X402 Paywall Server for ChaosChain SDK\n *\n * This module implements an HTTP 402 paywall server for protecting API endpoints\n * with cryptocurrency payments.\n */\n\nimport * as http from 'http';\nimport { X402PaymentManager, X402PaymentProof } from './X402PaymentManager';\n// import { PaymentError } from './exceptions';\n\nexport interface X402EndpointConfig {\n path: string;\n amount: number;\n currency: string;\n description: string;\n handler: (data: any) => any;\n}\n\nexport interface X402PaywallConfig {\n port: number;\n host?: string;\n defaultCurrency?: string;\n}\n\n/**\n * X402 Paywall Server - HTTP 402 payment-protected API\n * \n * Features:\n * - HTTP 402 Payment Required responses\n * - Automatic payment verification\n * - Per-endpoint payment requirements\n * - Payment receipt generation\n */\nexport class X402Server {\n private paymentManager: X402PaymentManager;\n private server: http.Server | null = null;\n private endpoints: Map<string, X402EndpointConfig> = new Map();\n private paymentCache: Map<string, X402PaymentProof> = new Map();\n private config: Required<X402PaywallConfig>;\n\n constructor(paymentManager: X402PaymentManager, config: X402PaywallConfig) {\n this.paymentManager = paymentManager;\n this.config = {\n port: config.port,\n host: config.host || '0.0.0.0',\n defaultCurrency: config.defaultCurrency || 'USDC'\n };\n\n console.log(`🔒 X402 Paywall Server initialized on port ${this.config.port}`);\n }\n\n /**\n * Register a payment-protected endpoint\n */\n requirePayment(amount: number, description: string, currency?: string) {\n return (handler: (data: any) => any) => {\n const path = `/${handler.name || 'endpoint'}`;\n\n const endpointConfig: X402EndpointConfig = {\n path,\n amount,\n currency: currency || this.config.defaultCurrency,\n description,\n handler\n };\n\n this.endpoints.set(path, endpointConfig);\n console.log(`💰 Registered paywall endpoint: ${path} (${amount} ${currency || this.config.defaultCurrency})`);\n\n return handler;\n };\n }\n\n /**\n * Start the HTTP 402 server\n */\n start(): void {\n if (this.server) {\n console.warn('⚠️ Server already running');\n return;\n }\n\n this.server = http.createServer((req, res) => {\n this.handleRequest(req, res).catch((error) => {\n console.error('❌ Request handler error:', error);\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Internal server error' }));\n });\n });\n\n this.server.listen(this.config.port, this.config.host, () => {\n console.log(`🚀 X402 Paywall Server running at http://${this.config.host}:${this.config.port}`);\n console.log(`📋 Registered endpoints: ${this.endpoints.size}`);\n this.endpoints.forEach((config, path) => {\n console.log(` - ${path}: ${config.amount} ${config.currency} - ${config.description}`);\n });\n });\n }\n\n /**\n * Stop the server\n */\n stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n this.server.close((err) => {\n if (err) {\n reject(err);\n } else {\n console.log('🛑 X402 Paywall Server stopped');\n this.server = null;\n resolve();\n }\n });\n });\n }\n\n /**\n * Handle incoming HTTP requests\n */\n private async handleRequest(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {\n const url = new URL(req.url || '/', `http://${req.headers.host}`);\n const path = url.pathname;\n\n // Check if endpoint exists\n const endpointConfig = this.endpoints.get(path);\n if (!endpointConfig) {\n res.writeHead(404, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Endpoint not found' }));\n return;\n }\n\n // Check for X-PAYMENT header (official x402 spec)\n const xPaymentHeader = req.headers['x-payment'] as string;\n\n if (!xPaymentHeader) {\n // No payment provided - return 402 with payment requirements\n this.sendPaymentRequired(res, endpointConfig);\n return;\n }\n\n // Verify payment (X-PAYMENT header contains base64 encoded JSON payload)\n const isValidPayment = await this.verifyPayment(xPaymentHeader, endpointConfig);\n\n if (!isValidPayment) {\n res.writeHead(402, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Invalid or insufficient payment' }));\n return;\n }\n\n // Payment verified - execute endpoint\n try {\n // Parse request body\n let requestData: any = {};\n if (req.method === 'POST' || req.method === 'PUT') {\n const chunks: Buffer[] = [];\n req.on('data', (chunk) => chunks.push(chunk));\n await new Promise((resolve) => req.on('end', resolve));\n const body = Buffer.concat(chunks).toString();\n requestData = body ? JSON.parse(body) : {};\n }\n\n // Execute handler\n const result = await endpointConfig.handler(requestData);\n\n // Send response\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ success: true, data: result }));\n } catch (error: any) {\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: error.message }));\n }\n }\n\n /**\n * Send HTTP 402 Payment Required response\n * Official x402 spec: https://github.com/coinbase/x402\n */\n private sendPaymentRequired(res: http.ServerResponse, endpointConfig: X402EndpointConfig): void {\n const paymentRequirements = this.paymentManager.createPaymentRequirements(\n endpointConfig.amount,\n endpointConfig.currency,\n endpointConfig.description\n );\n\n // Official x402 402 response structure\n const response = {\n x402Version: 1,\n accepts: [paymentRequirements], // Array of acceptable payment requirements\n error: 'Payment Required'\n };\n\n res.writeHead(402, {\n 'Content-Type': 'application/json'\n });\n\n res.end(JSON.stringify(response));\n }\n\n /**\n * Verify payment from X-PAYMENT header\n * Spec: X-PAYMENT contains base64 encoded JSON with:\n * { x402Version: number, scheme: string, network: string, payload: <scheme-specific> }\n */\n private async verifyPayment(xPaymentHeader: string, endpointConfig: X402EndpointConfig): Promise<boolean> {\n try {\n // Decode base64 X-PAYMENT header\n const paymentPayloadJson = Buffer.from(xPaymentHeader, 'base64').toString('utf-8');\n const paymentPayload = JSON.parse(paymentPayloadJson);\n\n // Validate x402 version\n if (paymentPayload.x402Version !== 1) {\n console.error(`❌ Unsupported x402 version: ${paymentPayload.x402Version}`);\n return false;\n }\n\n // Validate scheme\n if (paymentPayload.scheme !== 'exact') {\n console.error(`❌ Unsupported payment scheme: ${paymentPayload.scheme}`);\n return false;\n }\n\n // Extract transaction hash from payload (scheme-specific)\n // For \"exact\" scheme on EVM, payload should contain transaction details\n const txHash = paymentPayload.payload?.transactionHash || paymentPayload.payload?.txHash;\n\n if (!txHash) {\n console.error(`❌ No transaction hash in payment payload`);\n return false;\n }\n\n // Check cache first\n const cachedPayment = this.paymentCache.get(txHash);\n if (cachedPayment) {\n console.log(`✅ Payment verified from cache: ${txHash}`);\n return true;\n }\n\n // Verify payment on-chain\n const mockProof: X402PaymentProof = {\n payment_id: txHash,\n transaction_hash: txHash,\n main_transaction_hash: txHash,\n from_address: '0x0000000000000000000000000000000000000000',\n to_address: '0x0000000000000000000000000000000000000000',\n treasury_address: '0x0000000000000000000000000000000000000000',\n amount: endpointConfig.amount,\n currency: endpointConfig.currency,\n protocol_fee: 0,\n network: 'base-sepolia' as any,\n chain_id: 84532,\n timestamp: new Date(),\n status: 'confirmed',\n confirmations: 1\n };\n\n const isValid = await this.paymentManager.verifyPayment(mockProof);\n if (isValid) {\n // Cache the payment\n this.paymentCache.set(txHash, mockProof);\n console.log(`✅ Payment verified on-chain: ${txHash}`);\n return true;\n }\n\n console.error(`❌ Payment verification failed: ${txHash}`);\n return false;\n } catch (error) {\n console.error(`❌ Payment verification error: ${error}`);\n return false;\n }\n }\n\n /**\n * Get server statistics\n */\n getServerStats(): Record<string, any> {\n return {\n running: !!this.server,\n port: this.config.port,\n host: this.config.host,\n endpoints: Array.from(this.endpoints.entries()).map(([path, config]) => ({\n path,\n amount: config.amount,\n currency: config.currency,\n description: config.description\n })),\n payments_cached: this.paymentCache.size,\n default_currency: this.config.defaultCurrency\n };\n }\n\n /**\n * Clear payment cache\n */\n clearPaymentCache(): void {\n this.paymentCache.clear();\n console.log('🗑️ Payment cache cleared');\n }\n}\n\n","/**\n * Google AP2 Integration for ChaosChain SDK\n *\n * This module integrates Google's official AP2 types with the ChaosChain protocol,\n * providing real AP2 intent verification and mandate management.\n */\n\nimport * as crypto from 'crypto';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as jose from 'jose';\nimport { ConfigurationError, PaymentError } from './exceptions';\n\nexport interface IntentMandate {\n user_cart_confirmation_required: boolean;\n natural_language_description: string;\n merchants?: string[];\n skus?: string[];\n requires_refundability: boolean;\n intent_expiry: string;\n}\n\nexport interface CartMandate {\n contents: CartContents;\n merchant_authorization: string;\n}\n\nexport interface CartContents {\n id: string;\n user_cart_confirmation_required: boolean;\n payment_request: PaymentRequest;\n cart_expiry: string;\n merchant_name: string;\n}\n\nexport interface PaymentRequest {\n method_data: PaymentMethodData[];\n details: PaymentDetailsInit;\n}\n\nexport interface PaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface PaymentDetailsInit {\n id: string;\n display_items: PaymentItem[];\n total: PaymentItem;\n}\n\nexport interface PaymentItem {\n label: string;\n amount: PaymentCurrencyAmount;\n}\n\nexport interface PaymentCurrencyAmount {\n currency: string;\n value: number | string;\n}\n\nexport interface GoogleAP2IntegrationResult {\n intent_mandate?: IntentMandate;\n cart_mandate?: CartMandate;\n payment_mandate?: any;\n jwt_token?: string;\n success: boolean;\n error?: string;\n}\n\n/**\n * Production Google AP2 integration for ChaosChain SDK\n * \n * This integrates Google's official AP2 library for real intent verification\n * and mandate management with production-grade security.\n */\nexport class GoogleAP2Integration {\n private agentName: string;\n private privateKey: crypto.KeyObject;\n private publicKey: string;\n private merchantPrivateKey: string;\n\n constructor(agentName: string, merchantPrivateKey?: string) {\n this.agentName = agentName;\n this.merchantPrivateKey = merchantPrivateKey || 'demo_private_key_123';\n\n // Generate or load RSA keypair for production JWT signing\n const keypair = this.getOrGenerateRsaKeypair();\n this.privateKey = keypair.privateKey;\n this.publicKey = keypair.publicKey;\n\n console.log(`✅ Google AP2 Integration initialized for ${agentName}`);\n }\n\n /**\n * Generate or load RSA keypair for production JWT signing\n */\n private getOrGenerateRsaKeypair(): { privateKey: crypto.KeyObject; publicKey: string } {\n const keyDir = path.join(process.cwd(), 'keys');\n const privateKeyPath = path.join(keyDir, `${this.agentName}_ap2_private.pem`);\n const publicKeyPath = path.join(keyDir, `${this.agentName}_ap2_public.pem`);\n\n // Create keys directory if it doesn't exist\n if (!fs.existsSync(keyDir)) {\n fs.mkdirSync(keyDir, { recursive: true });\n }\n\n // Try to load existing keys\n if (fs.existsSync(privateKeyPath) && fs.existsSync(publicKeyPath)) {\n try {\n const privateKeyPem = fs.readFileSync(privateKeyPath, 'utf-8');\n const publicKeyPem = fs.readFileSync(publicKeyPath, 'utf-8');\n\n const privateKey = crypto.createPrivateKey(privateKeyPem);\n console.log(`🔑 Loaded existing RSA keypair for ${this.agentName}`);\n\n return { privateKey, publicKey: publicKeyPem };\n } catch (e) {\n console.warn(`⚠️ Failed to load existing keys: ${e}`);\n }\n }\n\n // Generate new RSA keypair\n console.log(`🔑 Generating new RSA keypair for ${this.agentName}`);\n const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {\n modulusLength: 2048,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem'\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem'\n }\n });\n\n // Save keys to disk\n try {\n fs.writeFileSync(privateKeyPath, privateKey as string);\n fs.writeFileSync(publicKeyPath, publicKey);\n console.log(`💾 RSA keypair saved to ${keyDir}`);\n } catch (e) {\n console.warn(`⚠️ Failed to save keys: ${e}`);\n }\n\n return {\n privateKey: crypto.createPrivateKey(privateKey as string),\n publicKey: publicKey as string\n };\n }\n\n /**\n * Create an IntentMandate using Google's official AP2 types\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create IntentMandate using Google's types\n const intentMandate: IntentMandate = {\n user_cart_confirmation_required: true,\n natural_language_description: userDescription,\n merchants,\n skus,\n requires_refundability: requiresRefundability,\n intent_expiry: expiryTime.toISOString()\n };\n\n console.log(`📝 Created Google AP2 IntentMandate`);\n console.log(` Description: ${userDescription}`);\n console.log(` Expires: ${expiryTime.toISOString()}`);\n\n return {\n intent_mandate: intentMandate,\n success: true\n };\n } catch (e) {\n console.error(`❌ Failed to create IntentMandate: ${e}`);\n return {\n success: false,\n error: String(e)\n };\n }\n }\n\n /**\n * Create a CartMandate using Google's official AP2 types with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create PaymentItems using Google's types\n const paymentItems: PaymentItem[] = items.map((item) => ({\n label: item.name,\n amount: {\n currency,\n value: item.price\n }\n }));\n\n // Create total PaymentItem\n const totalItem: PaymentItem = {\n label: 'Total',\n amount: {\n currency,\n value: totalAmount\n }\n };\n\n // Create PaymentMethodData (supporting multiple methods)\n const methodData: PaymentMethodData[] = [\n {\n supported_methods: 'basic-card',\n data: { supportedNetworks: ['visa', 'mastercard'] }\n },\n {\n supported_methods: 'google-pay',\n data: { environment: 'TEST' }\n },\n {\n supported_methods: 'crypto',\n data: { supportedCurrencies: ['USDC', 'ETH'] }\n }\n ];\n\n // Create PaymentRequest\n const paymentRequest: PaymentRequest = {\n method_data: methodData,\n details: {\n id: `payment_${cartId}`,\n display_items: paymentItems,\n total: totalItem\n }\n };\n\n // Create CartContents\n const cartContents: CartContents = {\n id: cartId,\n user_cart_confirmation_required: true,\n payment_request: paymentRequest,\n cart_expiry: expiryTime.toISOString(),\n merchant_name: merchantName || this.agentName\n };\n\n // Create JWT for merchant authorization\n const jwtToken = await this.createMerchantJwt(cartContents);\n\n // Create CartMandate\n const cartMandate: CartMandate = {\n contents: cartContents,\n merchant_authorization: jwtToken\n };\n\n console.log(`🛒 Created Google AP2 CartMandate with JWT`);\n console.log(` Cart ID: ${cartId}`);\n console.log(` Items: ${items.length} items, Total: ${totalAmount} ${currency}`);\n console.log(` JWT: ${jwtToken.slice(0, 50)}...`);\n\n return {\n cart_mandate: cartMandate,\n jwt_token: jwtToken,\n success: true\n };\n } catch (e) {\n console.error(`❌ Failed to create CartMandate: ${e}`);\n return {\n success: false,\n error: String(e)\n };\n }\n }\n\n /**\n * Create a JWT token for merchant authorization as per Google's AP2 spec\n */\n private async createMerchantJwt(cartContents: CartContents): Promise<string> {\n // Create cart hash for integrity\n const cartJson = JSON.stringify(cartContents);\n const cartHash = crypto.createHash('sha256').update(cartJson).digest('hex');\n\n // JWT Payload\n const now = Math.floor(Date.now() / 1000);\n const payload = {\n iss: `did:chaoschain:${this.agentName}`, // Issuer (DID format)\n sub: cartContents.id, // Subject (cart ID)\n aud: 'chaoschain:payment_processor', // Audience\n iat: now, // Issued at\n exp: now + 15 * 60, // Expires (15 minutes)\n jti: `jwt_${cartContents.id}_${now}`, // JWT ID\n cart_hash: cartHash, // Cart integrity hash\n merchant_name: cartContents.merchant_name\n };\n\n // Create JWT with RSA256 signing\n const jwt = await new jose.SignJWT(payload)\n .setProtectedHeader({\n alg: 'RS256',\n kid: `did:chaoschain:${this.agentName}#key-1`\n })\n .sign(this.privateKey);\n\n return jwt;\n }\n\n /**\n * Verify a JWT token (for validation purposes)\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n try {\n // Get public key for verification\n const publicKey = crypto.createPublicKey(this.publicKey);\n\n // Decode and verify JWT with RSA256\n const { payload } = await jose.jwtVerify(token, publicKey, {\n algorithms: ['RS256'],\n audience: 'chaoschain:payment_processor'\n });\n\n console.log(`✅ JWT token verified successfully with RSA256`);\n return payload as Record<string, any>;\n } catch (e: any) {\n if (e.code === 'ERR_JWT_EXPIRED') {\n console.error(`❌ JWT token has expired`);\n } else if (e.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED') {\n console.error(`❌ JWT token has invalid audience`);\n } else {\n console.error(`❌ JWT token is invalid: ${e}`);\n }\n return {};\n }\n }\n\n /**\n * Get a summary of the Google AP2 integration capabilities\n */\n getIntegrationSummary(): Record<string, any> {\n return {\n integration_type: 'Google Official AP2',\n agent_name: this.agentName,\n supported_features: [\n 'IntentMandate creation with Google types',\n 'CartMandate creation with JWT signing',\n 'W3C PaymentRequest API compliance',\n 'Multi-payment method support',\n 'JWT-based merchant authorization',\n 'Proper expiry handling',\n 'Cart integrity verification'\n ],\n cryptographic_features: [\n 'JWT signing with RS256 (production)',\n 'Cart content hashing for integrity',\n 'Timestamp-based expiry',\n 'Replay attack prevention with JTI'\n ],\n compliance: ['Google AP2 Protocol', 'W3C Payment Request API', 'JWT RFC 7519', 'ISO 8601 timestamps']\n };\n }\n}\n\n","/**\n * A2A-x402 Extension Implementation for ChaosChain SDK\n *\n * This module implements Google's A2A-x402 extension for cryptocurrency payments,\n * enabling seamless crypto settlement within the AP2 framework.\n *\n * Based on: https://github.com/google-agentic-commerce/a2a-x402/blob/main/v0.1/spec.md\n */\n\nimport { NetworkConfig } from './types';\n\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\nimport { PaymentError } from './exceptions';\n\nexport interface X402PaymentMethod {\n supported_methods: string[];\n supported_networks: string[];\n payment_endpoint: string;\n verification_endpoint: string;\n method_data?: Record<string, any>;\n}\n\nexport interface W3CPaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface TraditionalPaymentResponse {\n payment_id: string;\n method: string;\n amount: number;\n currency: string;\n status: string;\n transaction_id?: string;\n authorization_code?: string;\n timestamp: string;\n receipt_data?: Record<string, any>;\n}\n\nexport interface X402PaymentRequest {\n id: string;\n total: Record<string, any>;\n display_items: Array<Record<string, any>>;\n x402_methods: X402PaymentMethod[];\n settlement_address: string;\n network: string;\n expires_at: string;\n}\n\nexport interface X402PaymentResponse {\n payment_id: string;\n transaction_hash: string;\n network: string;\n amount: number;\n currency: string;\n settlement_address: string;\n confirmation_blocks: number;\n status: string;\n timestamp: string;\n gas_fee?: number;\n protocol_fee?: number;\n}\n\n/**\n * A2A-x402 Extension for cryptocurrency payments within AP2 framework\n * \n * This class bridges Google's AP2 protocol with x402 crypto payments,\n * enabling seamless crypto settlement for agent-to-agent commerce.\n */\nexport class A2AX402Extension {\n private agentName: string;\n private network: NetworkConfig;\n private paymentManager: any;\n private supportedCryptoMethods: string[];\n private supportedNetworks: string[];\n private w3cPaymentMethods: W3CPaymentMethodData[];\n\n constructor(agentName: string, network: NetworkConfig, paymentManager: any) {\n this.agentName = agentName;\n this.network = network;\n this.paymentManager = paymentManager;\n\n // Supported payment methods (W3C compliant)\n this.supportedCryptoMethods = ['usdc', 'eth', 'native'];\n this.supportedNetworks = ['base-sepolia', 'ethereum-sepolia', 'optimism-sepolia'];\n\n // W3C Payment Request API compliant payment methods\n this.w3cPaymentMethods = this.initializeW3cPaymentMethods();\n\n console.log(`✅ A2A-x402 Extension initialized for ${agentName} on ${network}`);\n console.log(`💳 Multi-payment support: ${this.w3cPaymentMethods.length} methods available`);\n }\n\n /**\n * Initialize W3C Payment Request API compliant payment methods\n */\n private initializeW3cPaymentMethods(): W3CPaymentMethodData[] {\n const methods: W3CPaymentMethodData[] = [];\n\n // 1. Basic Card Support (Visa, Mastercard, Amex, etc.)\n methods.push({\n supported_methods: 'basic-card',\n data: {\n supportedNetworks: ['visa', 'mastercard', 'amex', 'discover'],\n supportedTypes: ['credit', 'debit']\n }\n });\n\n // 2. Google Pay\n methods.push({\n supported_methods: 'https://google.com/pay',\n data: {\n environment: 'PRODUCTION',\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA']\n }\n }\n ]\n }\n });\n\n // 3. Apple Pay\n methods.push({\n supported_methods: 'https://apple.com/apple-pay',\n data: {\n version: 3,\n merchantIdentifier: `merchant.chaoschain.${this.agentName.toLowerCase()}`,\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['visa', 'masterCard', 'amex', 'discover']\n }\n });\n\n // 4. ChaosChain Crypto Pay (our A2A-x402 implementation)\n methods.push({\n supported_methods: 'https://a2a.org/x402',\n data: {\n supportedCryptocurrencies: this.supportedCryptoMethods,\n supportedNetworks: this.supportedNetworks,\n settlementAddress: 'dynamic',\n protocolVersion: 'x402-v1.0'\n }\n });\n\n // 5. PayPal (for completeness)\n methods.push({\n supported_methods: 'https://paypal.com',\n data: {\n environment: 'sandbox',\n intent: 'capture'\n }\n });\n\n return methods;\n }\n\n /**\n * Create x402 payment method descriptor with W3C compliance\n */\n createX402PaymentMethod(settlementAddress: string): X402PaymentMethod {\n // Extract all W3C method identifiers\n const w3cMethods = this.w3cPaymentMethods.map((method) => method.supported_methods);\n\n return {\n supported_methods: w3cMethods,\n supported_networks: this.supportedNetworks,\n payment_endpoint: `x402://${this.agentName}.chaoschain.com/pay`,\n verification_endpoint: `https://${this.agentName}.chaoschain.com/verify`,\n method_data: {\n w3c_methods: this.w3cPaymentMethods.map((method) => ({\n supportedMethods: method.supported_methods,\n data: method.data\n })),\n crypto_settlement_address: settlementAddress\n }\n };\n }\n\n /**\n * Create enhanced payment request with x402 crypto support\n */\n createEnhancedPaymentRequest(\n cartId: string,\n totalAmount: number,\n currency: string,\n items: Array<Record<string, any>>,\n settlementAddress: string\n ): X402PaymentRequest {\n // Create x402 payment methods\n const x402Methods = [this.createX402PaymentMethod(settlementAddress)];\n\n // Create enhanced payment request\n const paymentRequest: X402PaymentRequest = {\n id: `x402_${cartId}_${Date.now().toString(36)}`,\n total: {\n amount: { value: totalAmount.toString(), currency },\n label: `Payment for ${items.length} items`\n },\n display_items: items.map((item) => ({\n label: item.name || item.service || 'Item',\n amount: { value: (item.price || 0).toString(), currency }\n })),\n x402_methods: x402Methods,\n settlement_address: settlementAddress,\n network: this.network,\n expires_at: new Date(Date.now() + 30 * 60 * 1000).toISOString()\n };\n\n console.log(`💳 Created x402 payment request: ${paymentRequest.id}`);\n return paymentRequest;\n }\n\n /**\n * Execute x402 crypto payment using the real payment manager\n */\n async executeX402Payment(\n paymentRequest: X402PaymentRequest,\n payerAgent: string,\n serviceDescription: string = 'A2A Service'\n ): Promise<X402PaymentResponse> {\n console.log(`💸 Executing x402 payment: ${payerAgent} → ${this.agentName}`);\n\n // Extract payment details\n const amount = parseFloat(paymentRequest.total.amount.value);\n const currency = paymentRequest.total.amount.currency;\n\n // Create payment request for the payment manager\n const pmPaymentRequest = this.paymentManager.createX402PaymentRequest(\n payerAgent,\n this.agentName,\n amount,\n currency,\n serviceDescription\n );\n\n // Execute payment via payment manager\n const paymentProof = this.paymentManager.executeX402Payment(pmPaymentRequest);\n\n // Create x402 payment response\n const response: X402PaymentResponse = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.transaction_hash,\n network: this.network,\n amount,\n currency,\n settlement_address: paymentRequest.settlement_address,\n confirmation_blocks: 1,\n status: 'confirmed',\n timestamp: paymentProof.timestamp.toISOString(),\n gas_fee: undefined,\n protocol_fee: pmPaymentRequest.protocol_fee\n };\n\n console.log(`✅ x402 payment confirmed: ${response.transaction_hash}`);\n return response;\n }\n\n /**\n * Execute traditional payment (cards, Google Pay, Apple Pay, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: string,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): TraditionalPaymentResponse {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Use the payment manager's traditional payment execution\n if (this.paymentManager) {\n // Convert to PaymentMethod enum\n let methodEnum: PaymentMethod | undefined;\n if (paymentMethod === 'basic-card') {\n methodEnum = PaymentMethod.BASIC_CARD;\n } else if (paymentMethod === 'https://google.com/pay') {\n methodEnum = PaymentMethod.GOOGLE_PAY;\n } else if (paymentMethod === 'https://apple.com/apple-pay') {\n methodEnum = PaymentMethod.APPLE_PAY;\n } else if (paymentMethod === 'https://paypal.com') {\n methodEnum = PaymentMethod.PAYPAL;\n } else if (paymentMethod === 'https://a2a.org/x402') {\n methodEnum = PaymentMethod.A2A_X402;\n }\n\n if (methodEnum) {\n const result = this.paymentManager.executeTraditionalPayment(methodEnum, amount, currency, paymentData);\n\n // Convert to TraditionalPaymentResponse\n return {\n payment_id: result.payment_id,\n method: paymentMethod,\n amount,\n currency,\n status: result.status,\n transaction_id: result.transaction_id,\n authorization_code: result.processor_response?.authorization_code,\n timestamp: result.timestamp,\n receipt_data: result.processor_response\n };\n }\n }\n\n // Fallback for unsupported methods\n const paymentId = `trad_${Date.now().toString(36)}`;\n return {\n payment_id: paymentId,\n method: paymentMethod,\n amount,\n currency,\n status: 'failed',\n timestamp: new Date().toISOString(),\n receipt_data: { error: 'Unsupported payment method' }\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n verifyX402Payment(paymentResponse: X402PaymentResponse): boolean {\n // In production, this would verify the transaction on-chain\n // For now, we check if we have a valid transaction hash\n return (\n paymentResponse.status === 'confirmed' &&\n !!paymentResponse.transaction_hash &&\n paymentResponse.transaction_hash.length === 66\n );\n }\n\n /**\n * Create cryptographic proof of x402 payment\n */\n createPaymentProof(paymentResponse: X402PaymentResponse): Record<string, any> {\n const proofData = {\n payment_id: paymentResponse.payment_id,\n transaction_hash: paymentResponse.transaction_hash,\n network: paymentResponse.network,\n amount: paymentResponse.amount,\n currency: paymentResponse.currency,\n settlement_address: paymentResponse.settlement_address,\n timestamp: paymentResponse.timestamp,\n agent_payer: 'unknown',\n agent_payee: this.agentName\n };\n\n // Create proof hash\n const proofJson = JSON.stringify(proofData);\n const crypto = require('crypto');\n const proofHash = crypto.createHash('sha256').update(proofJson).digest('hex');\n\n return {\n proof_type: 'a2a_x402_payment',\n proof_hash: proofHash,\n proof_data: proofData,\n verification_method: 'on_chain_transaction',\n created_at: new Date().toISOString()\n };\n }\n\n /**\n * Get A2A-x402 extension capabilities with W3C Payment Request API compliance\n */\n getExtensionCapabilities(): Record<string, any> {\n return {\n extension_name: 'a2a-x402-multi-payment',\n version: '1.0.0',\n w3c_payment_methods: this.w3cPaymentMethods.map((m) => m.supported_methods),\n supported_crypto_methods: this.supportedCryptoMethods,\n supported_networks: this.supportedNetworks,\n features: [\n 'w3c_payment_request_api',\n 'multi_payment_methods',\n 'basic_card_support',\n 'google_pay_integration',\n 'apple_pay_integration',\n 'paypal_integration',\n 'crypto_payments',\n 'instant_settlement',\n 'on_chain_verification',\n 'protocol_fees',\n 'gas_optimization',\n 'multi_network_support'\n ],\n compliance: [\n 'W3C Payment Request API',\n 'A2A-x402 Specification v0.1',\n 'Google Pay API v2',\n 'Apple Pay JS API v3',\n 'PayPal Checkout API',\n 'EIP-20 Token Standard',\n 'HTTP 402 Payment Required'\n ],\n payment_processors: {\n traditional: ['simulated_processor', 'google_pay', 'apple_pay', 'paypal'],\n crypto: ['chaoschain_x402', 'base_sepolia', 'ethereum']\n }\n };\n }\n}\n\n","/**\n * Production-ready process integrity verification for ChaosChain agents.\n *\n * This module provides cryptographic proof of correct code execution,\n * ensuring that agents perform work as intended with verifiable evidence.\n *\n * Features:\n * - Local code hashing (SHA-256)\n * - Optional TEE attestations (0G Compute, AWS Nitro, etc.)\n * - Dual-layer verification: Code + Execution\n * - Pluggable compute providers for maximum flexibility\n */\n\nimport { createHash } from 'crypto';\nimport { IntegrityProof } from './types';\nimport { IntegrityVerificationError } from './exceptions';\n\nexport interface StorageProvider {\n uploadJson(data: any, filename: string): Promise<string>;\n}\n\nexport interface TEEAttestation {\n job_id: string;\n provider: string;\n execution_hash: string;\n verification_method: string;\n model?: string;\n attestation_data: any;\n proof?: string;\n metadata?: any;\n timestamp: string;\n}\n\nexport interface ComputeProvider {\n submit(task: any): Promise<string>;\n status(jobId: string): Promise<{ state: string; [key: string]: any }>;\n result(jobId: string): Promise<{\n success: boolean;\n execution_hash: string;\n verification_method: { value: string };\n proof?: Buffer;\n metadata?: any;\n error?: string;\n }>;\n attestation(jobId: string): Promise<any>;\n}\n\n/**\n * Production-ready process integrity verifier for ChaosChain agents.\n * \n * Provides dual-layer cryptographic proof:\n * 1. Local code hashing (SHA-256 of function code)\n * 2. Optional TEE attestations (hardware-verified execution from 0G Compute, AWS Nitro, etc.)\n * \n * This enables the \"Process Integrity\" layer of the Triple-Verified Stack:\n * - Layer 1: AP2 Intent Verification (Google)\n * - Layer 2: Process Integrity (ChaosChain + TEE attestations) ← THIS MODULE\n * - Layer 3: Accountability\n */\nexport class ProcessIntegrity {\n private agentName: string;\n private storageManager: StorageProvider | null;\n private computeProvider: ComputeProvider | null;\n private registeredFunctions: Map<string, Function>;\n private functionHashes: Map<string, string>;\n\n constructor(\n agentName: string,\n storageManager: StorageProvider | null = null,\n computeProvider: ComputeProvider | null = null\n ) {\n this.agentName = agentName;\n this.storageManager = storageManager;\n this.computeProvider = computeProvider;\n this.registeredFunctions = new Map();\n this.functionHashes = new Map();\n\n const verificationMode = !computeProvider ? 'local' : 'local + TEE attestation';\n console.log(\n `✅ ChaosChain Process Integrity Verifier initialized: ${agentName} (${verificationMode})`\n );\n }\n\n /**\n * Register a function for integrity checking.\n */\n registerFunction(func: Function, functionName?: string): string {\n const name = functionName || func.name;\n\n // Generate code hash\n const codeHash = this.generateCodeHash(func);\n\n // Store function and hash\n this.registeredFunctions.set(name, func);\n this.functionHashes.set(name, codeHash);\n\n console.log(`📝 Registered integrity-checked function: ${name}`);\n console.log(` Code hash: ${codeHash.slice(0, 16)}...`);\n\n return codeHash;\n }\n\n /**\n * Execute a registered function with integrity proof generation.\n */\n async executeWithProof(\n functionName: string,\n inputs: Record<string, any>,\n requireProof: boolean = true,\n useTee: boolean = true\n ): Promise<[any, IntegrityProof | null]> {\n if (!this.registeredFunctions.has(functionName)) {\n const available = Array.from(this.registeredFunctions.keys());\n throw new IntegrityVerificationError(`Function not registered: ${functionName}`, {\n available_functions: available\n });\n }\n\n const func = this.registeredFunctions.get(functionName)!;\n const codeHash = this.functionHashes.get(functionName)!;\n\n const executionMode = useTee && this.computeProvider ? 'local + TEE' : 'local';\n console.log(`⚡ Executing with ChaosChain Process Integrity: ${functionName} (${executionMode})`);\n\n // Execute function\n const startTime = new Date();\n let teeAttestation: TEEAttestation | null = null;\n\n try {\n // Execute the function\n const result = await func(inputs);\n const executionTime = new Date();\n\n // Optionally get TEE attestation\n if (useTee && this.computeProvider) {\n try {\n teeAttestation = await this.getTeeAttestation(functionName, inputs, result);\n } catch (e) {\n console.warn(`⚠️ TEE attestation failed (continuing with local proof): ${e}`);\n }\n }\n\n if (!requireProof) {\n return [result, null];\n }\n\n // Generate integrity proof (includes TEE attestation if available)\n const proof = this.generateIntegrityProof(\n functionName,\n codeHash,\n inputs,\n result,\n startTime,\n executionTime,\n teeAttestation\n );\n\n // Store proof on IPFS if storage manager available\n if (this.storageManager) {\n await this.storeProofOnIpfs(proof);\n }\n\n return [result, proof];\n } catch (e) {\n throw new IntegrityVerificationError(`Function execution failed: ${e}`, {\n function_name: functionName,\n inputs\n });\n }\n }\n\n /**\n * Generate a hash of the function's code.\n */\n private generateCodeHash(func: Function): string {\n try {\n // Get function source code\n const sourceCode = func.toString();\n\n // Create hash\n return createHash('sha256').update(sourceCode).digest('hex');\n } catch {\n // Fallback to function name\n const funcInfo = `${func.name}`;\n return createHash('sha256').update(funcInfo).digest('hex');\n }\n }\n\n /**\n * Get TEE attestation from compute provider (e.g., 0G Compute).\n */\n private async getTeeAttestation(\n functionName: string,\n inputs: Record<string, any>,\n result: any\n ): Promise<TEEAttestation | null> {\n if (!this.computeProvider) {\n return null;\n }\n\n console.log(`🔐 Requesting TEE attestation from compute provider...`);\n\n try {\n // Submit task to TEE compute provider\n const taskData = {\n function: functionName,\n inputs,\n model: 'gpt-oss-120b', // Default model for 0G Compute\n prompt: `Execute function: ${functionName} with inputs: ${JSON.stringify(inputs)}`\n };\n\n const jobId = await this.computeProvider.submit(taskData);\n\n // Wait for completion\n const maxWait = 60000; // 60 seconds timeout\n const startWait = Date.now();\n\n while (Date.now() - startWait < maxWait) {\n const statusResult = await this.computeProvider.status(jobId);\n const state = statusResult.state || 'unknown';\n\n if (state === 'completed') {\n // Get full result (includes execution_hash, verification_method)\n const computeResult = await this.computeProvider.result(jobId);\n\n if (computeResult.success) {\n // Get attestation (proof data)\n const attestationData = await this.computeProvider.attestation(jobId);\n\n console.log(`✅ TEE attestation received: ${jobId}`);\n console.log(` Execution Hash: ${computeResult.execution_hash}`);\n console.log(` Verification: ${computeResult.verification_method.value}`);\n\n // Match actual 0G Compute response structure\n return {\n job_id: jobId,\n provider: '0g-compute',\n execution_hash: computeResult.execution_hash, // TEE execution ID\n verification_method: computeResult.verification_method.value,\n model: taskData.model,\n attestation_data: attestationData, // Full attestation proof\n proof: computeResult.proof?.toString('hex'),\n metadata: computeResult.metadata,\n timestamp: new Date().toISOString()\n };\n } else {\n console.warn(`⚠️ Compute result failed: ${computeResult.error}`);\n return null;\n }\n } else if (state === 'failed') {\n console.warn(`⚠️ TEE execution failed`);\n return null;\n }\n\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n console.warn(`⚠️ TEE attestation timeout after ${maxWait}ms`);\n return null;\n } catch (e) {\n console.warn(`⚠️ TEE attestation error: ${e}`);\n return null;\n }\n }\n\n /**\n * Generate a cryptographic integrity proof.\n */\n private generateIntegrityProof(\n functionName: string,\n codeHash: string,\n inputs: Record<string, any>,\n result: any,\n startTime: Date,\n executionTime: Date,\n teeAttestation: TEEAttestation | null\n ): IntegrityProof {\n const proofId = `proof_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n // Create execution hash\n const executionData = {\n function_name: functionName,\n code_hash: codeHash,\n inputs,\n result: this.serializeResult(result),\n start_time: startTime.toISOString(),\n execution_time: executionTime.toISOString(),\n agent_name: this.agentName\n };\n\n const executionHash = createHash('sha256')\n .update(JSON.stringify(executionData))\n .digest('hex');\n\n // Build proof with optional TEE data\n const proof: IntegrityProof = {\n proof_id: proofId,\n function_name: functionName,\n code_hash: codeHash,\n execution_hash: executionHash,\n timestamp: executionTime,\n agent_name: this.agentName,\n verification_status: 'verified',\n ipfs_cid: undefined,\n // TEE fields (if available)\n tee_attestation: teeAttestation || undefined,\n tee_provider: teeAttestation?.provider,\n tee_job_id: teeAttestation?.job_id,\n tee_execution_hash: teeAttestation?.execution_hash\n };\n\n const verificationLevel = teeAttestation ? 'local + TEE' : 'local';\n console.log(`✅ Process integrity proof generated: ${proofId} (${verificationLevel})`);\n\n return proof;\n }\n\n /**\n * Store integrity proof on IPFS for persistence.\n */\n private async storeProofOnIpfs(proof: IntegrityProof): Promise<void> {\n if (!this.storageManager) return;\n\n try {\n const proofData = {\n type: 'chaoschain_process_integrity_proof_v2', // v2 includes TEE\n proof: {\n proof_id: proof.proof_id,\n function_name: proof.function_name,\n code_hash: proof.code_hash,\n execution_hash: proof.execution_hash,\n timestamp: proof.timestamp.toISOString(),\n agent_name: proof.agent_name,\n verification_status: proof.verification_status,\n // TEE attestation (if available)\n tee_attestation: proof.tee_attestation,\n tee_provider: proof.tee_provider,\n tee_job_id: proof.tee_job_id,\n tee_execution_hash: proof.tee_execution_hash\n },\n verification_layers: {\n local_code_hash: true,\n tee_attestation: !!proof.tee_attestation\n },\n timestamp: new Date().toISOString(),\n agent_name: this.agentName\n };\n\n const filename = `process_integrity_proof_${proof.proof_id}.json`;\n const cid = await this.storageManager.uploadJson(proofData, filename);\n\n if (cid) {\n proof.ipfs_cid = cid;\n console.log(`📁 Process Integrity Proof stored on IPFS: ${cid}`);\n }\n } catch (e) {\n console.warn(`⚠️ Failed to store process integrity proof on IPFS: ${e}`);\n }\n }\n\n /**\n * Serialize function result for hashing.\n */\n private serializeResult(result: any): any {\n try {\n // Try direct JSON serialization\n JSON.stringify(result);\n return result;\n } catch {\n // Fallback to string representation\n return String(result);\n }\n }\n\n /**\n * Create a process insurance policy for a function.\n */\n createInsurancePolicy(\n functionName: string,\n coverageAmount: number,\n conditions: Record<string, any>\n ): Record<string, any> {\n const policyId = `policy_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const policy = {\n policy_id: policyId,\n function_name: functionName,\n agent_name: this.agentName,\n coverage_amount: coverageAmount,\n conditions,\n created_at: new Date().toISOString(),\n status: 'active'\n };\n\n console.log(`🛡️ Process insurance policy created: ${policyId}`);\n console.log(` Function: ${functionName}`);\n console.log(` Coverage: $${coverageAmount}`);\n\n return policy;\n }\n\n /**\n * Configure autonomous agent capabilities with integrity verification.\n */\n configureAutonomousAgent(\n capabilities: string[],\n constraints: Record<string, any>\n ): Record<string, any> {\n const configId = `config_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const configuration = {\n config_id: configId,\n agent_name: this.agentName,\n capabilities,\n constraints,\n integrity_verification: true,\n registered_functions: Array.from(this.registeredFunctions.keys()),\n created_at: new Date().toISOString()\n };\n\n console.log(`🤖 Autonomous agent configured: ${configId}`);\n console.log(` Capabilities: ${capabilities.length}`);\n console.log(` Registered functions: ${this.registeredFunctions.size}`);\n\n return configuration;\n }\n}\n\n/**\n * Decorator for automatically registering functions with integrity checking.\n */\nexport function integrityCheckedFunction(verifier?: ProcessIntegrityVerifier) {\n return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (...args: any[]) {\n if (verifier) {\n // Register function if not already registered\n if (!verifier['registeredFunctions'].has(propertyKey)) {\n verifier.registerFunction(originalMethod, propertyKey);\n }\n\n // Execute with integrity proof\n const inputs = { args };\n const [result] = await verifier.executeWithProof(propertyKey, inputs, true);\n return result;\n } else {\n // Execute without integrity checking\n return await originalMethod.apply(this, args);\n }\n };\n\n return descriptor;\n };\n}\n\n","/**\n * Storage Backends for ChaosChain SDK\n *\n * This module provides a unified interface for multiple storage providers,\n * allowing seamless switching between IPFS, Pinata, Irys, and 0G Storage.\n */\n\nimport axios from 'axios';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport { StorageError } from './exceptions';\n\nexport interface StorageResult {\n cid: string;\n url?: string;\n size?: number;\n provider: string;\n}\n\nexport interface StorageBackend {\n put(data: Buffer | string, mime?: string): Promise<StorageResult>;\n get(cid: string): Promise<Buffer>;\n pin?(cid: string): Promise<void>;\n unpin?(cid: string): Promise<void>;\n}\n\n/**\n * Local IPFS Storage Backend\n * \n * Requires: ipfs daemon running locally\n * Cost: Free\n * Setup: brew install ipfs && ipfs daemon\n */\nexport class LocalIPFSStorage implements StorageBackend {\n private apiUrl: string;\n\n constructor(apiUrl: string = 'http://127.0.0.1:5001') {\n this.apiUrl = apiUrl;\n console.log(`📦 Local IPFS Storage initialized: ${apiUrl}`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n // Use multipart/form-data to upload\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', buffer, { contentType: mime });\n\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, form, {\n headers: form.getHeaders(),\n maxBodyLength: Infinity\n });\n\n const cid = response.data.Hash;\n console.log(`✅ Uploaded to local IPFS: ${cid}`);\n\n return {\n cid,\n url: `ipfs://${cid}`,\n size: response.data.Size,\n provider: 'local-ipfs'\n };\n } catch (e: any) {\n if (e.code === 'ECONNREFUSED') {\n throw new StorageError(\n 'Local IPFS daemon not running. Start with: ipfs daemon',\n { api_url: this.apiUrl }\n );\n }\n throw new StorageError(`Local IPFS upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.post(\n `${this.apiUrl}/api/v0/cat`,\n null,\n {\n params: { arg: cid },\n responseType: 'arraybuffer'\n }\n );\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from IPFS: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid }\n });\n console.log(`📌 Pinned to local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin CID: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid }\n });\n console.log(`📌 Unpinned from local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin CID: ${e.message}`);\n }\n }\n}\n\n/**\n * Pinata Cloud IPFS Storage Backend\n * \n * Requires: Pinata API key\n * Cost: Free tier + paid plans\n * Setup: Get JWT from https://pinata.cloud\n */\nexport class PinataStorage implements StorageBackend {\n private jwtToken: string;\n private gatewayUrl: string;\n\n constructor(jwtToken: string, gatewayUrl: string = 'https://gateway.pinata.cloud') {\n this.jwtToken = jwtToken;\n this.gatewayUrl = gatewayUrl;\n console.log(`🌐 Pinata Storage initialized`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n const FormData = require('form-data');\n const form = new FormData();\n form.append('file', buffer, {\n contentType: mime,\n filename: `file_${Date.now()}`\n });\n\n const response = await axios.post('https://api.pinata.cloud/pinning/pinFileToIPFS', form, {\n headers: {\n ...form.getHeaders(),\n Authorization: `Bearer ${this.jwtToken}`\n },\n maxBodyLength: Infinity\n });\n\n const cid = response.data.IpfsHash;\n console.log(`✅ Uploaded to Pinata: ${cid}`);\n\n return {\n cid,\n url: `${this.gatewayUrl}/ipfs/${cid}`,\n size: response.data.PinSize,\n provider: 'pinata'\n };\n } catch (e: any) {\n throw new StorageError(`Pinata upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer'\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Pinata: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(\n 'https://api.pinata.cloud/pinning/pinByHash',\n { hashToPin: cid },\n {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`,\n 'Content-Type': 'application/json'\n }\n }\n );\n console.log(`📌 Pinned to Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin to Pinata: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.delete(`https://api.pinata.cloud/pinning/unpin/${cid}`, {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`\n }\n });\n console.log(`📌 Unpinned from Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin from Pinata: ${e.message}`);\n }\n }\n}\n\n/**\n * Irys (Arweave) Storage Backend\n * \n * Requires: Arweave wallet key\n * Cost: Pay per upload (permanent storage)\n * Setup: Fund wallet with AR tokens\n */\nexport class IrysStorage implements StorageBackend {\n private walletKey: string;\n\n constructor(walletKey: string) {\n this.walletKey = walletKey;\n console.log(`💎 Irys (Arweave) Storage initialized`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, use @irys/sdk\n // const Irys = require('@irys/sdk').default;\n // const irys = new Irys({ network: 'mainnet', token: 'ethereum', key: this.walletKey });\n // const receipt = await irys.upload(data, { tags: [{ name: 'Content-Type', value: mime }] });\n\n // For now, simulate\n const mockCid = `ar_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to Irys: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `https://arweave.net/${mockCid}`,\n provider: 'irys'\n };\n } catch (e: any) {\n throw new StorageError(`Irys upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`https://arweave.net/${cid}`, {\n responseType: 'arraybuffer'\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Arweave: ${e.message}`);\n }\n }\n}\n\n/**\n * 0G Storage Backend\n * \n * Requires: 0G CLI running as sidecar\n * Cost: Gas fees on 0G Network\n * Setup: Install 0G CLI and start sidecar\n */\nexport class ZeroGStorage implements StorageBackend {\n private grpcUrl: string;\n private privateKey: string;\n\n constructor(privateKey: string, grpcUrl: string = 'localhost:50051') {\n this.privateKey = privateKey;\n this.grpcUrl = grpcUrl;\n console.log(`⚡ 0G Storage initialized: ${grpcUrl}`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, call 0G Storage CLI via gRPC\n // For now, simulate\n const mockCid = `0g_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to 0G Storage: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `0g://${mockCid}`,\n provider: '0g-storage'\n };\n } catch (e: any) {\n throw new StorageError(`0G Storage upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n // In production, retrieve from 0G Storage via CLI\n // For now, throw error\n throw new StorageError('0G Storage retrieval not yet implemented');\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from 0G Storage: ${e.message}`);\n }\n }\n}\n\n/**\n * Auto-detecting Storage Manager\n * \n * Automatically selects the best available storage backend:\n * 1. Try local IPFS first (fastest, free)\n * 2. Fall back to Pinata if configured\n * 3. Fall back to Irys if configured\n * 4. Fall back to 0G Storage if configured\n */\nexport class AutoStorageManager implements StorageBackend {\n private backends: StorageBackend[] = [];\n private preferredBackend: StorageBackend | null = null;\n\n constructor() {\n this.detectAvailableBackends();\n }\n\n private detectAvailableBackends(): void {\n console.log('🔍 Auto-detecting available storage backends...');\n\n // Try local IPFS\n try {\n const localIpfs = new LocalIPFSStorage();\n this.backends.push(localIpfs);\n this.preferredBackend = localIpfs;\n console.log('✅ Local IPFS available');\n } catch (e) {\n console.log('❌ Local IPFS not available');\n }\n\n // Try Pinata\n const pinataJwt = process.env.PINATA_JWT;\n if (pinataJwt) {\n const pinata = new PinataStorage(pinataJwt);\n this.backends.push(pinata);\n if (!this.preferredBackend) this.preferredBackend = pinata;\n console.log('✅ Pinata available');\n }\n\n // Try Irys\n const irysKey = process.env.IRYS_WALLET_KEY;\n if (irysKey) {\n const irys = new IrysStorage(irysKey);\n this.backends.push(irys);\n if (!this.preferredBackend) this.preferredBackend = irys;\n console.log('✅ Irys available');\n }\n\n // Try 0G Storage\n const zerogKey = process.env.ZEROG_TESTNET_PRIVATE_KEY;\n if (zerogKey) {\n const zerog = new ZeroGStorage(zerogKey);\n this.backends.push(zerog);\n if (!this.preferredBackend) this.preferredBackend = zerog;\n console.log('✅ 0G Storage available');\n }\n\n if (this.backends.length === 0) {\n console.warn('⚠️ No storage backends available! Please configure at least one.');\n } else {\n console.log(`📦 ${this.backends.length} storage backend(s) available`);\n }\n }\n\n async put(data: Buffer | string, mime?: string): Promise<StorageResult> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n try {\n return await this.preferredBackend.put(data, mime);\n } catch (e) {\n // Try other backends\n for (const backend of this.backends) {\n if (backend !== this.preferredBackend) {\n try {\n console.log(`⚠️ Trying fallback storage backend...`);\n return await backend.put(data, mime);\n } catch (fallbackError) {\n continue;\n }\n }\n }\n\n throw new StorageError(`All storage backends failed: ${e}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n return await this.preferredBackend.get(cid);\n }\n\n getAvailableBackends(): string[] {\n return this.backends.map((backend) => backend.constructor.name);\n }\n}\n\n","/**\n * Network configurations for supported chains\n */\n\nimport { NetworkConfig, NetworkInfo, ContractAddresses } from '../types';\n\n/**\n * ERC-8004 v1.0 contract addresses (pre-deployed)\n */\nexport const ERC8004_ADDRESSES: Record<string, ContractAddresses> = {\n 'ethereum-sepolia': {\n identity: '0x8004a6090Cd10A7288092483047B097295Fb8847',\n reputation: '0x8004B8FD1A363aa02fDC07635C0c5F94f6Af5B7E',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n },\n 'base-sepolia': {\n identity: '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n reputation: '0x8004bd8daB57f14Ed299135749a5CB5c42d341BF',\n validation: '0x8004C269D0A5647E51E121FeB226200ECE932d55',\n },\n 'linea-sepolia': {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n },\n 'hedera-testnet': {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n },\n '0g-testnet': {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n },\n 'bsc-testnet': {\n identity: '0xabbd26d86435b35d9c45177725084ee6a2812e40',\n reputation: '0xeced1af52a0446275e9e6e4f6f26c99977400a6a',\n validation: '0x7866bd057f09a4940fe2ce43320518c8749a921e',\n },\n};\n\n/**\n * Network information and RPC endpoints\n */\nexport const NETWORK_INFO: Record<string, NetworkInfo> = {\n 'ethereum-sepolia': {\n chainId: 11155111,\n name: 'Ethereum Sepolia Testnet',\n rpcUrl: process.env.ETHEREUM_SEPOLIA_RPC_URL || 'https://rpc.sepolia.org',\n contracts: ERC8004_ADDRESSES['ethereum-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'base-sepolia': {\n chainId: 84532,\n name: 'Base Sepolia Testnet',\n rpcUrl: process.env.BASE_SEPOLIA_RPC_URL || 'https://sepolia.base.org',\n contracts: ERC8004_ADDRESSES['base-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'linea-sepolia': {\n chainId: 59141,\n name: 'Linea Sepolia Testnet',\n rpcUrl: process.env.LINEA_SEPOLIA_RPC_URL || 'https://rpc.sepolia.linea.build',\n contracts: ERC8004_ADDRESSES['linea-sepolia'],\n nativeCurrency: {\n name: 'Linea ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'hedera-testnet': {\n chainId: 296,\n name: 'Hedera Testnet',\n rpcUrl: process.env.HEDERA_TESTNET_RPC_URL || 'https://testnet.hashio.io/api',\n contracts: ERC8004_ADDRESSES['hedera-testnet'],\n nativeCurrency: {\n name: 'HBAR',\n symbol: 'HBAR',\n decimals: 18,\n },\n },\n '0g-testnet': {\n chainId: 16600,\n name: '0G Network Testnet',\n rpcUrl: process.env.ZEROG_TESTNET_RPC_URL || 'https://evmrpc-testnet.0g.ai',\n contracts: ERC8004_ADDRESSES['0g-testnet'],\n nativeCurrency: {\n name: 'A0GI',\n symbol: 'A0GI',\n decimals: 18,\n },\n },\n 'bsc-testnet': {\n chainId: 97,\n name: 'BSC Testnet (Chapel)',\n rpcUrl: process.env.BSC_TESTNET_RPC_URL || 'https://data-seed-prebsc-1-s1.binance.org:8545',\n contracts: ERC8004_ADDRESSES['bsc-testnet'],\n nativeCurrency: {\n name: 'Binance Coin',\n symbol: 'BNB',\n decimals: 18,\n },\n },\n local: {\n chainId: 31337,\n name: 'Local Network',\n rpcUrl: process.env.LOCAL_RPC_URL || 'http://localhost:8545',\n contracts: {\n identity: '0x5FbDB2315678afecb367f032d93F642f64180aa3',\n reputation: '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512',\n validation: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0',\n },\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n};\n\n/**\n * Get network info by name\n */\nexport function getNetworkInfo(network: NetworkConfig | string): NetworkInfo {\n const networkKey = typeof network === 'string' ? network : network.valueOf();\n const info = NETWORK_INFO[networkKey];\n\n if (!info) {\n throw new Error(`Unsupported network: ${networkKey}`);\n }\n\n return info;\n}\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: NetworkConfig | string): ContractAddresses {\n return getNetworkInfo(network).contracts;\n}\n\n/**\n * Check if network is supported\n */\nexport function isNetworkSupported(network: string): boolean {\n return network in NETWORK_INFO;\n}\n\n/**\n * Get all supported networks\n */\nexport function getSupportedNetworks(): string[] {\n return Object.keys(NETWORK_INFO);\n}\n\n","/**\n * ChaosChain SDK - Main Entry Point\n * Production-ready SDK for building verifiable AI agents with complete feature parity to Python SDK\n */\n\nimport { ethers } from 'ethers';\nimport { WalletManager } from './WalletManager';\nimport { ChaosAgent } from './ChaosAgent';\nimport { X402PaymentManager } from './X402PaymentManager';\nimport { PaymentManager, PaymentMethodCredentials } from './PaymentManager';\nimport { X402Server } from './X402Server';\nimport { GoogleAP2Integration, GoogleAP2IntegrationResult } from './GoogleAP2Integration';\nimport { A2AX402Extension } from './A2AX402Extension';\nimport { ProcessIntegrity } from './ProcessIntegrity';\nimport { AutoStorageManager, StorageBackend } from './StorageBackends';\n// import { IPFSLocalStorage } from './providers/storage/IPFSLocal'; // Not used\nimport {\n ChaosChainSDKConfig,\n NetworkConfig,\n AgentRole,\n AgentMetadata,\n AgentRegistration,\n FeedbackParams,\n ValidationRequestParams,\n UploadResult,\n UploadOptions,\n ComputeProvider,\n} from './types';\nimport { PaymentMethod } from './PaymentManager';\nimport { getNetworkInfo, getContractAddresses } from './utils/networks';\n\n/**\n * Main ChaosChain SDK Class - Complete TypeScript implementation\n * \n * Features:\n * - ERC-8004 v1.0 on-chain identity, reputation, and validation\n * - x402 crypto payments (USDC/ETH)\n * - Traditional payments (cards, Google Pay, Apple Pay, PayPal)\n * - Google AP2 intent verification\n * - Process integrity with cryptographic proofs\n * - Pluggable storage providers (IPFS, Pinata, Irys, 0G)\n * - Pluggable compute providers\n * - A2A-x402 extension for multi-payment support\n * - HTTP 402 paywall server\n */\nexport class ChaosChainSDK {\n // Core components\n private walletManager: WalletManager;\n private chaosAgent: ChaosAgent;\n private x402PaymentManager?: X402PaymentManager;\n private paymentManager?: PaymentManager;\n private storageBackend: StorageBackend;\n private computeProvider?: ComputeProvider;\n private provider: ethers.Provider;\n\n // Advanced integrations\n public googleAP2?: GoogleAP2Integration;\n public a2aX402Extension?: A2AX402Extension;\n public processIntegrity?: ProcessIntegrity;\n\n // Configuration\n public readonly agentName: string;\n public readonly agentDomain: string;\n public readonly agentRole: AgentRole | string;\n public readonly network: NetworkConfig | string;\n public readonly networkInfo: ReturnType<typeof getNetworkInfo>;\n\n // Current agent ID (set after registration)\n private _agentId?: bigint;\n\n constructor(config: ChaosChainSDKConfig) {\n this.agentName = config.agentName;\n this.agentDomain = config.agentDomain;\n this.agentRole = config.agentRole;\n this.network = config.network;\n\n // Get network info\n this.networkInfo = getNetworkInfo(config.network);\n\n // Initialize provider\n const rpcUrl = config.rpcUrl || this.networkInfo.rpcUrl;\n this.provider = new ethers.JsonRpcProvider(rpcUrl);\n\n // Initialize wallet\n this.walletManager = new WalletManager(\n {\n privateKey: config.privateKey,\n mnemonic: config.mnemonic,\n walletFile: config.walletFile,\n },\n this.provider\n );\n\n // Initialize ChaosAgent (ERC-8004)\n const contractAddresses = getContractAddresses(config.network);\n this.chaosAgent = new ChaosAgent(\n contractAddresses,\n this.walletManager.getWallet(),\n this.provider\n );\n\n // Initialize storage provider\n if (config.storageProvider) {\n this.storageBackend = config.storageProvider as any as StorageBackend;\n } else if (config.enableStorage !== false) {\n // Auto-detect available storage backends\n this.storageBackend = new AutoStorageManager();\n } else {\n // Dummy storage provider\n this.storageBackend = {\n put: async () => ({ cid: '', provider: 'none' }),\n get: async () => Buffer.from(''),\n };\n }\n\n // Initialize payment managers (if enabled)\n if (config.enablePayments !== false) {\n // Crypto payments (x402 with EIP-3009 + facilitator)\n this.x402PaymentManager = new X402PaymentManager(\n this.walletManager.getWallet(),\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n {\n facilitatorUrl: config.facilitatorUrl,\n apiKey: config.facilitatorApiKey,\n mode: config.facilitatorMode,\n agentId: config.agentId\n }\n );\n\n // Traditional + crypto payments (multi-method)\n const paymentCredentials: PaymentMethodCredentials = {\n stripe_secret_key: process.env.STRIPE_SECRET_KEY,\n google_pay_merchant_id: process.env.GOOGLE_PAY_MERCHANT_ID,\n apple_pay_merchant_id: process.env.APPLE_PAY_MERCHANT_ID,\n paypal_client_id: process.env.PAYPAL_CLIENT_ID,\n paypal_client_secret: process.env.PAYPAL_CLIENT_SECRET\n };\n\n this.paymentManager = new PaymentManager(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.walletManager.getWallet(),\n paymentCredentials\n );\n\n // A2A-x402 Extension (multi-payment support)\n this.a2aX402Extension = new A2AX402Extension(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.paymentManager\n );\n }\n\n // Initialize Google AP2 (if enabled)\n if (config.enableAP2 !== false) {\n this.googleAP2 = new GoogleAP2Integration(\n this.agentName,\n process.env.GOOGLE_AP2_MERCHANT_PRIVATE_KEY\n );\n }\n\n // Initialize Process Integrity (if enabled)\n if (config.enableProcessIntegrity !== false) {\n this.processIntegrity = new ProcessIntegrity(\n this.storageBackend,\n this.computeProvider\n );\n }\n\n // Initialize compute provider (if provided)\n this.computeProvider = config.computeProvider;\n\n console.log(`🚀 ChaosChain SDK initialized for ${this.agentName}`);\n console.log(` Network: ${this.network}`);\n console.log(` Wallet: ${this.walletManager.getAddress()}`);\n console.log(` Features:`);\n console.log(` - ERC-8004: ✅`);\n console.log(` - x402 Payments: ${this.x402PaymentManager ? '✅' : '❌'}`);\n console.log(` - Multi-Payment: ${this.paymentManager ? '✅' : '❌'}`);\n console.log(` - Google AP2: ${this.googleAP2 ? '✅' : '❌'}`);\n console.log(` - Process Integrity: ${this.processIntegrity ? '✅' : '❌'}`);\n console.log(` - Storage: ✅`);\n }\n\n // ============================================================================\n // ERC-8004 Identity Methods\n // ============================================================================\n\n /**\n * Register agent identity on-chain\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n const meta: AgentMetadata = metadata || {\n name: this.agentName,\n domain: this.agentDomain,\n role: this.agentRole,\n };\n\n const registration = await this.chaosAgent.registerIdentity(meta);\n this._agentId = registration.agentId;\n\n console.log(`✅ Agent #${registration.agentId} registered on-chain`);\n return registration;\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n return this.chaosAgent.getAgentMetadata(agentId);\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n return this.chaosAgent.updateAgentMetadata(agentId, metadata);\n }\n\n /**\n * Get current agent ID\n */\n getAgentId(): bigint | undefined {\n return this._agentId;\n }\n\n // ============================================================================\n // ERC-8004 Reputation Methods\n // ============================================================================\n\n /**\n * Generate feedback authorization (EIP-191 signing)\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n return this.chaosAgent.generateFeedbackAuthorization(agentId, clientAddress, indexLimit, expiry);\n }\n\n /**\n * Give feedback to an agent\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n return this.chaosAgent.giveFeedback(params);\n }\n\n /**\n * Submit feedback with payment proof (ERC-8004 reputation enrichment)\n */\n async submitFeedbackWithPayment(\n agentId: bigint,\n score: number,\n feedbackData: Record<string, any>,\n paymentProof: Record<string, any>\n ): Promise<{ feedbackTxHash: string; feedbackUri: string }> {\n // Store feedback data with payment proof\n const fullFeedbackData = {\n ...feedbackData,\n score,\n proof_of_payment: paymentProof,\n timestamp: new Date().toISOString()\n };\n\n // Upload to storage\n const feedbackJson = JSON.stringify(fullFeedbackData);\n const result = await (this.storageBackend as any).put(Buffer.from(feedbackJson), 'application/json');\n const feedbackUri = `ipfs://${result.cid}`;\n\n // Submit feedback on-chain\n const txHash = await this.chaosAgent.giveFeedback({\n agentId,\n rating: score,\n feedbackUri\n });\n\n console.log(`✅ Feedback submitted with payment proof`);\n console.log(` TX: ${txHash}`);\n console.log(` URI: ${feedbackUri}`);\n\n return { feedbackTxHash: txHash, feedbackUri };\n }\n\n /**\n * Get agent reputation score (ERC-8004 v1.0)\n */\n async getReputationScore(agentId: bigint): Promise<number> {\n const summary = await this.chaosAgent.getSummary(agentId, [], ethers.ZeroHash, ethers.ZeroHash);\n return summary.averageScore;\n }\n\n /**\n * Read all feedback for an agent\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash,\n includeRevoked: boolean = false\n ) {\n return this.chaosAgent.readAllFeedback(agentId, clientAddresses, tag1, tag2, includeRevoked);\n }\n\n /**\n * Get feedback summary statistics\n */\n async getFeedbackSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getSummary(agentId, clientAddresses, tag1, tag2);\n }\n\n /**\n * Get clients who gave feedback\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.chaosAgent.getClients(agentId);\n }\n\n // ============================================================================\n // ERC-8004 Validation Methods\n // ============================================================================\n\n /**\n * Request validation from validator (ERC-8004 v1.0)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n return this.chaosAgent.requestValidation(validatorAddress, agentId, requestUri, requestHash);\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag?: string\n ): Promise<string> {\n return this.chaosAgent.respondToValidation(requestHash, response, responseUri, responseHash, tag);\n }\n\n /**\n * Get validation status\n */\n async getValidationStatus(requestHash: string) {\n return this.chaosAgent.getValidationStatus(requestHash);\n }\n\n /**\n * Get validation summary for an agent\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getValidationSummary(agentId, validatorAddresses, tag);\n }\n\n /**\n * Get validation stats (alias for getValidationSummary)\n */\n async getValidationStats(agentId: bigint) {\n return this.getValidationSummary(agentId);\n }\n\n // ============================================================================\n // x402 Crypto Payment Methods\n // ============================================================================\n\n /**\n * Create x402 payment request\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequest(fromAgent, toAgent, amount, currency, serviceDescription);\n }\n\n /**\n * Execute x402 crypto payment\n */\n async executeX402Payment(\n paymentRequest: Record<string, any>,\n recipientAddress: string\n ): Promise<Record<string, any>> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.executePayment(paymentRequest as any, recipientAddress);\n }\n\n /**\n * Create x402 payment requirements (for receiving payments)\n */\n createX402PaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n expiryMinutes: number = 30\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequirements(amount, currency, serviceDescription, expiryMinutes);\n }\n\n /**\n * Create x402 paywall server\n */\n createX402PaywallServer(port: number = 8402): X402Server {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return new X402Server(this.x402PaymentManager, { port });\n }\n\n /**\n * Get x402 payment history\n */\n async getX402PaymentHistory(limit: number = 10): Promise<any[]> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.getPaymentHistory(limit);\n }\n\n /**\n * Calculate total cost including protocol fee (2.5%)\n */\n calculateTotalCost(\n amount: string,\n currency: string = 'USDC'\n ): { amount: string; fee: string; total: string; currency: string } {\n const amountNum = parseFloat(amount);\n const fee = amountNum * 0.025; // 2.5% protocol fee\n const total = amountNum + fee;\n\n return {\n amount: amountNum.toFixed(6),\n fee: fee.toFixed(6),\n total: total.toFixed(6),\n currency,\n };\n }\n\n /**\n * Get ETH balance\n */\n async getETHBalance(): Promise<string> {\n const balance = await this.provider.getBalance(this.getAddress());\n return ethers.formatEther(balance);\n }\n\n /**\n * Get USDC balance (if USDC contract exists on network)\n */\n async getUSDCBalance(): Promise<string> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled - cannot get USDC balance');\n }\n // This would need USDC contract address for the network\n // For now, return placeholder\n return '0.0';\n }\n\n // ============================================================================\n // Traditional Payment Methods (Cards, Google Pay, Apple Pay, PayPal)\n // ============================================================================\n\n /**\n * Execute traditional payment\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): Record<string, any> {\n if (!this.paymentManager) {\n throw new Error('Payment manager not enabled');\n }\n return this.paymentManager.executeTraditionalPayment(paymentMethod, amount, currency, paymentData);\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n if (!this.paymentManager) {\n return [];\n }\n return this.paymentManager.getSupportedPaymentMethods();\n }\n\n /**\n * Get payment methods status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n if (!this.paymentManager) {\n return {};\n }\n return this.paymentManager.getPaymentMethodsStatus();\n }\n\n // ============================================================================\n // Google AP2 Intent Verification Methods\n // ============================================================================\n\n /**\n * Create Google AP2 intent mandate\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createIntentMandate(userDescription, merchants, skus, requiresRefundability, expiryMinutes);\n }\n\n /**\n * Create Google AP2 cart mandate with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createCartMandate(cartId, items, totalAmount, currency, merchantName, expiryMinutes);\n }\n\n /**\n * Verify JWT token\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.verifyJwtToken(token);\n }\n\n // ============================================================================\n // Process Integrity Methods\n // ============================================================================\n\n /**\n * Register function for integrity verification\n */\n registerFunction(func: (...args: any[]) => Promise<any>): void {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n this.processIntegrity.registerFunction(func);\n }\n\n /**\n * Execute function with integrity proof\n */\n async executeWithIntegrityProof(\n functionName: string,\n args: Record<string, any>\n ): Promise<{ result: any; proof: Record<string, any> }> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n const [result, proof] = await this.processIntegrity.executeWithProof(functionName, args);\n return { result, proof: proof as any };\n }\n\n /**\n * Verify integrity proof\n */\n async verifyIntegrityProof(_proof: Record<string, any>): Promise<boolean> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n // TODO: Implement verifyProof in ProcessIntegrity\n return true;\n }\n\n // ============================================================================\n // Storage Methods\n // ============================================================================\n\n /**\n * Upload data to storage\n */\n async upload(data: any, _options?: UploadOptions): Promise<UploadResult> {\n const jsonData = typeof data === 'string' ? data : JSON.stringify(data);\n const buffer = Buffer.from(jsonData);\n\n const result = await this.storageBackend.put(buffer, 'application/json');\n\n return {\n cid: result.cid,\n uri: result.url || `ipfs://${result.cid}`\n };\n }\n\n /**\n * Download data from storage\n */\n async download(cid: string): Promise<any> {\n const buffer = await this.storageBackend.get(cid);\n const data = buffer.toString('utf-8');\n\n try {\n return JSON.parse(data);\n } catch {\n return data;\n }\n }\n\n /**\n * Store evidence (convenience method)\n */\n async storeEvidence(evidenceData: Record<string, any>): Promise<string> {\n const result = await (this.storageBackend as any).put(Buffer.from(JSON.stringify(evidenceData)), 'application/json');\n console.log(`📦 Stored evidence: ${result.cid}`);\n return result.cid;\n }\n\n // ============================================================================\n // Wallet & Network Methods\n // ============================================================================\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.walletManager.getAddress();\n }\n\n /**\n * Get wallet balance\n */\n async getBalance(): Promise<string> {\n return this.walletManager.getBalance();\n }\n\n /**\n * Get network info\n */\n getNetworkInfo() {\n return this.networkInfo;\n }\n\n /**\n * Get SDK capabilities summary\n */\n getCapabilities(): Record<string, any> {\n return {\n agent_name: this.agentName,\n agent_domain: this.agentDomain,\n agent_role: this.agentRole,\n network: this.network,\n wallet_address: this.walletManager.getAddress(),\n agent_id: this._agentId ? this._agentId.toString() : undefined,\n features: {\n erc_8004_identity: true,\n erc_8004_reputation: true,\n erc_8004_validation: true,\n x402_crypto_payments: !!this.x402PaymentManager,\n traditional_payments: !!this.paymentManager,\n google_ap2_intents: !!this.googleAP2,\n process_integrity: !!this.processIntegrity,\n storage: true,\n compute: !!this.computeProvider\n },\n supported_payment_methods: this.paymentManager ? this.paymentManager.getSupportedPaymentMethods() : [],\n storage_backends: this.storageBackend instanceof AutoStorageManager \n ? (this.storageBackend as AutoStorageManager).getAvailableBackends() \n : [this.storageBackend.constructor.name]\n };\n }\n}\n","/**\n * Local IPFS Storage Provider\n * Uses HTTP API client to interact with local IPFS daemon\n */\n\nimport axios from 'axios';\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport class IPFSLocalStorage implements StorageProvider {\n private apiUrl: string;\n private gatewayUrl: string;\n\n constructor(apiUrl: string = 'http://localhost:5001', gatewayUrl: string = 'http://localhost:8080') {\n this.apiUrl = apiUrl;\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Upload data to local IPFS\n */\n async upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult> {\n try {\n let buffer: Buffer;\n\n // Convert data to buffer\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (typeof data === 'string') {\n buffer = Buffer.from(data, 'utf-8');\n } else {\n buffer = Buffer.from(JSON.stringify(data), 'utf-8');\n }\n\n // Create form data\n const formData = new FormData();\n const blob = new Blob([buffer], { type: options?.mime || 'application/octet-stream' });\n formData.append('file', blob);\n\n // Upload to IPFS\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n params: {\n pin: options?.pin !== false, // Pin by default\n },\n });\n\n const cid = response.data.Hash;\n\n return {\n cid,\n uri: `ipfs://${cid}`,\n size: response.data.Size,\n };\n } catch (error) {\n throw new Error(`Failed to upload to IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Download data from IPFS\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (error) {\n throw new Error(`Failed to download from IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Pin content\n */\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to pin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Unpin content\n */\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to unpin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Check if IPFS daemon is running\n */\n async isAvailable(): Promise<boolean> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/version`);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get IPFS version\n */\n async getVersion(): Promise<string> {\n try {\n const response = await axios.post(`${this.apiUrl}/api/v0/version`);\n return response.data.Version;\n } catch (error) {\n throw new Error(`Failed to get IPFS version: ${(error as Error).message}`);\n }\n }\n}\n\n","/**\n * ChaosChain SDK Type Definitions\n * TypeScript types and interfaces for building verifiable AI agents\n */\n\nimport { ethers } from 'ethers';\n\n// ============================================================================\n// Core Enums\n// ============================================================================\n\n/**\n * Supported blockchain networks with pre-deployed ERC-8004 contracts\n */\nexport enum NetworkConfig {\n ETHEREUM_SEPOLIA = 'ethereum-sepolia',\n BASE_SEPOLIA = 'base-sepolia',\n LINEA_SEPOLIA = 'linea-sepolia',\n HEDERA_TESTNET = 'hedera-testnet',\n MODE_TESTNET = 'mode-testnet',\n ZEROG_TESTNET = '0g-testnet',\n BSC_TESTNET = 'bsc-testnet',\n LOCAL = 'local',\n}\n\n/**\n * Agent role in the ChaosChain network\n */\nexport enum AgentRole {\n SERVER = 'server',\n CLIENT = 'client',\n VALIDATOR = 'validator',\n BOTH = 'both',\n}\n\n// ============================================================================\n// Contract Types\n// ============================================================================\n\n/**\n * ERC-8004 contract addresses for a network\n */\nexport interface ContractAddresses {\n identity: string;\n reputation: string;\n validation: string;\n}\n\n/**\n * Network configuration with RPC and contract addresses\n */\nexport interface NetworkInfo {\n chainId: number;\n name: string;\n rpcUrl: string;\n contracts: ContractAddresses;\n nativeCurrency: {\n name: string;\n symbol: string;\n decimals: number;\n };\n}\n\n// ============================================================================\n// Agent Types\n// ============================================================================\n\n/**\n * Agent metadata structure (ERC-8004 compliant)\n */\nexport interface AgentMetadata {\n name: string;\n domain: string;\n role: AgentRole | string;\n capabilities?: string[];\n version?: string;\n description?: string;\n image?: string;\n contact?: string;\n supportedTrust?: string[];\n}\n\n/**\n * Agent registration result\n */\nexport interface AgentRegistration {\n agentId: bigint;\n txHash: string;\n owner: string;\n}\n\n// ============================================================================\n// ERC-8004 Reputation Types\n// ============================================================================\n\n/**\n * Feedback submission parameters\n */\nexport interface FeedbackParams {\n agentId: bigint;\n rating: number;\n feedbackUri: string;\n feedbackData?: Record<string, unknown>;\n}\n\n/**\n * Feedback record\n */\nexport interface FeedbackRecord {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n feedbackUri: string;\n timestamp: number;\n revoked: boolean;\n}\n\n// ============================================================================\n// ERC-8004 Validation Types\n// ============================================================================\n\n/**\n * Validation request parameters\n */\nexport interface ValidationRequestParams {\n validatorAgentId: bigint;\n requestUri: string;\n requestHash: string;\n}\n\n/**\n * Validation request record\n */\nexport interface ValidationRequest {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n requestUri: string;\n requestHash: string;\n status: ValidationStatus;\n responseUri?: string;\n timestamp: number;\n}\n\n/**\n * Validation status enum\n */\nexport enum ValidationStatus {\n PENDING = 0,\n APPROVED = 1,\n REJECTED = 2,\n}\n\n// ============================================================================\n// Payment Types\n// ============================================================================\n\n/**\n * x402 payment parameters\n */\nexport interface X402PaymentParams {\n toAgent: string;\n amount: string;\n currency?: string;\n serviceType?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * x402 payment result\n */\nexport interface X402Payment {\n from: string;\n to: string;\n amount: string;\n currency: string;\n txHash: string;\n timestamp: number;\n feeAmount?: string;\n feeTxHash?: string;\n}\n\n/**\n * Payment receipt\n */\nexport interface PaymentReceipt {\n paymentId: string;\n from: string;\n to: string;\n amount: string;\n currency: string;\n timestamp: number;\n signature: string;\n txHash: string;\n}\n\n// ============================================================================\n// Storage Provider Types\n// ============================================================================\n\n/**\n * Storage upload options\n */\nexport interface UploadOptions {\n mime?: string;\n metadata?: Record<string, unknown>;\n pin?: boolean;\n}\n\n/**\n * Storage upload result\n */\nexport interface UploadResult {\n cid: string;\n uri: string;\n size?: number;\n}\n\n/**\n * Storage provider interface\n */\nexport interface StorageProvider {\n upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult>;\n download(cid: string): Promise<Buffer>;\n pin(cid: string): Promise<void>;\n unpin(cid: string): Promise<void>;\n}\n\n// ============================================================================\n// Compute Provider Types\n// ============================================================================\n\n/**\n * Compute provider interface\n */\nexport interface ComputeProvider {\n inference(model: string, input: unknown): Promise<unknown>;\n getModels(): Promise<string[]>;\n}\n\n// ============================================================================\n// Process Integrity Types\n// ============================================================================\n\n/**\n * TEE attestation data\n */\nexport interface TEEAttestation {\n provider: 'phala' | 'sgx' | 'nitro' | 'zerog';\n attestationData: string;\n publicKey: string;\n timestamp: number;\n}\n\n/**\n * Integrity proof structure\n */\nexport interface IntegrityProof {\n proofId: string;\n functionName: string;\n inputs: Record<string, unknown>;\n outputs: Record<string, unknown>;\n codeHash: string;\n executionHash: string;\n timestamp: number;\n signature: string;\n ipfsCid?: string;\n teeAttestation?: TEEAttestation;\n}\n\n// ============================================================================\n// SDK Configuration Types\n// ============================================================================\n\n/**\n * Main SDK configuration\n */\nexport interface ChaosChainSDKConfig {\n agentName: string;\n agentDomain: string;\n agentRole: AgentRole | string;\n network: NetworkConfig | string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enablePayments?: boolean;\n enableStorage?: boolean;\n storageProvider?: StorageProvider;\n computeProvider?: ComputeProvider;\n walletFile?: string;\n // x402 Facilitator Configuration (EIP-3009)\n facilitatorUrl?: string; // e.g., 'https://facilitator.chaoscha.in'\n facilitatorApiKey?: string; // Optional API key for managed facilitator\n facilitatorMode?: 'managed' | 'decentralized';\n agentId?: string; // ERC-8004 tokenId (e.g., '8004#123')\n}\n\n/**\n * Wallet configuration\n */\nexport interface WalletConfig {\n privateKey?: string;\n mnemonic?: string;\n walletFile?: string;\n}\n\n// ============================================================================\n// Event Types\n// ============================================================================\n\n/**\n * Contract event data\n */\nexport interface ContractEvent {\n event: string;\n args: unknown[];\n blockNumber: number;\n transactionHash: string;\n logIndex: number;\n}\n\n/**\n * Agent registered event\n */\nexport interface AgentRegisteredEvent extends ContractEvent {\n agentId: bigint;\n owner: string;\n uri: string;\n}\n\n/**\n * Feedback given event\n */\nexport interface FeedbackGivenEvent extends ContractEvent {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n}\n\n/**\n * Validation requested event\n */\nexport interface ValidationRequestedEvent extends ContractEvent {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n}\n\n// ============================================================================\n// Helper Types\n// ============================================================================\n\n/**\n * Transaction result\n */\nexport interface TransactionResult {\n hash: string;\n receipt?: ethers.TransactionReceipt;\n confirmations?: number;\n}\n\n/**\n * Query result with pagination\n */\nexport interface QueryResult<T> {\n items: T[];\n total: number;\n page?: number;\n pageSize?: number;\n}\n\n/**\n * Error response\n */\nexport interface ErrorResponse {\n error: string;\n code?: string;\n details?: unknown;\n}\n\n","/**\n * ChaosChain SDK - TypeScript Entry Point\n * \n * Complete TypeScript implementation with feature parity to Python SDK\n * \n * @packageDocumentation\n */\n\n// ============================================================================\n// Main SDK Export\n// ============================================================================\nexport { ChaosChainSDK } from './ChaosChainSDK';\n\n// ============================================================================\n// Core Components\n// ============================================================================\nexport { WalletManager } from './WalletManager';\nexport { ChaosAgent } from './ChaosAgent';\n\n// ============================================================================\n// Payment Components\n// ============================================================================\nexport { X402PaymentManager } from './X402PaymentManager';\nexport type {\n X402PaymentRequest,\n X402PaymentProof,\n X402PaymentRequirements,\n PaymentHeader,\n TransferAuthorizationParams,\n X402FacilitatorConfig,\n SettleRequest,\n SettleResponse\n} from './X402PaymentManager';\nexport { PaymentManager } from './PaymentManager';\nexport { X402Server } from './X402Server';\n\n// ============================================================================\n// Advanced Integrations\n// ============================================================================\nexport { GoogleAP2Integration } from './GoogleAP2Integration';\nexport { A2AX402Extension } from './A2AX402Extension';\n// export { ProcessIntegrity } from './ProcessIntegrity'; // TODO: Fix export\n\n// ============================================================================\n// Storage Backends\n// ============================================================================\nexport {\n LocalIPFSStorage,\n PinataStorage,\n IrysStorage,\n ZeroGStorage,\n AutoStorageManager,\n type StorageBackend,\n type StorageResult\n} from './StorageBackends';\n\n// ============================================================================\n// Storage Providers (Legacy exports)\n// ============================================================================\nexport { IPFSLocalStorage } from './providers/storage/IPFSLocal';\nexport { PinataStorage as IPFSPinataStorage } from './StorageBackends';\nexport { IrysStorage as IrysStorageProvider } from './StorageBackends';\n\n// ============================================================================\n// Exceptions\n// ============================================================================\nexport {\n ChaosChainSDKError,\n AgentRegistrationError,\n // FeedbackSubmissionError, // Not defined yet\n // ValidationError as SDKValidationError, // Not defined yet\n PaymentError,\n StorageError,\n ContractError,\n ConfigurationError,\n IntegrityVerificationError,\n // WalletError, // Not defined yet\n // NetworkError, // Not defined yet\n} from './exceptions';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\nexport type {\n // Core Config\n ChaosChainSDKConfig,\n WalletConfig,\n \n // Agent Types\n AgentMetadata,\n AgentRegistration,\n \n // Feedback & Reputation\n FeedbackParams,\n FeedbackRecord,\n \n // Validation\n ValidationRequestParams,\n ValidationRequest,\n \n // Payments\n X402PaymentParams,\n X402Payment,\n // X402PaymentReceipt, // Use PaymentReceipt instead\n \n // Storage\n StorageProvider,\n UploadOptions,\n UploadResult,\n \n // Compute\n ComputeProvider,\n \n // Network\n ContractAddresses,\n \n // Process Integrity\n IntegrityProof,\n TEEAttestation,\n \n // Transaction\n TransactionResult,\n} from './types';\n\n// ============================================================================\n// Enums\n// ============================================================================\nexport { \n NetworkConfig,\n AgentRole,\n ValidationStatus\n // PaymentMethod // Not defined in types.ts yet\n} from './types';\n\n// PaymentMethod enum for traditional + crypto payments\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402'\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\nexport { \n getNetworkInfo, \n getContractAddresses\n // SUPPORTED_NETWORKS // Not exported from networks.ts\n} from './utils/networks';\n\nexport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI\n // getIdentityRegistryABI, // Now exported as const\n // getReputationRegistryABI, // Now exported as const\n // getValidationRegistryABI // Now exported as const\n} from './utils/contracts';\n\n// ============================================================================\n// Version Info\n// ============================================================================\nexport const SDK_VERSION = '0.1.3';\nexport const ERC8004_VERSION = '1.0';\nexport const X402_VERSION = '1.0';\n\n// ============================================================================\n// Default Export\n// ============================================================================\nimport { ChaosChainSDK as SDK } from './ChaosChainSDK';\nexport default SDK;\n\n// ============================================================================\n// Quick Start Helper\n// ============================================================================\n\n/**\n * Initialize ChaosChain SDK with minimal configuration\n * \n * @example\n * ```typescript\n * import { initChaosChainSDK, ChaosChainSDK } from '@chaoschain/sdk';\n * \n * const sdk = initChaosChainSDK({\n * agentName: 'MyAgent',\n * agentDomain: 'myagent.example.com',\n * agentRole: 'server',\n * network: 'base-sepolia',\n * privateKey: process.env.PRIVATE_KEY\n * });\n * \n * const { agentId } = await sdk.registerIdentity();\n * console.log(`Agent registered with ID: ${agentId}`);\n * ```\n */\nexport function initChaosChainSDK(config: {\n agentName: string;\n agentDomain: string;\n agentRole: string;\n network: string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enablePayments?: boolean;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enableStorage?: boolean;\n}): SDK {\n return new SDK(config as any);\n}\n"]}