@ariary/notification 4.0.0 → 4.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/dist/index.js CHANGED
@@ -25,42 +25,6 @@ __export(src_exports, {
25
25
  });
26
26
  module.exports = __toCommonJS(src_exports);
27
27
 
28
- // ../common/http.ts
29
- async function request(verb, endpoint, options, config) {
30
- if (!config) throw new Error("Ariari package not configured.");
31
- const url = `${config.baseUrl || "https://api.ariari.mg"}${endpoint}`;
32
- const headers = { "Content-Type": "application/json" };
33
- if (!options.public) {
34
- headers["x-project-id"] = config.projectId;
35
- headers["x-secret"] = config.secret;
36
- }
37
- const fetchOptions = { method: verb, headers };
38
- if ("body" in options && options.body) {
39
- fetchOptions.body = JSON.stringify(options.body);
40
- }
41
- try {
42
- const response = await fetch(url, fetchOptions);
43
- const data = await response.json();
44
- if (!response.ok) {
45
- const message = data?.message || "Unknown error";
46
- throw new Error(`[${response.status}] ${message}`);
47
- }
48
- return data;
49
- } catch (error) {
50
- if (error instanceof Error) {
51
- throw error;
52
- }
53
- throw new Error("Network error");
54
- }
55
- }
56
- var createRequester = (config) => ({
57
- get: (url, data = {}) => request("GET", url, data, config),
58
- post: (url, data = {}) => request("POST", url, data, config),
59
- patch: (url, data = {}) => request("PATCH", url, data, config),
60
- put: (url, data = {}) => request("PUT", url, data, config),
61
- delete: (url, data = {}) => request("DELETE", url, data, config)
62
- });
63
-
64
28
  // ../common/phone.ts
65
29
  var normalizePhoneNumber = (phone) => {
66
30
  let normalized = phone.replace(/\D/g, "");
@@ -68,6 +32,317 @@ var normalizePhoneNumber = (phone) => {
68
32
  return normalized;
69
33
  };
70
34
 
35
+ // ../common/gen/runtime.ts
36
+ var BASE_PATH = "http://localhost".replace(/\/+$/, "");
37
+ var Configuration = class {
38
+ constructor(configuration = {}) {
39
+ this.configuration = configuration;
40
+ }
41
+ set config(configuration) {
42
+ this.configuration = configuration;
43
+ }
44
+ get basePath() {
45
+ return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;
46
+ }
47
+ get fetchApi() {
48
+ return this.configuration.fetchApi;
49
+ }
50
+ get middleware() {
51
+ return this.configuration.middleware || [];
52
+ }
53
+ get queryParamsStringify() {
54
+ return this.configuration.queryParamsStringify || querystring;
55
+ }
56
+ get username() {
57
+ return this.configuration.username;
58
+ }
59
+ get password() {
60
+ return this.configuration.password;
61
+ }
62
+ get apiKey() {
63
+ const apiKey = this.configuration.apiKey;
64
+ if (apiKey) {
65
+ return typeof apiKey === "function" ? apiKey : () => apiKey;
66
+ }
67
+ return void 0;
68
+ }
69
+ get accessToken() {
70
+ const accessToken = this.configuration.accessToken;
71
+ if (accessToken) {
72
+ return typeof accessToken === "function" ? accessToken : async () => accessToken;
73
+ }
74
+ return void 0;
75
+ }
76
+ get headers() {
77
+ return this.configuration.headers;
78
+ }
79
+ get credentials() {
80
+ return this.configuration.credentials;
81
+ }
82
+ };
83
+ var DefaultConfig = new Configuration();
84
+ var _BaseAPI = class _BaseAPI {
85
+ constructor(configuration = DefaultConfig) {
86
+ this.configuration = configuration;
87
+ this.fetchApi = async (url, init) => {
88
+ let fetchParams = { url, init };
89
+ for (const middleware of this.middleware) {
90
+ if (middleware.pre) {
91
+ fetchParams = await middleware.pre({
92
+ fetch: this.fetchApi,
93
+ ...fetchParams
94
+ }) || fetchParams;
95
+ }
96
+ }
97
+ let response = void 0;
98
+ try {
99
+ response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);
100
+ } catch (e) {
101
+ for (const middleware of this.middleware) {
102
+ if (middleware.onError) {
103
+ response = await middleware.onError({
104
+ fetch: this.fetchApi,
105
+ url: fetchParams.url,
106
+ init: fetchParams.init,
107
+ error: e,
108
+ response: response ? response.clone() : void 0
109
+ }) || response;
110
+ }
111
+ }
112
+ if (response === void 0) {
113
+ if (e instanceof Error) {
114
+ throw new FetchError(e, "The request failed and the interceptors did not return an alternative response");
115
+ } else {
116
+ throw e;
117
+ }
118
+ }
119
+ }
120
+ for (const middleware of this.middleware) {
121
+ if (middleware.post) {
122
+ response = await middleware.post({
123
+ fetch: this.fetchApi,
124
+ url: fetchParams.url,
125
+ init: fetchParams.init,
126
+ response: response.clone()
127
+ }) || response;
128
+ }
129
+ }
130
+ return response;
131
+ };
132
+ this.middleware = configuration.middleware;
133
+ }
134
+ withMiddleware(...middlewares) {
135
+ const next = this.clone();
136
+ next.middleware = next.middleware.concat(...middlewares);
137
+ return next;
138
+ }
139
+ withPreMiddleware(...preMiddlewares) {
140
+ const middlewares = preMiddlewares.map((pre) => ({ pre }));
141
+ return this.withMiddleware(...middlewares);
142
+ }
143
+ withPostMiddleware(...postMiddlewares) {
144
+ const middlewares = postMiddlewares.map((post) => ({ post }));
145
+ return this.withMiddleware(...middlewares);
146
+ }
147
+ /**
148
+ * Check if the given MIME is a JSON MIME.
149
+ * JSON MIME examples:
150
+ * application/json
151
+ * application/json; charset=UTF8
152
+ * APPLICATION/JSON
153
+ * application/vnd.company+json
154
+ * @param mime - MIME (Multipurpose Internet Mail Extensions)
155
+ * @return True if the given MIME is JSON, false otherwise.
156
+ */
157
+ isJsonMime(mime) {
158
+ if (!mime) {
159
+ return false;
160
+ }
161
+ return _BaseAPI.jsonRegex.test(mime);
162
+ }
163
+ async request(context, initOverrides) {
164
+ const { url, init } = await this.createFetchParams(context, initOverrides);
165
+ const response = await this.fetchApi(url, init);
166
+ if (response && (response.status >= 200 && response.status < 300)) {
167
+ return response;
168
+ }
169
+ throw new ResponseError(response, "Response returned an error code");
170
+ }
171
+ async createFetchParams(context, initOverrides) {
172
+ let url = this.configuration.basePath + context.path;
173
+ if (context.query !== void 0 && Object.keys(context.query).length !== 0) {
174
+ url += "?" + this.configuration.queryParamsStringify(context.query);
175
+ }
176
+ const headers = Object.assign({}, this.configuration.headers, context.headers);
177
+ Object.keys(headers).forEach((key) => headers[key] === void 0 ? delete headers[key] : {});
178
+ const initOverrideFn = typeof initOverrides === "function" ? initOverrides : async () => initOverrides;
179
+ const initParams = {
180
+ method: context.method,
181
+ headers,
182
+ body: context.body,
183
+ credentials: this.configuration.credentials
184
+ };
185
+ const overriddenInit = {
186
+ ...initParams,
187
+ ...await initOverrideFn({
188
+ init: initParams,
189
+ context
190
+ })
191
+ };
192
+ let body;
193
+ if (isFormData(overriddenInit.body) || overriddenInit.body instanceof URLSearchParams || isBlob(overriddenInit.body)) {
194
+ body = overriddenInit.body;
195
+ } else if (this.isJsonMime(headers["Content-Type"])) {
196
+ body = JSON.stringify(overriddenInit.body);
197
+ } else {
198
+ body = overriddenInit.body;
199
+ }
200
+ const init = {
201
+ ...overriddenInit,
202
+ body
203
+ };
204
+ return { url, init };
205
+ }
206
+ /**
207
+ * Create a shallow clone of `this` by constructing a new instance
208
+ * and then shallow cloning data members.
209
+ */
210
+ clone() {
211
+ const constructor = this.constructor;
212
+ const next = new constructor(this.configuration);
213
+ next.middleware = this.middleware.slice();
214
+ return next;
215
+ }
216
+ };
217
+ _BaseAPI.jsonRegex = new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$", "i");
218
+ var BaseAPI = _BaseAPI;
219
+ function isBlob(value) {
220
+ return typeof Blob !== "undefined" && value instanceof Blob;
221
+ }
222
+ function isFormData(value) {
223
+ return typeof FormData !== "undefined" && value instanceof FormData;
224
+ }
225
+ var ResponseError = class extends Error {
226
+ constructor(response, msg) {
227
+ super(msg);
228
+ this.response = response;
229
+ this.name = "ResponseError";
230
+ }
231
+ };
232
+ var FetchError = class extends Error {
233
+ constructor(cause, msg) {
234
+ super(msg);
235
+ this.cause = cause;
236
+ this.name = "FetchError";
237
+ }
238
+ };
239
+ var RequiredError = class extends Error {
240
+ constructor(field, msg) {
241
+ super(msg);
242
+ this.field = field;
243
+ this.name = "RequiredError";
244
+ }
245
+ };
246
+ function querystring(params, prefix = "") {
247
+ return Object.keys(params).map((key) => querystringSingleKey(key, params[key], prefix)).filter((part) => part.length > 0).join("&");
248
+ }
249
+ function querystringSingleKey(key, value, keyPrefix = "") {
250
+ const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);
251
+ if (value instanceof Array) {
252
+ const multiValue = value.map((singleValue) => encodeURIComponent(String(singleValue))).join(`&${encodeURIComponent(fullKey)}=`);
253
+ return `${encodeURIComponent(fullKey)}=${multiValue}`;
254
+ }
255
+ if (value instanceof Set) {
256
+ const valueAsArray = Array.from(value);
257
+ return querystringSingleKey(key, valueAsArray, keyPrefix);
258
+ }
259
+ if (value instanceof Date) {
260
+ return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;
261
+ }
262
+ if (value instanceof Object) {
263
+ return querystring(value, fullKey);
264
+ }
265
+ return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;
266
+ }
267
+ var JSONApiResponse = class {
268
+ constructor(raw, transformer = (jsonValue) => jsonValue) {
269
+ this.raw = raw;
270
+ this.transformer = transformer;
271
+ }
272
+ async value() {
273
+ return this.transformer(await this.raw.json());
274
+ }
275
+ };
276
+
277
+ // ../common/gen/models/SmsMessage.ts
278
+ function SmsMessageToJSON(json) {
279
+ return SmsMessageToJSONTyped(json, false);
280
+ }
281
+ function SmsMessageToJSONTyped(value, ignoreDiscriminator = false) {
282
+ if (value == null) {
283
+ return value;
284
+ }
285
+ return {
286
+ "phones": value["phones"],
287
+ "message": value["message"]
288
+ };
289
+ }
290
+
291
+ // ../common/gen/models/BulkSms.ts
292
+ function BulkSmsToJSON(json) {
293
+ return BulkSmsToJSONTyped(json, false);
294
+ }
295
+ function BulkSmsToJSONTyped(value, ignoreDiscriminator = false) {
296
+ if (value == null) {
297
+ return value;
298
+ }
299
+ return {
300
+ "messages": value["messages"].map(SmsMessageToJSON),
301
+ "scheduledAt": value["scheduledAt"]
302
+ };
303
+ }
304
+
305
+ // ../common/gen/models/EstimateMessage.ts
306
+ function EstimateMessageToJSON(json) {
307
+ return EstimateMessageToJSONTyped(json, false);
308
+ }
309
+ function EstimateMessageToJSONTyped(value, ignoreDiscriminator = false) {
310
+ if (value == null) {
311
+ return value;
312
+ }
313
+ return {
314
+ "text": value["text"],
315
+ "repeat": value["repeat"]
316
+ };
317
+ }
318
+
319
+ // ../common/gen/models/EstimateSms.ts
320
+ function EstimateSmsToJSON(json) {
321
+ return EstimateSmsToJSONTyped(json, false);
322
+ }
323
+ function EstimateSmsToJSONTyped(value, ignoreDiscriminator = false) {
324
+ if (value == null) {
325
+ return value;
326
+ }
327
+ return {
328
+ "messages": value["messages"].map(EstimateMessageToJSON)
329
+ };
330
+ }
331
+
332
+ // ../common/gen/models/EstimateSmsResponse.ts
333
+ function EstimateSmsResponseFromJSON(json) {
334
+ return EstimateSmsResponseFromJSONTyped(json, false);
335
+ }
336
+ function EstimateSmsResponseFromJSONTyped(json, ignoreDiscriminator) {
337
+ if (json == null) {
338
+ return json;
339
+ }
340
+ return {
341
+ "sms": json["sms"],
342
+ "credit": json["credit"]
343
+ };
344
+ }
345
+
71
346
  // ../common/gen/models/NotifTaskStatus.ts
72
347
  function NotifTaskStatusFromJSON(json) {
73
348
  return NotifTaskStatusFromJSONTyped(json, false);
@@ -84,6 +359,64 @@ function NotifTaskStatusFromJSONTyped(json, ignoreDiscriminator) {
84
359
  };
85
360
  }
86
361
 
362
+ // ../common/gen/models/SmsStatus.ts
363
+ function SmsStatusFromJSON(json) {
364
+ return SmsStatusFromJSONTyped(json, false);
365
+ }
366
+ function SmsStatusFromJSONTyped(json, ignoreDiscriminator) {
367
+ return json;
368
+ }
369
+
370
+ // ../common/gen/models/SmsDetail.ts
371
+ function SmsDetailFromJSON(json) {
372
+ return SmsDetailFromJSONTyped(json, false);
373
+ }
374
+ function SmsDetailFromJSONTyped(json, ignoreDiscriminator) {
375
+ if (json == null) {
376
+ return json;
377
+ }
378
+ return {
379
+ "smsId": json["smsId"],
380
+ "phone": json["phone"],
381
+ "message": json["message"],
382
+ "status": SmsStatusFromJSON(json["status"]),
383
+ "retryCount": json["retryCount"]
384
+ };
385
+ }
386
+
387
+ // ../common/gen/models/NotifTaskWithSms.ts
388
+ function NotifTaskWithSmsFromJSON(json) {
389
+ return NotifTaskWithSmsFromJSONTyped(json, false);
390
+ }
391
+ function NotifTaskWithSmsFromJSONTyped(json, ignoreDiscriminator) {
392
+ if (json == null) {
393
+ return json;
394
+ }
395
+ return {
396
+ "taskId": json["taskId"],
397
+ "status": NotifTaskStatusFromJSON(json["status"]),
398
+ "statusPage": NotifTaskStatusFromJSON(json["statusPage"]),
399
+ "createdAt": new Date(json["createdAt"]),
400
+ "scheduledAt": json["scheduledAt"] == null ? void 0 : new Date(json["scheduledAt"]),
401
+ "sms": json["sms"].map(SmsDetailFromJSON)
402
+ };
403
+ }
404
+
405
+ // ../common/gen/models/PaginationParams.ts
406
+ function PaginationParamsFromJSON(json) {
407
+ return PaginationParamsFromJSONTyped(json, false);
408
+ }
409
+ function PaginationParamsFromJSONTyped(json, ignoreDiscriminator) {
410
+ if (json == null) {
411
+ return json;
412
+ }
413
+ return {
414
+ "from": json["from"] == null ? void 0 : json["from"],
415
+ "count": json["count"] == null ? void 0 : json["count"],
416
+ "order": json["order"] == null ? void 0 : json["order"]
417
+ };
418
+ }
419
+
87
420
  // ../common/gen/models/ResponseNotifTask.ts
88
421
  function ResponseNotifTaskFromJSON(json) {
89
422
  return ResponseNotifTaskFromJSONTyped(json, false);
@@ -101,31 +434,401 @@ function ResponseNotifTaskFromJSONTyped(json, ignoreDiscriminator) {
101
434
  };
102
435
  }
103
436
 
104
- // ../common/gen/models/SmsStatus.ts
105
- function SmsStatusFromJSON(json) {
106
- return SmsStatusFromJSONTyped(json, false);
437
+ // ../common/gen/models/PaginatedNotifTaskResponse.ts
438
+ function PaginatedNotifTaskResponseFromJSON(json) {
439
+ return PaginatedNotifTaskResponseFromJSONTyped(json, false);
107
440
  }
108
- function SmsStatusFromJSONTyped(json, ignoreDiscriminator) {
109
- return json;
441
+ function PaginatedNotifTaskResponseFromJSONTyped(json, ignoreDiscriminator) {
442
+ if (json == null) {
443
+ return json;
444
+ }
445
+ return {
446
+ "tasks": json["tasks"].map(ResponseNotifTaskFromJSON),
447
+ "next": PaginationParamsFromJSON(json["next"]),
448
+ "prev": json["prev"] == null ? void 0 : PaginationParamsFromJSON(json["prev"])
449
+ };
110
450
  }
111
451
 
112
- // ../common/gen/models/SmsDetail.ts
113
- function SmsDetailFromJSON(json) {
114
- return SmsDetailFromJSONTyped(json, false);
452
+ // ../common/gen/models/ResponseSms.ts
453
+ function ResponseSmsFromJSON(json) {
454
+ return ResponseSmsFromJSONTyped(json, false);
115
455
  }
116
- function SmsDetailFromJSONTyped(json, ignoreDiscriminator) {
456
+ function ResponseSmsFromJSONTyped(json, ignoreDiscriminator) {
117
457
  if (json == null) {
118
458
  return json;
119
459
  }
120
460
  return {
121
- "smsId": json["smsId"],
461
+ "id": json["_id"],
122
462
  "phone": json["phone"],
123
- "message": json["message"],
124
463
  "status": SmsStatusFromJSON(json["status"]),
125
- "retryCount": json["retryCount"]
464
+ "createdAt": new Date(json["createdAt"]),
465
+ "simItem": json["simItem"] == null ? void 0 : json["simItem"]
126
466
  };
127
467
  }
128
468
 
469
+ // ../common/gen/apis/NotifTaskApi.ts
470
+ var NotifTaskApi = class extends BaseAPI {
471
+ /**
472
+ * Creates request options for notifTaskFindAll without sending the request
473
+ */
474
+ async notifTaskFindAllRequestOpts(requestParameters) {
475
+ if (requestParameters["xSecret"] == null) {
476
+ throw new RequiredError(
477
+ "xSecret",
478
+ 'Required parameter "xSecret" was null or undefined when calling notifTaskFindAll().'
479
+ );
480
+ }
481
+ if (requestParameters["from"] == null) {
482
+ throw new RequiredError(
483
+ "from",
484
+ 'Required parameter "from" was null or undefined when calling notifTaskFindAll().'
485
+ );
486
+ }
487
+ if (requestParameters["count"] == null) {
488
+ throw new RequiredError(
489
+ "count",
490
+ 'Required parameter "count" was null or undefined when calling notifTaskFindAll().'
491
+ );
492
+ }
493
+ if (requestParameters["order"] == null) {
494
+ throw new RequiredError(
495
+ "order",
496
+ 'Required parameter "order" was null or undefined when calling notifTaskFindAll().'
497
+ );
498
+ }
499
+ if (requestParameters["projectId"] == null) {
500
+ throw new RequiredError(
501
+ "projectId",
502
+ 'Required parameter "projectId" was null or undefined when calling notifTaskFindAll().'
503
+ );
504
+ }
505
+ const queryParameters = {};
506
+ if (requestParameters["from"] != null) {
507
+ queryParameters["from"] = requestParameters["from"];
508
+ }
509
+ if (requestParameters["count"] != null) {
510
+ queryParameters["count"] = requestParameters["count"];
511
+ }
512
+ if (requestParameters["order"] != null) {
513
+ queryParameters["order"] = requestParameters["order"];
514
+ }
515
+ if (requestParameters["projectId"] != null) {
516
+ queryParameters["projectId"] = requestParameters["projectId"];
517
+ }
518
+ const headerParameters = {};
519
+ if (requestParameters["xSecret"] != null) {
520
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
521
+ }
522
+ let urlPath = `/api/notif-task`;
523
+ return {
524
+ path: urlPath,
525
+ method: "GET",
526
+ headers: headerParameters,
527
+ query: queryParameters
528
+ };
529
+ }
530
+ /**
531
+ * Récupérer les tâches avec pagination
532
+ */
533
+ async notifTaskFindAllRaw(requestParameters, initOverrides) {
534
+ const requestOptions = await this.notifTaskFindAllRequestOpts(requestParameters);
535
+ const response = await this.request(requestOptions, initOverrides);
536
+ return new JSONApiResponse(response, (jsonValue) => PaginatedNotifTaskResponseFromJSON(jsonValue));
537
+ }
538
+ /**
539
+ * Récupérer les tâches avec pagination
540
+ */
541
+ async notifTaskFindAll(requestParameters, initOverrides) {
542
+ const response = await this.notifTaskFindAllRaw(requestParameters, initOverrides);
543
+ return await response.value();
544
+ }
545
+ /**
546
+ * Creates request options for notifTaskFindAllWithSms without sending the request
547
+ */
548
+ async notifTaskFindAllWithSmsRequestOpts(requestParameters) {
549
+ if (requestParameters["xSecret"] == null) {
550
+ throw new RequiredError(
551
+ "xSecret",
552
+ 'Required parameter "xSecret" was null or undefined when calling notifTaskFindAllWithSms().'
553
+ );
554
+ }
555
+ if (requestParameters["projectId"] == null) {
556
+ throw new RequiredError(
557
+ "projectId",
558
+ 'Required parameter "projectId" was null or undefined when calling notifTaskFindAllWithSms().'
559
+ );
560
+ }
561
+ if (requestParameters["days"] == null) {
562
+ throw new RequiredError(
563
+ "days",
564
+ 'Required parameter "days" was null or undefined when calling notifTaskFindAllWithSms().'
565
+ );
566
+ }
567
+ const queryParameters = {};
568
+ const headerParameters = {};
569
+ if (requestParameters["xSecret"] != null) {
570
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
571
+ }
572
+ let urlPath = `/api/notif-task/history/{projectId}/{days}`;
573
+ urlPath = urlPath.replace(`{${"projectId"}}`, encodeURIComponent(String(requestParameters["projectId"])));
574
+ urlPath = urlPath.replace(`{${"days"}}`, encodeURIComponent(String(requestParameters["days"])));
575
+ return {
576
+ path: urlPath,
577
+ method: "GET",
578
+ headers: headerParameters,
579
+ query: queryParameters
580
+ };
581
+ }
582
+ /**
583
+ * Récupérer toutes les tâches avec SMS détaillés sur N jours pour un projet
584
+ */
585
+ async notifTaskFindAllWithSmsRaw(requestParameters, initOverrides) {
586
+ const requestOptions = await this.notifTaskFindAllWithSmsRequestOpts(requestParameters);
587
+ const response = await this.request(requestOptions, initOverrides);
588
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(NotifTaskWithSmsFromJSON));
589
+ }
590
+ /**
591
+ * Récupérer toutes les tâches avec SMS détaillés sur N jours pour un projet
592
+ */
593
+ async notifTaskFindAllWithSms(requestParameters, initOverrides) {
594
+ const response = await this.notifTaskFindAllWithSmsRaw(requestParameters, initOverrides);
595
+ return await response.value();
596
+ }
597
+ /**
598
+ * Creates request options for notifTaskFindOne without sending the request
599
+ */
600
+ async notifTaskFindOneRequestOpts(requestParameters) {
601
+ if (requestParameters["xSecret"] == null) {
602
+ throw new RequiredError(
603
+ "xSecret",
604
+ 'Required parameter "xSecret" was null or undefined when calling notifTaskFindOne().'
605
+ );
606
+ }
607
+ if (requestParameters["id"] == null) {
608
+ throw new RequiredError(
609
+ "id",
610
+ 'Required parameter "id" was null or undefined when calling notifTaskFindOne().'
611
+ );
612
+ }
613
+ if (requestParameters["details"] == null) {
614
+ throw new RequiredError(
615
+ "details",
616
+ 'Required parameter "details" was null or undefined when calling notifTaskFindOne().'
617
+ );
618
+ }
619
+ const queryParameters = {};
620
+ if (requestParameters["details"] != null) {
621
+ queryParameters["details"] = requestParameters["details"];
622
+ }
623
+ const headerParameters = {};
624
+ if (requestParameters["xSecret"] != null) {
625
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
626
+ }
627
+ let urlPath = `/api/notif-task/{id}`;
628
+ urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters["id"])));
629
+ return {
630
+ path: urlPath,
631
+ method: "GET",
632
+ headers: headerParameters,
633
+ query: queryParameters
634
+ };
635
+ }
636
+ /**
637
+ * Récupérer une tâche par ID, avec SMS optionnels via ?details=limit,page
638
+ */
639
+ async notifTaskFindOneRaw(requestParameters, initOverrides) {
640
+ const requestOptions = await this.notifTaskFindOneRequestOpts(requestParameters);
641
+ const response = await this.request(requestOptions, initOverrides);
642
+ return new JSONApiResponse(response, (jsonValue) => NotifTaskWithSmsFromJSON(jsonValue));
643
+ }
644
+ /**
645
+ * Récupérer une tâche par ID, avec SMS optionnels via ?details=limit,page
646
+ */
647
+ async notifTaskFindOne(requestParameters, initOverrides) {
648
+ const response = await this.notifTaskFindOneRaw(requestParameters, initOverrides);
649
+ return await response.value();
650
+ }
651
+ };
652
+
653
+ // ../common/gen/apis/SmsApi.ts
654
+ var SmsApi = class extends BaseAPI {
655
+ /**
656
+ * Creates request options for smsEstimate without sending the request
657
+ */
658
+ async smsEstimateRequestOpts(requestParameters) {
659
+ if (requestParameters["xSecret"] == null) {
660
+ throw new RequiredError(
661
+ "xSecret",
662
+ 'Required parameter "xSecret" was null or undefined when calling smsEstimate().'
663
+ );
664
+ }
665
+ if (requestParameters["estimateSms"] == null) {
666
+ throw new RequiredError(
667
+ "estimateSms",
668
+ 'Required parameter "estimateSms" was null or undefined when calling smsEstimate().'
669
+ );
670
+ }
671
+ const queryParameters = {};
672
+ const headerParameters = {};
673
+ headerParameters["Content-Type"] = "application/json";
674
+ if (requestParameters["xSecret"] != null) {
675
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
676
+ }
677
+ let urlPath = `/api/sms/estimate`;
678
+ return {
679
+ path: urlPath,
680
+ method: "POST",
681
+ headers: headerParameters,
682
+ query: queryParameters,
683
+ body: EstimateSmsToJSON(requestParameters["estimateSms"])
684
+ };
685
+ }
686
+ /**
687
+ * Estimate SMS credit consumption for a list of messages
688
+ */
689
+ async smsEstimateRaw(requestParameters, initOverrides) {
690
+ const requestOptions = await this.smsEstimateRequestOpts(requestParameters);
691
+ const response = await this.request(requestOptions, initOverrides);
692
+ return new JSONApiResponse(response, (jsonValue) => EstimateSmsResponseFromJSON(jsonValue));
693
+ }
694
+ /**
695
+ * Estimate SMS credit consumption for a list of messages
696
+ */
697
+ async smsEstimate(requestParameters, initOverrides) {
698
+ const response = await this.smsEstimateRaw(requestParameters, initOverrides);
699
+ return await response.value();
700
+ }
701
+ /**
702
+ * Creates request options for smsFindAll without sending the request
703
+ */
704
+ async smsFindAllRequestOpts(requestParameters) {
705
+ if (requestParameters["xSecret"] == null) {
706
+ throw new RequiredError(
707
+ "xSecret",
708
+ 'Required parameter "xSecret" was null or undefined when calling smsFindAll().'
709
+ );
710
+ }
711
+ const queryParameters = {};
712
+ const headerParameters = {};
713
+ if (requestParameters["xSecret"] != null) {
714
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
715
+ }
716
+ let urlPath = `/api/sms`;
717
+ return {
718
+ path: urlPath,
719
+ method: "GET",
720
+ headers: headerParameters,
721
+ query: queryParameters
722
+ };
723
+ }
724
+ /**
725
+ * Récupérer l\'historique des SMS de l\'application
726
+ */
727
+ async smsFindAllRaw(requestParameters, initOverrides) {
728
+ const requestOptions = await this.smsFindAllRequestOpts(requestParameters);
729
+ const response = await this.request(requestOptions, initOverrides);
730
+ return new JSONApiResponse(response, (jsonValue) => jsonValue.map(ResponseSmsFromJSON));
731
+ }
732
+ /**
733
+ * Récupérer l\'historique des SMS de l\'application
734
+ */
735
+ async smsFindAll(requestParameters, initOverrides) {
736
+ const response = await this.smsFindAllRaw(requestParameters, initOverrides);
737
+ return await response.value();
738
+ }
739
+ /**
740
+ * Creates request options for smsFindOne without sending the request
741
+ */
742
+ async smsFindOneRequestOpts(requestParameters) {
743
+ if (requestParameters["xSecret"] == null) {
744
+ throw new RequiredError(
745
+ "xSecret",
746
+ 'Required parameter "xSecret" was null or undefined when calling smsFindOne().'
747
+ );
748
+ }
749
+ if (requestParameters["id"] == null) {
750
+ throw new RequiredError(
751
+ "id",
752
+ 'Required parameter "id" was null or undefined when calling smsFindOne().'
753
+ );
754
+ }
755
+ const queryParameters = {};
756
+ const headerParameters = {};
757
+ if (requestParameters["xSecret"] != null) {
758
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
759
+ }
760
+ let urlPath = `/api/sms/{id}`;
761
+ urlPath = urlPath.replace(`{${"id"}}`, encodeURIComponent(String(requestParameters["id"])));
762
+ return {
763
+ path: urlPath,
764
+ method: "GET",
765
+ headers: headerParameters,
766
+ query: queryParameters
767
+ };
768
+ }
769
+ /**
770
+ * Récupérer un SMS par ID pour l\'application
771
+ */
772
+ async smsFindOneRaw(requestParameters, initOverrides) {
773
+ const requestOptions = await this.smsFindOneRequestOpts(requestParameters);
774
+ const response = await this.request(requestOptions, initOverrides);
775
+ return new JSONApiResponse(response, (jsonValue) => ResponseSmsFromJSON(jsonValue));
776
+ }
777
+ /**
778
+ * Récupérer un SMS par ID pour l\'application
779
+ */
780
+ async smsFindOne(requestParameters, initOverrides) {
781
+ const response = await this.smsFindOneRaw(requestParameters, initOverrides);
782
+ return await response.value();
783
+ }
784
+ /**
785
+ * Creates request options for smsSendBulkSms without sending the request
786
+ */
787
+ async smsSendBulkSmsRequestOpts(requestParameters) {
788
+ if (requestParameters["xSecret"] == null) {
789
+ throw new RequiredError(
790
+ "xSecret",
791
+ 'Required parameter "xSecret" was null or undefined when calling smsSendBulkSms().'
792
+ );
793
+ }
794
+ if (requestParameters["bulkSms"] == null) {
795
+ throw new RequiredError(
796
+ "bulkSms",
797
+ 'Required parameter "bulkSms" was null or undefined when calling smsSendBulkSms().'
798
+ );
799
+ }
800
+ const queryParameters = {};
801
+ const headerParameters = {};
802
+ headerParameters["Content-Type"] = "application/json";
803
+ if (requestParameters["xSecret"] != null) {
804
+ headerParameters["x-secret"] = String(requestParameters["xSecret"]);
805
+ }
806
+ let urlPath = `/api/sms/bulk`;
807
+ return {
808
+ path: urlPath,
809
+ method: "POST",
810
+ headers: headerParameters,
811
+ query: queryParameters,
812
+ body: BulkSmsToJSON(requestParameters["bulkSms"])
813
+ };
814
+ }
815
+ /**
816
+ * Envoyer des messages différents à différents groupes de destinataires
817
+ */
818
+ async smsSendBulkSmsRaw(requestParameters, initOverrides) {
819
+ const requestOptions = await this.smsSendBulkSmsRequestOpts(requestParameters);
820
+ const response = await this.request(requestOptions, initOverrides);
821
+ return new JSONApiResponse(response, (jsonValue) => ResponseNotifTaskFromJSON(jsonValue));
822
+ }
823
+ /**
824
+ * Envoyer des messages différents à différents groupes de destinataires
825
+ */
826
+ async smsSendBulkSms(requestParameters, initOverrides) {
827
+ const response = await this.smsSendBulkSmsRaw(requestParameters, initOverrides);
828
+ return await response.value();
829
+ }
830
+ };
831
+
129
832
  // src/types/index.ts
130
833
  var SmsStatus = /* @__PURE__ */ ((SmsStatus2) => {
131
834
  SmsStatus2["SCHEDULED"] = "SCHEDULED";
@@ -148,61 +851,54 @@ var parseSchedule = (input) => {
148
851
  }
149
852
  return input;
150
853
  };
151
- var parseTaskResponse = (raw) => {
152
- const task = {
153
- ...ResponseNotifTaskFromJSON(raw.task),
154
- ...raw.task.scheduledAt != null && { scheduledAt: new Date(raw.task.scheduledAt) }
155
- };
156
- return {
157
- task,
158
- sms: Array.isArray(raw.sms) ? raw.sms.map(SmsDetailFromJSON) : [],
159
- total: raw.total ?? 0
160
- };
854
+ var normalizeTaskResponse = (json) => {
855
+ const t = json.task ?? json;
856
+ return { taskId: t._id ?? t.taskId, status: t.status, statusPage: t.statusPage, createdAt: t.createdAt, scheduledAt: t.scheduledAt, sms: json.sms ?? [] };
161
857
  };
162
858
  var instances = {};
163
859
  var Task = class {
164
- constructor(id, requester) {
860
+ constructor(id, api, secret) {
165
861
  this.id = id;
166
- this._requester = requester;
862
+ this._api = api;
863
+ this._secret = secret;
167
864
  }
168
865
  async status(count, page) {
169
- if (count === void 0) {
170
- const res2 = await this._requester.get(`/api/notif-task/${this.id}`);
171
- return parseTaskResponse(res2);
172
- }
173
- const details = `${count},${page || 1}`;
174
- const res = await this._requester.get(`/api/notif-task/${this.id}?details=${details}`);
175
- return parseTaskResponse(res);
866
+ const details = count !== void 0 ? `${count},${page || 1}` : "";
867
+ const raw = await this._api.notifTaskFindOneRaw({ xSecret: this._secret, id: this.id, details });
868
+ const json = await raw.raw.json();
869
+ return NotifTaskWithSmsFromJSON(normalizeTaskResponse(json));
176
870
  }
177
871
  // All SMS at once
178
872
  async fullStatus() {
179
- const res = await this._requester.get(`/api/notif-task/${this.id}?details=-1`);
180
- return parseTaskResponse(res);
873
+ const raw = await this._api.notifTaskFindOneRaw({ xSecret: this._secret, id: this.id, details: "-1" });
874
+ const json = await raw.raw.json();
875
+ return NotifTaskWithSmsFromJSON(normalizeTaskResponse(json));
181
876
  }
182
877
  };
183
878
  var _Ariari = class _Ariari {
184
- constructor({ name = "main", ...config }) {
879
+ constructor({ name = "main", secret, baseUrl }) {
185
880
  this.send = async (...args) => {
186
881
  const hasSchedule = typeof args[0] === "string";
187
882
  const scheduledAt = hasSchedule ? parseSchedule(args[0]) : void 0;
188
883
  const data = hasSchedule ? args.slice(1) : args;
189
- const body = {
884
+ const bulkSms = {
190
885
  messages: data.map((item) => ({
191
886
  phones: (Array.isArray(item.phone) ? item.phone : [item.phone]).map(normalizePhoneNumber),
192
887
  message: item.message
193
888
  })),
194
889
  ...scheduledAt && { scheduledAt }
195
890
  };
196
- const response = await this._requester.post("/api/sms/bulk", { body });
197
- const task = ResponseNotifTaskFromJSON(response);
198
- return new Task(task.id, this._requester);
891
+ const task = await this._smsApi.smsSendBulkSms({ xSecret: this._secret, bulkSms });
892
+ return new Task(task.id, this._notifTaskApi, this._secret);
199
893
  };
200
- this.getTask = (taskId) => new Task(taskId, this._requester);
894
+ this.getTask = (taskId) => new Task(taskId, this._notifTaskApi, this._secret);
201
895
  this.estimate = async (...messages) => {
202
- return this._requester.post("/api/sms/estimate", { body: { messages } });
896
+ return this._smsApi.smsEstimate({ xSecret: this._secret, estimateSms: { messages } });
203
897
  };
204
- this._config = config;
205
- this._requester = createRequester(config);
898
+ this._secret = secret;
899
+ const configuration = new Configuration({ basePath: baseUrl || "https://api.ariari.mg" });
900
+ this._smsApi = new SmsApi(configuration);
901
+ this._notifTaskApi = new NotifTaskApi(configuration);
206
902
  instances[name] = this;
207
903
  }
208
904
  };