samva 0.15.0 → 0.17.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 +4 -1
- package/README.md +46 -1
- package/dist/analytics-CaqPRsry.js +207 -0
- package/dist/api-keys-Ce1Y4_Ip.js +274 -0
- package/dist/attachments-DYqVIraC.js +140 -0
- package/dist/brands-ZwuOGIWO.js +175 -0
- package/dist/campaigns-DZlz1E9E.js +522 -0
- package/dist/categories-CA4XIQAb.js +1011 -0
- package/dist/client/sdk.gen.d.ts +234 -49
- package/dist/client/types.gen.d.ts +1521 -348
- package/dist/client-DOzUrdTE.js +1115 -0
- package/dist/contact-groups-BLbFXnjq.js +446 -0
- package/dist/contacts-BbsoXXB4.js +787 -0
- package/dist/conversations-_sRHueML.js +494 -0
- package/dist/custom-fields-BHWbwlKn.js +176 -0
- package/dist/effect/analytics.js +2 -21
- package/dist/effect/api-keys.d.ts +1 -0
- package/dist/effect/api-keys.js +2 -25
- package/dist/effect/attachments.js +2 -17
- package/dist/effect/brands.d.ts +1 -1
- package/dist/effect/brands.js +3 -24
- package/dist/effect/campaigns.js +2 -33
- package/dist/effect/categories.js +1 -1
- package/dist/effect/client.d.ts +1 -1
- package/dist/effect/client.js +3 -4
- package/dist/effect/contact-groups.js +2 -29
- package/dist/effect/contacts.d.ts +52 -0
- package/dist/effect/contacts.js +2 -47
- package/dist/effect/conversations.js +2 -35
- package/dist/effect/custom-fields.js +2 -17
- package/dist/effect/email.d.ts +3 -20
- package/dist/effect/email.js +2 -141
- package/dist/effect/events.d.ts +121 -0
- package/dist/effect/events.js +3 -0
- package/dist/effect/extension-installations.js +2 -27
- package/dist/effect/extensions.js +2 -19
- package/dist/effect/feedback.d.ts +1 -1
- package/dist/effect/feedback.js +3 -13
- package/dist/effect/generated/analytics.d.ts +715 -0
- package/dist/effect/generated/api-keys.d.ts +1627 -0
- package/dist/effect/generated/attachments.d.ts +554 -0
- package/dist/effect/generated/brands.d.ts +1118 -0
- package/dist/effect/generated/campaigns.d.ts +3783 -0
- package/dist/effect/generated/contact-events.d.ts +158 -0
- package/dist/effect/generated/contact-groups.d.ts +1445 -0
- package/dist/effect/generated/contacts.d.ts +3789 -0
- package/dist/effect/generated/conversations.d.ts +2870 -0
- package/dist/effect/generated/custom-fields.d.ts +562 -0
- package/dist/effect/generated/email.d.ts +10622 -0
- package/dist/effect/generated/events.d.ts +463 -0
- package/dist/effect/generated/extension-installations.d.ts +1786 -0
- package/dist/effect/generated/extensions.d.ts +927 -0
- package/dist/effect/generated/feedback.d.ts +116 -0
- package/dist/effect/generated/index.d.ts +61 -0
- package/dist/effect/generated/journeys.d.ts +6135 -0
- package/dist/effect/generated/mailboxes.d.ts +13641 -0
- package/dist/effect/generated/media.d.ts +741 -0
- package/dist/effect/generated/messages.d.ts +2355 -0
- package/dist/effect/generated/namespaces.d.ts +654 -0
- package/dist/effect/generated/operations.d.ts +514 -0
- package/dist/effect/generated/organizations.d.ts +1111 -0
- package/dist/effect/generated/scheduled-messages.d.ts +1798 -0
- package/dist/effect/generated/shared.d.ts +3250 -0
- package/dist/effect/generated/subscriptions.d.ts +188 -0
- package/dist/effect/generated/templates.d.ts +8177 -0
- package/dist/effect/generated/unsubscribe-groups.d.ts +1153 -0
- package/dist/effect/generated/webhooks.d.ts +1697 -0
- package/dist/effect/generated/whoami.d.ts +291 -0
- package/dist/effect/generated-metadata.d.ts +1631 -0
- package/dist/effect/index.d.ts +4 -1
- package/dist/effect/index.js +29 -26
- package/dist/effect/internal/client.d.ts +10 -7
- package/dist/effect/internal/email-sender.d.ts +17 -0
- package/dist/effect/internal/operation.d.ts +12 -72
- package/dist/effect/internal/send.d.ts +60 -0
- package/dist/effect/journeys.d.ts +2153 -0
- package/dist/effect/journeys.js +2 -0
- package/dist/effect/mailboxes.d.ts +255 -205
- package/dist/effect/mailboxes.js +2 -2
- package/dist/effect/media.js +3 -1
- package/dist/effect/messages.d.ts +2 -2
- package/dist/effect/messages.js +3 -1
- package/dist/effect/namespaces.js +2 -19
- package/dist/effect/operations.js +2 -15
- package/dist/effect/organizations.js +2 -23
- package/dist/effect/retry.js +1 -1
- package/dist/effect/scheduled-messages.js +2 -19
- package/dist/effect/subscriptions.js +2 -9
- package/dist/effect/templates.d.ts +1 -1
- package/dist/effect/templates.js +3 -78
- package/dist/effect/unsubscribe-groups.js +2 -27
- package/dist/effect/webhooks.d.ts +9 -9
- package/dist/effect/webhooks.js +3 -33
- package/dist/effect/whoami.d.ts +46 -0
- package/dist/effect/whoami.js +2 -0
- package/dist/email-R0NAA9PW.js +2498 -0
- package/dist/events-CxbTUHYT.js +82 -0
- package/dist/extension-installations-CD94LPmk.js +407 -0
- package/dist/extensions-BKyNQLvu.js +220 -0
- package/dist/feedback-Bpa09JOS.js +52 -0
- package/dist/index.js +3 -3
- package/dist/{inline-attachments-UxLeyytJ.js → inline-attachments-Bi1hDltp.js} +2 -2
- package/dist/journeys-CARo_BJT.js +499 -0
- package/dist/mailboxes-BRDn7BIK.js +2470 -0
- package/dist/media-VrrtNnft.js +181 -0
- package/dist/namespaces-CcvEbG-y.js +152 -0
- package/dist/{operation-BZ5Xov-x.js → operation-n_IYgNVK.js} +85 -102
- package/dist/operations-CmB3FHwf.js +93 -0
- package/dist/organizations-A-plufWc.js +252 -0
- package/dist/promises/errors.gen.d.ts +12 -2
- package/dist/promises/index.d.ts +9 -3
- package/dist/promises/index.js +3 -3
- package/dist/promises/types.gen.d.ts +1 -1
- package/dist/{promises-Cd6Jamqk.js → promises---Kbh-7z.js} +745 -195
- package/dist/runtime-P0l1_2-C.js +25 -0
- package/dist/scheduled-messages-DkKZRRaN.js +207 -0
- package/dist/send-Bxc0XfGE.js +722 -0
- package/dist/service-map.d.ts +101 -15
- package/dist/subscriptions-DEXYtMXg.js +67 -0
- package/dist/templates-DZomxsG7.js +2289 -0
- package/dist/unsubscribe-groups-Iqk4Isf9.js +291 -0
- package/dist/webhooks-CPXuu8Xf.js +530 -0
- package/dist/whoami-Ccz0jwlt.js +59 -0
- package/package.json +17 -3
- package/dist/categories-BGUBFdH9.js +0 -183
- package/dist/client-CDg7zJs0.js +0 -13726
- package/dist/effect/generated.d.ts +0 -64059
- package/dist/mailboxes-BH_JPmOE.js +0 -159
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
import { Effect } from "effect";
|
|
2
|
-
import * as Predicate$1 from "effect/Predicate";
|
|
3
|
-
//#region src/effect/generated-metadata.ts
|
|
4
|
-
const SamvaErrorMetadata = {
|
|
5
|
-
AnalyticsQueryError: {
|
|
6
|
-
categories: [],
|
|
7
|
-
retryable: false
|
|
8
|
-
},
|
|
9
|
-
BillingProviderError: {
|
|
10
|
-
categories: ["transient"],
|
|
11
|
-
retryable: true
|
|
12
|
-
},
|
|
13
|
-
BrandAddressRequiredError: {
|
|
14
|
-
categories: [],
|
|
15
|
-
retryable: false
|
|
16
|
-
},
|
|
17
|
-
CampaignFooterRequiredError: {
|
|
18
|
-
categories: [],
|
|
19
|
-
retryable: false
|
|
20
|
-
},
|
|
21
|
-
ConflictError: {
|
|
22
|
-
categories: ["conflict"],
|
|
23
|
-
retryable: false
|
|
24
|
-
},
|
|
25
|
-
DeliveryUnavailableError: {
|
|
26
|
-
categories: ["transient"],
|
|
27
|
-
retryable: true
|
|
28
|
-
},
|
|
29
|
-
EmailChannelError: {
|
|
30
|
-
categories: [],
|
|
31
|
-
retryable: false
|
|
32
|
-
},
|
|
33
|
-
ExternalServiceError: {
|
|
34
|
-
categories: ["transient"],
|
|
35
|
-
retryable: true
|
|
36
|
-
},
|
|
37
|
-
FlagDisabledError: {
|
|
38
|
-
categories: [],
|
|
39
|
-
retryable: false
|
|
40
|
-
},
|
|
41
|
-
ForbiddenError: {
|
|
42
|
-
categories: ["auth"],
|
|
43
|
-
retryable: false
|
|
44
|
-
},
|
|
45
|
-
GatewayTimeoutError: {
|
|
46
|
-
categories: ["transient"],
|
|
47
|
-
retryable: true
|
|
48
|
-
},
|
|
49
|
-
InternalError: {
|
|
50
|
-
categories: ["transient"],
|
|
51
|
-
retryable: true
|
|
52
|
-
},
|
|
53
|
-
MailboxSendConflictError: {
|
|
54
|
-
categories: [],
|
|
55
|
-
retryable: false
|
|
56
|
-
},
|
|
57
|
-
MailboxSendRefusedError: {
|
|
58
|
-
categories: [],
|
|
59
|
-
retryable: false
|
|
60
|
-
},
|
|
61
|
-
OnboardingReviewRequiredError: {
|
|
62
|
-
categories: ["validation"],
|
|
63
|
-
retryable: false
|
|
64
|
-
},
|
|
65
|
-
PaymentRequiredError: {
|
|
66
|
-
categories: ["billing"],
|
|
67
|
-
retryable: false
|
|
68
|
-
},
|
|
69
|
-
RateLimitedError: {
|
|
70
|
-
categories: ["throttling", "transient"],
|
|
71
|
-
retryable: true
|
|
72
|
-
},
|
|
73
|
-
ResourceNotFoundError: {
|
|
74
|
-
categories: ["notFound"],
|
|
75
|
-
retryable: false
|
|
76
|
-
},
|
|
77
|
-
SenderNotReadyError: {
|
|
78
|
-
categories: ["transient"],
|
|
79
|
-
retryable: true
|
|
80
|
-
},
|
|
81
|
-
UnauthorizedError: {
|
|
82
|
-
categories: ["auth"],
|
|
83
|
-
retryable: false
|
|
84
|
-
},
|
|
85
|
-
ValidationError: {
|
|
86
|
-
categories: ["validation"],
|
|
87
|
-
retryable: false
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
//#endregion
|
|
91
|
-
//#region src/effect/categories.ts
|
|
92
|
-
/**
|
|
93
|
-
* Semantic error-category helpers for the Effect SDK.
|
|
94
|
-
*
|
|
95
|
-
* Every operation's error channel carries the server's real tagged errors
|
|
96
|
-
* ({@link import("./index").ConflictError} …). These helpers let callers catch
|
|
97
|
-
* or test by *category* — auth, validation, throttling, transient … — without
|
|
98
|
-
* enumerating tags, and cover the raw transport/decode errors too. The category
|
|
99
|
-
* assignments are generated from the OpenAPI category extensions.
|
|
100
|
-
*
|
|
101
|
-
* @example
|
|
102
|
-
* ```ts
|
|
103
|
-
* import { catchAuthError, isRetryable } from "samva/effect";
|
|
104
|
-
*
|
|
105
|
-
* samva.messages.send(input).pipe(
|
|
106
|
-
* catchAuthError((error) => Effect.logError(`auth failed: ${error.message}`)),
|
|
107
|
-
* Effect.retry({ while: isRetryable }),
|
|
108
|
-
* );
|
|
109
|
-
* ```
|
|
110
|
-
*/
|
|
111
|
-
const emailChannelCategories = (reason) => {
|
|
112
|
-
switch (reason) {
|
|
113
|
-
case "auth": return ["auth"];
|
|
114
|
-
case "rejected": return ["validation"];
|
|
115
|
-
case "rate_limited": return ["throttling", "transient"];
|
|
116
|
-
case "transport": return ["transient"];
|
|
117
|
-
default: return [];
|
|
118
|
-
}
|
|
119
|
-
};
|
|
120
|
-
const categoriesOf = (error) => {
|
|
121
|
-
if (!Predicate$1.isObject(error) || typeof error._tag !== "string") return [];
|
|
122
|
-
if (error._tag === "EmailChannelError") return emailChannelCategories(error.reason);
|
|
123
|
-
return SamvaErrorMetadata[error._tag]?.categories ?? [];
|
|
124
|
-
};
|
|
125
|
-
const hasCategory = (error, category) => categoriesOf(error).includes(category);
|
|
126
|
-
const isRetryableError = (error) => {
|
|
127
|
-
if (!Predicate$1.isObject(error) || typeof error._tag !== "string") return false;
|
|
128
|
-
if (error._tag === "EmailChannelError") return categoriesOf(error).includes("transient");
|
|
129
|
-
return SamvaErrorMetadata[error._tag]?.retryable ?? false;
|
|
130
|
-
};
|
|
131
|
-
const categoryGuard = (category) => (error) => hasCategory(error, category);
|
|
132
|
-
const isAuthError = categoryGuard("auth");
|
|
133
|
-
const isValidationError = categoryGuard("validation");
|
|
134
|
-
const isNotFoundError = categoryGuard("notFound");
|
|
135
|
-
const isConflictError = categoryGuard("conflict");
|
|
136
|
-
const isThrottlingError = categoryGuard("throttling");
|
|
137
|
-
const isBillingError = categoryGuard("billing");
|
|
138
|
-
/**
|
|
139
|
-
* Network-level request failure (no HTTP response). Only `TransportError` is
|
|
140
|
-
* transient/retryable: `EncodeError` and `InvalidUrlError` are deterministic
|
|
141
|
-
* programmer errors (bad input, bad URL) that would fail identically on every
|
|
142
|
-
* attempt — retrying them would loop forever.
|
|
143
|
-
*/
|
|
144
|
-
const isRequestTransportError = (error) => {
|
|
145
|
-
if (!Predicate$1.isTagged(error, "HttpClientError")) return false;
|
|
146
|
-
const reason = error.reason;
|
|
147
|
-
return Predicate$1.isObject(reason) && Predicate$1.isTagged(reason, "TransportError");
|
|
148
|
-
};
|
|
149
|
-
/** True for transient failures, including raw request-transport errors. */
|
|
150
|
-
const isTransient = (error) => hasCategory(error, "transient") || isRequestTransportError(error);
|
|
151
|
-
/** True when an error is declared safe to retry (throttling / transient / transport). */
|
|
152
|
-
const isRetryable = (error) => isRetryableError(error) || isRequestTransportError(error);
|
|
153
|
-
/**
|
|
154
|
-
* Catch every error in `category`. The handler receives the category's error
|
|
155
|
-
* union — including `EmailChannelError` where its `reason` can place it in the
|
|
156
|
-
* category — while only total-membership classes are narrowed out of the error
|
|
157
|
-
* channel (`EmailChannelError` stays: instances with other reasons pass through).
|
|
158
|
-
*/
|
|
159
|
-
const catchCategory = (category, handler) => (effect) => {
|
|
160
|
-
const inCategory = (error) => hasCategory(error, category);
|
|
161
|
-
const outsideCategory = (error) => !hasCategory(error, category);
|
|
162
|
-
return Effect.catch(effect, (error) => {
|
|
163
|
-
if (inCategory(error)) return handler(error);
|
|
164
|
-
if (outsideCategory(error)) return Effect.fail(error);
|
|
165
|
-
return Effect.die(error);
|
|
166
|
-
});
|
|
167
|
-
};
|
|
168
|
-
const catchAuthError = (handler) => catchCategory("auth", handler);
|
|
169
|
-
const catchValidationError = (handler) => catchCategory("validation", handler);
|
|
170
|
-
const catchNotFoundError = (handler) => catchCategory("notFound", handler);
|
|
171
|
-
const catchConflictError = (handler) => catchCategory("conflict", handler);
|
|
172
|
-
const catchThrottlingError = (handler) => catchCategory("throttling", handler);
|
|
173
|
-
const catchBillingError = (handler) => catchCategory("billing", handler);
|
|
174
|
-
/**
|
|
175
|
-
* Catch transient failures — including raw request-transport errors — for
|
|
176
|
-
* fallback/degrade paths. The declared error channel is left intact because
|
|
177
|
-
* transient covers untyped transport errors as well.
|
|
178
|
-
*/
|
|
179
|
-
const catchTransient = (handler) => (effect) => Effect.catchIf(effect, isTransient, handler);
|
|
180
|
-
//#endregion
|
|
181
|
-
export { isTransient as _, catchNotFoundError as a, catchValidationError as c, isAuthError as d, isBillingError as f, isThrottlingError as g, isRetryable as h, catchConflictError as i, categoriesOf as l, isNotFoundError as m, catchBillingError as n, catchThrottlingError as o, isConflictError as p, catchCategory as r, catchTransient as s, catchAuthError as t, hasCategory as u, isValidationError as v };
|
|
182
|
-
|
|
183
|
-
//# sourceMappingURL=categories-BGUBFdH9.js.map
|