Skip to content

Commit a312150

Browse files
authored
feat!: upgrade to SDK v2 with scheduled delivery, team API, and batch sending
The module moves to the Lettermint SDK v2: scheduled delivery with reschedule and cancel through the team API, the full team API client, key/value tags, per-message settings, batch sending with a batch idempotency key, and classified error responses. BREAKING CHANGE: requires Nuxt 4. The send endpoint is no longer registered by default, tags splits into tag and tags, metadata values must be primitives, and the response types follow the SDK. See UPGRADE.md for the migration guide.
1 parent 56cc4fb commit a312150

57 files changed

Lines changed: 14641 additions & 7082 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.claude/settings.local.json

Lines changed: 0 additions & 10 deletions
This file was deleted.

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @lettermint/founders

.github/dependabot.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: npm
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
open-pull-requests-limit: 5
8+
groups:
9+
nuxt:
10+
patterns:
11+
- '@nuxt/*'
12+
- nuxt
13+
dev-dependencies:
14+
dependency-type: development
15+
16+
- package-ecosystem: github-actions
17+
directory: /
18+
schedule:
19+
interval: monthly

.github/workflows/ci.yml

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ jobs:
1313
runs-on: ubuntu-latest
1414

1515
steps:
16-
- uses: actions/checkout@v5
16+
- uses: actions/checkout@v7
1717

18-
- uses: actions/setup-node@v4
18+
- uses: actions/setup-node@v7
1919
with:
2020
node-version: 24
2121

@@ -27,15 +27,23 @@ jobs:
2727
- name: Lint
2828
run: npm run lint
2929

30+
- name: Types
31+
run: npm run dev:prepare && npm run test:types
32+
3033
test:
3134
runs-on: ubuntu-latest
3235

36+
strategy:
37+
fail-fast: false
38+
matrix:
39+
node-version: [22, 24]
40+
3341
steps:
34-
- uses: actions/checkout@v5
42+
- uses: actions/checkout@v7
3543

36-
- uses: actions/setup-node@v4
44+
- uses: actions/setup-node@v7
3745
with:
38-
node-version: 24
46+
node-version: ${{ matrix.node-version }}
3947

4048
- run: npm i -g --force corepack@latest && corepack enable
4149

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: release-to-discord
2+
3+
# A release published by release.yml does not fire the release trigger (GitHub
4+
# suppresses workflows for events its default token causes), so start this by
5+
# hand after a release: Actions -> release-to-discord -> Run workflow. Same
6+
# setup as lettermint-node.
7+
on:
8+
release:
9+
types: [published]
10+
workflow_dispatch:
11+
12+
jobs:
13+
github-releases-to-discord:
14+
runs-on: ubuntu-latest
15+
16+
steps:
17+
- name: Discord Release Webhook
18+
uses: lettermint/action-discord-releases@v1.0.1
19+
with:
20+
color: '215732'
21+
webhook_url: ${{ secrets.DISCORD_RELEASE_WEBHOOK_URL }}
22+
content: 'A new release for the Lettermint Nuxt module is now available! ||@Nuxt||'

.github/workflows/release.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: release
2+
3+
# Manual only. Switch to `push: branches: [main]` to release on every merge.
4+
on:
5+
workflow_dispatch:
6+
7+
permissions:
8+
contents: write
9+
issues: write
10+
pull-requests: write
11+
id-token: write
12+
13+
jobs:
14+
release:
15+
runs-on: ubuntu-latest
16+
17+
steps:
18+
- uses: actions/checkout@v7
19+
with:
20+
fetch-depth: 0
21+
22+
- uses: actions/setup-node@v7
23+
with:
24+
node-version: 24
25+
registry-url: 'https://registry.npmjs.org'
26+
27+
- name: Install dependencies
28+
run: npm ci
29+
30+
- name: Lint
31+
run: npm run lint
32+
33+
- name: Types
34+
run: npm run dev:prepare && npm run test:types
35+
36+
- name: Test
37+
run: npm run test
38+
39+
- name: Build
40+
run: npm run prepack
41+
42+
- name: Release
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
run: npx semantic-release

.gitignore

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,10 @@ coverage
3434
.nyc_output
3535

3636
# VSCode
37-
.vscode/*
38-
!.vscode/settings.json
39-
!.vscode/tasks.json
40-
!.vscode/launch.json
41-
!.vscode/extensions.json
42-
!.vscode/*.code-snippets
37+
.vscode
38+
39+
# Claude Code
40+
.claude/settings.local.json
4341

4442
# Intellij idea
4543
*.iml

.releaserc.json

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"branches": ["main"],
3+
"plugins": [
4+
"@semantic-release/commit-analyzer",
5+
"@semantic-release/release-notes-generator",
6+
"@semantic-release/changelog",
7+
"@semantic-release/npm",
8+
"@semantic-release/github",
9+
[
10+
"@semantic-release/git",
11+
{
12+
"assets": ["CHANGELOG.md", "package.json", "package-lock.json"],
13+
"message": "chore(release): ${nextRelease.version} [skip ci]\n\n${nextRelease.notes}"
14+
}
15+
]
16+
]
17+
}

.vscode/settings.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Changelog
2+
3+
Releases from 2.0.0 onwards are generated by [semantic-release](https://github.com/semantic-release/semantic-release) from the commit history. Earlier entries were written after the fact.
4+
5+
## [1.0.4](https://github.com/lettermint/nuxt-lettermint/commit/d27bf5e) (2026-02-20)
6+
7+
Tagged but never published to npm. Its dependency updates ship with 2.0.0.
8+
9+
## [1.0.3](https://github.com/lettermint/nuxt-lettermint/commit/032a81c) (2026-02-13)
10+
11+
### Miscellaneous
12+
13+
* update dependencies
14+
15+
## [1.0.2](https://github.com/lettermint/nuxt-lettermint/commit/9f3e853) (2025-12-23)
16+
17+
### Miscellaneous
18+
19+
* update dependencies ([#2](https://github.com/lettermint/nuxt-lettermint/pull/2))
20+
21+
## [1.0.1](https://github.com/lettermint/nuxt-lettermint/commit/a1825b8) (2025-09-08)
22+
23+
### Features
24+
25+
* add `autoEndpoint` option to prevent endpoint conflicts ([#1](https://github.com/lettermint/nuxt-lettermint/pull/1))
26+
27+
## [1.0.0](https://github.com/lettermint/nuxt-lettermint/commit/a73053a) (2025-09-02)
28+
29+
Initial release: `useLettermint()` composable, `sendEmail()` server utility and the `/api/lettermint/send` endpoint.

0 commit comments

Comments
 (0)