{"_id":"@120356aa/pump-api","_rev":"8-82b905b00ca24555cb899867fea7c44e","name":"@120356aa/pump-api","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@120356aa/pump-api","version":"1.0.0","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.0","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/tree/main/packages/api-client#readme","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"2a97a840b84d4cf5dc84c46f3c062ee7c243084f","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.0.tgz","fileCount":18,"integrity":"sha512-UueZyRx4S3ERJ5QHPrV69reA2GV26AAGpipri1Q1RFKm5zAGugiU7t+oFreR3m6DvjP4iLpi5yo73XGE/7glUQ==","signatures":[{"sig":"MEYCIQDr7BdxVTE2jel9hJVXNehQNEb0OE0MGMqS64uTnMKsEAIhAOG9Ir7W7V7BXkWCKuifSpV+YsYE6WK1A4qubNGTdrxM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580960},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"funding":{"url":"https://github.com/sponsors/openworth","type":"github"},"gitHead":"1550d9c556793b6732e7a49d9a54273588c7052c","private":false,"scripts":{"ci":"npm run type-check && npm run lint && npm run test:coverage && npm run build && npm run performance:test","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","test":"jest","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","size:check":"npm run build && node scripts/analyze-bundle.js","test:watch":"jest --watch","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","test:coverage":"jest --coverage","prepublishOnly":"npm run build && npm run test && npm run lint","security:audit":"npm audit --audit-level moderate","performance:test":"node scripts/performance-test.js","test:integration":"jest --testPathPattern=integration","test:performance":"jest --testPathPattern=performance"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.4.2","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.6.0","tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","jest-junit":"^16.0.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","jest-watch-typeahead":"^2.2.2","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.0_1760580132633_0.9086989656416249","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@120356aa/pump-api","version":"1.0.1","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.1","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"4c9242632ff0ef0b0a93b4a3610345eeff5fdf25","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.1.tgz","fileCount":18,"integrity":"sha512-QSTL55P82KVpEg6ZLrm2/YhjlQhJInkX/HbPm0XftbIoEE5qxbWDDVn8Rn/BijEdNR75zgvK2YlK3N3KQwujEw==","signatures":[{"sig":"MEYCIQDV5XLMEjbqSHsOXTc6CR7t/8DBNQiI0l4V23shtPIe0QIhAIr9sCGhxVwPfLrJvWG5qNnAkgQI83ZXTm/sbWyPr/EP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1580298},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"7844a5f7460826a1901f9df6f5f943e956fc928f","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.4.2","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.16.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.1_1760581018246_0.506748168634866","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@120356aa/pump-api","version":"1.0.2","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.2","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"ba8cec8bccb2a823b13b84accd9c11fbce87076b","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.2.tgz","fileCount":18,"integrity":"sha512-Kg0dte2KDJsiTsg88VF1Q3ss9G7WxaZwVOWMO7+LLu0MUol6vnivCCSd3zmQ6Y+neQT0eB94FPqTY8rIivXw+A==","signatures":[{"sig":"MEYCIQCXtdkMCMn8h4jVnhUbwOr3y/GbzK18ZVSJ0GAme0c2NwIhAMsQBMV+9jVBXcHMxxp+vXgMB7vVloj7AD5UDaqHA7MK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":514579},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"8ff2e798fbcaec71aad226c0b783ecad7481af1d","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.3.0","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.2_1760817855023_0.5845038693905278","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@120356aa/pump-api","version":"1.0.3","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.3","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"f4c7ce2fceaaedbf9369ddaed2adb0c50538b804","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.3.tgz","fileCount":18,"integrity":"sha512-pQNtO3BrpZO4K3wVWZjWneHfpDpeMyDfM6WDJYO4GcBc7FZlPuWKVIqIJZbY8LEElTLaKumAX/9KvAOmnozw6Q==","signatures":[{"sig":"MEUCIQDUBIelUquscQ+uXs6dpZQphewvCm/0rn3TbRvm5KOYkAIgVU9nB6MZiSoSXMlhKvPhShJPO04T8wyZAMeknoUTmnI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474654},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"6ff7158402186baed62c753f0b4f1a92d9c4a379","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.3.0","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.3_1760823624029_0.16384383829496896","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@120356aa/pump-api","version":"1.0.4","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.4","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"d96815d831dd401d1495131054df2479b096bac4","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.4.tgz","fileCount":18,"integrity":"sha512-OU8mxERMc2OUMyElX7JyppA8hSBRj0apRwVsJDuYx8L76Pr4SSHHCn0B+gXYYJ6lM0eizUNiex49sw7F+aaJ7w==","signatures":[{"sig":"MEUCIQDXRkbkC9GDz5KACPMB4S4Ky2S478G1/KCpsWV/y5VM4AIgLCmxJ4JVfw2jVx8Y0/ip/HwZRUz8HlF++eLLrgNrWVM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":474654},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"6ff7158402186baed62c753f0b4f1a92d9c4a379","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.3.0","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.4_1760823970658_0.6564789420742145","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@120356aa/pump-api","version":"1.0.5","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.5","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"769373dac2f7983bed8fe7442732957d646adcf3","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.5.tgz","fileCount":18,"integrity":"sha512-qbo+65e+IglYcBDGb9goG6VlNnvgF9g37uo57OqddXCN6+zdA+4agbPCe6y8/CSphp0ywcH3mSFAI4l+EFJvGQ==","signatures":[{"sig":"MEUCIQDNhi25dkBMA8TxBMwBvMmffsGpGBUJO7CSMSbcs8cYDAIgQXY1i9/ZLL1p3x+Jd/QkS+ZxsBQFs+v5YmhgI6p8qZE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":473273},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"6ff7158402186baed62c753f0b4f1a92d9c4a379","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.3.0","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.5_1760824507082_0.6277883256925343","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@120356aa/pump-api","version":"1.0.6","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","_id":"@120356aa/pump-api@1.0.6","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"dist":{"shasum":"895a988ab123f5e8c926496ca4cd24ff522b3e4d","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.6.tgz","fileCount":18,"integrity":"sha512-FlmbCvGASW5cFm6dxJgabTO3zCin/gIKGrRoL8EgML/TMXXzMA4rUo2XBZWOOwcptvYSOSbA84oYydNHF4qxFA==","signatures":[{"sig":"MEUCICfHdqxOpoMFo9M3FKsdasYfP/UNE91Ozvezk2sivRwuAiEA8jvPVlsRvfCnhEXIbZCJWZvCfmxf7XD3Qju+oFHG6es=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":483871},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","module":"./dist/index.esm.js","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"gitHead":"6ff7158402186baed62c753f0b4f1a92d9c4a379","private":false,"scripts":{"ci":"npm run type-check && npm run build","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","build":"rollup -c && node scripts/fix-imports.js","clean":"rimraf dist","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","lint:fix":"eslint src --ext .ts,.tsx --fix","prebuild":"npm run clean","type-check":"tsc --noEmit","build:watch":"rollup -c -w","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","prepublishOnly":"npm run build","security:audit":"npm audit --audit-level moderate"},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"repository":{"url":"git+https://github.com/snowdamiz/pumpfun-api.git","type":"git","directory":"packages/api-client"},"_npmVersion":"11.3.0","description":"TypeScript client library for PumpFun streaming data API","directories":{},"_nodeVersion":"22.14.0","dependencies":{"ws":"^8.14.0","axios":"^1.6.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"tslib":"^2.6.0","eslint":"^8.45.0","rimraf":"^5.0.0","rollup":"^4.0.0","ts-jest":"^29.1.0","prettier":"^3.0.0","@types/ws":"^8.5.0","typescript":"^5.2.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","livekit-client":"^2.15.10","rollup-plugin-dts":"^6.0.0","axios-mock-adapter":"^1.22.0","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-replace":"^6.0.2","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-typescript":"^11.1.0","@typescript-eslint/parser":"^6.21.0","@rollup/plugin-node-resolve":"^16.0.3","@typescript-eslint/eslint-plugin":"^6.21.0"},"peerDependencies":{"typescript":">=4.5.0","livekit-client":"^2.15.10"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/pump-api_1.0.6_1760824990859_0.5422410246377698","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@120356aa/pump-api","version":"1.0.7","type":"module","description":"TypeScript client library for PumpFun streaming data API","main":"./dist/index.js","module":"./dist/index.esm.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.esm.js","require":"./dist/index.js"}},"scripts":{"build":"rollup -c && node scripts/fix-imports.js","build:watch":"rollup -c -w","dev":"npm run build:watch","lint":"eslint src --ext .ts,.tsx","lint:fix":"eslint src --ext .ts,.tsx --fix","format":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"","format:check":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\"","type-check":"tsc --noEmit","prepublishOnly":"npm run build","clean":"rimraf dist","prebuild":"npm run clean","docs:generate":"typedoc --out docs src/index.ts --excludePrivate --excludeInternal","security:audit":"npm audit --audit-level moderate","ci":"npm run type-check && npm run build"},"keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"author":{"name":"Openworth"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/snowdamiz/pumpfun-api.git","directory":"packages/api-client"},"bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","engines":{"node":">=18.0.0"},"dependencies":{"axios":"^1.6.0","ws":"^8.14.0"},"devDependencies":{"@rollup/plugin-commonjs":"^28.0.6","@rollup/plugin-node-resolve":"^16.0.3","@rollup/plugin-replace":"^6.0.2","@rollup/plugin-terser":"^0.4.4","@rollup/plugin-typescript":"^11.1.0","@types/jest":"^29.5.0","@types/node":"^18.0.0","@types/ws":"^8.5.0","@typescript-eslint/eslint-plugin":"^6.21.0","@typescript-eslint/parser":"^6.21.0","axios-mock-adapter":"^1.22.0","eslint":"^8.45.0","eslint-config-prettier":"^9.1.2","eslint-plugin-prettier":"^5.5.4","livekit-client":"^2.15.10","prettier":"^3.0.0","rimraf":"^5.0.0","rollup":"^4.0.0","rollup-plugin-dts":"^6.0.0","ts-jest":"^29.1.0","tslib":"^2.6.0","typescript":"^5.2.0"},"peerDependencies":{"livekit-client":"^2.15.10","typescript":">=4.5.0"},"peerDependenciesMeta":{"livekit-client":{"optional":true}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"private":false,"_id":"@120356aa/pump-api@1.0.7","gitHead":"6ff7158402186baed62c753f0b4f1a92d9c4a379","_nodeVersion":"22.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-AXUrdu7woxSuYboPVcmG/xrwjPs8OnGMhsDPOUy2iId+tKIbZI/i8N87zvauUY/jvqeDdVBL00tveT2de8TRjA==","shasum":"45b56660f2ca7a82545b4d741178e6073edb9134","tarball":"https://registry.npmjs.org/@120356aa/pump-api/-/pump-api-1.0.7.tgz","fileCount":18,"unpackedSize":483871,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEsSLktr3ixWYy2Pb6phONMaBXP8isRNUSFiDdhIXnupAiEAwkCULYGKDnx52aLyLRXwdHmcGtggDpzbAIoCVFUeTIo="}]},"_npmUser":{"name":"120356aa","email":"yurlovandrew@gmail.com"},"directories":{},"maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pump-api_1.0.7_1760825312231_0.4903834357875132"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-16T02:02:12.543Z","modified":"2025-10-18T22:08:32.676Z","1.0.0":"2025-10-16T02:02:12.900Z","1.0.1":"2025-10-16T02:16:58.496Z","1.0.2":"2025-10-18T20:04:15.223Z","1.0.3":"2025-10-18T21:40:24.229Z","1.0.4":"2025-10-18T21:46:10.885Z","1.0.5":"2025-10-18T21:55:07.285Z","1.0.6":"2025-10-18T22:03:11.072Z","1.0.7":"2025-10-18T22:08:32.473Z"},"bugs":{"url":"https://github.com/snowdamiz/pumpfun-api/issues"},"author":{"name":"Openworth"},"license":"MIT","homepage":"https://github.com/snowdamiz/pumpfun-api/blob/main/README.md","keywords":["pumpfun","api","client","typescript","streaming","cryptocurrency","solana","livestream","video"],"repository":{"type":"git","url":"git+https://github.com/snowdamiz/pumpfun-api.git","directory":"packages/api-client"},"description":"TypeScript client library for PumpFun streaming data API","maintainers":[{"name":"120356aa","email":"yurlovandrew@gmail.com"}],"readme":"# @120356aa/pump-api\r\n\r\n[![npm version](https://badge.fury.io/js/%40120356aa%2Fpump-api.svg)](https://badge.fury.io/js/%40120356aa%2Fpump-api)\r\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.2+-blue.svg)](https://www.typescriptlang.org/)\r\n[![Node.js](https://img.shields.io/badge/Node.js-18.0+-green.svg)](https://nodejs.org/)\r\n\r\nA TypeScript client library for PumpFun streaming data API that provides easy access to live cryptocurrency streams, stream clips, and real-time data from the PumpFun platform.\r\n\r\n## Features\r\n\r\n- 🔄 **Real-time Streaming**: Connect to live cryptocurrency streams with WebRTC\r\n- 📊 **Stream Discovery**: Filter and discover live streams based on various criteria\r\n- 🎬 **Clip Management**: Access stream highlights and complete recordings\r\n- 🔧 **Type Safety**: Full TypeScript support with comprehensive type definitions\r\n- 🛡️ **Error Handling**: Robust error handling with detailed error information\r\n- 📝 **Logging**: Built-in logging system with configurable levels\r\n- 🔄 **Retry Logic**: Automatic retry mechanism for failed requests\r\n- 🚦 **Rate Limiting**: Built-in rate limiting to prevent API abuse\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @120356aa/pump-api\r\n# or\r\nyarn add @120356aa/pump-api\r\n# or\r\npnpm add @120356aa/pump-api\r\n```\r\n\r\n### Peer Dependencies\r\n\r\nFor live streaming functionality, you'll need to install the LiveKit client:\r\n\r\n```bash\r\nnpm install livekit-client\r\n```\r\n\r\n## Quick Start\r\n\r\n```typescript\r\nimport { createClient } from '@120356aa/pump-api';\r\n\r\n// Create a client instance\r\nconst client = createClient({\r\n  timeout: 10000,\r\n});\r\n\r\n// Get live streams\r\nconst liveStreams = await client.filterStreams({\r\n  minParticipants: 10,\r\n  limit: 20\r\n});\r\n\r\nconsole.log(`Found ${liveStreams.streams.length} live streams`);\r\n```\r\n\r\n## API Reference\r\n\r\n### Client Configuration\r\n\r\n```typescript\r\ninterface ClientConfig {\r\n  timeout?: number;                    // Default: 10000 (10 seconds)\r\n  retryConfig?: Partial<RetryConfig>;   // Optional retry configuration\r\n  loggerConfig?: Partial<LoggerConfig>; // Optional logger configuration\r\n  rateLimitConfig?: Partial<RateLimitConfig>; // Optional rate limiting configuration\r\n}\r\n```\r\n\r\n**Note:** The library uses hardcoded endpoints and does not require authentication. The following URLs are used internally:\r\n- API Endpoint: `https://frontend-api-v3.pump.fun`\r\n- Livestream API: `https://livestream-api.pump.fun`\r\n- WebSocket: `wss://stream.pump.fun`\r\n\r\n### Main API Methods\r\n\r\n#### 1. Filter Live Streams\r\n\r\nFilter and discover live streams based on various criteria:\r\n\r\n```typescript\r\ninterface FilterCriteria {\r\n  minParticipants?: number;\r\n  maxParticipants?: number;\r\n  limit?: number;\r\n  offset?: number;\r\n  marketCapRange?: { min?: number; max?: number };\r\n  createdTimeRange?: { start: string; end: string };\r\n  hasSocialMedia?: { twitter?: boolean; telegram?: boolean };\r\n  contentQuality?: {\r\n    hasTitle?: boolean;\r\n    hasDescription?: boolean;\r\n    minTitleLength?: number;\r\n    minDescriptionLength?: number;\r\n  };\r\n  textPatterns?: {\r\n    nameContains?: string[];\r\n    symbolContains?: string[];\r\n    excludePatterns?: string[];\r\n  };\r\n  sortBy?: 'participants' | 'market_cap' | 'created_at';\r\n  sortOrder?: 'asc' | 'desc';\r\n}\r\n\r\nconst filteredStreams = await client.filterStreams({\r\n  minParticipants: 50,\r\n  limit: 10,\r\n  sortBy: 'participants',\r\n  sortOrder: 'desc',\r\n  hasSocialMedia: { twitter: true },\r\n  contentQuality: { hasTitle: true, minTitleLength: 5 }\r\n});\r\n\r\nconsole.log(`Found ${filteredStreams.streams.length} streams`);\r\nconsole.log(`Filtered out ${filteredStreams.filteredOut} streams`);\r\nconsole.log(`Processing time: ${filteredStreams.processingTimeMs}ms`);\r\n```\r\n\r\n#### 2. Get Stream Content\r\n\r\nRetrieve clips, highlights, and previous streams for a specific mint:\r\n\r\n```typescript\r\ninterface ContentFilters {\r\n  contentType?: 'all' | 'clips' | 'highlights' | 'previous_streams';\r\n  clipType?: 'COMPLETE' | 'HIGHLIGHT' | 'all';\r\n  includeHighlights?: boolean;\r\n  includePreviousStreams?: boolean;\r\n  includeClips?: boolean;\r\n  limit?: number;\r\n  maxHighlights?: number;\r\n  maxPreviousStreams?: number;\r\n  daysBack?: number;\r\n  minDuration?: number;\r\n  maxDuration?: number;\r\n  minViewCount?: number;\r\n  maxViewCount?: number;\r\n  dateRange?: { start: string; end: string };\r\n  hasUrl?: boolean;\r\n  sortBy?: 'created_at' | 'duration' | 'view_count' | 'stream_start';\r\n  sortOrder?: 'ASC' | 'DESC';\r\n}\r\n\r\nconst streamContent = await client.getStreamContent('mint-id-here', {\r\n  contentType: 'all',\r\n  includeHighlights: true,\r\n  includePreviousStreams: true,\r\n  limit: 50,\r\n  minDuration: 30,\r\n  sortBy: 'created_at',\r\n  sortOrder: 'DESC'\r\n});\r\n\r\nconsole.log(`Total content items: ${streamContent.totalCount}`);\r\nconsole.log(`Clips: ${streamContent.contentSummary.clipsCount}`);\r\nconsole.log(`Highlights: ${streamContent.contentSummary.highlightsCount}`);\r\nconsole.log(`Previous streams: ${streamContent.contentSummary.previousStreamsCount}`);\r\n```\r\n\r\n#### 3. Connect to Live Stream\r\n\r\nConnect to a live stream for real-time audio/video:\r\n\r\n```typescript\r\ninterface StreamOptions {\r\n  videoElement?: HTMLVideoElement | null;\r\n  audioElement?: HTMLAudioElement | null;\r\n  autoConnect?: boolean;\r\n  autoPlay?: boolean;\r\n  muted?: boolean;\r\n  videoEnabled?: boolean;\r\n  audioEnabled?: boolean;\r\n  preferredQuality?: 'auto' | 'high' | 'medium' | 'low';\r\n  maxReconnectAttempts?: number;\r\n  reconnectDelayMs?: number;\r\n}\r\n\r\n// Connect to a stream\r\nconst connection = await client.connectToStream('mint-id-here', {\r\n  videoElement: document.getElementById('video') as HTMLVideoElement,\r\n  autoPlay: true,\r\n  muted: true,\r\n  preferredQuality: 'high'\r\n});\r\n\r\nconsole.log(`Connected to stream: ${connection.id}`);\r\n\r\n// Control the stream\r\nawait connection.toggleAudio();\r\nawait connection.toggleVideo();\r\nawait connection.setQuality('medium');\r\n\r\n// Disconnect when done\r\nawait connection.disconnect();\r\n```\r\n\r\n#### 4. Stream Management\r\n\r\nManage active stream connections:\r\n\r\n```typescript\r\n// Get all active connections\r\nconst activeConnections = await client.getActiveStreams();\r\nconsole.log(`Active connections: ${activeConnections.length}`);\r\n\r\n// Toggle audio/video for a specific connection\r\nawait client.toggleAudio('connection-id-or-mint-id');\r\nawait client.toggleVideo('connection-id-or-mint-id');\r\n\r\n// Set stream quality\r\nawait client.setStreamQuality('connection-id-or-mint-id', 'high');\r\n\r\n// Disconnect from a stream\r\nawait client.disconnectFromStream('connection-id-or-mint-id');\r\n```\r\n\r\n#### 5. Client Shutdown\r\n\r\nCleanly shutdown the client and all connections:\r\n\r\n```typescript\r\nawait client.shutdown();\r\n```\r\n\r\n## Data Models\r\n\r\n### LiveCoin\r\n\r\n```typescript\r\ninterface LiveCoin {\r\n  mint: string;                    // Token mint address\r\n  name: string;                    // Token name\r\n  symbol: string;                  // Token symbol\r\n  description: string;             // Token description\r\n  image_uri: string;               // Token image URL\r\n  twitter?: string;                // Twitter handle\r\n  telegram?: string;               // Telegram link\r\n  creator: string;                 // Creator address\r\n  created_timestamp: number;       // Creation timestamp\r\n  market_cap: number;              // Market cap\r\n  usd_market_cap: number;          // USD market cap\r\n  is_currently_live: boolean;      // Currently streaming\r\n  livestream_title?: string;       // Stream title\r\n  num_participants: number;        // Number of participants\r\n  reply_count: number;             // Number of replies\r\n  thumbnail: string;               // Thumbnail URL\r\n  last_reply: number;              // Last reply timestamp\r\n}\r\n```\r\n\r\n### StreamClip\r\n\r\n```typescript\r\ninterface StreamClip {\r\n  id: string;                      // Clip ID\r\n  mintId: string;                  // Associated mint ID\r\n  clipType: 'COMPLETE' | 'HIGHLIGHT'; // Clip type\r\n  duration: number;                // Duration in seconds\r\n  view_count?: number;             // View count\r\n  created_at: string;              // Creation timestamp\r\n  roomName: string;                // Room name\r\n  sessionId: string;               // Session ID\r\n  startTime: string;               // Start time\r\n  endTime: string;                 // End time\r\n  playlistUrl?: string;            // Playlist URL\r\n  mp4Url?: string;                 // MP4 URL\r\n  thumbnailUrl: string;            // Thumbnail URL\r\n  hidden: boolean;                 // Hidden status\r\n  highlightCreatorAddress?: string; // Highlight creator\r\n  clip_url?: string;               // Direct clip URL\r\n}\r\n```\r\n\r\n### StreamConnection\r\n\r\n```typescript\r\ninterface StreamConnection {\r\n  id: string;                      // Connection ID\r\n  mintId: string;                  // Mint ID\r\n  isConnected: boolean;            // Connection status\r\n  state: ConnectionState;          // Connection state\r\n  mediaStream?: MediaStream;       // Media stream\r\n  videoTrack?: MediaStreamTrack;   // Video track\r\n  audioTrack?: MediaStreamTrack;   // Audio track\r\n\r\n  // Connection management\r\n  disconnect(): Promise<void>;\r\n  reconnect(): Promise<void>;\r\n  getStats(): Promise<RTCStatsReport>;\r\n\r\n  // Media controls\r\n  toggleAudio(): Promise<void>;\r\n  toggleVideo(): Promise<void>;\r\n  muteAudio(): Promise<void>;\r\n  unmuteAudio(): Promise<void>;\r\n  muteVideo(): Promise<void>;\r\n  unmuteVideo(): Promise<void>;\r\n  setQuality(quality: VideoQuality): Promise<void>;\r\n}\r\n```\r\n\r\n## Error Handling\r\n\r\nThe library provides comprehensive error handling with specific error types:\r\n\r\n```typescript\r\nimport {\r\n  PumpFunError,\r\n  NetworkError,\r\n  RateLimitError,\r\n  ValidationError\r\n} from '@120356aa/pump-api';\r\n\r\ntry {\r\n  const streams = await client.filterStreams({ limit: 100 });\r\n} catch (error) {\r\n  if (error instanceof RateLimitError) {\r\n    console.log(`Rate limited. Retry after: ${error.getRetryDelay()}ms`);\r\n    console.log('Suggestions:', error.getResolution());\r\n  } else if (error instanceof ValidationError) {\r\n    console.log('Validation failed:', error.message);\r\n    console.log('Field:', error.details?.field);\r\n  } else if (error instanceof NetworkError) {\r\n    console.log('Network error:', error.message);\r\n    if (error.canRetry()) {\r\n      setTimeout(() => retry(), error.getRetryDelay());\r\n    }\r\n  }\r\n}\r\n```\r\n\r\n### Error Types\r\n\r\n- **`PumpFunError`**: Base error class for all PumpFun errors\r\n- **`NetworkError`**: Network-related errors (connection issues, DNS failures)\r\n- **`RateLimitError`**: Rate limit exceeded\r\n- **`ValidationError`**: Invalid parameters or request format\r\n- **`NotFoundError`**: Resource not found\r\n- **`ServerError`**: Server-side errors\r\n- **`ConfigurationError`**: Client configuration issues\r\n- **`TimeoutError`**: Request timeout\r\n- **`LiveKitError`**: LiveKit streaming errors\r\n\r\n## Logging\r\n\r\nConfigure logging to monitor API activity:\r\n\r\n```typescript\r\nconst client = createClient({\r\n  loggerConfig: {\r\n    level: 'INFO',                 // DEBUG, INFO, WARN, ERROR, CRITICAL\r\n    enableConsole: true,\r\n    enableColors: true,\r\n    enableTimestamps: true,\r\n    enableStructuredLogs: false,\r\n    enablePerformanceLogging: true,\r\n    enableRequestLogging: true,\r\n    enableErrorTracking: true\r\n  }\r\n});\r\n```\r\n\r\n## Configuration Examples\r\n\r\n### Basic Configuration\r\n\r\n```typescript\r\nconst client = createClient({\r\n  timeout: 15000\r\n});\r\n```\r\n\r\n### Advanced Configuration\r\n\r\n```typescript\r\nconst client = createClient({\r\n  timeout: 20000,\r\n  retryConfig: {\r\n    maxRetries: 5,\r\n    baseDelay: 2000,\r\n    maxDelay: 60000,\r\n    backoffFactor: 2,\r\n    enableJitter: true\r\n  },\r\n  rateLimitConfig: {\r\n    maxRequestsPerWindow: 100,\r\n    windowMs: 60000,\r\n    enableBackoff: true,\r\n    enableBurstProtection: true,\r\n    maxBurst: 20\r\n  },\r\n  loggerConfig: {\r\n    level: 'DEBUG',\r\n    enableConsole: true,\r\n    enableFileLogging: true,\r\n    logFilePath: './pumpfun-api.log'\r\n  }\r\n});\r\n```\r\n\r\n## Browser Usage\r\n\r\nThe library works in browser environments with WebRTC support:\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n  <script type=\"module\">\r\n    import { createClient } from '@120356aa/pump-api';\r\n\r\n    const client = createClient();\r\n\r\n    // Connect to a stream\r\n    async function connectToStream(mintId) {\r\n      const videoElement = document.getElementById('video');\r\n\r\n      const connection = await client.connectToStream(mintId, {\r\n        videoElement,\r\n        autoPlay: true,\r\n        muted: false\r\n      });\r\n\r\n      console.log('Connected to stream:', connection.id);\r\n    }\r\n\r\n    // Usage\r\n    connectToStream('your-mint-id-here');\r\n  </script>\r\n</head>\r\n<body>\r\n  <video id=\"video\" controls autoplay></video>\r\n</body>\r\n</html>\r\n```\r\n\r\n## Contributing\r\n\r\n1. Clone the repository\r\n2. Install dependencies: `npm install`\r\n3. Run tests: `npm test`\r\n4. Build the project: `npm run build`\r\n5. Run linting: `npm run lint`\r\n\r\n## License\r\n\r\nMIT License - see LICENSE file for details.\r\n\r\n## Support\r\n\r\n- 📖 [Documentation](https://github.com/snowdamiz/pumpfun-api)\r\n- 🐛 [Issue Tracker](https://github.com/snowdamiz/pumpfun-api/issues)\r\n- 💬 [Discussions](https://github.com/snowdamiz/pumpfun-api/discussions)\r\n\r\n## Changelog\r\n\r\nSee [CHANGELOG.md](CHANGELOG.md) for a list of changes and version history.","readmeFilename":"README.md"}