{"_id":"@coffebit/coffepay_sdk","_rev":"2-c4c74dcc64a7cee1f97a768b14c35511","name":"@coffebit/coffepay_sdk","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@coffebit/coffepay_sdk","version":"0.1.0","keywords":["mpesa","payments","mozambique","sdk","coffepay"],"author":{"name":"CoffePay Lda."},"license":"Proprietary","_id":"@coffebit/coffepay_sdk@0.1.0","maintainers":[{"name":"coffebit_admin","email":"admin@coffebit.com"}],"dist":{"shasum":"a16b56cb580f4a9aea693cdf23507622b7e7a042","tarball":"https://registry.npmjs.org/@coffebit/coffepay_sdk/-/coffepay_sdk-0.1.0.tgz","fileCount":11,"integrity":"sha512-x+g8pib9SIzb4/vvRA96MhfaeJpooQ516CvTgoqj2+gaSRDobxNtbSxi3319RQSECzv9lMAmjYSiA8JbpagIbw==","signatures":[{"sig":"MEUCIQDMvbZweUVVZ2f++6m7sLfq2UZr5rpQbCwWZnxJypmr0wIgBoVBlKb6rzq5T+AbXB38pCEashJBr7rhn0FUnRyUCOg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":14981},"main":"./dist/index.js","types":"./dist/index.d.ts","module":"./dist/index.mjs","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"}},"scripts":{"dev":"tsup src/index.ts src/react/index.ts --format cjs,esm --watch --dts","lint":"tsc --noEmit","build":"tsup src/index.ts src/react/index.ts --format cjs,esm --dts --clean --minify"},"_npmUser":{"name":"coffebit_admin","email":"admin@coffebit.com"},"_npmVersion":"10.9.4","description":"CoffePay JavaScript/TypeScript SDK for M-Pesa integrations","directories":{},"_nodeVersion":"22.21.1","dependencies":{"axios":"^1.6.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^18.2.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/react":"^18.0.0"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/coffepay_sdk_0.1.0_1771354344427_0.8248953158756522","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@coffebit/coffepay_sdk","version":"0.1.2","description":"CoffePay JavaScript/TypeScript SDK for M-Pesa integrations","main":"./dist/index.js","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"},"./react":{"types":"./dist/react/index.d.ts","import":"./dist/react/index.mjs","require":"./dist/react/index.js"}},"scripts":{"build":"tsup src/index.ts src/react/index.ts --format cjs,esm --dts --clean --minify","dev":"tsup src/index.ts src/react/index.ts --format cjs,esm --watch --dts","lint":"tsc --noEmit"},"keywords":["mpesa","payments","mozambique","sdk","coffepay"],"author":{"name":"CoffePay Lda."},"license":"Proprietary","dependencies":{"axios":"^1.6.0"},"peerDependencies":{"react":">=16.8.0"},"peerDependenciesMeta":{"react":{"optional":true}},"devDependencies":{"@types/node":"^20.0.0","@types/react":"^18.0.0","react":"^18.2.0","tsup":"^8.0.0","typescript":"^5.0.0"},"_id":"@coffebit/coffepay_sdk@0.1.2","gitHead":"ffb68e28c4f30274dfb90e1a271c217dade6b899","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-8uJkEd7yqZNq35Jp1Em7hEAFPisf/O64rzTYvTCQLSI20ByJFhWhlrWZbv5aylrWECI6vUVuT+A4Fjv5iv0Djg==","shasum":"7e11519daf4e595e3eac7abea3188e6c2f843a11","tarball":"https://registry.npmjs.org/@coffebit/coffepay_sdk/-/coffepay_sdk-0.1.2.tgz","fileCount":11,"unpackedSize":15057,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC8XGbUel2k3tOJm/7NMTU83o5BLi85N/Xw+QYeis0VDAIgOd3D2ySTEqw9FqCC5gzbQe7cyxdMaOW7rAy1TZzJI84="}]},"_npmUser":{"name":"coffebit_admin","email":"admin@coffebit.com"},"directories":{},"maintainers":[{"name":"coffebit_admin","email":"admin@coffebit.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/coffepay_sdk_0.1.2_1774996473020_0.48813798811704046"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-17T18:52:24.311Z","modified":"2026-03-31T22:34:33.320Z","0.1.0":"2026-02-17T18:52:24.572Z","0.1.2":"2026-03-31T22:34:33.166Z"},"author":{"name":"CoffePay Lda."},"license":"Proprietary","keywords":["mpesa","payments","mozambique","sdk","coffepay"],"description":"CoffePay JavaScript/TypeScript SDK for M-Pesa integrations","maintainers":[{"name":"coffebit_admin","email":"admin@coffebit.com"}],"readme":"# CoffePay SDK for JavaScript/TypeScript\n\nIntegrating M-Pesa payments into your web application has never been easier. This SDK provides a simple interface to initiate payments and listen for real-time status updates via WebSockets.\n\n> [!TIP]\n> **Resource Optimized**: The SDK uses \"On-Demand\" connections. It only opens the WebSocket tunnel when a payment is actually in progress and closes it immediately after completion, saving battery and data for your users.\n\n## Installation\n\n```bash\nnpm install @coffebit/coffepay_sdk\n```\n\n## Usage\n\n### 1. Basic Integration (Vanilla JS/TS)\n\n```typescript\nimport { CoffePayClient, CoffePayTunnel } from '@coffebit/coffepay_sdk';\n\nconst client = new CoffePayClient('your-license-key');\nconst tunnel = new CoffePayTunnel('your-license-key');\n\n// 1. Listen for status updates\ntunnel.listen((event) => {\n  if (event.status === 'success') {\n    alert('Payment successful!');\n  } else if (event.status === 'error') {\n    alert(`Payment failed: ${event.error}`);\n  }\n});\n\n// 2. Initiate payment\nasync function handlePay() {\n  try {\n    const response = await client.initiatePayment({\n      amount: 10,\n      msisdn: '840000000',\n      reference: 'ORDER-123'\n    });\n    console.log('Payment initiated:', response.provider_ref);\n  } catch (err) {\n    console.error('Initiation failed:', err);\n  }\n}\n```\n\n### 2. React Integration\n\n```tsx\nimport { useCoffePay } from '@coffebit/coffepay_sdk/react';\n\nfunction PaymentButton() {\n  const { pay, isLoading, status, error } = useCoffePay({\n    licenseKey: 'your-license-key',\n    onSuccess: (event) => console.log('Paid!', event),\n    onError: (err) => console.error('Error', err),\n  });\n\n  return (\n    <div>\n      <button \n        disabled={isLoading}\n        onClick={() => pay({ amount: 10, msisdn: '840000000', reference: 'REF-1' })}\n      >\n        {isLoading ? 'Processing...' : 'Pay with M-Pesa'}\n      </button>\n\n      {status === 'success' && <p>✅ Payment Successful!</p>}\n      {status === 'error' && <p>❌ Error: {error}</p>}\n    </div>\n  );\n}\n```\n\n## API Reference\n\n### `CoffePayClient`\n- `initiatePayment(params)`: Sends a payment request to the merchant's customer.\n\n### `CoffePayTunnel`\n- `listen(callback)`: Connects to the real-time notification service.\n- `stop()`: Disconnects the tunnel.\n\n### `useCoffePay(options)` (React)\n- `pay(params)`: Initiates payment and manages state.\n- `isLoading`: Boolean state for the current request.\n- `status`: `'idle' | 'pending' | 'success' | 'error'`.\n- `transaction`: The full payment event data.\n","readmeFilename":"README.md"}