samva 0.26.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 +14 -7
- package/dist/client/sdk.gen.d.ts +322 -143
- package/dist/client/sdk.gen.js +1085 -332
- package/dist/client/types.gen.d.ts +1342 -479
- package/dist/effect/agents.d.ts +119 -0
- package/dist/effect/agents.js +29 -0
- package/dist/effect/analytics.d.ts +1 -1
- package/dist/effect/analytics.js +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 +270 -0
- 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 +55 -70
- package/dist/effect/generated/email.js +18 -21
- 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 +466 -712
- 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 +431 -177
- package/dist/effect/generated/shared.js +216 -108
- 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 +3 -1
- package/dist/effect/index.js +5 -3
- package/dist/effect/internal/operation.js +4 -3
- package/dist/effect/internal/send.d.ts +4 -4
- package/dist/effect/journeys.d.ts +119 -119
- 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 +7 -3
- package/dist/promises/index.js +9 -5
- package/dist/promises/types.gen.d.ts +1 -1
- package/dist/service-map.d.ts +117 -23
- package/dist/service-map.js +71 -10
- package/package.json +17 -9
- 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
|
|
|
@@ -188,6 +188,7 @@ match the template's input schema. `samva templates types` generates TypeScript
|
|
|
188
188
|
|
|
189
189
|
The Promise client exposes:
|
|
190
190
|
|
|
191
|
+
- `agents`
|
|
191
192
|
- `analytics`
|
|
192
193
|
- `apiKeys`
|
|
193
194
|
- `attachments`
|
|
@@ -209,12 +210,14 @@ The Promise client exposes:
|
|
|
209
210
|
- `organizations`
|
|
210
211
|
- `scheduledMessages`
|
|
211
212
|
- `templates`
|
|
212
|
-
- `
|
|
213
|
+
- `topics`
|
|
214
|
+
- `topicForms`
|
|
213
215
|
- `webhooks`
|
|
214
216
|
- `whoami`
|
|
215
217
|
|
|
216
218
|
The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
|
|
217
219
|
|
|
220
|
+
- `Agents`
|
|
218
221
|
- `Analytics`
|
|
219
222
|
- `ApiKeys`
|
|
220
223
|
- `Attachments`
|
|
@@ -236,7 +239,7 @@ The Effect SDK exposes Pascal-cased domain modules with lower-camel operations:
|
|
|
236
239
|
- `Organizations`
|
|
237
240
|
- `ScheduledMessages`
|
|
238
241
|
- `Templates`
|
|
239
|
-
- `
|
|
242
|
+
- `Topics`
|
|
240
243
|
- `Webhooks`
|
|
241
244
|
- `Whoami`
|
|
242
245
|
|
|
@@ -314,10 +317,10 @@ const allContacts = Stream.runCollect(Contacts.list.items());
|
|
|
314
317
|
const firstFifty = Stream.runCollect(Contacts.list.items().pipe(Stream.take(50)));
|
|
315
318
|
|
|
316
319
|
// Caller params (start cursor, limit, filters) are respected:
|
|
317
|
-
const recent = Contacts.list.items({ limit:
|
|
320
|
+
const recent = Contacts.list.items({ limit: 100, after: "2026-01-01T00:00:00Z" });
|
|
318
321
|
```
|
|
319
322
|
|
|
320
|
-
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.
|
|
321
324
|
|
|
322
325
|
### Redacted secrets
|
|
323
326
|
|
|
@@ -395,7 +398,7 @@ const message =
|
|
|
395
398
|
|
|
396
399
|
```typescript
|
|
397
400
|
const response = await client.conversations.list({
|
|
398
|
-
limit:
|
|
401
|
+
limit: 20,
|
|
399
402
|
status: "active",
|
|
400
403
|
});
|
|
401
404
|
```
|
|
@@ -426,7 +429,11 @@ const campaign = await client.campaigns.create({
|
|
|
426
429
|
channel: "email",
|
|
427
430
|
email: { subject: "What's new", html: "<h1>Updates</h1>" },
|
|
428
431
|
},
|
|
429
|
-
audience: {
|
|
432
|
+
audience: {
|
|
433
|
+
topicId: "unsub_1234567890abcdef",
|
|
434
|
+
includeTags: ["subscribers"],
|
|
435
|
+
excludeTags: ["bounced"],
|
|
436
|
+
},
|
|
430
437
|
});
|
|
431
438
|
|
|
432
439
|
const run = await client.campaigns.scheduleRun({
|