samva 0.10.0 → 0.11.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.
Files changed (71) hide show
  1. package/README.md +59 -9
  2. package/dist/client/sdk.gen.d.ts +1106 -215
  3. package/dist/client/types.gen.d.ts +11522 -6311
  4. package/dist/{client-mI4S99Ts.js → client-8YXjfsVc.js} +5079 -1655
  5. package/dist/{client-attribution-Bl4nTEsE.js → client-attribution-Ct2FKITg.js} +2 -2
  6. package/dist/effect/analytics.d.ts +18 -18
  7. package/dist/effect/analytics.js +1 -1
  8. package/dist/effect/api-keys.d.ts +99 -43
  9. package/dist/effect/api-keys.js +2 -4
  10. package/dist/effect/attachments.d.ts +5 -6
  11. package/dist/effect/attachments.js +1 -1
  12. package/dist/effect/brands.d.ts +4 -4
  13. package/dist/effect/brands.js +2 -2
  14. package/dist/effect/campaigns.d.ts +30 -60
  15. package/dist/effect/campaigns.js +1 -1
  16. package/dist/effect/client.js +1 -1
  17. package/dist/effect/contact-groups.d.ts +29 -46
  18. package/dist/effect/contact-groups.js +1 -1
  19. package/dist/effect/contacts.d.ts +324 -726
  20. package/dist/effect/contacts.js +10 -2
  21. package/dist/effect/conversations.d.ts +575 -1130
  22. package/dist/effect/conversations.js +14 -2
  23. package/dist/effect/custom-fields.d.ts +3 -53
  24. package/dist/effect/custom-fields.js +1 -1
  25. package/dist/effect/email.d.ts +263 -297
  26. package/dist/effect/email.js +5 -3
  27. package/dist/effect/extension-installations.d.ts +218 -0
  28. package/dist/effect/extension-installations.js +25 -0
  29. package/dist/effect/extensions.d.ts +192 -0
  30. package/dist/effect/extensions.js +19 -0
  31. package/dist/effect/feedback.d.ts +12 -0
  32. package/dist/effect/feedback.js +13 -0
  33. package/dist/effect/generated.d.ts +31266 -14269
  34. package/dist/effect/index.d.ts +6 -1
  35. package/dist/effect/index.js +7 -2
  36. package/dist/effect/internal/client.d.ts +3 -0
  37. package/dist/effect/internal/mailbox-events.d.ts +11 -0
  38. package/dist/effect/internal/operation.d.ts +20 -374
  39. package/dist/effect/mailboxes.d.ts +1676 -0
  40. package/dist/effect/mailboxes.js +3 -0
  41. package/dist/effect/media.d.ts +5 -5
  42. package/dist/effect/media.js +1 -1
  43. package/dist/effect/messages.d.ts +171 -938
  44. package/dist/effect/messages.js +6 -2
  45. package/dist/effect/namespaces.d.ts +82 -0
  46. package/dist/effect/namespaces.js +19 -0
  47. package/dist/effect/operations.d.ts +68 -12
  48. package/dist/effect/operations.js +1 -1
  49. package/dist/effect/organizations.d.ts +5 -4
  50. package/dist/effect/organizations.js +1 -1
  51. package/dist/effect/pagination.d.ts +16 -21
  52. package/dist/effect/scheduled-messages.d.ts +13 -23
  53. package/dist/effect/scheduled-messages.js +1 -1
  54. package/dist/effect/templates.d.ts +204 -281
  55. package/dist/effect/templates.js +2 -2
  56. package/dist/effect/unsubscribe-groups.d.ts +21 -75
  57. package/dist/effect/unsubscribe-groups.js +1 -1
  58. package/dist/effect/webhooks.d.ts +117 -39
  59. package/dist/effect/webhooks.js +2 -2
  60. package/dist/index.js +3 -2
  61. package/dist/mailbox-events-CcWm8lO4.js +617 -0
  62. package/dist/mailbox-events.d.ts +175 -0
  63. package/dist/mailboxes-4gJMAJh4.js +147 -0
  64. package/dist/{operation-DQWJO4jY.js → operation-BuyvAsZ1.js} +403 -67
  65. package/dist/promises/errors.gen.d.ts +5 -0
  66. package/dist/promises/index.d.ts +23 -1
  67. package/dist/promises/index.js +3 -2
  68. package/dist/promises/types.gen.d.ts +1 -1
  69. package/dist/{promises-C7D4oaHn.js → promises-CqAmI39P.js} +3242 -556
  70. package/dist/service-map.d.ts +458 -36
  71. package/package.json +22 -2
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
2
- import { n as make } from "../operation-DQWJO4jY.js";
3
- import { d as CreateTemplatePayload, k as UpdateTemplatePayload } from "../client-mI4S99Ts.js";
2
+ import { n as make } from "../operation-BuyvAsZ1.js";
3
+ import { A as UpdateTemplatePayload, d as CreateTemplatePayload } from "../client-8YXjfsVc.js";
4
4
  //#region src/effect/templates.ts
5
5
  var templates_exports = /* @__PURE__ */ __exportAll({
6
6
  CreatePayload: () => CreateTemplatePayload,
@@ -1,7 +1,4 @@
1
- export declare const list: ((input?: {
2
- readonly page?: string | null | undefined;
3
- readonly limit?: string | null | undefined;
4
- } | undefined) => import("effect/Effect").Effect<{
1
+ export declare const list: (_?: never) => import("effect/Effect").Effect<{
5
2
  readonly items: readonly {
6
3
  readonly id: string & import("effect/Brand").Brand<"UnsubscribeId">;
7
4
  readonly organizationId: string;
@@ -12,48 +9,7 @@ export declare const list: ((input?: {
12
9
  readonly createdAt: string;
13
10
  readonly updatedAt: string;
14
11
  }[];
15
- readonly pagination: {
16
- readonly page: number;
17
- readonly limit: number;
18
- readonly total: number;
19
- readonly totalPages: number;
20
- };
21
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>) & {
22
- readonly pages: (input?: {
23
- readonly page?: string | null | undefined;
24
- readonly limit?: string | null | undefined;
25
- } | undefined) => import("effect/Stream").Stream<{
26
- readonly items: readonly {
27
- readonly id: string & import("effect/Brand").Brand<"UnsubscribeId">;
28
- readonly organizationId: string;
29
- readonly name: string;
30
- readonly description: string | null;
31
- readonly isDefault: boolean;
32
- readonly memberCount: number;
33
- readonly createdAt: string;
34
- readonly updatedAt: string;
35
- }[];
36
- readonly pagination: {
37
- readonly page: number;
38
- readonly limit: number;
39
- readonly total: number;
40
- readonly totalPages: number;
41
- };
42
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
43
- readonly items: (input?: {
44
- readonly page?: string | null | undefined;
45
- readonly limit?: string | null | undefined;
46
- } | undefined) => import("effect/Stream").Stream<{
47
- readonly id: string & import("effect/Brand").Brand<"UnsubscribeId">;
48
- readonly organizationId: string;
49
- readonly name: string;
50
- readonly description: string | null;
51
- readonly isDefault: boolean;
52
- readonly memberCount: number;
53
- readonly createdAt: string;
54
- readonly updatedAt: string;
55
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
56
- };
12
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
57
13
  export declare const create: (input: {
58
14
  readonly name: string;
59
15
  readonly description?: string | null | undefined;
@@ -66,7 +22,7 @@ export declare const create: (input: {
66
22
  readonly memberCount: number;
67
23
  readonly createdAt: string;
68
24
  readonly updatedAt: string;
69
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
25
+ }, import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
70
26
  export declare const update: (input: {
71
27
  readonly id: string;
72
28
  readonly name?: string | null | undefined;
@@ -80,12 +36,12 @@ export declare const update: (input: {
80
36
  readonly memberCount: number;
81
37
  readonly createdAt: string;
82
38
  readonly updatedAt: string;
83
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
39
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
84
40
  export declare const remove: (input: {
85
41
  readonly id: string;
86
42
  }) => import("effect/Effect").Effect<{
87
43
  readonly success: boolean;
88
- }, import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
44
+ }, import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
89
45
  export declare const setDefault: (input: {
90
46
  readonly id: string;
91
47
  }) => import("effect/Effect").Effect<{
@@ -97,11 +53,11 @@ export declare const setDefault: (input: {
97
53
  readonly memberCount: number;
98
54
  readonly createdAt: string;
99
55
  readonly updatedAt: string;
100
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
56
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
101
57
  export declare const listMembers: ((input: {
102
- readonly groupId: string;
103
- readonly page?: string | null | undefined;
58
+ readonly id: string;
104
59
  readonly limit?: string | null | undefined;
60
+ readonly cursor?: string | null | undefined;
105
61
  }) => import("effect/Effect").Effect<{
106
62
  readonly items: readonly {
107
63
  readonly id: string;
@@ -111,17 +67,12 @@ export declare const listMembers: ((input: {
111
67
  readonly unsubscribedAt: string;
112
68
  readonly createdAt: string;
113
69
  }[];
114
- readonly pagination: {
115
- readonly page: number;
116
- readonly limit: number;
117
- readonly total: number;
118
- readonly totalPages: number;
119
- };
120
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>) & {
70
+ readonly nextCursor: string | null;
71
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>) & {
121
72
  readonly pages: (input: {
122
- readonly groupId: string;
123
- readonly page?: string | null | undefined;
73
+ readonly id: string;
124
74
  readonly limit?: string | null | undefined;
75
+ readonly cursor?: string | null | undefined;
125
76
  }) => import("effect/Stream").Stream<{
126
77
  readonly items: readonly {
127
78
  readonly id: string;
@@ -131,17 +82,12 @@ export declare const listMembers: ((input: {
131
82
  readonly unsubscribedAt: string;
132
83
  readonly createdAt: string;
133
84
  }[];
134
- readonly pagination: {
135
- readonly page: number;
136
- readonly limit: number;
137
- readonly total: number;
138
- readonly totalPages: number;
139
- };
140
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
85
+ readonly nextCursor: string | null;
86
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
141
87
  readonly items: (input: {
142
- readonly groupId: string;
143
- readonly page?: string | null | undefined;
88
+ readonly id: string;
144
89
  readonly limit?: string | null | undefined;
90
+ readonly cursor?: string | null | undefined;
145
91
  }) => import("effect/Stream").Stream<{
146
92
  readonly id: string;
147
93
  readonly email: string;
@@ -149,22 +95,22 @@ export declare const listMembers: ((input: {
149
95
  readonly source: "api" | "complaint" | "link" | "manual";
150
96
  readonly unsubscribedAt: string;
151
97
  readonly createdAt: string;
152
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
98
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
153
99
  };
154
100
  export declare const addEmails: (input: {
155
- readonly groupId: string;
101
+ readonly id: string;
156
102
  readonly emails: readonly string[];
157
103
  readonly source?: string | null | undefined;
158
104
  }) => import("effect/Effect").Effect<{
159
105
  readonly added: number;
160
106
  readonly skipped: number;
161
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
107
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
162
108
  export declare const removeEmails: (input: {
163
- readonly groupId: string;
109
+ readonly id: string;
164
110
  readonly emails: readonly string[];
165
111
  }) => import("effect/Effect").Effect<{
166
112
  readonly removed: number;
167
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
113
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
168
114
  export declare const checkSubscription: (input: {
169
115
  readonly email: string;
170
116
  readonly groupIds?: string | null | undefined;
@@ -1,5 +1,5 @@
1
1
  import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
2
- import { n as make } from "../operation-DQWJO4jY.js";
2
+ import { n as make } from "../operation-BuyvAsZ1.js";
3
3
  //#region src/effect/unsubscribe-groups.ts
4
4
  var unsubscribe_groups_exports = /* @__PURE__ */ __exportAll({
5
5
  addEmails: () => addEmails,
@@ -1,7 +1,7 @@
1
1
  export { CreateWebhookPayload as CreatePayload, TestWebhookPayload as TestPayload, UpdateWebhookPayload as UpdatePayload, } from "./generated";
2
2
  export declare const list: ((input?: {
3
- readonly page?: string | null | undefined;
4
3
  readonly limit?: string | null | undefined;
4
+ readonly cursor?: string | null | undefined;
5
5
  readonly search?: string | null | undefined;
6
6
  readonly status?: string | null | undefined;
7
7
  } | undefined) => import("effect/Effect").Effect<{
@@ -9,8 +9,10 @@ export declare const list: ((input?: {
9
9
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
10
10
  readonly name: string;
11
11
  readonly url: string;
12
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
12
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
13
13
  readonly channels: readonly "email"[] | null;
14
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
15
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
14
16
  readonly status: "active" | "disabled";
15
17
  readonly hasCustomHeaders: boolean;
16
18
  readonly failureStartedAt: string | null;
@@ -25,16 +27,11 @@ export declare const list: ((input?: {
25
27
  readonly cancelled: number;
26
28
  };
27
29
  }[];
28
- readonly pagination: {
29
- readonly page: number;
30
- readonly limit: number;
31
- readonly total: number;
32
- readonly totalPages: number;
33
- };
34
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>) & {
30
+ readonly nextCursor: string | null;
31
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>) & {
35
32
  readonly pages: (input?: {
36
- readonly page?: string | null | undefined;
37
33
  readonly limit?: string | null | undefined;
34
+ readonly cursor?: string | null | undefined;
38
35
  readonly search?: string | null | undefined;
39
36
  readonly status?: string | null | undefined;
40
37
  } | undefined) => import("effect/Stream").Stream<{
@@ -42,8 +39,10 @@ export declare const list: ((input?: {
42
39
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
43
40
  readonly name: string;
44
41
  readonly url: string;
45
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
42
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
46
43
  readonly channels: readonly "email"[] | null;
44
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
45
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
47
46
  readonly status: "active" | "disabled";
48
47
  readonly hasCustomHeaders: boolean;
49
48
  readonly failureStartedAt: string | null;
@@ -58,24 +57,21 @@ export declare const list: ((input?: {
58
57
  readonly cancelled: number;
59
58
  };
60
59
  }[];
61
- readonly pagination: {
62
- readonly page: number;
63
- readonly limit: number;
64
- readonly total: number;
65
- readonly totalPages: number;
66
- };
67
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
60
+ readonly nextCursor: string | null;
61
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
68
62
  readonly items: (input?: {
69
- readonly page?: string | null | undefined;
70
63
  readonly limit?: string | null | undefined;
64
+ readonly cursor?: string | null | undefined;
71
65
  readonly search?: string | null | undefined;
72
66
  readonly status?: string | null | undefined;
73
67
  } | undefined) => import("effect/Stream").Stream<{
74
68
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
75
69
  readonly name: string;
76
70
  readonly url: string;
77
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
71
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
78
72
  readonly channels: readonly "email"[] | null;
73
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
74
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
79
75
  readonly status: "active" | "disabled";
80
76
  readonly hasCustomHeaders: boolean;
81
77
  readonly failureStartedAt: string | null;
@@ -89,13 +85,15 @@ export declare const list: ((input?: {
89
85
  readonly exhausted: number;
90
86
  readonly cancelled: number;
91
87
  };
92
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
88
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
93
89
  };
94
90
  export declare const create: (input: {
95
91
  readonly name: string;
96
92
  readonly url: string;
97
93
  readonly eventTypes: readonly string[];
98
94
  readonly channels?: readonly string[] | null | undefined;
95
+ readonly mailboxIds?: readonly string[] | null | undefined;
96
+ readonly namespaceId?: string | null | undefined;
99
97
  readonly headers?: {
100
98
  readonly [x: string]: string | undefined;
101
99
  } | null | undefined;
@@ -105,8 +103,10 @@ export declare const create: (input: {
105
103
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
106
104
  readonly name: string;
107
105
  readonly url: string;
108
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
106
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
109
107
  readonly channels: readonly "email"[] | null;
108
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
109
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
110
110
  readonly status: "active" | "disabled";
111
111
  readonly hasCustomHeaders: boolean;
112
112
  readonly failureStartedAt: string | null;
@@ -115,33 +115,37 @@ export declare const create: (input: {
115
115
  readonly updatedAt: string;
116
116
  };
117
117
  readonly secret: import("effect/Redacted").Redacted<string>;
118
- }, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").PaymentRequiredError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
118
+ }, import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").PaymentRequiredError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
119
119
  export declare const get: (input: {
120
120
  readonly id: string;
121
121
  }) => import("effect/Effect").Effect<{
122
122
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
123
123
  readonly name: string;
124
124
  readonly url: string;
125
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
125
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
126
126
  readonly channels: readonly "email"[] | null;
127
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
128
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
127
129
  readonly status: "active" | "disabled";
128
130
  readonly hasCustomHeaders: boolean;
129
131
  readonly failureStartedAt: string | null;
130
132
  readonly lastSucceededAt: string | null;
131
133
  readonly createdAt: string;
132
134
  readonly updatedAt: string;
133
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
135
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
134
136
  export declare const remove: (input: {
135
137
  readonly id: string;
136
138
  }) => import("effect/Effect").Effect<{
137
139
  readonly success: boolean;
138
- }, import("./generated").BillingProviderError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
140
+ }, import("./generated").BillingProviderError | import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
139
141
  export declare const update: (input: {
140
142
  readonly id: string;
141
143
  readonly name?: string | null | undefined;
142
144
  readonly url?: string | null | undefined;
143
145
  readonly eventTypes?: readonly string[] | null | undefined;
144
146
  readonly channels?: readonly string[] | null | undefined;
147
+ readonly mailboxIds?: readonly string[] | null | undefined;
148
+ readonly namespaceId?: string | null | undefined;
145
149
  readonly headers?: {
146
150
  readonly [x: string]: string | undefined;
147
151
  } | null | undefined;
@@ -150,8 +154,10 @@ export declare const update: (input: {
150
154
  readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
151
155
  readonly name: string;
152
156
  readonly url: string;
153
- readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
157
+ readonly eventTypes: readonly ("contact.created" | "contact.deleted" | "contact.resubscribed" | "contact.unsubscribed" | "contact.updated" | "conversation.archived" | "conversation.created" | "conversation.updated" | "domain.updated" | "domain.warming.updated" | "mailbox.action.pending_approval" | "mailbox.message.discarded" | "mailbox.message.quarantined" | "mailbox.message.received" | "mailbox.message.released" | "mailbox.message.sent" | "message.bounced" | "message.clicked" | "message.complained" | "message.delivered" | "message.failed" | "message.opened" | "message.read" | "message.received" | "message.sent" | "webhook.created" | "webhook.deleted" | "webhook.test" | "webhook.updated")[];
154
158
  readonly channels: readonly "email"[] | null;
159
+ readonly mailboxIds: readonly (string & import("effect/Brand").Brand<"MailboxId">)[] | null;
160
+ readonly namespaceId: (string & import("effect/Brand").Brand<"NamespaceId">) | null;
155
161
  readonly status: "active" | "disabled";
156
162
  readonly hasCustomHeaders: boolean;
157
163
  readonly failureStartedAt: string | null;
@@ -192,12 +198,13 @@ export declare const test: (input: {
192
198
  readonly accepted: true;
193
199
  readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
194
200
  readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
195
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
196
- export declare const getLogs: (input: {
197
- readonly webhookId: string;
201
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
202
+ export declare const getLogs: ((input: {
203
+ readonly id: string;
198
204
  readonly limit?: string | null | undefined;
205
+ readonly cursor?: string | null | undefined;
199
206
  }) => import("effect/Effect").Effect<{
200
- readonly data: readonly {
207
+ readonly items: readonly {
201
208
  readonly id: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
202
209
  readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
203
210
  readonly eventType: string;
@@ -226,11 +233,82 @@ export declare const getLogs: (input: {
226
233
  readonly createdAt: string;
227
234
  }[];
228
235
  }[];
229
- readonly hasMore: boolean;
230
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
236
+ readonly nextCursor: string | null;
237
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>) & {
238
+ readonly pages: (input: {
239
+ readonly id: string;
240
+ readonly limit?: string | null | undefined;
241
+ readonly cursor?: string | null | undefined;
242
+ }) => import("effect/Stream").Stream<{
243
+ readonly items: readonly {
244
+ readonly id: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
245
+ readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
246
+ readonly eventType: string;
247
+ readonly occurredAt: string;
248
+ readonly endpointId: string & import("effect/Brand").Brand<"WebhookEndpointId">;
249
+ readonly status: "cancelled" | "delivered" | "exhausted" | "pending";
250
+ readonly automaticAttempts: number;
251
+ readonly nextAttemptAt: string | null;
252
+ readonly completedAt: string | null;
253
+ readonly createdAt: string;
254
+ readonly updatedAt: string;
255
+ readonly attempts: readonly {
256
+ readonly id: string & import("effect/Brand").Brand<"WebhookAttemptId">;
257
+ readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
258
+ readonly kind: "automatic" | "manual";
259
+ readonly attemptNumber: number;
260
+ readonly classification: "cancelled" | "http-error" | "network-error" | "success" | "timeout";
261
+ readonly attemptedAt: string;
262
+ readonly responseStatus: number | null;
263
+ readonly responseHeaders: {
264
+ readonly [x: string]: string;
265
+ } | null;
266
+ readonly durationMs: number | null;
267
+ readonly errorCode: string | null;
268
+ readonly errorMessage: string | null;
269
+ readonly createdAt: string;
270
+ }[];
271
+ }[];
272
+ readonly nextCursor: string | null;
273
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
274
+ readonly items: (input: {
275
+ readonly id: string;
276
+ readonly limit?: string | null | undefined;
277
+ readonly cursor?: string | null | undefined;
278
+ }) => import("effect/Stream").Stream<{
279
+ readonly id: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
280
+ readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
281
+ readonly eventType: string;
282
+ readonly occurredAt: string;
283
+ readonly endpointId: string & import("effect/Brand").Brand<"WebhookEndpointId">;
284
+ readonly status: "cancelled" | "delivered" | "exhausted" | "pending";
285
+ readonly automaticAttempts: number;
286
+ readonly nextAttemptAt: string | null;
287
+ readonly completedAt: string | null;
288
+ readonly createdAt: string;
289
+ readonly updatedAt: string;
290
+ readonly attempts: readonly {
291
+ readonly id: string & import("effect/Brand").Brand<"WebhookAttemptId">;
292
+ readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
293
+ readonly kind: "automatic" | "manual";
294
+ readonly attemptNumber: number;
295
+ readonly classification: "cancelled" | "http-error" | "network-error" | "success" | "timeout";
296
+ readonly attemptedAt: string;
297
+ readonly responseStatus: number | null;
298
+ readonly responseHeaders: {
299
+ readonly [x: string]: string;
300
+ } | null;
301
+ readonly durationMs: number | null;
302
+ readonly errorCode: string | null;
303
+ readonly errorMessage: string | null;
304
+ readonly createdAt: string;
305
+ }[];
306
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
307
+ };
231
308
  export declare const getStats: (input: {
232
- readonly webhookId: string;
233
- readonly period?: string | null | undefined;
309
+ readonly id: string;
310
+ readonly after?: string | null | undefined;
311
+ readonly before?: string | null | undefined;
234
312
  }) => import("effect/Effect").Effect<{
235
313
  readonly total: number;
236
314
  readonly pending: number;
@@ -244,18 +322,18 @@ export declare const getStats: (input: {
244
322
  readonly exhausted: number;
245
323
  readonly cancelled: number;
246
324
  }[];
247
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError, import("./client").Service>;
325
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
248
326
  export declare const retryDelivery: (input: {
249
- readonly webhookId: string;
327
+ readonly id: string;
250
328
  readonly deliveryId: string;
251
329
  }) => import("effect/Effect").Effect<{
252
330
  readonly accepted: true;
253
331
  readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
254
332
  readonly attemptId: string & import("effect/Brand").Brand<"WebhookAttemptId">;
255
333
  readonly outcome: "failed" | "succeeded";
256
- }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
334
+ }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").RateLimitedError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
257
335
  export declare const regenerateSecret: (input: {
258
- readonly webhookId: string;
336
+ readonly id: string;
259
337
  }) => import("effect/Effect").Effect<{
260
338
  readonly secret: import("effect/Redacted").Redacted<string>;
261
339
  }, import("./generated").ForbiddenError | import("./generated").GatewayTimeoutError | import("effect/http/HttpClientError").HttpClientError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("effect/Schema").SchemaError | import("./generated").UnauthorizedError | import("./generated").ValidationError, import("./client").Service>;
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
2
- import { n as make } from "../operation-DQWJO4jY.js";
3
- import { A as UpdateWebhookPayload, T as TestWebhookPayload, f as CreateWebhookPayload } from "../client-mI4S99Ts.js";
2
+ import { n as make } from "../operation-BuyvAsZ1.js";
3
+ import { E as TestWebhookPayload, f as CreateWebhookPayload, j as UpdateWebhookPayload } from "../client-8YXjfsVc.js";
4
4
  //#region src/effect/webhooks.ts
5
5
  var webhooks_exports = /* @__PURE__ */ __exportAll({
6
6
  CreatePayload: () => CreateWebhookPayload,
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
- import { S as fromApiError, _ as ResourceNotFoundError, a as CampaignFooterRequiredError, b as UnauthorizedError, c as EmailChannelError, d as ForbiddenError, f as GatewayTimeoutError, g as RateLimitedError, h as PaymentRequiredError, i as BrandAddressRequiredError, l as ExternalServiceError, m as OnboardingReviewRequiredError, n as AnalyticsQueryError, o as ConflictError, p as InternalError, r as BillingProviderError, s as DeliveryUnavailableError, t as createClient, u as FlagDisabledError, v as SamvaApiError, x as ValidationError, y as SamvaTransportError } from "./promises-C7D4oaHn.js";
2
- export { AnalyticsQueryError, BillingProviderError, BrandAddressRequiredError, CampaignFooterRequiredError, ConflictError, DeliveryUnavailableError, EmailChannelError, ExternalServiceError, FlagDisabledError, ForbiddenError, GatewayTimeoutError, InternalError, OnboardingReviewRequiredError, PaymentRequiredError, RateLimitedError, ResourceNotFoundError, SamvaApiError, SamvaTransportError, UnauthorizedError, ValidationError, createClient, fromApiError };
1
+ import { S as fromApiError, _ as ResourceNotFoundError, a as CampaignFooterRequiredError, b as UnauthorizedError, c as EmailChannelError, d as ForbiddenError, f as GatewayTimeoutError, g as RateLimitedError, h as PaymentRequiredError, i as BrandAddressRequiredError, l as ExternalServiceError, m as OnboardingReviewRequiredError, n as AnalyticsQueryError, o as ConflictError, p as InternalError, r as BillingProviderError, s as DeliveryUnavailableError, t as createClient, u as FlagDisabledError, v as SamvaApiError, x as ValidationError, y as SamvaTransportError } from "./promises-CqAmI39P.js";
2
+ import { n as MailboxEventStreamError, t as MailboxEventStream } from "./mailbox-events-CcWm8lO4.js";
3
+ export { AnalyticsQueryError, BillingProviderError, BrandAddressRequiredError, CampaignFooterRequiredError, ConflictError, DeliveryUnavailableError, EmailChannelError, ExternalServiceError, FlagDisabledError, ForbiddenError, GatewayTimeoutError, InternalError, MailboxEventStream, MailboxEventStreamError, OnboardingReviewRequiredError, PaymentRequiredError, RateLimitedError, ResourceNotFoundError, SamvaApiError, SamvaTransportError, UnauthorizedError, ValidationError, createClient, fromApiError };