{"_id":"@builderz/maiker-analytics-sdk","_rev":"4-185a7697105d2671cb066c838b8628ee","name":"@builderz/maiker-analytics-sdk","dist-tags":{"latest":"0.1.3"},"versions":{"0.1.0":{"name":"@builderz/maiker-analytics-sdk","version":"0.1.0","keywords":["defi","analytics","dlmm","maiker","api-client","typescript"],"author":{"name":"Builderz"},"license":"MIT","_id":"@builderz/maiker-analytics-sdk@0.1.0","maintainers":[{"name":"kultureelectric","email":"tiziankulture@proton.me"}],"homepage":"https://github.com/builderz/maiker-analytics#readme","bugs":{"url":"https://github.com/builderz/maiker-analytics/issues"},"dist":{"shasum":"a759448fef510b9b3aa061913f0c67c7f26db624","tarball":"https://registry.npmjs.org/@builderz/maiker-analytics-sdk/-/maiker-analytics-sdk-0.1.0.tgz","fileCount":20,"integrity":"sha512-lutpKkLIsH//XnExNnWqEHBJ7T3T6DinasXwPtQ1kOZ59sZYN5MSOKl9e80UFeuTbO1P/J34RJQWIv4VCyYJyQ==","signatures":[{"sig":"MEQCIFIBNHQZmzG9Vkq4BPWu7/qpsHgnB12hBH//uzVwYbEUAiA+NR6QcFteuaraiAeqzhKhYqEPtohgHOx7QYYT67dCLA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":29919},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"4ea89fbf5efcabc06845896e81e4a7b1628d116b","private":false,"scripts":{"lint":"eslint 'src/**/*.{js,ts}'","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint 'src/**/*.{js,ts}' --fix","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"kultureelectric","email":"tiziankulture@proton.me"},"repository":{"url":"git+https://github.com/builderz/maiker-analytics.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript API client for Maiker Analytics","directories":{},"_nodeVersion":"20.18.0","_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","prettier":"^3.0.3","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","typescript-eslint":"^8.20.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.10.0","@typescript-eslint/eslint-plugin":"^6.10.0"},"_npmOperationalInternal":{"tmp":"tmp/maiker-analytics-sdk_0.1.0_1748670663606_0.8486661411106935","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@builderz/maiker-analytics-sdk","version":"0.1.1","keywords":["defi","analytics","dlmm","maiker","api-client","typescript"],"author":{"name":"Builderz"},"license":"MIT","_id":"@builderz/maiker-analytics-sdk@0.1.1","maintainers":[{"name":"kultureelectric","email":"tiziankulture@proton.me"}],"homepage":"https://github.com/builderz/maiker-analytics#readme","bugs":{"url":"https://github.com/builderz/maiker-analytics/issues"},"dist":{"shasum":"21fe098ea647978958404b1c81e8deebfd6a659d","tarball":"https://registry.npmjs.org/@builderz/maiker-analytics-sdk/-/maiker-analytics-sdk-0.1.1.tgz","fileCount":23,"integrity":"sha512-5bGAdPtgA3SV9xy5KtL9rF4iHhIEiMLoHaLJG8fLq4+z9AzuYBu3wPXFbcvzk5T8HLCXhn+hyFQK0eTLy4DEqw==","signatures":[{"sig":"MEUCIQCIVz4mt+sZi3FVaboIAf4+8dbLWQbeviOw7bdSaWvj+wIgNeE7pB/kntWmjDGABQ0IVf5MF93yZ3XuKvN587pK9fM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":46021},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"e22f0be168244d217f80c17bd978a5c83537a3eb","private":false,"scripts":{"lint":"eslint 'src/**/*.{js,ts}'","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint 'src/**/*.{js,ts}' --fix","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"kultureelectric","email":"tiziankulture@proton.me"},"repository":{"url":"git+https://github.com/builderz/maiker-analytics.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript API client for Maiker Analytics","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","prettier":"^3.0.3","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","typescript-eslint":"^8.20.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.10.0","@typescript-eslint/eslint-plugin":"^6.10.0"},"_npmOperationalInternal":{"tmp":"tmp/maiker-analytics-sdk_0.1.1_1748678230298_0.685202164337912","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@builderz/maiker-analytics-sdk","version":"0.1.2","keywords":["defi","analytics","dlmm","maiker","api-client","typescript"],"author":{"name":"Builderz"},"license":"MIT","_id":"@builderz/maiker-analytics-sdk@0.1.2","maintainers":[{"name":"kultureelectric","email":"tiziankulture@proton.me"}],"homepage":"https://github.com/builderz/maiker-analytics#readme","bugs":{"url":"https://github.com/builderz/maiker-analytics/issues"},"dist":{"shasum":"bc40e64d9a4a4ea44ff3ea06dea686f6df8a512b","tarball":"https://registry.npmjs.org/@builderz/maiker-analytics-sdk/-/maiker-analytics-sdk-0.1.2.tgz","fileCount":20,"integrity":"sha512-sgm2q2TACNZMaapF/ApuyRJpXEe/8ehmrnC04E5Y2le4eZQNyUbovkcwp9H9Cjy/3prmd+zp9oHJdJIxJDwr8A==","signatures":[{"sig":"MEQCIGYQS63vxHBWv6ehcipuSAmoXqiPxYufmj+sVV0MWuzdAiBQKAioAbRttFUjjva5pTwwQuCO8dknZRl3NsHSSBhZ+w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27117},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"deac7ee68bea601ce3bd335d225b2a5be74a4c63","private":false,"scripts":{"lint":"eslint 'src/**/*.{js,ts}'","test":"jest","build":"tsc","clean":"rimraf dist","lint:fix":"eslint 'src/**/*.{js,ts}' --fix","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"kultureelectric","email":"tiziankulture@proton.me"},"repository":{"url":"git+https://github.com/builderz/maiker-analytics.git","type":"git"},"_npmVersion":"10.8.2","description":"TypeScript API client for Maiker Analytics","directories":{},"_nodeVersion":"20.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.7.0","eslint":"^8.53.0","rimraf":"^5.0.5","ts-jest":"^29.1.1","prettier":"^3.0.3","typescript":"^5.2.2","@types/jest":"^29.5.8","@types/node":"^20.9.0","typescript-eslint":"^8.20.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","@typescript-eslint/parser":"^6.10.0","@typescript-eslint/eslint-plugin":"^6.10.0"},"_npmOperationalInternal":{"tmp":"tmp/maiker-analytics-sdk_0.1.2_1748856709196_0.7825473244750831","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@builderz/maiker-analytics-sdk","version":"0.1.3","description":"TypeScript API client for Maiker Analytics","main":"dist/index.js","types":"dist/index.d.ts","private":false,"publishConfig":{"access":"public"},"scripts":{"build":"tsc","test":"jest","lint":"eslint 'src/**/*.{js,ts}'","lint:fix":"eslint 'src/**/*.{js,ts}' --fix","clean":"rimraf dist","prepublishOnly":"npm run clean && npm run build"},"repository":{"type":"git","url":"git+https://github.com/builderz/maiker-analytics.git"},"keywords":["defi","analytics","dlmm","maiker","api-client","typescript"],"author":{"name":"Builderz"},"license":"MIT","devDependencies":{"@types/jest":"^29.5.8","@types/node":"^20.9.0","@typescript-eslint/eslint-plugin":"^6.10.0","@typescript-eslint/parser":"^6.10.0","eslint":"^8.53.0","eslint-config-prettier":"^9.0.0","eslint-plugin-prettier":"^5.0.1","jest":"^29.7.0","prettier":"^3.0.3","rimraf":"^5.0.5","ts-jest":"^29.1.1","typescript":"^5.2.2","typescript-eslint":"^8.20.0"},"_id":"@builderz/maiker-analytics-sdk@0.1.3","gitHead":"3b61d418478649e7474741e9560e304644d79db0","bugs":{"url":"https://github.com/builderz/maiker-analytics/issues"},"homepage":"https://github.com/builderz/maiker-analytics#readme","_nodeVersion":"20.18.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-wejuWqgfhq9oXKNDwZqle5C33BxogAU4bsAlDaJv6cG2z97UF/YWPUMMROiSWH7dTU+x7fdchZb+1wyuIzf5xg==","shasum":"5b449cac89c2c304f5cb77dc768588d7fd6ba865","tarball":"https://registry.npmjs.org/@builderz/maiker-analytics-sdk/-/maiker-analytics-sdk-0.1.3.tgz","fileCount":20,"unpackedSize":27083,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGPx0AlZrNOcqd7sII0Kr8mFkSvzwWJS+OTC/eql5vwPAiEAszp8Pe2Avzfl8lvuGC0vzWdbblMzeT/ZVC5g+r3eY4U="}]},"_npmUser":{"name":"kultureelectric","email":"tiziankulture@proton.me"},"directories":{},"maintainers":[{"name":"kultureelectric","email":"tiziankulture@proton.me"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/maiker-analytics-sdk_0.1.3_1748951720453_0.700614355634771"},"_hasShrinkwrap":false}},"time":{"created":"2025-05-31T05:51:03.490Z","modified":"2025-06-03T11:55:20.845Z","0.1.0":"2025-05-31T05:51:03.790Z","0.1.1":"2025-05-31T07:57:10.485Z","0.1.2":"2025-06-02T09:31:49.383Z","0.1.3":"2025-06-03T11:55:20.627Z"},"bugs":{"url":"https://github.com/builderz/maiker-analytics/issues"},"author":{"name":"Builderz"},"license":"MIT","homepage":"https://github.com/builderz/maiker-analytics#readme","keywords":["defi","analytics","dlmm","maiker","api-client","typescript"],"repository":{"type":"git","url":"git+https://github.com/builderz/maiker-analytics.git"},"description":"TypeScript API client for Maiker Analytics","maintainers":[{"name":"kultureelectric","email":"tiziankulture@proton.me"}],"readme":"# Maiker Analytics SDK\n\nThe Maiker Analytics SDK provides TypeScript clients for accessing Maiker Analytics data through multiple interfaces:\n\n- **HTTP API Client**: Access analytics via REST API endpoints (recommended for client-side applications)\n- **Direct Database Client**: Direct PostgreSQL access for server-side applications\n- **Strategy Client**: On-chain Solana strategy data access\n\n## Installation\n\n```bash\nnpm install @builderz/maiker-analytics-sdk\n# or\nyarn add @builderz/maiker-analytics-sdk\n```\n\n## HTTP API Client (Recommended)\n\nThe HTTP API client provides a clean interface to the Maiker Analytics API:\n\n```typescript\nimport { MaikerAnalyticsApiClient } from '@builderz/maiker-analytics-sdk';\n\n// Initialize client\nconst client = new MaikerAnalyticsApiClient({\n  baseUrl: 'https://api.maiker.fun', // Optional, defaults to production\n  timeout: 30000, // Optional, defaults to 30 seconds\n});\n\n// Get all token pairs with statistics (includes volume, fees, TVL data)\nconst tokenMaps = await client.getPairTokenMaps();\n\n// Get timeseries data (v2 endpoint optimized for charting)\nconst timeseries = await client.getLbPairTimeseries(\n  ['lb_pair_1', 'lb_pair_2'],\n  {\n    start_timestamp: Math.floor(Date.now() / 1000) - 24 * 60 * 60, // Last 24 hours\n  },\n  '1h' // Hourly granularity\n);\n\n// Fee concentration analysis\nconst feeData = await client.getFeeConcentration('lb_pair_address');\n\n// Position analytics\nconst positionPnL = await client.getPositionPnL('position_id');\nconst positionTimeseries = await client.getPositionTimeseries('position_id');\nconst userPositions = await client.getUserPositions('owner_address');\n\n// Session analytics (all positions for owner/lb_pair)\nconst sessionPnL = await client.getSessionPnL('owner_address', 'lb_pair_address');\nconst sessionTimeseries = await client.getSessionTimeseries('owner_address', 'lb_pair_address');\n```\n\n## Available Endpoints\n\n### Pairs API\n- **`getPairTokenMaps()`**: Get all token pairs with LB pairs and statistics (volume, fees, TVL across multiple timeframes)\n- **`getLbPairTimeseries(lbPairs, timeRange?, granularity?)`**: Get timeseries data optimized for charting\n\n### Analysis API  \n- **`getFeeConcentration(lbPair, startTimestamp?)`**: Get fee concentration analysis\n\n### Position Analytics API\n- **`getPositionPnL(positionId, timeRange?)`**: Get single position PnL analysis\n- **`getPositionTimeseries(positionId, timeRange?)`**: Get single position timeseries data\n- **`getUserPositions(owner)`**: Get positions for a specific owner\n- **`getSessionPnL(owner, lbPair, timeRange?)`**: Get session PnL for all positions of owner/lb_pair\n- **`getSessionTimeseries(owner, lbPair, timeRange?)`**: Get session timeseries for all positions\n\n## Direct Database Client\n\nFor server-side applications with direct database access:\n\n```typescript\nimport { AnalyticsClient } from '@builderz/maiker-analytics-sdk';\n\nconst client = new AnalyticsClient({\n  connectionString: 'postgresql://user:pass@host:port/db',\n  ssl: true,\n});\n\n// Use the various analytics modules\nconst positionAnalytics = await client.positions.getAnalytics('position_id');\nconst pairAnalytics = await client.pairs.getAnalytics('lb_pair');\n```\n\n## Types\n\nAll TypeScript types are exported for use in your applications:\n\n```typescript\nimport {\n  TokenPair,\n  LBPair,\n  TimeseriesDataPoint,\n  PositionPnLResult,\n  PositionTimeseriesResult,\n  TokenMapsResponse,\n  TimeRange,\n  TimeGranularity,\n} from '@builderz/maiker-analytics-sdk';\n```\n\n## Environment Configuration\n\nThe HTTP API client automatically detects environment:\n\n```typescript\n// For local development\nprocess.env.NEXT_PUBLIC_LOCAL_API = 'true'; // Uses http://localhost:3000\n\n// For production (default)\n// Uses https://api.maiker.fun\n```\n\n## Error Handling\n\nAll clients include comprehensive error handling:\n\n```typescript\ntry {\n  const data = await client.getPairTokenMaps();\n} catch (error) {\n  console.error('API Error:', error.message);\n  // Handle error appropriately\n}\n```\n\n## API Reference\n\n### Time Ranges\n\n```typescript\ninterface TimeRange {\n  start_timestamp?: number; // Unix timestamp in seconds\n  end_timestamp?: number;   // Unix timestamp in seconds\n}\n```\n\n### Time Granularities\n\n- **TimeGranularity**: `'15m' | '1h' | '4h' | '12h' | '24h'`\n\n\n## Contributing\n\n1. Fork the repository\n2. Create your feature branch\n3. Add tests for new functionality\n4. Ensure all tests pass\n5. Submit a pull request ","readmeFilename":"README.md"}