samva 0.27.0 → 0.28.0
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 +12 -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
|
@@ -54,7 +54,7 @@ const message = await client.messages.send({
|
|
|
54
54
|
},
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
const messages = await client.messages.list({ limit:
|
|
57
|
+
const messages = await client.messages.list({ limit: 20 });
|
|
58
58
|
// Pass `messages.nextCursor` back as `cursor` for the next page; it is null on the last page.
|
|
59
59
|
```
|
|
60
60
|
|
|
@@ -210,7 +210,8 @@ The Promise client exposes:
|
|
|
210
210
|
- `organizations`
|
|
211
211
|
- `scheduledMessages`
|
|
212
212
|
- `templates`
|
|
213
|
-
- `
|
|
213
|
+
- `topics`
|
|
214
|
+
- `topicForms`
|
|
214
215
|
- `webhooks`
|
|
215
216
|
- `whoami`
|
|
216
217
|
|
|
@@ -238,7 +239,7 @@ The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
|
|
|
238
239
|
- `Organizations`
|
|
239
240
|
- `ScheduledMessages`
|
|
240
241
|
- `Templates`
|
|
241
|
-
- `
|
|
242
|
+
- `Topics`
|
|
242
243
|
- `Webhooks`
|
|
243
244
|
- `Whoami`
|
|
244
245
|
|
|
@@ -316,10 +317,10 @@ const allContacts = Stream.runCollect(Contacts.list.items());
|
|
|
316
317
|
const firstFifty = Stream.runCollect(Contacts.list.items().pipe(Stream.take(50)));
|
|
317
318
|
|
|
318
319
|
// Caller params (start cursor, limit, filters) are respected:
|
|
319
|
-
const recent = Contacts.list.items({ limit:
|
|
320
|
+
const recent = Contacts.list.items({ limit: 100, after: "2026-01-01T00:00:00Z" });
|
|
320
321
|
```
|
|
321
322
|
|
|
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.
|
|
323
|
+
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
324
|
|
|
324
325
|
### Redacted secrets
|
|
325
326
|
|
|
@@ -397,7 +398,7 @@ const message =
|
|
|
397
398
|
|
|
398
399
|
```typescript
|
|
399
400
|
const response = await client.conversations.list({
|
|
400
|
-
limit:
|
|
401
|
+
limit: 20,
|
|
401
402
|
status: "active",
|
|
402
403
|
});
|
|
403
404
|
```
|
|
@@ -428,7 +429,11 @@ const campaign = await client.campaigns.create({
|
|
|
428
429
|
channel: "email",
|
|
429
430
|
email: { subject: "What's new", html: "<h1>Updates</h1>" },
|
|
430
431
|
},
|
|
431
|
-
audience: {
|
|
432
|
+
audience: {
|
|
433
|
+
topicId: "unsub_1234567890abcdef",
|
|
434
|
+
includeTags: ["subscribers"],
|
|
435
|
+
excludeTags: ["bounced"],
|
|
436
|
+
},
|
|
432
437
|
});
|
|
433
438
|
|
|
434
439
|
const run = await client.campaigns.scheduleRun({
|