Spaces:
Runtime error
Runtime error
| # @rmyndharis/openwa | |
| Official JavaScript/TypeScript SDK for the [OpenWA](https://github.com/rmyndharis/OpenWA) WhatsApp API Gateway. | |
| Ships dual CJS + ESM builds with bundled type declarations. | |
| ## Install | |
| ```bash | |
| npm install @rmyndharis/openwa | |
| ``` | |
| Requires Node.js >= 18 (relies on the global `fetch`). | |
| ## Usage | |
| ```typescript | |
| import { OpenWAClient } from '@rmyndharis/openwa'; | |
| const client = new OpenWAClient({ | |
| baseUrl: 'https://your-gateway.example.com', | |
| apiKey: 'owa_k1_…', | |
| }); | |
| await client.sessions.start('my-session'); | |
| const result = await client.messages.sendText('my-session', { | |
| chatId: '628123456789@c.us', | |
| text: 'Hello from the OpenWA SDK!', | |
| }); | |
| console.log(result.messageId); | |
| ``` | |
| CommonJS consumers use `require('@rmyndharis/openwa')` identically. | |
| ## Messaging | |
| > Voice notes: pass `ptt: true` to `sendAudio` to send a real WhatsApp voice note (PTT). Supply `audio/ogg; codecs=opus` audio for reliable playback; the server defaults the mimetype to that when `ptt` is set without one. | |
| ## Errors | |
| Non-2xx responses throw a typed `OpenWAApiError` subclass | |
| (`OpenWAAuthError`, `OpenWAForbiddenError`, `OpenWANotFoundError`, | |
| `OpenWAConflictError`, `OpenWARateLimitError`, `OpenWANotImplementedError`), | |
| each carrying `.status` and the parsed `.body`. Timeouts throw | |
| `OpenWATimeoutError`. The SDK does **not** retry — wrap calls with your own | |
| backoff if needed. | |
| ## License | |
| MIT | |