@mhbdev/sms 0.2.1 → 0.2.3

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 (59) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +87 -0
  3. package/dist/contracts/kavenegar.d.ts +6 -0
  4. package/dist/contracts/kavenegar.d.ts.map +1 -1
  5. package/dist/contracts/pool.d.ts +97 -0
  6. package/dist/contracts/pool.d.ts.map +1 -0
  7. package/dist/contracts/pool.js +2 -0
  8. package/dist/contracts/pool.js.map +1 -0
  9. package/dist/contracts/sms.d.ts +3 -3
  10. package/dist/contracts/sms.d.ts.map +1 -1
  11. package/dist/errors/kavenegar-error.d.ts +1 -0
  12. package/dist/errors/kavenegar-error.d.ts.map +1 -1
  13. package/dist/errors/kavenegar-error.js.map +1 -1
  14. package/dist/errors/sms-error.d.ts +3 -0
  15. package/dist/errors/sms-error.d.ts.map +1 -1
  16. package/dist/errors/sms-error.js +2 -0
  17. package/dist/errors/sms-error.js.map +1 -1
  18. package/dist/errors/sms-ir-error.d.ts +1 -0
  19. package/dist/errors/sms-ir-error.d.ts.map +1 -1
  20. package/dist/errors/sms-ir-error.js.map +1 -1
  21. package/dist/index.d.ts +6 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/pool/health.d.ts +20 -0
  26. package/dist/pool/health.d.ts.map +1 -0
  27. package/dist/pool/health.js +58 -0
  28. package/dist/pool/health.js.map +1 -0
  29. package/dist/pool/sms-provider-pool.d.ts +46 -0
  30. package/dist/pool/sms-provider-pool.d.ts.map +1 -0
  31. package/dist/pool/sms-provider-pool.js +359 -0
  32. package/dist/pool/sms-provider-pool.js.map +1 -0
  33. package/dist/pool/strategies.d.ts +10 -0
  34. package/dist/pool/strategies.d.ts.map +1 -0
  35. package/dist/pool/strategies.js +39 -0
  36. package/dist/pool/strategies.js.map +1 -0
  37. package/dist/providers/kavenegar/kavenegar-api.d.ts.map +1 -1
  38. package/dist/providers/kavenegar/kavenegar-api.js +14 -0
  39. package/dist/providers/kavenegar/kavenegar-api.js.map +1 -1
  40. package/dist/providers/kavenegar/kavenegar-sms-provider.d.ts +2 -2
  41. package/dist/providers/kavenegar/kavenegar-sms-provider.d.ts.map +1 -1
  42. package/dist/providers/kavenegar/kavenegar-sms-provider.js +31 -12
  43. package/dist/providers/kavenegar/kavenegar-sms-provider.js.map +1 -1
  44. package/dist/providers/sms-ir/sms-ir-api.d.ts.map +1 -1
  45. package/dist/providers/sms-ir/sms-ir-api.js +21 -1
  46. package/dist/providers/sms-ir/sms-ir-api.js.map +1 -1
  47. package/dist/providers/sms-ir/sms-ir-provider.d.ts.map +1 -1
  48. package/dist/providers/sms-ir/sms-ir-provider.js +29 -8
  49. package/dist/providers/sms-ir/sms-ir-provider.js.map +1 -1
  50. package/dist/transport/http.d.ts +3 -0
  51. package/dist/transport/http.d.ts.map +1 -1
  52. package/dist/transport/http.js +46 -11
  53. package/dist/transport/http.js.map +1 -1
  54. package/dist/validation/schemas.d.ts +23 -19
  55. package/dist/validation/schemas.d.ts.map +1 -1
  56. package/dist/validation/schemas.js +53 -23
  57. package/dist/validation/schemas.js.map +1 -1
  58. package/docs/capabilities.md +5 -0
  59. package/package.json +1 -1
@@ -0,0 +1,359 @@
1
+ import { SmsProviderError, SmsValidationError } from "../errors/sms-error.js";
2
+ import { InMemoryCircuitBreaker } from "./health.js";
3
+ import { PriorityRoutingStrategy } from "./strategies.js";
4
+ export class SmsProviderPoolError extends SmsProviderError {
5
+ operation;
6
+ outcome;
7
+ attempts;
8
+ constructor(message, options) {
9
+ super(message, {
10
+ code: options.code ?? "SMS_POOL_ERROR",
11
+ retryable: options.retryable ?? false,
12
+ deliveryOutcome: options.outcome === "unknown"
13
+ ? "unknown"
14
+ : options.outcome === "rejected"
15
+ ? "rejected"
16
+ : undefined,
17
+ });
18
+ this.name = "SmsProviderPoolError";
19
+ this.operation = options.operation;
20
+ this.outcome = options.outcome;
21
+ this.attempts = Object.freeze([...options.attempts]);
22
+ }
23
+ }
24
+ export class SmsProviderPool {
25
+ name = "sms-pool";
26
+ providers;
27
+ strategy;
28
+ health;
29
+ maxAttemptsPerProvider;
30
+ initialDelayMs;
31
+ maxDelayMs;
32
+ backoffMultiplier;
33
+ sleep;
34
+ onEvent;
35
+ classifyError;
36
+ observedCircuitStates = new Map();
37
+ constructor(options) {
38
+ if (!options || !Array.isArray(options.providers) || options.providers.length === 0)
39
+ throw new TypeError("SMS provider pool requires at least one provider");
40
+ const names = new Set();
41
+ for (const provider of options.providers) {
42
+ if (!provider.name.trim())
43
+ throw new TypeError("SMS provider name is required");
44
+ if (names.has(provider.name))
45
+ throw new TypeError(`Duplicate SMS provider name: ${provider.name}`);
46
+ names.add(provider.name);
47
+ if (!provider.sendMessage &&
48
+ !provider.sendTemplate &&
49
+ !provider.sendBulk &&
50
+ !provider.sendArray &&
51
+ !provider.sendLikeToLike)
52
+ throw new TypeError(`SMS provider ${provider.name} has no send capabilities`);
53
+ if (provider.weight !== undefined &&
54
+ (!Number.isSafeInteger(provider.weight) || provider.weight <= 0))
55
+ throw new TypeError(`SMS provider ${provider.name} weight must be a positive integer`);
56
+ if (provider.priority !== undefined && !Number.isFinite(provider.priority))
57
+ throw new TypeError(`SMS provider ${provider.name} priority must be finite`);
58
+ }
59
+ this.providers = [...options.providers];
60
+ this.strategy = options.strategy ?? new PriorityRoutingStrategy();
61
+ this.health = options.health ?? new InMemoryCircuitBreaker(options.circuitBreaker);
62
+ this.maxAttemptsPerProvider = options.maxAttemptsPerProvider ?? 1;
63
+ this.initialDelayMs = options.initialDelayMs ?? 100;
64
+ this.maxDelayMs = options.maxDelayMs ?? 5_000;
65
+ this.backoffMultiplier = options.backoffMultiplier ?? 2;
66
+ this.sleep = options.sleep ?? defaultSleep;
67
+ this.onEvent = options.onEvent;
68
+ this.classifyError = options.classifyError;
69
+ if (!Number.isSafeInteger(this.maxAttemptsPerProvider) ||
70
+ this.maxAttemptsPerProvider < 1)
71
+ throw new TypeError("maxAttemptsPerProvider must be a positive integer");
72
+ if (!Number.isFinite(this.initialDelayMs) ||
73
+ this.initialDelayMs < 0 ||
74
+ !Number.isFinite(this.maxDelayMs) ||
75
+ this.maxDelayMs < 0)
76
+ throw new TypeError("SMS retry delays must be non-negative numbers");
77
+ if (!Number.isFinite(this.backoffMultiplier) || this.backoffMultiplier < 1)
78
+ throw new TypeError("backoffMultiplier must be at least one");
79
+ }
80
+ async sendMessage(message) {
81
+ return this.execute("sendMessage", message.signal, (provider) => {
82
+ if (!provider.sendMessage)
83
+ throw missingCapability("sendMessage");
84
+ return provider.sendMessage(message);
85
+ });
86
+ }
87
+ async sendTemplate(message) {
88
+ return this.execute("sendTemplate", message.signal, (provider) => {
89
+ if (!provider.sendTemplate)
90
+ throw missingCapability("sendTemplate");
91
+ return provider.sendTemplate(message);
92
+ });
93
+ }
94
+ async sendBulk(message) {
95
+ return this.execute("sendBulk", message.signal, (provider) => {
96
+ if (!provider.sendBulk)
97
+ throw missingCapability("sendBulk");
98
+ return provider.sendBulk(message);
99
+ });
100
+ }
101
+ async sendArray(messages, options = {}) {
102
+ return this.execute("sendArray", options.signal, (provider) => {
103
+ if (!provider.sendArray)
104
+ throw missingCapability("sendArray");
105
+ return provider.sendArray(messages, options);
106
+ });
107
+ }
108
+ async sendLikeToLike(message) {
109
+ return this.execute("sendLikeToLike", message.signal, (provider) => {
110
+ if (!provider.sendLikeToLike)
111
+ throw missingCapability("sendLikeToLike");
112
+ return provider.sendLikeToLike(message);
113
+ });
114
+ }
115
+ async execute(operation, signal, invoke) {
116
+ const eligible = this.providers.filter((provider) => {
117
+ if (!hasCapability(provider, operation))
118
+ return false;
119
+ return this.observeCircuitState(provider.name) !== "open";
120
+ });
121
+ const routingContext = { operation, providers: eligible };
122
+ const orderedNames = this.strategy.order(routingContext);
123
+ const ordered = resolveOrder(eligible, orderedNames);
124
+ const attempts = [];
125
+ for (const provider of ordered) {
126
+ if (signal?.aborted)
127
+ throw this.abortError(operation, attempts);
128
+ for (let attempt = 1; attempt <= this.maxAttemptsPerProvider; attempt += 1) {
129
+ if (!this.health.acquire(provider.name))
130
+ break;
131
+ this.observeCircuitState(provider.name);
132
+ this.emit({
133
+ type: "provider-selected",
134
+ provider: provider.name,
135
+ operation,
136
+ attempt,
137
+ });
138
+ try {
139
+ const result = await invoke(provider);
140
+ this.updateHealth(provider.name, () => this.health.recordSuccess(provider.name));
141
+ this.emit({
142
+ type: "attempt-succeeded",
143
+ provider: provider.name,
144
+ operation,
145
+ attempt,
146
+ });
147
+ return result;
148
+ }
149
+ catch (error) {
150
+ if (error instanceof SmsValidationError) {
151
+ this.updateHealth(provider.name, () => this.health.release(provider.name));
152
+ throw error;
153
+ }
154
+ if (signal?.aborted) {
155
+ attempts.push({
156
+ provider: provider.name,
157
+ operation,
158
+ outcome: "unknown",
159
+ retryable: false,
160
+ });
161
+ this.emit({
162
+ type: "attempt-failed",
163
+ provider: provider.name,
164
+ operation,
165
+ attempt,
166
+ outcome: "unknown",
167
+ retryable: false,
168
+ });
169
+ this.updateHealth(provider.name, () => this.health.recordFailure(provider.name));
170
+ throw this.abortError(operation, attempts);
171
+ }
172
+ const classification = this.classify(error, provider, operation);
173
+ const failure = {
174
+ provider: provider.name,
175
+ operation,
176
+ outcome: classification.outcome,
177
+ ...(classification.code ? { code: classification.code } : {}),
178
+ ...(classification.httpStatus === undefined
179
+ ? {}
180
+ : { httpStatus: classification.httpStatus }),
181
+ ...(classification.providerStatus === undefined
182
+ ? {}
183
+ : { providerStatus: classification.providerStatus }),
184
+ retryable: classification.retryable,
185
+ };
186
+ attempts.push(failure);
187
+ this.emit({
188
+ type: "attempt-failed",
189
+ provider: provider.name,
190
+ operation,
191
+ attempt,
192
+ outcome: classification.outcome,
193
+ retryable: classification.retryable,
194
+ });
195
+ if (classification.outcome === "unknown") {
196
+ this.updateHealth(provider.name, () => this.health.recordFailure(provider.name));
197
+ throw new SmsProviderPoolError("SMS delivery outcome is unknown; no further provider was attempted", {
198
+ operation,
199
+ outcome: "unknown",
200
+ attempts,
201
+ code: "SMS_DELIVERY_OUTCOME_UNKNOWN",
202
+ });
203
+ }
204
+ if (!classification.retryable) {
205
+ this.updateHealth(provider.name, () => this.health.recordSuccess(provider.name));
206
+ throw new SmsProviderPoolError("SMS provider rejected the request", {
207
+ operation,
208
+ outcome: "rejected",
209
+ attempts,
210
+ });
211
+ }
212
+ this.updateHealth(provider.name, () => this.health.recordFailure(provider.name));
213
+ if (attempt < this.maxAttemptsPerProvider) {
214
+ try {
215
+ await this.waitBeforeRetry(attempt, classification.retryAfterMs, signal);
216
+ }
217
+ catch {
218
+ if (signal?.aborted)
219
+ throw this.abortError(operation, attempts);
220
+ throw new SmsProviderPoolError("SMS retry delay failed", {
221
+ operation,
222
+ outcome: "unknown",
223
+ attempts,
224
+ code: "SMS_POOL_RETRY_DELAY_FAILED",
225
+ });
226
+ }
227
+ continue;
228
+ }
229
+ break;
230
+ }
231
+ }
232
+ }
233
+ if (signal?.aborted)
234
+ throw this.abortError(operation, attempts);
235
+ if (attempts.length === 0) {
236
+ throw new SmsProviderPoolError("No healthy provider supports this SMS operation", {
237
+ operation,
238
+ outcome: "unavailable",
239
+ attempts,
240
+ code: "SMS_POOL_UNAVAILABLE",
241
+ });
242
+ }
243
+ throw new SmsProviderPoolError("All eligible SMS providers rejected the request", {
244
+ operation,
245
+ outcome: "rejected",
246
+ attempts,
247
+ retryable: true,
248
+ code: "SMS_POOL_EXHAUSTED",
249
+ });
250
+ }
251
+ classify(error, provider, operation) {
252
+ if (this.classifyError)
253
+ return this.classifyError(error, provider, operation);
254
+ if (error instanceof SmsProviderError) {
255
+ return {
256
+ outcome: error.deliveryOutcome ?? "unknown",
257
+ retryable: error.retryable === true && error.deliveryOutcome === "rejected",
258
+ ...(error.retryAfterMs === undefined ? {} : { retryAfterMs: error.retryAfterMs }),
259
+ code: error.code,
260
+ ...(error.httpStatus === undefined ? {} : { httpStatus: error.httpStatus }),
261
+ ...(error.providerStatus === undefined
262
+ ? {}
263
+ : { providerStatus: error.providerStatus }),
264
+ };
265
+ }
266
+ return { outcome: "unknown", retryable: false };
267
+ }
268
+ updateHealth(provider, update) {
269
+ update();
270
+ this.observeCircuitState(provider);
271
+ }
272
+ observeCircuitState(provider) {
273
+ const state = this.health.getState(provider);
274
+ const previous = this.observedCircuitStates.get(provider);
275
+ this.observedCircuitStates.set(provider, state);
276
+ if (previous !== undefined && previous !== state)
277
+ this.emit({ type: "circuit-state-changed", provider, state });
278
+ return state;
279
+ }
280
+ emit(event) {
281
+ try {
282
+ this.onEvent?.(event);
283
+ }
284
+ catch {
285
+ /* Observability callbacks must not affect delivery. */
286
+ }
287
+ }
288
+ abortError(operation, attempts) {
289
+ return new SmsProviderPoolError("SMS pool operation was aborted; delivery outcome may be unknown", {
290
+ operation,
291
+ outcome: "unknown",
292
+ attempts,
293
+ code: "SMS_POOL_ABORTED",
294
+ });
295
+ }
296
+ async waitBeforeRetry(attempt, retryAfterMs, signal) {
297
+ const backoff = Math.min(this.maxDelayMs, this.initialDelayMs * this.backoffMultiplier ** Math.max(0, attempt - 1));
298
+ const serverDelay = retryAfterMs !== undefined && Number.isFinite(retryAfterMs)
299
+ ? Math.max(0, retryAfterMs)
300
+ : undefined;
301
+ await this.sleep(Math.min(this.maxDelayMs, serverDelay ?? backoff), signal);
302
+ }
303
+ }
304
+ function hasCapability(provider, operation) {
305
+ switch (operation) {
306
+ case "sendMessage":
307
+ return provider.sendMessage !== undefined;
308
+ case "sendTemplate":
309
+ return provider.sendTemplate !== undefined;
310
+ case "sendBulk":
311
+ return provider.sendBulk !== undefined;
312
+ case "sendArray":
313
+ return provider.sendArray !== undefined;
314
+ case "sendLikeToLike":
315
+ return provider.sendLikeToLike !== undefined;
316
+ }
317
+ }
318
+ function missingCapability(operation) {
319
+ return new SmsProviderPoolError(`No adapter is registered for ${operation}`, {
320
+ operation,
321
+ outcome: "unavailable",
322
+ attempts: [],
323
+ code: "SMS_POOL_CAPABILITY_UNAVAILABLE",
324
+ });
325
+ }
326
+ function resolveOrder(providers, names) {
327
+ const byName = new Map(providers.map((provider) => [provider.name, provider]));
328
+ const ordered = [];
329
+ const seen = new Set();
330
+ for (const name of names) {
331
+ const provider = byName.get(name);
332
+ if (!provider)
333
+ throw new TypeError(`Routing strategy returned an ineligible SMS provider: ${name}`);
334
+ if (!seen.has(name))
335
+ ordered.push(provider);
336
+ seen.add(name);
337
+ }
338
+ for (const provider of providers)
339
+ if (!seen.has(provider.name))
340
+ ordered.push(provider);
341
+ return ordered;
342
+ }
343
+ async function defaultSleep(delayMs, signal) {
344
+ if (signal?.aborted)
345
+ throw signal.reason ?? new DOMException("The operation was aborted", "AbortError");
346
+ await new Promise((resolve, reject) => {
347
+ const timeout = setTimeout(() => {
348
+ signal?.removeEventListener("abort", abort);
349
+ resolve();
350
+ }, delayMs);
351
+ const abort = () => {
352
+ clearTimeout(timeout);
353
+ signal?.removeEventListener("abort", abort);
354
+ reject(signal?.reason ?? new DOMException("The operation was aborted", "AbortError"));
355
+ };
356
+ signal?.addEventListener("abort", abort, { once: true });
357
+ });
358
+ }
359
+ //# sourceMappingURL=sms-provider-pool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sms-provider-pool.js","sourceRoot":"","sources":["../../src/pool/sms-provider-pool.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { SmsRoutingContext, SmsRoutingStrategy } from "../contracts/pool.js";
2
+ export declare class PriorityRoutingStrategy implements SmsRoutingStrategy {
3
+ order({ providers }: SmsRoutingContext): readonly string[];
4
+ }
5
+ /** Smooth weighted round robin. Each call starts with the next weighted provider. */
6
+ export declare class WeightedRoundRobinStrategy implements SmsRoutingStrategy {
7
+ private readonly currentWeights;
8
+ order({ providers }: SmsRoutingContext): readonly string[];
9
+ }
10
+ //# sourceMappingURL=strategies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/pool/strategies.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEX,iBAAiB,EACjB,kBAAkB,EAClB,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,uBAAwB,YAAW,kBAAkB;IACjE,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,GAAG,SAAS,MAAM,EAAE,CAMzD;CACD;AAED,qFAAqF;AACrF,qBAAa,0BAA2B,YAAW,kBAAkB;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAE5D,KAAK,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,GAAG,SAAS,MAAM,EAAE,CA4BzD;CACD"}
@@ -0,0 +1,39 @@
1
+ export class PriorityRoutingStrategy {
2
+ order({ providers }) {
3
+ return [...providers]
4
+ .sort((a, b) => (a.priority ?? 0) - (b.priority ?? 0) || a.name.localeCompare(b.name))
5
+ .map((provider) => provider.name);
6
+ }
7
+ }
8
+ /** Smooth weighted round robin. Each call starts with the next weighted provider. */
9
+ export class WeightedRoundRobinStrategy {
10
+ currentWeights = new Map();
11
+ order({ providers }) {
12
+ if (providers.length === 0)
13
+ return [];
14
+ const totalWeight = providers.reduce((total, provider) => total + getWeight(provider), 0);
15
+ const current = providers.map((provider) => ({
16
+ provider,
17
+ current: (this.currentWeights.get(provider.name) ?? 0) + getWeight(provider),
18
+ }));
19
+ const selected = [...current].sort((a, b) => b.current - a.current || a.provider.name.localeCompare(b.provider.name))[0];
20
+ if (!selected)
21
+ return [];
22
+ selected.current -= totalWeight;
23
+ for (const item of current)
24
+ this.currentWeights.set(item.provider.name, item.current);
25
+ return [
26
+ selected.provider.name,
27
+ ...current
28
+ .filter((item) => item.provider.name !== selected.provider.name)
29
+ .sort((a, b) => (a.provider.priority ?? 0) - (b.provider.priority ?? 0) ||
30
+ b.current - a.current ||
31
+ a.provider.name.localeCompare(b.provider.name))
32
+ .map((item) => item.provider.name),
33
+ ];
34
+ }
35
+ }
36
+ function getWeight(provider) {
37
+ return provider.weight ?? 1;
38
+ }
39
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/pool/strategies.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,uBAAuB;IACnC,KAAK,CAAC,EAAE,SAAS,EAAqB;QACrC,OAAO,CAAC,GAAG,SAAS,CAAC;aACnB,IAAI,CACJ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAC/E;aACA,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;CACD;AAED,qFAAqF;AACrF,MAAM,OAAO,0BAA0B;IACrB,cAAc,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE5D,KAAK,CAAC,EAAE,SAAS,EAAqB;QACrC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACtC,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,CACnC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,EAChD,CAAC,CACD,CAAC;QACF,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YAC5C,QAAQ;YACR,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC;SAC5E,CAAC,CAAC,CAAC;QACJ,MAAM,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjF,CAAC,CAAC,CAAC,CAAC;QACL,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,CAAC;QACzB,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC;QAChC,KAAK,MAAM,IAAI,IAAI,OAAO;YAAE,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACtF,OAAO;YACN,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACtB,GAAG,OAAO;iBACR,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;iBAC/D,IAAI,CACJ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACR,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI,CAAC,CAAC;gBACvD,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO;gBACrB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC/C;iBACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;SACnC,CAAC;IACH,CAAC;CACD;AAED,SAAS,SAAS,CAAC,QAA8B;IAChD,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC;AAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"kavenegar-api.d.ts","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,8BAA8B,CAAC;AA8DtC,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,mBAAmB,CAUrB;AAED,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,mBAAmB,EAAE,CAOhC;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,mBAAmB,EAAE,CAOhC;AAED,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,qBAAqB,EAAE,CAOlC;AAED,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,wBAAwB,EAAE,CAarC;AAED,wBAAgB,kCAAkC,CACjD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,2BAA2B,EAAE,CAYxC;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,oBAAoB,EAAE,CAWjC;AAED,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyC/E"}
1
+ {"version":3,"file":"kavenegar-api.d.ts","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACX,2BAA2B,EAC3B,oBAAoB,EACpB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,8BAA8B,CAAC;AA+DtC,wBAAgB,sBAAsB,CACrC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,mBAAmB,CAUrB;AAED,wBAAgB,yBAAyB,CACxC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,mBAAmB,EAAE,CAOhC;AAED,wBAAgB,+BAA+B,CAC9C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,mBAAmB,EAAE,CAOhC;AAED,wBAAgB,4BAA4B,CAC3C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,qBAAqB,EAAE,CAOlC;AAED,wBAAgB,8BAA8B,CAC7C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,wBAAwB,EAAE,CAarC;AAED,wBAAgB,kCAAkC,CACjD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,2BAA2B,EAAE,CAYxC;AAED,wBAAgB,2BAA2B,CAC1C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,SAAS,oBAAoB,EAAE,CAWjC;AAED,wBAAgB,qBAAqB,CACpC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM,GACjB,QAAQ,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAuD/E"}
@@ -1,5 +1,6 @@
1
1
  import { z } from "zod";
2
2
  import { KavenegarError } from "../../errors/kavenegar-error.js";
3
+ import { parseRetryAfterMs } from "../../transport/http.js";
3
4
  const stringLikeSchema = z.union([z.string(), z.number().finite()]);
4
5
  const payloadSchema = z
5
6
  .object({
@@ -113,6 +114,12 @@ export function parseKavenegarPayload(response, rawResponse) {
113
114
  throw new KavenegarError(`Kavenegar request failed with status ${response.status}`, {
114
115
  httpStatus: response.status,
115
116
  cause: error,
117
+ retryable: response.status === 429 || response.status >= 500,
118
+ deliveryOutcome: response.status === 429 ||
119
+ (response.status >= 400 && response.status < 500 && response.status !== 408)
120
+ ? "rejected"
121
+ : "unknown",
122
+ retryAfterMs: parseRetryAfterMs(response.headers.get("retry-after")),
116
123
  });
117
124
  }
118
125
  throw new KavenegarError("Kavenegar returned a non-JSON response", { cause: error });
@@ -131,6 +138,13 @@ export function parseKavenegarPayload(response, rawResponse) {
131
138
  httpStatus: response.status === 200 ? undefined : response.status,
132
139
  providerStatus: status,
133
140
  retryable: response.status === 429 || response.status >= 500,
141
+ deliveryOutcome: response.ok
142
+ ? "rejected"
143
+ : response.status === 429 ||
144
+ (response.status >= 400 && response.status < 500 && response.status !== 408)
145
+ ? "rejected"
146
+ : "unknown",
147
+ retryAfterMs: parseRetryAfterMs(response.headers.get("retry-after")),
134
148
  });
135
149
  }
136
150
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"kavenegar-api.js","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kavenegar-api.js","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-api.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { KavenegarBulkRequest, KavenegarBulkResult, KavenegarCancellationResult, KavenegarCountQuery, KavenegarCountResult, KavenegarReceivedMessage, KavenegarReceiveQuery, KavenegarSearchQuery, KavenegarSendArrayMessage, KavenegarSendResult, KavenegarSmsProviderOptions, KavenegarStatusQuery, KavenegarStatusResult, KavenegarTemplateMessage } from "../../contracts/kavenegar.js";
1
+ import type { KavenegarBulkRequest, KavenegarBulkResult, KavenegarCancellationResult, KavenegarCountQuery, KavenegarCountResult, KavenegarOutboxCountQuery, KavenegarReceivedMessage, KavenegarReceiveQuery, KavenegarSearchQuery, KavenegarSendArrayMessage, KavenegarSendResult, KavenegarSmsProviderOptions, KavenegarStatusQuery, KavenegarStatusResult, KavenegarTemplateMessage } from "../../contracts/kavenegar.js";
2
2
  import type { SmsBulkSender, SmsDeliveryStatusReader, SmsInboxReader, SmsMessage, SmsMessageScheduler, SmsMessageSender, SmsTemplateSender } from "../../contracts/sms.js";
3
3
  export declare class KavenegarSmsProvider implements SmsMessageSender<SmsMessage, KavenegarSendResult>, SmsTemplateSender<KavenegarTemplateMessage, KavenegarSendResult>, SmsBulkSender<KavenegarBulkRequest, KavenegarBulkResult>, SmsDeliveryStatusReader<KavenegarStatusQuery, readonly KavenegarStatusResult[]>, SmsMessageScheduler<KavenegarCancellationResult>, SmsInboxReader<KavenegarReceiveQuery> {
4
4
  readonly name = "kavenegar";
@@ -26,7 +26,7 @@ export declare class KavenegarSmsProvider implements SmsMessageSender<SmsMessage
26
26
  getSentMessages(query: KavenegarSearchQuery): Promise<readonly KavenegarSendResult[]>;
27
27
  listSentMessages(query: KavenegarSearchQuery): Promise<readonly KavenegarSendResult[]>;
28
28
  getLatestSentMessages(query: KavenegarSearchQuery): Promise<readonly KavenegarSendResult[]>;
29
- countSentMessages(query: KavenegarSearchQuery): Promise<readonly KavenegarCountResult[]>;
29
+ countSentMessages(query: KavenegarOutboxCountQuery): Promise<readonly KavenegarCountResult[]>;
30
30
  private searchBody;
31
31
  private getSentMessagesFrom;
32
32
  private requestAndParse;
@@ -1 +1 @@
1
- {"version":3,"file":"kavenegar-sms-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-sms-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kavenegar-sms-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/kavenegar/kavenegar-sms-provider.ts"],"names":[],"mappings":"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"}