@wraps.dev/cli 2.2.8 → 2.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -41
- package/dist/cli.js +565 -204
- package/dist/cli.js.map +1 -1
- package/dist/lambda/event-processor/.bundled +1 -1
- package/dist/lambda/sms-event-processor/.bundled +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,26 @@
|
|
|
1
1
|
# Wraps CLI
|
|
2
2
|
|
|
3
|
-
> Deploy
|
|
3
|
+
> Deploy email infrastructure (SES, DynamoDB, Lambda, EventBridge) to your AWS account.
|
|
4
|
+
|
|
5
|
+
## What It Creates
|
|
6
|
+
|
|
7
|
+
Running `wraps email init` deploys these AWS resources to your account:
|
|
8
|
+
|
|
9
|
+
- **IAM Role** with OIDC trust policy (for Vercel) or instance profile (for AWS-native)
|
|
10
|
+
- **SES Configuration Set** with event tracking rules
|
|
11
|
+
- **EventBridge Rule** to capture SES events
|
|
12
|
+
- **SQS Queue + Dead Letter Queue** for event buffering
|
|
13
|
+
- **Lambda Function** to process events and write to DynamoDB
|
|
14
|
+
- **DynamoDB Table** for email history storage
|
|
15
|
+
|
|
16
|
+
All resources are tagged with `ManagedBy: wraps-cli` and prefixed with `wraps-email-`.
|
|
4
17
|
|
|
5
18
|
## Features
|
|
6
19
|
|
|
7
|
-
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
- **Beautiful UX**: Built with Bomb.sh stack (@clack/prompts) - beautiful interactive prompts and spinners
|
|
12
|
-
- **Lightweight**: Uses args (<1kB) for blazing-fast CLI parsing
|
|
13
|
-
- **Type-Safe**: Built with strict TypeScript
|
|
14
|
-
- **Tab Completion**: Shell completion support (coming soon)
|
|
20
|
+
- `--preview` flag shows what would be created without deploying
|
|
21
|
+
- OIDC federation for Vercel (no AWS credentials in your app)
|
|
22
|
+
- Never modifies existing AWS resources
|
|
23
|
+
- Stores deployment metadata locally in `~/.wraps/`
|
|
15
24
|
|
|
16
25
|
## Prerequisites
|
|
17
26
|
|
|
@@ -443,36 +452,33 @@ wraps upgrade # → Use 'wraps email upgrade'
|
|
|
443
452
|
|
|
444
453
|
## Configuration Presets
|
|
445
454
|
|
|
446
|
-
|
|
455
|
+
The CLI offers four presets that control which AWS resources are created:
|
|
447
456
|
|
|
448
457
|
### Starter (~$0.05/mo)
|
|
449
|
-
|
|
450
|
-
-
|
|
451
|
-
-
|
|
452
|
-
- Minimal infrastructure
|
|
458
|
+
- SES configuration set with open/click tracking
|
|
459
|
+
- Suppression list for bounces/complaints
|
|
460
|
+
- No event storage (events are tracked but not persisted)
|
|
453
461
|
|
|
454
|
-
### Production (~$2-5/mo)
|
|
455
|
-
For most applications:
|
|
462
|
+
### Production (~$2-5/mo)
|
|
456
463
|
- Everything in Starter
|
|
457
|
-
-
|
|
458
|
-
- 90-day
|
|
459
|
-
-
|
|
464
|
+
- EventBridge → SQS → Lambda pipeline
|
|
465
|
+
- DynamoDB table with 90-day TTL
|
|
466
|
+
- Tracks: SEND, DELIVERY, OPEN, CLICK, BOUNCE, COMPLAINT
|
|
460
467
|
|
|
461
468
|
### Enterprise (~$50-100/mo)
|
|
462
|
-
For high-volume senders:
|
|
463
469
|
- Everything in Production
|
|
464
|
-
- Dedicated IP address
|
|
465
|
-
- 1-year
|
|
466
|
-
- All 10 SES event types
|
|
470
|
+
- Dedicated IP address ($24.95/mo from AWS)
|
|
471
|
+
- 1-year DynamoDB TTL
|
|
472
|
+
- All 10 SES event types (adds REJECT, RENDERING_FAILURE, DELIVERY_DELAY, SUBSCRIPTION)
|
|
467
473
|
|
|
468
474
|
### Custom
|
|
469
|
-
|
|
475
|
+
Select individual features. Useful if you want event storage without a dedicated IP, or specific event types only.
|
|
470
476
|
|
|
471
477
|
## Hosting Provider Integration
|
|
472
478
|
|
|
473
|
-
### Vercel
|
|
479
|
+
### Vercel
|
|
474
480
|
|
|
475
|
-
|
|
481
|
+
Uses OIDC federation - your Vercel deployment assumes an IAM role directly, no AWS credentials stored:
|
|
476
482
|
|
|
477
483
|
```bash
|
|
478
484
|
wraps init --provider vercel
|
|
@@ -660,22 +666,20 @@ wraps init
|
|
|
660
666
|
|
|
661
667
|
### Features ✅
|
|
662
668
|
- [x] Preview mode (`--preview`) for all deployment commands
|
|
663
|
-
- [x]
|
|
664
|
-
- [x]
|
|
669
|
+
- [x] Configuration presets (Starter, Production, Enterprise, Custom)
|
|
670
|
+
- [x] Cost estimation based on AWS pricing
|
|
665
671
|
- [x] MAIL FROM domain configuration for DMARC alignment
|
|
666
|
-
- [x] Custom tracking domain
|
|
667
|
-
- [x]
|
|
668
|
-
- [x]
|
|
669
|
-
- [x] Dedicated IP address
|
|
670
|
-
- [x] Lambda
|
|
671
|
-
- [x] Vercel OIDC integration
|
|
672
|
-
- [x]
|
|
673
|
-
- [x]
|
|
674
|
-
- [x]
|
|
675
|
-
- [x] Non-destructive
|
|
676
|
-
- [x]
|
|
677
|
-
- [x] Comprehensive error handling with helpful suggestions
|
|
678
|
-
- [x] Multi-service architecture ready (email, SMS coming soon)
|
|
672
|
+
- [x] Custom tracking domain (HTTP, HTTPS coming in v1.1.0)
|
|
673
|
+
- [x] Configurable event types (10 SES event types available)
|
|
674
|
+
- [x] Configurable email history retention (7 days to 1 year TTL)
|
|
675
|
+
- [x] Dedicated IP address provisioning
|
|
676
|
+
- [x] Lambda bundling with esbuild
|
|
677
|
+
- [x] Vercel OIDC integration
|
|
678
|
+
- [x] Event pipeline: EventBridge → SQS → Lambda → DynamoDB
|
|
679
|
+
- [x] Domain management (add, list, verify, remove)
|
|
680
|
+
- [x] Suppression list for bounces/complaints
|
|
681
|
+
- [x] Non-destructive (never modifies existing resources)
|
|
682
|
+
- [x] Built with @clack/prompts
|
|
679
683
|
|
|
680
684
|
### Coming Soon
|
|
681
685
|
|