@cimplify/sdk 0.2.4 → 0.3.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
@@ -1,6 +1,45 @@
1
1
  'use strict';
2
2
 
3
3
  // src/types/common.ts
4
+ var ErrorCode = {
5
+ // General
6
+ UNKNOWN_ERROR: "UNKNOWN_ERROR",
7
+ NETWORK_ERROR: "NETWORK_ERROR",
8
+ TIMEOUT: "TIMEOUT",
9
+ UNAUTHORIZED: "UNAUTHORIZED",
10
+ FORBIDDEN: "FORBIDDEN",
11
+ NOT_FOUND: "NOT_FOUND",
12
+ VALIDATION_ERROR: "VALIDATION_ERROR",
13
+ // Cart
14
+ CART_EMPTY: "CART_EMPTY",
15
+ CART_EXPIRED: "CART_EXPIRED",
16
+ CART_NOT_FOUND: "CART_NOT_FOUND",
17
+ ITEM_UNAVAILABLE: "ITEM_UNAVAILABLE",
18
+ VARIANT_NOT_FOUND: "VARIANT_NOT_FOUND",
19
+ VARIANT_OUT_OF_STOCK: "VARIANT_OUT_OF_STOCK",
20
+ ADDON_REQUIRED: "ADDON_REQUIRED",
21
+ ADDON_MAX_EXCEEDED: "ADDON_MAX_EXCEEDED",
22
+ // Checkout
23
+ CHECKOUT_VALIDATION_FAILED: "CHECKOUT_VALIDATION_FAILED",
24
+ DELIVERY_ADDRESS_REQUIRED: "DELIVERY_ADDRESS_REQUIRED",
25
+ CUSTOMER_INFO_REQUIRED: "CUSTOMER_INFO_REQUIRED",
26
+ // Payment
27
+ PAYMENT_FAILED: "PAYMENT_FAILED",
28
+ PAYMENT_CANCELLED: "PAYMENT_CANCELLED",
29
+ INSUFFICIENT_FUNDS: "INSUFFICIENT_FUNDS",
30
+ CARD_DECLINED: "CARD_DECLINED",
31
+ INVALID_OTP: "INVALID_OTP",
32
+ OTP_EXPIRED: "OTP_EXPIRED",
33
+ AUTHORIZATION_FAILED: "AUTHORIZATION_FAILED",
34
+ PAYMENT_ACTION_NOT_COMPLETED: "PAYMENT_ACTION_NOT_COMPLETED",
35
+ // Scheduling
36
+ SLOT_UNAVAILABLE: "SLOT_UNAVAILABLE",
37
+ BOOKING_CONFLICT: "BOOKING_CONFLICT",
38
+ SERVICE_NOT_FOUND: "SERVICE_NOT_FOUND",
39
+ // Inventory
40
+ OUT_OF_STOCK: "OUT_OF_STOCK",
41
+ INSUFFICIENT_QUANTITY: "INSUFFICIENT_QUANTITY"
42
+ };
4
43
  var CimplifyError = class extends Error {
5
44
  constructor(code, message, retryable = false) {
6
45
  super(message);
@@ -8,7 +47,24 @@ var CimplifyError = class extends Error {
8
47
  this.retryable = retryable;
9
48
  this.name = "CimplifyError";
10
49
  }
50
+ /** User-friendly message safe to display */
51
+ get userMessage() {
52
+ return this.message;
53
+ }
11
54
  };
55
+ function isCimplifyError(error) {
56
+ return error instanceof CimplifyError;
57
+ }
58
+ function isRetryableError(error) {
59
+ if (isCimplifyError(error)) {
60
+ return error.retryable;
61
+ }
62
+ if (error instanceof Error) {
63
+ const msg = error.message.toLowerCase();
64
+ return msg.includes("network") || msg.includes("timeout") || msg.includes("fetch");
65
+ }
66
+ return false;
67
+ }
12
68
 
13
69
  // src/catalogue.ts
14
70
  var CatalogueQueries = class {
@@ -220,7 +276,91 @@ var CatalogueQueries = class {
220
276
  }
221
277
  };
222
278
 
279
+ // src/types/result.ts
280
+ function ok(value) {
281
+ return { ok: true, value };
282
+ }
283
+ function err(error) {
284
+ return { ok: false, error };
285
+ }
286
+ function isOk(result) {
287
+ return result.ok === true;
288
+ }
289
+ function isErr(result) {
290
+ return result.ok === false;
291
+ }
292
+ function mapResult(result, fn) {
293
+ return result.ok ? ok(fn(result.value)) : result;
294
+ }
295
+ function mapError(result, fn) {
296
+ return result.ok ? result : err(fn(result.error));
297
+ }
298
+ function flatMap(result, fn) {
299
+ return result.ok ? fn(result.value) : result;
300
+ }
301
+ function getOrElse(result, defaultFn) {
302
+ return result.ok ? result.value : defaultFn();
303
+ }
304
+ function unwrap(result) {
305
+ if (result.ok) {
306
+ return result.value;
307
+ }
308
+ throw result.error;
309
+ }
310
+ function toNullable(result) {
311
+ return result.ok ? result.value : void 0;
312
+ }
313
+ async function fromPromise(promise, mapError2) {
314
+ try {
315
+ const value = await promise;
316
+ return ok(value);
317
+ } catch (error) {
318
+ return err(mapError2(error));
319
+ }
320
+ }
321
+ function tryCatch(fn, mapError2) {
322
+ try {
323
+ return ok(fn());
324
+ } catch (error) {
325
+ return err(mapError2(error));
326
+ }
327
+ }
328
+ function combine(results) {
329
+ const values = [];
330
+ for (const result of results) {
331
+ if (!result.ok) {
332
+ return result;
333
+ }
334
+ values.push(result.value);
335
+ }
336
+ return ok(values);
337
+ }
338
+ function combineObject(results) {
339
+ const values = {};
340
+ for (const [key, result] of Object.entries(results)) {
341
+ if (!result.ok) {
342
+ return result;
343
+ }
344
+ values[key] = result.value;
345
+ }
346
+ return ok(values);
347
+ }
348
+
223
349
  // src/cart.ts
350
+ function toCimplifyError(error) {
351
+ if (error instanceof CimplifyError) return error;
352
+ if (error instanceof Error) {
353
+ return new CimplifyError("UNKNOWN_ERROR", error.message, false);
354
+ }
355
+ return new CimplifyError("UNKNOWN_ERROR", String(error), false);
356
+ }
357
+ async function safe(promise) {
358
+ try {
359
+ return ok(await promise);
360
+ } catch (error) {
361
+ return err(toCimplifyError(error));
362
+ }
363
+ }
224
364
  var CartOperations = class {
225
365
  constructor(client) {
226
366
  this.client = client;
@@ -233,23 +373,25 @@ var CartOperations = class {
233
373
  * This is the main method for storefront display.
234
374
  */
235
375
  async get() {
236
- return this.client.query("cart#enriched");
376
+ return safe(this.client.query("cart#enriched"));
237
377
  }
238
378
  async getRaw() {
239
- return this.client.query("cart");
379
+ return safe(this.client.query("cart"));
240
380
  }
241
381
  async getItems() {
242
- return this.client.query("cart_items");
382
+ return safe(this.client.query("cart_items"));
243
383
  }
244
384
  async getCount() {
245
- return this.client.query("cart#count");
385
+ return safe(this.client.query("cart#count"));
246
386
  }
247
387
  async getTotal() {
248
- return this.client.query("cart#total");
388
+ return safe(this.client.query("cart#total"));
249
389
  }
250
390
  async getSummary() {
251
- const cart = await this.get();
252
- return {
391
+ const cartResult = await this.get();
392
+ if (!cartResult.ok) return cartResult;
393
+ const cart = cartResult.value;
394
+ return ok({
253
395
  item_count: cart.items.length,
254
396
  total_items: cart.items.reduce((sum, item) => sum + item.quantity, 0),
255
397
  subtotal: cart.pricing.subtotal,
@@ -257,55 +399,89 @@ var CartOperations = class {
257
399
  tax_amount: cart.pricing.tax_amount,
258
400
  total: cart.pricing.total_price,
259
401
  currency: cart.pricing.currency
260
- };
402
+ });
261
403
  }
262
404
  // --------------------------------------------------------------------------
263
405
  // CART MUTATIONS
264
406
  // --------------------------------------------------------------------------
407
+ /**
408
+ * Add an item to the cart.
409
+ *
410
+ * @example
411
+ * ```typescript
412
+ * const result = await client.cart.addItem({
413
+ * item_id: "prod_burger",
414
+ * quantity: 2,
415
+ * variant_id: "var_large",
416
+ * add_on_options: ["addon_cheese", "addon_bacon"],
417
+ * });
418
+ *
419
+ * if (!result.ok) {
420
+ * switch (result.error.code) {
421
+ * case ErrorCode.ITEM_UNAVAILABLE:
422
+ * toast.error("Item no longer available");
423
+ * break;
424
+ * case ErrorCode.VARIANT_OUT_OF_STOCK:
425
+ * toast.error("Selected option is out of stock");
426
+ * break;
427
+ * }
428
+ * }
429
+ * ```
430
+ */
265
431
  async addItem(input) {
266
- return this.client.call("cart.addItem", input);
432
+ return safe(this.client.call("cart.addItem", input));
267
433
  }
268
434
  async updateItem(cartItemId, updates) {
269
- return this.client.call("cart.updateItem", {
270
- cart_item_id: cartItemId,
271
- ...updates
272
- });
435
+ return safe(
436
+ this.client.call("cart.updateItem", {
437
+ cart_item_id: cartItemId,
438
+ ...updates
439
+ })
440
+ );
273
441
  }
274
442
  async updateQuantity(cartItemId, quantity) {
275
- return this.client.call("cart.updateItemQuantity", {
276
- cart_item_id: cartItemId,
277
- quantity
278
- });
443
+ return safe(
444
+ this.client.call("cart.updateItemQuantity", {
445
+ cart_item_id: cartItemId,
446
+ quantity
447
+ })
448
+ );
279
449
  }
280
450
  async removeItem(cartItemId) {
281
- return this.client.call("cart.removeItem", {
282
- cart_item_id: cartItemId
283
- });
451
+ return safe(
452
+ this.client.call("cart.removeItem", {
453
+ cart_item_id: cartItemId
454
+ })
455
+ );
284
456
  }
285
457
  async clear() {
286
- return this.client.call("cart.clearCart");
458
+ return safe(this.client.call("cart.clearCart"));
287
459
  }
288
460
  // --------------------------------------------------------------------------
289
461
  // COUPONS & DISCOUNTS
290
462
  // --------------------------------------------------------------------------
291
463
  async applyCoupon(code) {
292
- return this.client.call("cart.applyCoupon", {
293
- coupon_code: code
294
- });
464
+ return safe(
465
+ this.client.call("cart.applyCoupon", {
466
+ coupon_code: code
467
+ })
468
+ );
295
469
  }
296
470
  async removeCoupon() {
297
- return this.client.call("cart.removeCoupon");
471
+ return safe(this.client.call("cart.removeCoupon"));
298
472
  }
299
473
  // --------------------------------------------------------------------------
300
474
  // CONVENIENCE METHODS
301
475
  // --------------------------------------------------------------------------
302
476
  async isEmpty() {
303
- const count = await this.getCount();
304
- return count === 0;
477
+ const countResult = await this.getCount();
478
+ if (!countResult.ok) return countResult;
479
+ return ok(countResult.value === 0);
305
480
  }
306
481
  async hasItem(productId, variantId) {
307
- const items = await this.getItems();
308
- return items.some((item) => {
482
+ const itemsResult = await this.getItems();
483
+ if (!itemsResult.ok) return itemsResult;
484
+ const found = itemsResult.value.some((item) => {
309
485
  const matchesProduct = item.item_id === productId;
310
486
  if (!variantId) return matchesProduct;
311
487
  const config = item.configuration;
@@ -314,10 +490,12 @@ var CartOperations = class {
314
490
  }
315
491
  return matchesProduct;
316
492
  });
493
+ return ok(found);
317
494
  }
318
495
  async findItem(productId, variantId) {
319
- const items = await this.getItems();
320
- return items.find((item) => {
496
+ const itemsResult = await this.getItems();
497
+ if (!itemsResult.ok) return itemsResult;
498
+ const found = itemsResult.value.find((item) => {
321
499
  const matchesProduct = item.item_id === productId;
322
500
  if (!variantId) return matchesProduct;
323
501
  const config = item.configuration;
@@ -326,6 +504,7 @@ var CartOperations = class {
326
504
  }
327
505
  return matchesProduct;
328
506
  });
507
+ return ok(found);
329
508
  }
330
509
  };
331
510
 
@@ -420,37 +599,88 @@ var DEFAULT_CURRENCY = "GHS";
420
599
  var DEFAULT_COUNTRY = "GHA";
421
600
 
422
601
  // src/checkout.ts
602
+ function toCimplifyError2(error) {
603
+ if (error instanceof CimplifyError) return error;
604
+ if (error instanceof Error) {
605
+ return new CimplifyError("UNKNOWN_ERROR", error.message, false);
606
+ }
607
+ return new CimplifyError("UNKNOWN_ERROR", String(error), false);
608
+ }
609
+ async function safe2(promise) {
610
+ try {
611
+ return ok(await promise);
612
+ } catch (error) {
613
+ return err(toCimplifyError2(error));
614
+ }
615
+ }
423
616
  var CheckoutService = class {
424
617
  constructor(client) {
425
618
  this.client = client;
426
619
  }
620
+ /**
621
+ * Process checkout with cart data.
622
+ *
623
+ * @example
624
+ * ```typescript
625
+ * const result = await client.checkout.process({
626
+ * cart_id: cart.id,
627
+ * customer: { name, email, phone, save_details: true },
628
+ * order_type: "pickup",
629
+ * payment_method: "mobile_money",
630
+ * mobile_money_details: { phone_number, provider: "mtn" },
631
+ * });
632
+ *
633
+ * if (!result.ok) {
634
+ * switch (result.error.code) {
635
+ * case ErrorCode.CART_EMPTY:
636
+ * toast.error("Your cart is empty");
637
+ * break;
638
+ * case ErrorCode.PAYMENT_FAILED:
639
+ * toast.error("Payment failed. Please try again.");
640
+ * break;
641
+ * }
642
+ * }
643
+ * ```
644
+ */
427
645
  async process(data) {
428
- return this.client.call(CHECKOUT_MUTATION.PROCESS, {
429
- checkout_data: data
430
- });
646
+ return safe2(
647
+ this.client.call(CHECKOUT_MUTATION.PROCESS, {
648
+ checkout_data: data
649
+ })
650
+ );
431
651
  }
432
652
  async initializePayment(orderId, method) {
433
- return this.client.call("order.initializePayment", {
434
- order_id: orderId,
435
- payment_method: method
436
- });
653
+ return safe2(
654
+ this.client.call("order.initializePayment", {
655
+ order_id: orderId,
656
+ payment_method: method
657
+ })
658
+ );
437
659
  }
438
660
  async submitAuthorization(input) {
439
- return this.client.call(PAYMENT_MUTATION.SUBMIT_AUTHORIZATION, input);
661
+ return safe2(
662
+ this.client.call(PAYMENT_MUTATION.SUBMIT_AUTHORIZATION, input)
663
+ );
440
664
  }
441
665
  async pollPaymentStatus(orderId) {
442
- return this.client.call(PAYMENT_MUTATION.CHECK_STATUS, orderId);
666
+ return safe2(
667
+ this.client.call(PAYMENT_MUTATION.CHECK_STATUS, orderId)
668
+ );
443
669
  }
444
670
  async updateOrderCustomer(orderId, customer) {
445
- return this.client.call(ORDER_MUTATION.UPDATE_CUSTOMER, {
446
- order_id: orderId,
447
- ...customer
448
- });
671
+ return safe2(
672
+ this.client.call(ORDER_MUTATION.UPDATE_CUSTOMER, {
673
+ order_id: orderId,
674
+ ...customer
675
+ })
676
+ );
449
677
  }
450
678
  async verifyPayment(orderId) {
451
- return this.client.call("order.verifyPayment", {
452
- order_id: orderId
453
- });
679
+ return safe2(
680
+ this.client.call("order.verifyPayment", {
681
+ order_id: orderId
682
+ })
683
+ );
454
684
  }
455
685
  };
456
686
 
@@ -491,117 +721,173 @@ var OrderQueries = class {
491
721
  };
492
722
 
493
723
  // src/link.ts
724
+ function toCimplifyError3(error) {
725
+ if (error instanceof CimplifyError) return error;
726
+ if (error instanceof Error) {
727
+ return new CimplifyError("UNKNOWN_ERROR", error.message, false);
728
+ }
729
+ return new CimplifyError("UNKNOWN_ERROR", String(error), false);
730
+ }
731
+ async function safe3(promise) {
732
+ try {
733
+ return ok(await promise);
734
+ } catch (error) {
735
+ return err(toCimplifyError3(error));
736
+ }
737
+ }
494
738
  var LinkService = class {
495
739
  constructor(client) {
496
740
  this.client = client;
497
741
  }
742
+ // --------------------------------------------------------------------------
743
+ // AUTHENTICATION
744
+ // --------------------------------------------------------------------------
498
745
  async requestOtp(input) {
499
- return this.client.linkPost("/v1/link/auth/request-otp", input);
746
+ return safe3(this.client.linkPost("/v1/link/auth/request-otp", input));
500
747
  }
501
748
  async verifyOtp(input) {
502
- const response = await this.client.linkPost("/v1/link/auth/verify-otp", input);
503
- if (response.session_token) {
504
- this.client.setSessionToken(response.session_token);
749
+ const result = await safe3(
750
+ this.client.linkPost("/v1/link/auth/verify-otp", input)
751
+ );
752
+ if (result.ok && result.value.session_token) {
753
+ this.client.setSessionToken(result.value.session_token);
505
754
  }
506
- return response;
755
+ return result;
507
756
  }
508
757
  async logout() {
509
- const result = await this.client.linkPost("/v1/link/auth/logout");
510
- this.client.clearSession();
758
+ const result = await safe3(this.client.linkPost("/v1/link/auth/logout"));
759
+ if (result.ok) {
760
+ this.client.clearSession();
761
+ }
511
762
  return result;
512
763
  }
764
+ // --------------------------------------------------------------------------
765
+ // STATUS & DATA
766
+ // --------------------------------------------------------------------------
513
767
  async checkStatus(contact) {
514
- return this.client.call(LINK_MUTATION.CHECK_STATUS, {
515
- contact
516
- });
768
+ return safe3(
769
+ this.client.call(LINK_MUTATION.CHECK_STATUS, {
770
+ contact
771
+ })
772
+ );
517
773
  }
518
774
  async getLinkData() {
519
- return this.client.query(LINK_QUERY.DATA);
775
+ return safe3(this.client.query(LINK_QUERY.DATA));
520
776
  }
521
777
  async getAddresses() {
522
- return this.client.query(LINK_QUERY.ADDRESSES);
778
+ return safe3(this.client.query(LINK_QUERY.ADDRESSES));
523
779
  }
524
780
  async getMobileMoney() {
525
- return this.client.query(LINK_QUERY.MOBILE_MONEY);
781
+ return safe3(this.client.query(LINK_QUERY.MOBILE_MONEY));
526
782
  }
527
783
  async getPreferences() {
528
- return this.client.query(LINK_QUERY.PREFERENCES);
784
+ return safe3(this.client.query(LINK_QUERY.PREFERENCES));
529
785
  }
786
+ // --------------------------------------------------------------------------
787
+ // ENROLLMENT
788
+ // --------------------------------------------------------------------------
530
789
  async enroll(data) {
531
- return this.client.call(LINK_MUTATION.ENROLL, data);
790
+ return safe3(this.client.call(LINK_MUTATION.ENROLL, data));
532
791
  }
533
792
  async enrollAndLinkOrder(data) {
534
- return this.client.call(LINK_MUTATION.ENROLL_AND_LINK_ORDER, data);
793
+ return safe3(
794
+ this.client.call(LINK_MUTATION.ENROLL_AND_LINK_ORDER, data)
795
+ );
535
796
  }
797
+ // --------------------------------------------------------------------------
798
+ // PREFERENCES
799
+ // --------------------------------------------------------------------------
536
800
  async updatePreferences(preferences) {
537
- return this.client.call(LINK_MUTATION.UPDATE_PREFERENCES, preferences);
801
+ return safe3(this.client.call(LINK_MUTATION.UPDATE_PREFERENCES, preferences));
538
802
  }
803
+ // --------------------------------------------------------------------------
804
+ // ADDRESSES
805
+ // --------------------------------------------------------------------------
539
806
  async createAddress(input) {
540
- return this.client.call(LINK_MUTATION.CREATE_ADDRESS, input);
807
+ return safe3(this.client.call(LINK_MUTATION.CREATE_ADDRESS, input));
541
808
  }
542
809
  async updateAddress(input) {
543
- return this.client.call(LINK_MUTATION.UPDATE_ADDRESS, input);
810
+ return safe3(this.client.call(LINK_MUTATION.UPDATE_ADDRESS, input));
544
811
  }
545
812
  async deleteAddress(addressId) {
546
- return this.client.call(LINK_MUTATION.DELETE_ADDRESS, addressId);
813
+ return safe3(this.client.call(LINK_MUTATION.DELETE_ADDRESS, addressId));
547
814
  }
548
815
  async setDefaultAddress(addressId) {
549
- return this.client.call(LINK_MUTATION.SET_DEFAULT_ADDRESS, addressId);
816
+ return safe3(this.client.call(LINK_MUTATION.SET_DEFAULT_ADDRESS, addressId));
550
817
  }
551
818
  async trackAddressUsage(addressId) {
552
- return this.client.call(LINK_MUTATION.TRACK_ADDRESS_USAGE, {
553
- address_id: addressId
554
- });
819
+ return safe3(
820
+ this.client.call(LINK_MUTATION.TRACK_ADDRESS_USAGE, {
821
+ address_id: addressId
822
+ })
823
+ );
555
824
  }
825
+ // --------------------------------------------------------------------------
826
+ // MOBILE MONEY
827
+ // --------------------------------------------------------------------------
556
828
  async createMobileMoney(input) {
557
- return this.client.call(LINK_MUTATION.CREATE_MOBILE_MONEY, input);
829
+ return safe3(this.client.call(LINK_MUTATION.CREATE_MOBILE_MONEY, input));
558
830
  }
559
831
  async deleteMobileMoney(mobileMoneyId) {
560
- return this.client.call(LINK_MUTATION.DELETE_MOBILE_MONEY, mobileMoneyId);
832
+ return safe3(this.client.call(LINK_MUTATION.DELETE_MOBILE_MONEY, mobileMoneyId));
561
833
  }
562
834
  async setDefaultMobileMoney(mobileMoneyId) {
563
- return this.client.call(LINK_MUTATION.SET_DEFAULT_MOBILE_MONEY, mobileMoneyId);
835
+ return safe3(
836
+ this.client.call(LINK_MUTATION.SET_DEFAULT_MOBILE_MONEY, mobileMoneyId)
837
+ );
564
838
  }
565
839
  async trackMobileMoneyUsage(mobileMoneyId) {
566
- return this.client.call(LINK_MUTATION.TRACK_MOBILE_MONEY_USAGE, {
567
- mobile_money_id: mobileMoneyId
568
- });
840
+ return safe3(
841
+ this.client.call(LINK_MUTATION.TRACK_MOBILE_MONEY_USAGE, {
842
+ mobile_money_id: mobileMoneyId
843
+ })
844
+ );
569
845
  }
570
846
  async verifyMobileMoney(mobileMoneyId) {
571
- return this.client.call(LINK_MUTATION.VERIFY_MOBILE_MONEY, mobileMoneyId);
847
+ return safe3(
848
+ this.client.call(LINK_MUTATION.VERIFY_MOBILE_MONEY, mobileMoneyId)
849
+ );
572
850
  }
851
+ // --------------------------------------------------------------------------
852
+ // SESSIONS
853
+ // --------------------------------------------------------------------------
573
854
  async getSessions() {
574
- return this.client.linkGet("/v1/link/sessions");
855
+ return safe3(this.client.linkGet("/v1/link/sessions"));
575
856
  }
576
857
  async revokeSession(sessionId) {
577
- return this.client.linkDelete(`/v1/link/sessions/${sessionId}`);
858
+ return safe3(this.client.linkDelete(`/v1/link/sessions/${sessionId}`));
578
859
  }
579
860
  async revokeAllSessions() {
580
- return this.client.linkDelete("/v1/link/sessions");
861
+ return safe3(this.client.linkDelete("/v1/link/sessions"));
581
862
  }
863
+ // --------------------------------------------------------------------------
864
+ // REST ALTERNATIVES (for direct API access)
865
+ // --------------------------------------------------------------------------
582
866
  async getAddressesRest() {
583
- return this.client.linkGet("/v1/link/addresses");
867
+ return safe3(this.client.linkGet("/v1/link/addresses"));
584
868
  }
585
869
  async createAddressRest(input) {
586
- return this.client.linkPost("/v1/link/addresses", input);
870
+ return safe3(this.client.linkPost("/v1/link/addresses", input));
587
871
  }
588
872
  async deleteAddressRest(addressId) {
589
- return this.client.linkDelete(`/v1/link/addresses/${addressId}`);
873
+ return safe3(this.client.linkDelete(`/v1/link/addresses/${addressId}`));
590
874
  }
591
875
  async setDefaultAddressRest(addressId) {
592
- return this.client.linkPost(`/v1/link/addresses/${addressId}/default`);
876
+ return safe3(this.client.linkPost(`/v1/link/addresses/${addressId}/default`));
593
877
  }
594
878
  async getMobileMoneyRest() {
595
- return this.client.linkGet("/v1/link/mobile-money");
879
+ return safe3(this.client.linkGet("/v1/link/mobile-money"));
596
880
  }
597
881
  async createMobileMoneyRest(input) {
598
- return this.client.linkPost("/v1/link/mobile-money", input);
882
+ return safe3(this.client.linkPost("/v1/link/mobile-money", input));
599
883
  }
600
884
  async deleteMobileMoneyRest(mobileMoneyId) {
601
- return this.client.linkDelete(`/v1/link/mobile-money/${mobileMoneyId}`);
885
+ return safe3(this.client.linkDelete(`/v1/link/mobile-money/${mobileMoneyId}`));
602
886
  }
603
887
  async setDefaultMobileMoneyRest(mobileMoneyId) {
604
- return this.client.linkPost(`/v1/link/mobile-money/${mobileMoneyId}/default`);
888
+ return safe3(
889
+ this.client.linkPost(`/v1/link/mobile-money/${mobileMoneyId}/default`)
890
+ );
605
891
  }
606
892
  };
607
893
 
@@ -1744,6 +2030,7 @@ exports.CimplifyClient = CimplifyClient;
1744
2030
  exports.CimplifyError = CimplifyError;
1745
2031
  exports.DEFAULT_COUNTRY = DEFAULT_COUNTRY;
1746
2032
  exports.DEFAULT_CURRENCY = DEFAULT_CURRENCY;
2033
+ exports.ErrorCode = ErrorCode;
1747
2034
  exports.InventoryService = InventoryService;
1748
2035
  exports.LINK_MUTATION = LINK_MUTATION;
1749
2036
  exports.LINK_QUERY = LINK_QUERY;
@@ -1761,25 +2048,41 @@ exports.PICKUP_TIME_TYPE = PICKUP_TIME_TYPE;
1761
2048
  exports.QueryBuilder = QueryBuilder;
1762
2049
  exports.SchedulingService = SchedulingService;
1763
2050
  exports.categorizePaymentError = categorizePaymentError;
2051
+ exports.combine = combine;
2052
+ exports.combineObject = combineObject;
1764
2053
  exports.createCimplifyClient = createCimplifyClient;
1765
2054
  exports.detectMobileMoneyProvider = detectMobileMoneyProvider;
2055
+ exports.err = err;
1766
2056
  exports.extractPriceInfo = extractPriceInfo;
2057
+ exports.flatMap = flatMap;
1767
2058
  exports.formatMoney = formatMoney;
1768
2059
  exports.formatNumberCompact = formatNumberCompact;
1769
2060
  exports.formatPrice = formatPrice;
1770
2061
  exports.formatPriceAdjustment = formatPriceAdjustment;
1771
2062
  exports.formatPriceCompact = formatPriceCompact;
1772
2063
  exports.formatProductPrice = formatProductPrice;
2064
+ exports.fromPromise = fromPromise;
1773
2065
  exports.getBasePrice = getBasePrice;
1774
2066
  exports.getCurrencySymbol = getCurrencySymbol;
1775
2067
  exports.getDiscountPercentage = getDiscountPercentage;
1776
2068
  exports.getDisplayPrice = getDisplayPrice;
1777
2069
  exports.getMarkupPercentage = getMarkupPercentage;
2070
+ exports.getOrElse = getOrElse;
1778
2071
  exports.getProductCurrency = getProductCurrency;
2072
+ exports.isCimplifyError = isCimplifyError;
2073
+ exports.isErr = isErr;
2074
+ exports.isOk = isOk;
1779
2075
  exports.isOnSale = isOnSale;
2076
+ exports.isRetryableError = isRetryableError;
2077
+ exports.mapError = mapError;
2078
+ exports.mapResult = mapResult;
1780
2079
  exports.normalizePaymentResponse = normalizePaymentResponse;
1781
2080
  exports.normalizeStatusResponse = normalizeStatusResponse;
2081
+ exports.ok = ok;
1782
2082
  exports.parsePrice = parsePrice;
1783
2083
  exports.parsePricePath = parsePricePath;
1784
2084
  exports.parsedPriceToPriceInfo = parsedPriceToPriceInfo;
1785
2085
  exports.query = query;
2086
+ exports.toNullable = toNullable;
2087
+ exports.tryCatch = tryCatch;
2088
+ exports.unwrap = unwrap;