samva 0.0.1 → 0.2.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 +13 -0
- package/LICENSE +21 -0
- package/README.md +392 -5
- package/dist/categories-CsUa8ojo.js +143 -0
- package/dist/client/client/client.gen.d.ts +2 -0
- package/dist/client/client/index.d.ts +10 -0
- package/dist/client/client/types.gen.d.ts +120 -0
- package/dist/client/client/utils.gen.d.ts +37 -0
- package/dist/client/client.gen.d.ts +12 -0
- package/dist/client/core/auth.gen.d.ts +25 -0
- package/dist/client/core/bodySerializer.gen.d.ts +25 -0
- package/dist/client/core/params.gen.d.ts +43 -0
- package/dist/client/core/pathSerializer.gen.d.ts +33 -0
- package/dist/client/core/queryKeySerializer.gen.d.ts +18 -0
- package/dist/client/core/serverSentEvents.gen.d.ts +71 -0
- package/dist/client/core/types.gen.d.ts +83 -0
- package/dist/client/core/utils.gen.d.ts +19 -0
- package/dist/client/sdk.gen.d.ts +1558 -0
- package/dist/client/types.gen.d.ts +7917 -0
- package/dist/client-BqkU-sFv.js +6049 -0
- package/dist/effect/api-keys.d.ts +190 -0
- package/dist/effect/api-keys.js +27 -0
- package/dist/effect/campaigns.d.ts +2055 -0
- package/dist/effect/campaigns.js +33 -0
- package/dist/effect/categories.d.ts +65 -0
- package/dist/effect/categories.js +2 -0
- package/dist/effect/client.d.ts +9 -0
- package/dist/effect/client.js +13 -0
- package/dist/effect/contacts.d.ts +1278 -0
- package/dist/effect/contacts.js +39 -0
- package/dist/effect/conversations.d.ts +1604 -0
- package/dist/effect/conversations.js +23 -0
- package/dist/effect/design.d.ts +209 -0
- package/dist/effect/design.js +13 -0
- package/dist/effect/email.d.ts +1022 -0
- package/dist/effect/email.js +111 -0
- package/dist/effect/generated-metadata.d.ts +54 -0
- package/dist/effect/generated.d.ts +32156 -0
- package/dist/effect/index.d.ts +36 -0
- package/dist/effect/index.js +17 -0
- package/dist/effect/internal/client.d.ts +35 -0
- package/dist/effect/internal/operation.d.ts +466 -0
- package/dist/effect/messages.d.ts +1047 -0
- package/dist/effect/messages.js +23 -0
- package/dist/effect/operations.d.ts +97 -0
- package/dist/effect/operations.js +15 -0
- package/dist/effect/organizations.d.ts +559 -0
- package/dist/effect/organizations.js +21 -0
- package/dist/effect/pagination.d.ts +37 -0
- package/dist/effect/retry.d.ts +60 -0
- package/dist/effect/retry.js +112 -0
- package/dist/effect/runtime.d.ts +7 -0
- package/dist/effect/scheduled-messages.d.ts +1009 -0
- package/dist/effect/scheduled-messages.js +17 -0
- package/dist/effect/templates.d.ts +2591 -0
- package/dist/effect/templates.js +66 -0
- package/dist/effect/webhooks.d.ts +228 -0
- package/dist/effect/webhooks.js +33 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/normalize-LkWl4HUF.js +82 -0
- package/dist/normalize.d.ts +87 -0
- package/dist/operation-Ccqh_yxb.js +596 -0
- package/dist/promises/errors.gen.d.ts +179 -0
- package/dist/promises/index.d.ts +153 -0
- package/dist/promises/index.js +2 -0
- package/dist/promises/types.gen.d.ts +1 -0
- package/dist/promises-Dgv8UmCC.js +5911 -0
- package/dist/rolldown-runtime-D7D4PA-g.js +13 -0
- package/dist/service-map.d.ts +732 -0
- package/dist/webhooks/effect.d.ts +1 -0
- package/dist/webhooks/effect.js +1 -0
- package/dist/webhooks/promise.d.ts +1 -0
- package/dist/webhooks/promise.js +1 -0
- package/package.json +151 -4
- package/CLAUDE.md +0 -111
- package/bun.lock +0 -29
- package/index.ts +0 -1
- package/tsconfig.json +0 -29
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
|
|
2
|
+
import { n as make } from "../operation-Ccqh_yxb.js";
|
|
3
|
+
import { s as CreateTemplatePayload, x as UpdateTemplatePayload } from "../client-BqkU-sFv.js";
|
|
4
|
+
//#region src/effect/templates.ts
|
|
5
|
+
var templates_exports = /* @__PURE__ */ __exportAll({
|
|
6
|
+
CreatePayload: () => CreateTemplatePayload,
|
|
7
|
+
UpdatePayload: () => UpdateTemplatePayload,
|
|
8
|
+
addFamilyChannel: () => addFamilyChannel,
|
|
9
|
+
approve: () => approve,
|
|
10
|
+
attachFamilyMember: () => attachFamilyMember,
|
|
11
|
+
checkDocumentSpam: () => checkDocumentSpam,
|
|
12
|
+
create: () => create,
|
|
13
|
+
createFamily: () => createFamily,
|
|
14
|
+
createFamilyFromTemplate: () => createFamilyFromTemplate,
|
|
15
|
+
deleteFamily: () => deleteFamily,
|
|
16
|
+
detachFamilyMember: () => detachFamilyMember,
|
|
17
|
+
getById: () => getById,
|
|
18
|
+
getDocument: () => getDocument,
|
|
19
|
+
getFamily: () => getFamily,
|
|
20
|
+
list: () => list,
|
|
21
|
+
listDashboard: () => listDashboard,
|
|
22
|
+
listDocumentVersions: () => listDocumentVersions,
|
|
23
|
+
listFamilies: () => listFamilies,
|
|
24
|
+
openDocument: () => openDocument,
|
|
25
|
+
publishDocument: () => publishDocument,
|
|
26
|
+
remove: () => remove,
|
|
27
|
+
renameFamily: () => renameFamily,
|
|
28
|
+
renderDocument: () => renderDocument,
|
|
29
|
+
replaceDocument: () => replaceDocument,
|
|
30
|
+
restoreDocument: () => restoreDocument,
|
|
31
|
+
saveDocument: () => saveDocument,
|
|
32
|
+
sendDocumentTest: () => sendDocumentTest,
|
|
33
|
+
unpublishDocument: () => unpublishDocument,
|
|
34
|
+
update: () => update
|
|
35
|
+
});
|
|
36
|
+
const list = make("templatesList");
|
|
37
|
+
const create = make("templatesCreate");
|
|
38
|
+
const listDashboard = make("templatesListDashboard");
|
|
39
|
+
const listFamilies = make("templatesListFamilies");
|
|
40
|
+
const createFamily = make("templatesCreateFamily");
|
|
41
|
+
const getFamily = make("templatesGetFamily");
|
|
42
|
+
const deleteFamily = make("templatesDeleteFamily");
|
|
43
|
+
const renameFamily = make("templatesRenameFamily");
|
|
44
|
+
const createFamilyFromTemplate = make("templatesCreateFamilyFromTemplate");
|
|
45
|
+
const attachFamilyMember = make("templatesAttachFamilyMember");
|
|
46
|
+
const detachFamilyMember = make("templatesDetachFamilyMember");
|
|
47
|
+
const addFamilyChannel = make("templatesAddFamilyChannel");
|
|
48
|
+
const getById = make("templatesGetById");
|
|
49
|
+
const remove = make("templatesRemove");
|
|
50
|
+
const update = make("templatesUpdate");
|
|
51
|
+
const approve = make("templatesApprove");
|
|
52
|
+
const openDocument = make("templateDocumentsBootstrap");
|
|
53
|
+
const getDocument = make("templateDocumentsGet");
|
|
54
|
+
const replaceDocument = make("templateDocumentsReplace");
|
|
55
|
+
const saveDocument = make("templateDocumentsSave");
|
|
56
|
+
const renderDocument = make("templateDocumentsRender");
|
|
57
|
+
const checkDocumentSpam = make("templateDocumentsSpamCheck");
|
|
58
|
+
const sendDocumentTest = make("templateDocumentsTestSend");
|
|
59
|
+
const listDocumentVersions = make("templateDocumentsVersions");
|
|
60
|
+
const publishDocument = make("templateDocumentsPublish");
|
|
61
|
+
const unpublishDocument = make("templateDocumentsUnpublish");
|
|
62
|
+
const restoreDocument = make("templateDocumentsRestore");
|
|
63
|
+
//#endregion
|
|
64
|
+
export { CreateTemplatePayload as CreatePayload, UpdateTemplatePayload as UpdatePayload, addFamilyChannel, approve, attachFamilyMember, checkDocumentSpam, create, createFamily, createFamilyFromTemplate, deleteFamily, detachFamilyMember, getById, getDocument, getFamily, list, listDashboard, listDocumentVersions, listFamilies, openDocument, publishDocument, remove, renameFamily, renderDocument, replaceDocument, restoreDocument, saveDocument, sendDocumentTest, templates_exports as t, unpublishDocument, update };
|
|
65
|
+
|
|
66
|
+
//# sourceMappingURL=templates.js.map
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
export { CreateWebhookPayload as CreatePayload, TestWebhookPayload as TestPayload, UpdateWebhookPayload as UpdatePayload, } from "./generated";
|
|
2
|
+
export declare const list: ((input?: {
|
|
3
|
+
readonly limit?: string | null | undefined;
|
|
4
|
+
readonly search?: string | null | undefined;
|
|
5
|
+
readonly page?: string | null | undefined;
|
|
6
|
+
} | undefined) => import("effect/Effect").Effect<{
|
|
7
|
+
readonly items: readonly {
|
|
8
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
readonly url: string;
|
|
11
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
12
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
13
|
+
readonly status: "disabled" | "active";
|
|
14
|
+
readonly hasCustomHeaders: boolean;
|
|
15
|
+
readonly failureStartedAt: string | null;
|
|
16
|
+
readonly lastSucceededAt: string | null;
|
|
17
|
+
readonly createdAt: string;
|
|
18
|
+
readonly updatedAt: string;
|
|
19
|
+
}[];
|
|
20
|
+
readonly pagination: {
|
|
21
|
+
readonly page: number;
|
|
22
|
+
readonly limit: number;
|
|
23
|
+
readonly total: number;
|
|
24
|
+
readonly totalPages: number;
|
|
25
|
+
};
|
|
26
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>) & {
|
|
27
|
+
readonly pages: (input?: {
|
|
28
|
+
readonly limit?: string | null | undefined;
|
|
29
|
+
readonly search?: string | null | undefined;
|
|
30
|
+
readonly page?: string | null | undefined;
|
|
31
|
+
} | undefined) => import("effect/Stream").Stream<{
|
|
32
|
+
readonly items: readonly {
|
|
33
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
34
|
+
readonly name: string;
|
|
35
|
+
readonly url: string;
|
|
36
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
37
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
38
|
+
readonly status: "disabled" | "active";
|
|
39
|
+
readonly hasCustomHeaders: boolean;
|
|
40
|
+
readonly failureStartedAt: string | null;
|
|
41
|
+
readonly lastSucceededAt: string | null;
|
|
42
|
+
readonly createdAt: string;
|
|
43
|
+
readonly updatedAt: string;
|
|
44
|
+
}[];
|
|
45
|
+
readonly pagination: {
|
|
46
|
+
readonly page: number;
|
|
47
|
+
readonly limit: number;
|
|
48
|
+
readonly total: number;
|
|
49
|
+
readonly totalPages: number;
|
|
50
|
+
};
|
|
51
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
52
|
+
readonly items: (input?: {
|
|
53
|
+
readonly limit?: string | null | undefined;
|
|
54
|
+
readonly search?: string | null | undefined;
|
|
55
|
+
readonly page?: string | null | undefined;
|
|
56
|
+
} | undefined) => import("effect/Stream").Stream<{
|
|
57
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
58
|
+
readonly name: string;
|
|
59
|
+
readonly url: string;
|
|
60
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
61
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
62
|
+
readonly status: "disabled" | "active";
|
|
63
|
+
readonly hasCustomHeaders: boolean;
|
|
64
|
+
readonly failureStartedAt: string | null;
|
|
65
|
+
readonly lastSucceededAt: string | null;
|
|
66
|
+
readonly createdAt: string;
|
|
67
|
+
readonly updatedAt: string;
|
|
68
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
69
|
+
};
|
|
70
|
+
export declare const create: (input: {
|
|
71
|
+
readonly url: string;
|
|
72
|
+
readonly name: string;
|
|
73
|
+
readonly eventTypes: readonly string[];
|
|
74
|
+
readonly headers?: {
|
|
75
|
+
readonly [x: string]: string | undefined;
|
|
76
|
+
} | null | undefined;
|
|
77
|
+
readonly channels?: readonly string[] | null | undefined;
|
|
78
|
+
readonly status?: string | null | undefined;
|
|
79
|
+
}) => import("effect/Effect").Effect<{
|
|
80
|
+
readonly endpoint: {
|
|
81
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
82
|
+
readonly name: string;
|
|
83
|
+
readonly url: string;
|
|
84
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
85
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
86
|
+
readonly status: "disabled" | "active";
|
|
87
|
+
readonly hasCustomHeaders: boolean;
|
|
88
|
+
readonly failureStartedAt: string | null;
|
|
89
|
+
readonly lastSucceededAt: string | null;
|
|
90
|
+
readonly createdAt: string;
|
|
91
|
+
readonly updatedAt: string;
|
|
92
|
+
};
|
|
93
|
+
readonly secret: import("effect/Redacted").Redacted<string>;
|
|
94
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").BillingProviderError | import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").PaymentRequiredError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
95
|
+
export declare const get: (input: {
|
|
96
|
+
readonly id: string;
|
|
97
|
+
}) => import("effect/Effect").Effect<{
|
|
98
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
99
|
+
readonly name: string;
|
|
100
|
+
readonly url: string;
|
|
101
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
102
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
103
|
+
readonly status: "disabled" | "active";
|
|
104
|
+
readonly hasCustomHeaders: boolean;
|
|
105
|
+
readonly failureStartedAt: string | null;
|
|
106
|
+
readonly lastSucceededAt: string | null;
|
|
107
|
+
readonly createdAt: string;
|
|
108
|
+
readonly updatedAt: string;
|
|
109
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
110
|
+
export declare const remove: (input: {
|
|
111
|
+
readonly id: string;
|
|
112
|
+
}) => import("effect/Effect").Effect<{
|
|
113
|
+
readonly success: boolean;
|
|
114
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").BillingProviderError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
115
|
+
export declare const update: (input: {
|
|
116
|
+
readonly id: string;
|
|
117
|
+
readonly headers?: {
|
|
118
|
+
readonly [x: string]: string | undefined;
|
|
119
|
+
} | null | undefined;
|
|
120
|
+
readonly url?: string | null | undefined;
|
|
121
|
+
readonly name?: string | null | undefined;
|
|
122
|
+
readonly channels?: readonly string[] | null | undefined;
|
|
123
|
+
readonly status?: string | null | undefined;
|
|
124
|
+
readonly eventTypes?: readonly string[] | null | undefined;
|
|
125
|
+
}) => import("effect/Effect").Effect<{
|
|
126
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
127
|
+
readonly name: string;
|
|
128
|
+
readonly url: string;
|
|
129
|
+
readonly eventTypes: readonly ("message.sent" | "message.delivered" | "message.read" | "message.failed" | "message.bounced" | "message.complained" | "message.received" | "contact.created" | "contact.updated" | "contact.deleted" | "conversation.started" | "conversation.ended" | "conversation.created" | "conversation.updated" | "conversation.archived" | "template.created" | "template.updated" | "template.deleted" | "template.approved" | "template.rejected" | "webhook.created" | "webhook.updated" | "webhook.deleted" | "webhook.test" | "domain.updated")[];
|
|
130
|
+
readonly channels: readonly ("sms" | "whatsapp" | "email")[] | null;
|
|
131
|
+
readonly status: "disabled" | "active";
|
|
132
|
+
readonly hasCustomHeaders: boolean;
|
|
133
|
+
readonly failureStartedAt: string | null;
|
|
134
|
+
readonly lastSucceededAt: string | null;
|
|
135
|
+
readonly createdAt: string;
|
|
136
|
+
readonly updatedAt: string;
|
|
137
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ConflictError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
138
|
+
export declare const test: (input: {
|
|
139
|
+
readonly id: string;
|
|
140
|
+
readonly data?: {
|
|
141
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | {
|
|
142
|
+
readonly [x: string]: string | number | boolean | /*elided*/ any | /*elided*/ any | null | undefined;
|
|
143
|
+
} | null)[] | {
|
|
144
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
145
|
+
} | null)[] | {
|
|
146
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
147
|
+
} | null)[] | {
|
|
148
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
149
|
+
} | null)[] | {
|
|
150
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
151
|
+
} | null)[] | {
|
|
152
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
153
|
+
} | null)[] | {
|
|
154
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
155
|
+
} | null)[] | {
|
|
156
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
157
|
+
} | null)[] | {
|
|
158
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
159
|
+
} | null)[] | {
|
|
160
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
161
|
+
} | null)[] | {
|
|
162
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
163
|
+
} | null)[] | {
|
|
164
|
+
readonly [x: string]: string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | readonly (string | number | boolean | /*elided*/ any | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null)[] | /*elided*/ any | null | undefined;
|
|
165
|
+
} | null | undefined;
|
|
166
|
+
} | null | undefined;
|
|
167
|
+
}) => import("effect/Effect").Effect<{
|
|
168
|
+
readonly accepted: true;
|
|
169
|
+
readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
|
|
170
|
+
readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
|
|
171
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
172
|
+
export declare const getLogs: (input: {
|
|
173
|
+
readonly webhookId: string;
|
|
174
|
+
readonly limit?: string | null | undefined;
|
|
175
|
+
}) => import("effect/Effect").Effect<{
|
|
176
|
+
readonly data: readonly {
|
|
177
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
|
|
178
|
+
readonly eventId: string & import("effect/Brand").Brand<"WebhookEventId">;
|
|
179
|
+
readonly endpointId: string & import("effect/Brand").Brand<"WebhookEndpointId">;
|
|
180
|
+
readonly status: "pending" | "delivered" | "cancelled" | "exhausted";
|
|
181
|
+
readonly automaticAttempts: number;
|
|
182
|
+
readonly nextAttemptAt: string | null;
|
|
183
|
+
readonly completedAt: string | null;
|
|
184
|
+
readonly createdAt: string;
|
|
185
|
+
readonly updatedAt: string;
|
|
186
|
+
readonly attempts: readonly {
|
|
187
|
+
readonly id: string & import("effect/Brand").Brand<"WebhookAttemptId">;
|
|
188
|
+
readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
|
|
189
|
+
readonly kind: "manual" | "automatic";
|
|
190
|
+
readonly attemptNumber: number;
|
|
191
|
+
readonly classification: "cancelled" | "timeout" | "success" | "http-error" | "network-error";
|
|
192
|
+
readonly attemptedAt: string;
|
|
193
|
+
readonly responseStatus: number | null;
|
|
194
|
+
readonly responseHeaders: {
|
|
195
|
+
readonly [x: string]: string;
|
|
196
|
+
} | null;
|
|
197
|
+
readonly responseBody: string | null;
|
|
198
|
+
readonly durationMs: number | null;
|
|
199
|
+
readonly errorCode: string | null;
|
|
200
|
+
readonly errorMessage: string | null;
|
|
201
|
+
readonly createdAt: string;
|
|
202
|
+
}[];
|
|
203
|
+
}[];
|
|
204
|
+
readonly hasMore: boolean;
|
|
205
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
206
|
+
export declare const getStats: (input: {
|
|
207
|
+
readonly webhookId: string;
|
|
208
|
+
}) => import("effect/Effect").Effect<{
|
|
209
|
+
readonly total: number;
|
|
210
|
+
readonly pending: number;
|
|
211
|
+
readonly delivered: number;
|
|
212
|
+
readonly exhausted: number;
|
|
213
|
+
readonly cancelled: number;
|
|
214
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
215
|
+
export declare const retryDelivery: (input: {
|
|
216
|
+
readonly webhookId: string;
|
|
217
|
+
readonly deliveryId: string;
|
|
218
|
+
}) => import("effect/Effect").Effect<{
|
|
219
|
+
readonly accepted: true;
|
|
220
|
+
readonly deliveryId: string & import("effect/Brand").Brand<"WebhookDeliveryId">;
|
|
221
|
+
readonly attemptId: string & import("effect/Brand").Brand<"WebhookAttemptId">;
|
|
222
|
+
readonly outcome: "failed" | "succeeded";
|
|
223
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("./generated").ValidationError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
224
|
+
export declare const regenerateSecret: (input: {
|
|
225
|
+
readonly webhookId: string;
|
|
226
|
+
}) => import("effect/Effect").Effect<{
|
|
227
|
+
readonly secret: import("effect/Redacted").Redacted<string>;
|
|
228
|
+
}, import("effect/SchemaError").SchemaError | import("./generated").ForbiddenError | import("./generated").InternalError | import("./generated").ResourceNotFoundError | import("./generated").UnauthorizedError | import("./generated").ValidationError | import("effect/unstable/http/HttpClientError").HttpClientError, import("./client").Service>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { t as __exportAll } from "../rolldown-runtime-D7D4PA-g.js";
|
|
2
|
+
import { n as make } from "../operation-Ccqh_yxb.js";
|
|
3
|
+
import { S as UpdateWebhookPayload, c as CreateWebhookPayload, v as TestWebhookPayload } from "../client-BqkU-sFv.js";
|
|
4
|
+
//#region src/effect/webhooks.ts
|
|
5
|
+
var webhooks_exports = /* @__PURE__ */ __exportAll({
|
|
6
|
+
CreatePayload: () => CreateWebhookPayload,
|
|
7
|
+
TestPayload: () => TestWebhookPayload,
|
|
8
|
+
UpdatePayload: () => UpdateWebhookPayload,
|
|
9
|
+
create: () => create,
|
|
10
|
+
get: () => get,
|
|
11
|
+
getLogs: () => getLogs,
|
|
12
|
+
getStats: () => getStats,
|
|
13
|
+
list: () => list,
|
|
14
|
+
regenerateSecret: () => regenerateSecret,
|
|
15
|
+
remove: () => remove,
|
|
16
|
+
retryDelivery: () => retryDelivery,
|
|
17
|
+
test: () => test,
|
|
18
|
+
update: () => update
|
|
19
|
+
});
|
|
20
|
+
const list = make("webhooksList");
|
|
21
|
+
const create = make("webhooksCreate");
|
|
22
|
+
const get = make("webhooksGet");
|
|
23
|
+
const remove = make("webhooksRemove");
|
|
24
|
+
const update = make("webhooksUpdate");
|
|
25
|
+
const test = make("webhooksTest");
|
|
26
|
+
const getLogs = make("webhooksGetLogs");
|
|
27
|
+
const getStats = make("webhooksGetStats");
|
|
28
|
+
const retryDelivery = make("webhooksRetryDelivery");
|
|
29
|
+
const regenerateSecret = make("webhooksRegenerateSecret");
|
|
30
|
+
//#endregion
|
|
31
|
+
export { CreateWebhookPayload as CreatePayload, TestWebhookPayload as TestPayload, UpdateWebhookPayload as UpdatePayload, create, get, getLogs, getStats, list, regenerateSecret, remove, retryDelivery, webhooks_exports as t, test, update };
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=webhooks.js.map
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./promises/index";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { _ as fromApiError, a as ExternalServiceError, c as InternalError, d as ResourceNotFoundError, f as SamvaApiError, g as WebhookEnqueueError, h as ValidationError, i as EmailChannelError, l as PaymentRequiredError, m as UnauthorizedError, n as BillingProviderError, o as FlagDisabledError, p as SamvaTransportError, r as ConflictError, s as ForbiddenError, t as createClient, u as RateLimitedError } from "./promises-Dgv8UmCC.js";
|
|
2
|
+
export { BillingProviderError, ConflictError, EmailChannelError, ExternalServiceError, FlagDisabledError, ForbiddenError, InternalError, PaymentRequiredError, RateLimitedError, ResourceNotFoundError, SamvaApiError, SamvaTransportError, UnauthorizedError, ValidationError, WebhookEnqueueError, createClient, fromApiError };
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
//#region src/normalize.ts
|
|
2
|
+
function toRecipientArray(recipient) {
|
|
3
|
+
return Array.isArray(recipient) ? recipient : [recipient];
|
|
4
|
+
}
|
|
5
|
+
function normalizeMessageRecipient(recipient, channel) {
|
|
6
|
+
if (typeof recipient === "string") switch (channel) {
|
|
7
|
+
case "email": return { email: recipient };
|
|
8
|
+
case "sms": return { phone: recipient };
|
|
9
|
+
case "whatsapp": return { whatsapp: recipient };
|
|
10
|
+
}
|
|
11
|
+
if ("contactId" in recipient || "email" in recipient || "phone" in recipient || "whatsapp" in recipient) return recipient;
|
|
12
|
+
return { contactId: recipient.id };
|
|
13
|
+
}
|
|
14
|
+
function normalizeRecipients(recipient, channel) {
|
|
15
|
+
return toRecipientArray(recipient).map((item) => normalizeMessageRecipient(item, channel));
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* cc / bcc payload fragment. `undefined` → omitted (JSON drops it anyway),
|
|
19
|
+
* `null` → passed through (explicit "no recipients"), otherwise normalized.
|
|
20
|
+
* This is the single canonical rule; the two clients previously handled the
|
|
21
|
+
* null/undefined cases differently.
|
|
22
|
+
*/
|
|
23
|
+
function ccBccPayload(key, value, channel) {
|
|
24
|
+
if (value === void 0) return {};
|
|
25
|
+
if (value === null) return { [key]: null };
|
|
26
|
+
return { [key]: normalizeRecipients(value, channel) };
|
|
27
|
+
}
|
|
28
|
+
function normalizeReplyTo(replyTo) {
|
|
29
|
+
if (replyTo === void 0 || replyTo === null) return replyTo;
|
|
30
|
+
return typeof replyTo === "string" ? [replyTo] : [...replyTo];
|
|
31
|
+
}
|
|
32
|
+
function normalizeEmailList(value) {
|
|
33
|
+
if (value === void 0 || value === null) return value;
|
|
34
|
+
return typeof value === "string" ? [value] : [...value];
|
|
35
|
+
}
|
|
36
|
+
/** replyToEmails fragment for the addSender input. `undefined` → omitted. */
|
|
37
|
+
function replyToEmailsPayload(replyToEmails) {
|
|
38
|
+
const normalized = normalizeEmailList(replyToEmails);
|
|
39
|
+
return normalized === void 0 ? {} : { replyToEmails: normalized };
|
|
40
|
+
}
|
|
41
|
+
function replyToPayload(replyTo) {
|
|
42
|
+
const normalized = normalizeReplyTo(replyTo);
|
|
43
|
+
return normalized === void 0 ? {} : { replyTo: normalized };
|
|
44
|
+
}
|
|
45
|
+
function normalizeEmailContent(input) {
|
|
46
|
+
const { replyTo, ...emailContent } = input;
|
|
47
|
+
return {
|
|
48
|
+
...emailContent,
|
|
49
|
+
...replyToPayload(replyTo)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
function buildEmailSendPayload(input) {
|
|
53
|
+
const { to, cc, bcc, conversationId, idempotencyKey, metadata, from, ...emailContent } = input;
|
|
54
|
+
return {
|
|
55
|
+
channel: "email",
|
|
56
|
+
conversationId,
|
|
57
|
+
idempotencyKey,
|
|
58
|
+
metadata,
|
|
59
|
+
from,
|
|
60
|
+
to: normalizeRecipients(to, "email"),
|
|
61
|
+
...ccBccPayload("cc", cc, "email"),
|
|
62
|
+
...ccBccPayload("bcc", bcc, "email"),
|
|
63
|
+
email: normalizeEmailContent(emailContent)
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
function buildMessagesSendPayload(input) {
|
|
67
|
+
const base = {
|
|
68
|
+
...input,
|
|
69
|
+
to: normalizeRecipients(input.to, input.channel)
|
|
70
|
+
};
|
|
71
|
+
if (input.channel === "email") return {
|
|
72
|
+
...base,
|
|
73
|
+
...ccBccPayload("cc", input.cc, "email"),
|
|
74
|
+
...ccBccPayload("bcc", input.bcc, "email"),
|
|
75
|
+
email: normalizeEmailContent(input.email ?? {})
|
|
76
|
+
};
|
|
77
|
+
return base;
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
export { buildMessagesSendPayload as n, replyToEmailsPayload as r, buildEmailSendPayload as t };
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=normalize-LkWl4HUF.js.map
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared, pure send-input normalization for the Effect and Promise clients.
|
|
3
|
+
*
|
|
4
|
+
* No Effect, no I/O — plain functions. Both ergonomic layers import these
|
|
5
|
+
* directly so recipient, replyTo, email-content, and per-channel body shaping
|
|
6
|
+
* can't drift between the two clients. (The `templateSlug` drop fixed alongside
|
|
7
|
+
* this extraction lived only in the Effect copy; the `from`-placement drift only
|
|
8
|
+
* in the email helpers.) The wire-level parity tests are the proof.
|
|
9
|
+
*
|
|
10
|
+
* The generated payload types differ nominally between the two clients (they come
|
|
11
|
+
* from two different codegen outputs) but are structurally identical, so these
|
|
12
|
+
* builders return structural shapes and each client casts the assembled payload
|
|
13
|
+
* to its own generated body type at the call site — the same cast both clients
|
|
14
|
+
* already performed inline.
|
|
15
|
+
*/
|
|
16
|
+
type SendChannel = "email" | "sms" | "whatsapp";
|
|
17
|
+
/** A recipient the caller may pass in ergonomic form. */
|
|
18
|
+
type ErgonomicRecipient<Recipient> = Recipient | {
|
|
19
|
+
readonly id: string;
|
|
20
|
+
} | string;
|
|
21
|
+
type ErgonomicReplyTo = string | ReadonlyArray<string>;
|
|
22
|
+
export type ErgonomicEmailList = string | ReadonlyArray<string>;
|
|
23
|
+
/** replyToEmails fragment for the addSender input. `undefined` → omitted. */
|
|
24
|
+
export declare function replyToEmailsPayload(replyToEmails: ErgonomicEmailList | null | undefined): {
|
|
25
|
+
readonly replyToEmails?: Array<string> | null;
|
|
26
|
+
};
|
|
27
|
+
/** Email content sub-object: fold ergonomic `replyTo` (string | string[]) to a list. */
|
|
28
|
+
type EmailContentInput = {
|
|
29
|
+
readonly replyTo?: ErgonomicReplyTo | null | undefined;
|
|
30
|
+
readonly [key: string]: unknown;
|
|
31
|
+
};
|
|
32
|
+
type Metadata = Record<string, unknown> | null | undefined;
|
|
33
|
+
export interface EmailSendFields<Recipient> {
|
|
34
|
+
readonly to: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>>;
|
|
35
|
+
readonly cc?: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>> | null | undefined;
|
|
36
|
+
readonly bcc?: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>> | null | undefined;
|
|
37
|
+
readonly conversationId?: string | null | undefined;
|
|
38
|
+
readonly idempotencyKey?: string | null | undefined;
|
|
39
|
+
readonly metadata?: Metadata;
|
|
40
|
+
readonly from?: unknown;
|
|
41
|
+
readonly replyTo?: ErgonomicReplyTo | null | undefined;
|
|
42
|
+
readonly [key: string]: unknown;
|
|
43
|
+
}
|
|
44
|
+
export declare function buildEmailSendPayload<Recipient extends object>(input: EmailSendFields<Recipient>): Record<string, unknown>;
|
|
45
|
+
/** @public — staged SMS/WhatsApp channel surface; ships with the channel launch */
|
|
46
|
+
export interface SmsSendFields<Recipient> {
|
|
47
|
+
readonly to: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>>;
|
|
48
|
+
readonly conversationId?: string | null | undefined;
|
|
49
|
+
readonly metadata?: Metadata;
|
|
50
|
+
readonly text?: string | null | undefined;
|
|
51
|
+
readonly message?: string | undefined;
|
|
52
|
+
readonly templateId?: string | null | undefined;
|
|
53
|
+
readonly templateSlug?: string | null | undefined;
|
|
54
|
+
readonly templateData?: Record<string, unknown> | null | undefined;
|
|
55
|
+
}
|
|
56
|
+
/** @public — staged SMS/WhatsApp channel surface; ships with the channel launch */
|
|
57
|
+
export declare function buildSmsSendPayload<Recipient extends object>(input: SmsSendFields<Recipient>): Record<string, unknown>;
|
|
58
|
+
/** @public — staged SMS/WhatsApp channel surface; ships with the channel launch */
|
|
59
|
+
export interface WhatsAppSendFields<Recipient> {
|
|
60
|
+
readonly to: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>>;
|
|
61
|
+
readonly conversationId?: string | null | undefined;
|
|
62
|
+
readonly metadata?: Metadata;
|
|
63
|
+
readonly text?: string | null | undefined;
|
|
64
|
+
readonly mediaUrl?: string | null | undefined;
|
|
65
|
+
readonly mediaType?: "image" | "video" | "audio" | "document" | null | undefined;
|
|
66
|
+
readonly templateId?: string | null | undefined;
|
|
67
|
+
readonly templateSlug?: string | null | undefined;
|
|
68
|
+
readonly templateCategory?: "marketing" | "utility" | "authentication" | null | undefined;
|
|
69
|
+
readonly templateData?: Record<string, unknown> | null | undefined;
|
|
70
|
+
}
|
|
71
|
+
/** @public — staged SMS/WhatsApp channel surface; ships with the channel launch */
|
|
72
|
+
export declare function buildWhatsAppSendPayload<Recipient extends object>(input: WhatsAppSendFields<Recipient>): Record<string, unknown>;
|
|
73
|
+
/**
|
|
74
|
+
* Unified `messages.send` payload: the caller already provides a channel-shaped
|
|
75
|
+
* body (`sms` / `whatsapp` / `email` sub-object), so only recipients and — for
|
|
76
|
+
* email — cc/bcc/email-content are normalized; everything else passes through.
|
|
77
|
+
*/
|
|
78
|
+
export interface MessagesSendFields<Recipient> {
|
|
79
|
+
readonly channel: SendChannel;
|
|
80
|
+
readonly to: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>>;
|
|
81
|
+
readonly cc?: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>> | null | undefined;
|
|
82
|
+
readonly bcc?: ErgonomicRecipient<Recipient> | ReadonlyArray<ErgonomicRecipient<Recipient>> | null | undefined;
|
|
83
|
+
readonly email?: EmailContentInput;
|
|
84
|
+
readonly [key: string]: unknown;
|
|
85
|
+
}
|
|
86
|
+
export declare function buildMessagesSendPayload<Recipient extends object>(input: MessagesSendFields<Recipient>): Record<string, unknown>;
|
|
87
|
+
export {};
|