open-index/open-npm huggingface dataset:
npm package: @mailcraft/sdk
Description: Official Node.js SDK for MailCraft — transactional email with AI-generated content
Latest version: 0.1.0

# @mailcraft/sdk

Official Node.js SDK for [MailCraft](https://github.com/mailcraft-cloud/mailcraft) — open source transactional email with AI-generated content.

## Install

```bash
npm install @mailcraft/sdk
```

## Usage

### Fluent API (recommended)

```typescript
import { MailCraft } from '@mailcraft/sdk'

const mail = new MailCraft({ apiKey: 'mc_your_api_key' })

await mail.create('welcome')
  .to('john@example.com')
  .data({ name: 'John', plan: 'Pro' })
  .prompt('Mention dedicated support')
  .action('Get Started', 'https://app.example.com')
  .action('View Docs', 'https://docs.example.com', 'secondary')
  .send()
```

### Classic API

```typescript
await mail.send({
  type: 'welcome',
  to: 'john@example.com',
  data: { name: 'John', plan: 'Pro' },
  prompt: 'Mention dedicated support',
  actions: [{ label: 'Get Started', url: 'https://...' }]
})
```

## API

### `new MailCraft(config)`

| Option | Type | Required | Description |
|--------|------|----------|-------------|
| `apiKey` | `string` | Yes | Your MailCraft API key (`mc_...`) |
| `baseUrl` | `string` | No | API base URL (default: `https://api.mailcraft.cloud`) |

### `mail.create(type)` — Fluent builder

Returns a `MailBuilder` that you chain methods on:

```typescript
mail.create('invoice')      // Start building
  .to('billing@acme.com')   // Required: recipient
  .data({ total: '$38' })   // Optional: template data
  .prompt('Keep it formal') // Optional: steer AI tone
  .action('Pay Now', url)   // Optional: add CTA button (repeatable)
  .send()                   // Send the email
```

| Method | Description |
|--------|-------------|
| `.to(email)` | Set recipient email |
| `.data(object)` | Set dynamic data |
| `.prompt(string)` | Set AI instructions |
| `.action(label, url, style?)` | Add a CTA button (call multiple times) |
| `.actions(array)` | Set all actions at once |
| `.send()` | Send the email, returns `Promise<SendResult>` |

### `mail.send(options)` — Classic API

| Option | Type | Required | Description |
|--------|------|----------|-------------|
| `type` | `string` | Yes | Email type: `'welcome'`, `'invoice'`, `'password-reset'`, etc. |
| `to` | `string` | Yes | Recipient email |
| `data` | `object` | No | Dynamic data (name, plan, etc.) |
| `prompt` | `string` | No | Instructions to steer AI content |
| `actions` | `array` | No | CTA buttons: `[{ label, url, style? }]` |

Returns `Promise<{ id: string, status: 'sent' | 'failed' | 'fallback' }>`

### Error handling

```typescript
import { MailCraft, MailCraftError } from '@mailcraft/sdk'

try {
  await mail.create('welcome').to('john@test.com').send()
} catch (err) {
  if (err instanceof MailCraftError) {
    console.log(err.statusCode) // 401, 400, 502, etc.
    console.log(err.message)    // "Invalid API key"
  }
}
```

## Self-hosted

Point to your own MailCraft instance:

```typescript
const mail = new MailCraft({
  apiKey: 'mc_...',
  baseUrl: 'https://your-mailcraft-api.com'
})
```

## License

MIT
npm package: @mailcrate/cli
Description: CLI tool for compiling and pushing React Email templates to Mailcrate
Latest version: 0.1.0

# @mailcrate/cli

CLI tool for compiling and pushing [React Email](https://react.email) templates to [Mailcrate](https://mailcrate.io).

## Installation

```bash
npm install -g @mailcrate/cli
```

Or use directly with `npx`:

```bash
npx @mailcrate/cli <command>
```

## Setup

```bash
mailcrate login --api-key YOUR_API_KEY
```

Or run `mailcrate login` interactively to be prompted for your API URL and key.

Your configuration is saved to `~/.mailcrate/config.json`.

## Usage

### Push templates

Push a single template:

```bash
mailcrate push ./emails/welcome.tsx
```

Push an entire directory:

```bash
mailcrate push ./emails/
```

Templates are identified by a `templateSlug` export in each file:

```tsx
export const templateSlug = "welcome-email";
```

You can override the slug for single-file pushes:

```bash
mailcrate push ./emails/welcome.tsx --slug welcome-email
```

#### Auto-creating templates

If a template doesn't exist in Mailcrate yet, the CLI will ask if you want to create it. The slug is converted to a readable name automatically (e.g. `welcome-email` becomes "Welcome Email").

Use `-y` to skip the prompt and auto-create — useful for CI/CD:

```bash
mailcrate push ./emails/ -y
```

### List templates

```bash
mailcrate list
```

## Options

| Command | Option | Description |
|---------|--------|-------------|
| `push`  | `--slug <slug>` | Override template slug (single file only) |
| `push`  | `-y, --yes` | Auto-create missing templates without prompting |
| `login` | `--api-url <url>` | Mailcrate API URL |
| `login` | `--api-key <key>` | Workspace API key |
npm package: @maildots/sdk
Description: Node library for building Linkbox bots
Author: Linkbox
Latest version: 1.5.9

![Maildots](logo.png)

Maildots is a cross-platform app designed to streamline the communication via e-mail and optimize the management and functionality of this medium
This repository holds the source code for the **Node-sdk** version of Maildots written mainly in Javascript

## Features

* **Fast:** Maildots is significantly faster than even dedicated e-mails servers, thanks to a new paradigm of communication between devices with Maildots installed.

* **Modern:** Maildots offers an innovative interface, which mix the robust functionality of e-mail with the simplicity of a message application.

* **Usefull:** Maildots expands the e-mail potencial, introducing new functions like control version for attachments, task manager and e-mail schedule.

* **Collaborative:** By first time, Maildots allows the user to work in team without having to move to another platform.


## Build and code Maildots-node-sdk


Prerequisites:

 * Download the [**Node-js 8.0.9 or later**](https://nodejs.org/es/download/) and install it.

To start coding and build

 * Clone this repository
 * Build the project using npm