{"_id":"@bytewise-solutions/mailverick","_rev":"12-76c339ab2eb177ee089c763ef27bca8a","name":"@bytewise-solutions/mailverick","dist-tags":{"latest":"1.5.0"},"versions":{"1.1.1":{"name":"@bytewise-solutions/mailverick","version":"1.1.1","_id":"@bytewise-solutions/mailverick@1.1.1","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"dist":{"shasum":"91c68bda259ae1770f9dfa0e66a2c68d59816d2a","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.1.1.tgz","fileCount":4,"integrity":"sha512-MZvsWq9wHW1I9XkduA1A1zSc1gqpIxo8SZwCZf2WpN4Ajt7EiIxC6aR5w0B+GOgmn770hOID2UgZXwe66AFR7A==","signatures":[{"sig":"MEUCIFmkHXj4k1nwenka8L3l963eqyu3C9J+cU8Ag/XYFjVOAiEA3Z+mkpGZZgelUtzT5U8X0U8WS3eiMwmx9XxfgplnB6U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6572},"main":"dist/index.js","types":"dist/index.d.ts","gitHead":"d70ace33a319849fa8f69819afaf628df841e62c","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.8.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"_nodeVersion":"20.19.1","dependencies":{"uuid":"^9.0.0","axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","@types/uuid":"^10.0.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mailverick_1.1.1_1772793027027_0.6260022567383003","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@bytewise-solutions/mailverick","version":"1.2.0","_id":"@bytewise-solutions/mailverick@1.2.0","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"dist":{"shasum":"b03d633159eee3c20d318c76d5c33eee649fac93","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.2.0.tgz","fileCount":4,"integrity":"sha512-adjQhHeXKCOXnQwvuwK9QbXpH0C3azqXrCbkChG0qzb654pvmG61YvFPq3rGxE/iT9c7/UgkLDAK/QEzopwjaA==","signatures":[{"sig":"MEYCIQCGGYIVx8OWYgmnCvom8Sls0JzT5Z61dxRNbHE8EmiYjgIhAKiTbkVPWrNj3RIq7X/rNo8zFpwD5Q5Zbx1naHT0+lOK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7905},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"d2de845706f99353677b2e1ea2f8c05d24ce041a","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.8.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mailverick_1.2.0_1782473320784_0.543513359202737","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@bytewise-solutions/mailverick","version":"1.2.1","_id":"@bytewise-solutions/mailverick@1.2.1","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"dist":{"shasum":"42119721a3b85947b8afe66f74ba6a910727c476","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.2.1.tgz","fileCount":4,"integrity":"sha512-tYyLUm6lk4fFr8SBOeifdCkIcG3iJuOq2kGADjt3G8+sLkqaJqj2ffULl+j7j/0sA4wLnicKcut/gOuHW55vBw==","signatures":[{"sig":"MEUCIQCykS2eQCx4Xnrq1+KO5FeYfxbmxRSujOUOgHe2L9EvnQIgSSv5GkBCTF3fH2yr8kMKAj9Y53hUahdRqLpzxhODni0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7786},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"dcbff417af6b27db6dd20445a788fa919fe2767b","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.8.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mailverick_1.2.1_1782473847095_0.39222221371837707","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@bytewise-solutions/mailverick","version":"1.3.0","_id":"@bytewise-solutions/mailverick@1.3.0","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"dist":{"shasum":"169b9683f864a5169b8407023e72524c52334a9a","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.3.0.tgz","fileCount":4,"integrity":"sha512-Js5tz/YmnSnLv8EQf+MjuZTBe+3RLcJrqVXVLyy5esxaciQtNz9+KPJBx1mcblyoqVDxKqkTytEsWmemwdPLEQ==","signatures":[{"sig":"MEUCICDCyqqLHeFl28CtCAXZsLkrylGkofR0/DYDorYAy9oxAiEAp+L/PLMG+F+jUJ4gAKzcwEbnICeQe5g4YKWdSvsOv/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGojOMZs9O/WKlBQm89gg5W01rEHkVtOvQGqTskAJtQ9AiB+XWJAz0NmmPMGYPzCU9fXIGvk+g/9k/2DnpK9p3sIvQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":11261},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"f3bb45e4bbf413a12fe79eb35e138010a5f858db","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.8.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"_nodeVersion":"20.20.2","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mailverick_1.3.0_1789735593653_0.14500611782981965","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@bytewise-solutions/mailverick","version":"1.4.0","_id":"@bytewise-solutions/mailverick@1.4.0","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"dist":{"shasum":"e18cb803db474271625757828fcc2c0c7cdd361f","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.4.0.tgz","fileCount":4,"integrity":"sha512-hWgqrzLJma/Wo/ssu6XJrvhSRhYM42CIXti4jriBx+bSfIJLZJILCi5sQyaVvE4dJl1Rn2+w4xAQpeEdebFEqg==","signatures":[{"sig":"MEUCIQCSiI386vO2BVOB16f6br0CSqebhyfDJJ43lQxpgJ0HgQIgOAioDSrkm2hvlhquUdWOqaR+XwPc6t/f0v4jE3mq7gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICWgWwZzKvwi0XV16kCqlCovHHNVZOWBlGYMGJIkPixfAiEA6bNMSCjwOpcldjdgtIU66YO91YwMdw13dmbtsjMHmWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":12502},"main":"dist/index.js","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"2b4d830992e02e9ef55d5c835d9e4e70c41fc999","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.9.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"_nodeVersion":"22.15.0","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"tmp":"tmp/mailverick_1.4.0_1790606334938_0.6200314464282433","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"_id":"@bytewise-solutions/mailverick@1.5.0","dist":{"shasum":"4e7e79bb3ed13df2ff677cda7db25366d6bcad6c","tarball":"https://registry.npmjs.org/@bytewise-solutions/mailverick/-/mailverick-1.5.0.tgz","fileCount":4,"integrity":"sha512-jD9QEZQiB2gJZNQb3UxH+veiCyR331QDwYNMZTK8P3ueak9u2GIuHytdNaWOkChHFTPUpaOsJuxsmrIlxzA0mw==","signatures":[{"sig":"MEYCIQDcmp3KuOZwwEuHzELXPj6lw0Xb6OQ70k1n3f+xPZEWlAIhAIK7w2NEIRcgH42MfX4lOY4FwN1kLfb4s0DdK/K4RcGh","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDw7D3HJpa8skKp0Ip7QWAge+ejfQALZrQWLsXcH7JNTwIhAM1BrgRnVPrlSNDqzDc23PJBKnzKxlpey3o6a6e9NA64"}],"unpackedSize":13655},"main":"dist/index.js","name":"@bytewise-solutions/mailverick","types":"dist/index.d.ts","engines":{"node":">=14"},"gitHead":"8eec04ef257b31233cf73ed5934d88c4fb25d54e","scripts":{"lint":"eslint \"{lib,test}/**/*.ts\"","test":"jest","build":"tsc","lint:fix":"eslint \"{lib,test}/**/*.ts\" --fix"},"version":"1.5.0","_npmUser":{"name":"jhoukem","email":"jhoukem@gmail.com"},"_npmVersion":"10.9.2","description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","directories":{},"maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"_nodeVersion":"22.15.0","dependencies":{"axios":"^1.6.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"jest":"^29.5.0","eslint":"^8.57.1","ts-jest":"^29.1.0","typescript":"~5.1.0","@types/jest":"^29.5.0","eslint-config-prettier":"^10.1.5","eslint-plugin-prettier":"^5.4.0","@typescript-eslint/parser":"^5.62.0","@typescript-eslint/eslint-plugin":"^5.62.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mailverick_1.5.0_1790670313243_0.2111251254378541"}}},"time":{"created":"2026-02-25T08:08:30.672Z","modified":"2026-09-29T08:25:13.523Z","1.0.0":"2026-02-25T08:08:30.933Z","1.0.1":"2026-02-26T10:45:46.794Z","1.1.0":"2026-03-05T18:36:21.950Z","1.1.1":"2026-03-06T10:30:27.177Z","1.2.0":"2026-06-26T11:28:40.922Z","1.2.1":"2026-06-26T11:37:27.233Z","1.3.0":"2026-09-18T12:46:33.742Z","1.4.0":"2026-09-28T14:38:55.030Z","1.5.0":"2026-09-29T08:25:13.324Z"},"description":"> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.","maintainers":[{"name":"jhoukem","email":"jhoukem@gmail.com"}],"readme":"# @bytewise-solutions/mailverick\n\n> Official TypeScript client for the [Mailverick](https://mailverick.com) email delivery API — focused on simplicity, robustness, and high delivery performance.\n\n## Overview\n\nMailverick is a high-performance email dispatching service designed for modern applications that demand:\n\n* **Fast and reliable delivery**\n* **Simple, clean API**\n* **Robust token handling**\n* **Configurable HTTP: proxy, timeout, agents**\n\nThis library provides a lightweight, type-safe client for sending emails through Mailverick with minimal setup.\n\n---\n\n## Installation\n\n```bash\nnpm install @bytewise-solutions/mailverick\n```\n\nor\n\n```bash\nyarn add @bytewise-solutions/mailverick\n```\n\n---\n\n## Usage\n\n```ts\nimport { Mailverick, Email } from '@bytewise-solutions/mailverick';\n\nconst client = new Mailverick('your-api-key-id', 'your-api-key-secret');\n\nconst email: Email = {\n  from: { email: 'no-reply@yourdomain.com', name: 'Your App' },\n  to: [{ email: 'recipient@example.com', name: 'Recipient' }],\n  replyTo: { email: 'support@yourdomain.com' },\n  subject: 'Welcome to our platform!',\n  body: {\n    text: 'Thanks for signing up!',\n    html: '<strong>Thanks for signing up!</strong>',\n  },\n};\n\nawait client.sendEmail(email);\n```\n\nYou can also batch-send multiple emails:\n\n```ts\nawait client.sendEmails([email1, email2, email3]);\n```\n\n---\n\n## Email Format\n\n```ts\ntype Email = {\n  from: { email: string; name?: string };\n  to: { email: string; name?: string }[];\n  replyTo?: { email: string; name?: string };\n  subject: string;\n  body: {\n    text?: string;\n    html?: string;\n  };\n  attachments?: {\n    fileName: string;\n    contentType: string;\n    base64Content: string;\n  }[];\n  inlineAttachments?: {\n    fileName: string;\n    contentType: string;\n    base64Content: string;\n    contentId: string;\n  }[];\n  customId?: string;\n  tracking?: {\n    opens?: 'none' | 'last_only' | 'full';\n    disabled?: boolean;\n  };\n};\n```\n\n---\n\n## Tracking\n\nEach email can carry an optional `tracking` object:\n\n```ts\nawait client.sendEmail({\n  ...email,\n  tracking: {\n    opens: 'last_only', // 'none' | 'last_only' | 'full'\n    disabled: false,\n  },\n});\n```\n\n* **`opens`** — open-tracking mode for the recipient. `none` never tracks opens,\n  `last_only` tracks only the most recent email, `full` tracks every email. This\n  is stored against the recipient's contact, so it applies to **all** of their\n  opens (including past emails). Omit to keep the account/tenant default\n  (`last_only`).\n* **`disabled`** — when `true`, disables tracking for **this message only**\n  (skips the open pixel and link rewriting). Defaults to `false`.\n\n---\n\n## Email Validation\n\nCheck an address before you send to it. One address in, one verdict out.\n\n```ts\nconst result = await client.validateEmail('user@gmial.com');\n\nif (result.didYouMean) {\n  console.log(`Did you mean ${result.didYouMean}?`);\n}\n```\n\n```ts\ntype EmailValidationResult = {\n  email: string;\n  status: 'deliverable' | 'probably_deliverable' | 'probably_undeliverable' | 'undeliverable';\n  reason: ValidationReason; // a known reason, or any other string\n  didYouMean?: string;\n  disposable: boolean;\n  role: boolean;\n};\n```\n\n* **`status`** — the verdict, ordered by confidence. **Branch on this one.** `deliverable` and\n  `probably_deliverable` are safe to send to (expect a small bounce rate on the latter),\n  `probably_undeliverable` is worth a confirmation prompt, `undeliverable` should be rejected.\n  Typed as `ValidationStatus`, a closed union of these four, so a `switch` over it can be exhaustive.\n* **`reason`** — why, more specific than the status. Typed as `ValidationReason`, which lists the\n  known reasons for autocomplete but accepts any string: Mailverick adds new reasons within the\n  existing statuses, so treat an unrecognized one as its `status`.\n\n  | Status | Reasons |\n  | --- | --- |\n  | `deliverable` | `accepted` |\n  | `probably_deliverable` | `provider_accept_all`, `probe_unavailable`, `previously_bounced` |\n  | `probably_undeliverable` | `gibberish`, `domain_typo`, `recently_bounced`, `previously_bounced` |\n  | `undeliverable` | `invalid_syntax`, `does_not_exist`, `blocked` |\n\n  `previously_bounced` lands on either `probably_` status depending on the address's delivery history.\n* **`didYouMean`** — a corrected address when the domain looks misspelled, absent otherwise.\n* **`disposable`** / **`role`** — a throwaway provider, and a shared mailbox such as `info@`.\n  Both ask whether you *want* the address, not whether mail will arrive, so neither moves the\n  status.\n\nThe service account needs `email:validate`, separate from `email:send` — a validate-only key can\ncheck addresses without being able to send mail.\n\nEvery verdict resolves with `200`, including `undeliverable`: a rejected address is a result, not\nan exception. A non-2xx response means the request itself failed, and rejects with the underlying\n`AxiosError` — `403` for a missing permission, `429` for rate limits and quotas (honour the\n`Retry-After` header). A `200` that is not a validation verdict — a proxy sign-in page, a\ngateway error envelope, or a status outside the four above — rejects with a plain `Error` instead. Check `axios.isAxiosError(err)`\n**and** that `err.response` exists before reading it: a timeout or connection failure also rejects\nwith an `AxiosError`, but one that carries no response.\n\nReason values and the full error table are in the\n[validation docs](https://mailverick.com/docs/email-validation/).\n\n---\n\n## HTTP Configuration\n\nThe third constructor argument configures the underlying [axios](https://axios-http.com/docs/req_config) client. Every\nfield is optional.\n\n| Option | Default | Purpose |\n| --- | --- | --- |\n| `timeout` | `0` (none) | Milliseconds before a request is aborted. |\n| `proxy` | none | HTTP(S) proxy to route requests through. |\n| `headers` | — | Extra headers, merged with `Content-Type: application/json`. |\n| `httpAgent` / `httpsAgent` | Node defaults | Custom agents, e.g. for keep-alive or a private CA. |\n\nOther axios options are not supported and are ignored.\n\n```ts\nimport * as https from 'https';\n\nconst client = new Mailverick('your-api-key-id', 'your-api-key-secret', {\n  timeout: 10_000,\n  httpsAgent: new https.Agent({ keepAlive: true }),\n  headers: { 'X-Request-Source': 'billing' },\n});\n```\n\n### Proxy\n\n```ts\nconst client = new Mailverick('your-api-key-id', 'your-api-key-secret', {\n  proxy: {\n    host: '127.0.0.1',\n    port: 8080,\n    protocol: 'http',\n    auth: {\n      username: 'proxyuser',\n      password: 'proxypass',\n    },\n  },\n});\n```\n\n* Without `proxy`, requests go direct: axios does not read the `HTTP_PROXY`/`HTTPS_PROXY` environment variables.\n* The proxy's `protocol` decides which agent is used. With `protocol: 'http'`, axios uses `httpAgent`, not\n  `httpsAgent`, even though the Mailverick API is served over HTTPS.\n","readmeFilename":"README.md"}