samva 0.27.0 → 0.28.1
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/AGENTS.md +7 -0
- package/README.md +14 -7
- package/dist/client/sdk.gen.d.ts +322 -143
- package/dist/client/sdk.gen.js +604 -95
- package/dist/client/types.gen.d.ts +1342 -479
- package/dist/effect/agents.d.ts +6 -8
- package/dist/effect/analytics.d.ts +1 -1
- package/dist/effect/api-keys.d.ts +6 -6
- package/dist/effect/attachments.d.ts +1 -1
- package/dist/effect/brands.d.ts +2 -0
- package/dist/effect/campaigns.d.ts +275 -25
- package/dist/effect/campaigns.js +7 -1
- package/dist/effect/contact-groups.d.ts +9 -9
- package/dist/effect/contacts.d.ts +74 -81
- package/dist/effect/contacts.js +7 -3
- package/dist/effect/conversations.d.ts +14 -6
- package/dist/effect/email.d.ts +34 -34
- package/dist/effect/errors.d.ts +1 -1
- package/dist/effect/errors.js +2 -2
- package/dist/effect/extension-installations.d.ts +3 -3
- package/dist/effect/extensions.d.ts +6 -6
- package/dist/effect/generated/agents.d.ts +6 -28
- package/dist/effect/generated/agents.js +2 -3
- package/dist/effect/generated/analytics.d.ts +3 -3
- package/dist/effect/generated/analytics.js +1 -1
- package/dist/effect/generated/api-keys.d.ts +6 -6
- package/dist/effect/generated/api-keys.js +2 -2
- package/dist/effect/generated/attachments.d.ts +3 -3
- package/dist/effect/generated/attachments.js +1 -1
- package/dist/effect/generated/brands.d.ts +16 -0
- package/dist/effect/generated/campaigns.d.ts +1181 -302
- package/dist/effect/generated/campaigns.js +169 -36
- package/dist/effect/generated/contact-events.d.ts +3 -3
- package/dist/effect/generated/contact-events.js +1 -1
- package/dist/effect/generated/contact-groups.d.ts +9 -9
- package/dist/effect/generated/contact-groups.js +7 -7
- package/dist/effect/generated/contacts.d.ts +2063 -290
- package/dist/effect/generated/contacts.js +343 -75
- package/dist/effect/generated/conversations.d.ts +14 -6
- package/dist/effect/generated/conversations.js +6 -6
- package/dist/effect/generated/email.d.ts +40 -40
- package/dist/effect/generated/email.js +15 -15
- package/dist/effect/generated/extension-installations.d.ts +3 -3
- package/dist/effect/generated/extension-installations.js +1 -1
- package/dist/effect/generated/extensions.d.ts +6 -6
- package/dist/effect/generated/extensions.js +2 -2
- package/dist/effect/generated/index.d.ts +5 -3
- package/dist/effect/generated/journeys.d.ts +9 -9
- package/dist/effect/generated/journeys.js +3 -3
- package/dist/effect/generated/mailboxes.d.ts +172 -124
- package/dist/effect/generated/mailboxes.js +22 -14
- package/dist/effect/generated/messages.d.ts +53 -29
- package/dist/effect/generated/messages.js +9 -5
- package/dist/effect/generated/namespaces.d.ts +3 -3
- package/dist/effect/generated/namespaces.js +1 -1
- package/dist/effect/generated/operations.d.ts +3 -3
- package/dist/effect/generated/operations.js +1 -1
- package/dist/effect/generated/organizations.d.ts +0 -9
- package/dist/effect/generated/organizations.js +1 -4
- package/dist/effect/generated/scheduled-messages.d.ts +69 -20
- package/dist/effect/generated/scheduled-messages.js +22 -3
- package/dist/effect/generated/shared.d.ts +396 -107
- package/dist/effect/generated/shared.js +170 -89
- package/dist/effect/generated/subscriptions.d.ts +4 -7
- package/dist/effect/generated/subscriptions.js +3 -4
- package/dist/effect/generated/templates.d.ts +71 -407
- package/dist/effect/generated/templates.js +23 -23
- package/dist/effect/generated/topic-forms.d.ts +656 -0
- package/dist/effect/generated/topic-forms.js +145 -0
- package/dist/effect/generated/{unsubscribe-groups.d.ts → topics.d.ts} +640 -435
- package/dist/effect/generated/topics.js +267 -0
- package/dist/effect/generated/webhooks.d.ts +6 -6
- package/dist/effect/generated/webhooks.js +2 -2
- package/dist/effect/generated-metadata.d.ts +78 -24
- package/dist/effect/generated-metadata.js +61 -27
- package/dist/effect/index.d.ts +2 -1
- package/dist/effect/index.js +4 -3
- package/dist/effect/internal/operation.js +3 -3
- package/dist/effect/internal/send.d.ts +4 -4
- package/dist/effect/journeys.d.ts +7 -7
- package/dist/effect/mailboxes.d.ts +137 -121
- package/dist/effect/messages.d.ts +19 -11
- package/dist/effect/namespaces.d.ts +3 -3
- package/dist/effect/operations.d.ts +3 -3
- package/dist/effect/scheduled-messages.d.ts +6 -6
- package/dist/effect/subscriptions.d.ts +1 -2
- package/dist/effect/templates.d.ts +13 -13
- package/dist/effect/topic-forms.d.ts +30 -0
- package/dist/effect/topic-forms.js +21 -0
- package/dist/effect/topics.d.ts +94 -0
- package/dist/effect/topics.js +29 -0
- package/dist/effect/webhooks.d.ts +6 -6
- package/dist/index.js +2 -2
- package/dist/package.js +1 -1
- package/dist/promises/errors.gen.d.ts +65 -8
- package/dist/promises/errors.gen.js +139 -7
- package/dist/promises/index.d.ts +5 -3
- package/dist/promises/index.js +7 -5
- package/dist/promises/types.gen.d.ts +1 -1
- package/dist/service-map.d.ts +74 -25
- package/dist/service-map.js +43 -12
- package/package.json +12 -8
- package/dist/effect/generated/unsubscribe-groups.js +0 -284
- package/dist/effect/unsubscribe-groups.d.ts +0 -74
- package/dist/effect/unsubscribe-groups.js +0 -29
package/AGENTS.md
CHANGED
|
@@ -29,3 +29,10 @@ not recipient delivery. A timeout preserves the original idempotency key and bod
|
|
|
29
29
|
send another email. `uncertain` requires reconciliation. Only a permitted person can cancel before
|
|
30
30
|
acceptance or retry an eligible original action without extending its deadline. Approval is also
|
|
31
31
|
asynchronous. See https://samva.dev/docs/mailboxes/approvals for the receipt contract.
|
|
32
|
+
|
|
33
|
+
Use `client.topics` (Promise) or `Topics` from `samva/effect/topics` (Effect) for topic management
|
|
34
|
+
and per-channel subscription preferences. `setSubscriptions` writes explicit `subscribed` or
|
|
35
|
+
`unsubscribed` status; `checkSubscription` resolves effective status including topic defaults.
|
|
36
|
+
`subscriptions.subscribe` requires `topicId` and requests recipient confirmation; acceptance
|
|
37
|
+
does not create a confirmed contact or subscription. Campaigns require `audience.topicId`, and
|
|
38
|
+
email content accepts `topicId`.
|
package/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# samva
|
|
2
2
|
|
|
3
|
+
Samva is the email API for your app: transactional and campaign sending, inbound mail, and webhooks behind one API.
|
|
4
|
+
|
|
3
5
|
TypeScript SDK for Samva's public customer API.
|
|
4
6
|
|
|
5
7
|
## Documentation
|
|
@@ -54,7 +56,7 @@ const message = await client.messages.send({
|
|
|
54
56
|
},
|
|
55
57
|
});
|
|
56
58
|
|
|
57
|
-
const messages = await client.messages.list({ limit:
|
|
59
|
+
const messages = await client.messages.list({ limit: 20 });
|
|
58
60
|
// Pass `messages.nextCursor` back as `cursor` for the next page; it is null on the last page.
|
|
59
61
|
```
|
|
60
62
|
|
|
@@ -210,7 +212,8 @@ The Promise client exposes:
|
|
|
210
212
|
- `organizations`
|
|
211
213
|
- `scheduledMessages`
|
|
212
214
|
- `templates`
|
|
213
|
-
- `
|
|
215
|
+
- `topics`
|
|
216
|
+
- `topicForms`
|
|
214
217
|
- `webhooks`
|
|
215
218
|
- `whoami`
|
|
216
219
|
|
|
@@ -238,7 +241,7 @@ The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
|
|
|
238
241
|
- `Organizations`
|
|
239
242
|
- `ScheduledMessages`
|
|
240
243
|
- `Templates`
|
|
241
|
-
- `
|
|
244
|
+
- `Topics`
|
|
242
245
|
- `Webhooks`
|
|
243
246
|
- `Whoami`
|
|
244
247
|
|
|
@@ -316,10 +319,10 @@ const allContacts = Stream.runCollect(Contacts.list.items());
|
|
|
316
319
|
const firstFifty = Stream.runCollect(Contacts.list.items().pipe(Stream.take(50)));
|
|
317
320
|
|
|
318
321
|
// Caller params (start cursor, limit, filters) are respected:
|
|
319
|
-
const recent = Contacts.list.items({ limit:
|
|
322
|
+
const recent = Contacts.list.items({ limit: 100, after: "2026-01-01T00:00:00Z" });
|
|
320
323
|
```
|
|
321
324
|
|
|
322
|
-
The companions are attached uniformly to every paginated list, including `Messages.list`, `Contacts.list`, `Campaigns.list`, `Email.listDomains`, and `Webhooks.list`. Each page fetch reuses the ambient `Retry` policy. Reads retry per page; pagination does not nest retries.
|
|
325
|
+
The companions are attached uniformly to every paginated list, including `Messages.list`, `Contacts.list`, `Campaigns.list`, `Email.listDomains`, and `Webhooks.list`. Each page fetch reuses the ambient `Retry` policy. Reads retry per page; pagination does not nest retries. Pass `limit` as a number; both clients serialize it as a query string. A list bounded by design, such as `CustomFields.list`, answers `{ items }` in one response and carries no companions. Stream pagination is Effect-only.
|
|
323
326
|
|
|
324
327
|
### Redacted secrets
|
|
325
328
|
|
|
@@ -397,7 +400,7 @@ const message =
|
|
|
397
400
|
|
|
398
401
|
```typescript
|
|
399
402
|
const response = await client.conversations.list({
|
|
400
|
-
limit:
|
|
403
|
+
limit: 20,
|
|
401
404
|
status: "active",
|
|
402
405
|
});
|
|
403
406
|
```
|
|
@@ -428,7 +431,11 @@ const campaign = await client.campaigns.create({
|
|
|
428
431
|
channel: "email",
|
|
429
432
|
email: { subject: "What's new", html: "<h1>Updates</h1>" },
|
|
430
433
|
},
|
|
431
|
-
audience: {
|
|
434
|
+
audience: {
|
|
435
|
+
topicId: "unsub_1234567890abcdef",
|
|
436
|
+
includeTags: ["subscribers"],
|
|
437
|
+
excludeTags: ["bounced"],
|
|
438
|
+
},
|
|
432
439
|
});
|
|
433
440
|
|
|
434
441
|
const run = await client.campaigns.scheduleRun({
|