pi-spi-sdk 0.1.2 → 0.1.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 (113) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/config.js +2 -1
  3. package/dist/error-handler.js +11 -8
  4. package/dist/errors.js +13 -5
  5. package/dist/examples.js +11 -9
  6. package/dist/generated/core/ApiError.js +5 -1
  7. package/dist/generated/core/ApiRequestOptions.js +2 -1
  8. package/dist/generated/core/ApiResult.js +2 -1
  9. package/dist/generated/core/CancelablePromise.js +7 -2
  10. package/dist/generated/core/OpenAPI.js +4 -1
  11. package/dist/generated/core/request.js +75 -52
  12. package/dist/generated/index.js +82 -39
  13. package/dist/generated/models/AliasCreationReponse.js +2 -1
  14. package/dist/generated/models/AliasCreationRequest.js +2 -1
  15. package/dist/generated/models/AliasReponseListe.js +2 -1
  16. package/dist/generated/models/AnnulationStatut.js +5 -2
  17. package/dist/generated/models/Champs.js +2 -1
  18. package/dist/generated/models/CompteOperation.js +5 -2
  19. package/dist/generated/models/CompteOperationListe.js +2 -1
  20. package/dist/generated/models/CompteSolde.js +5 -2
  21. package/dist/generated/models/CompteTransfertIntraReponse.js +5 -2
  22. package/dist/generated/models/CompteTransfertIntraRequest.js +2 -1
  23. package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.js +5 -2
  24. package/dist/generated/models/DemandePaiementConfirmationReponse.js +5 -2
  25. package/dist/generated/models/DemandePaiementConfirmationRequest.js +2 -1
  26. package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.js +2 -1
  27. package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.js +2 -1
  28. package/dist/generated/models/DemandePaiementConsultationReponse.js +5 -2
  29. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.js +2 -1
  30. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.js +2 -1
  31. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.js +2 -1
  32. package/dist/generated/models/DemandePaiementEnMasseRequest.js +2 -1
  33. package/dist/generated/models/DemandePaiementEnMasseStatutReponse.js +5 -2
  34. package/dist/generated/models/DemandePaiementListe.js +2 -1
  35. package/dist/generated/models/DemandePaiementListeItem.js +5 -2
  36. package/dist/generated/models/DemandePaiementReponse.js +2 -1
  37. package/dist/generated/models/DemandePaiementReponseRequest.js +5 -2
  38. package/dist/generated/models/DemandePaiementRequest.js +5 -2
  39. package/dist/generated/models/DemandePaiementRequestBase.js +2 -1
  40. package/dist/generated/models/DemandePaiementRequestCategorie.js +5 -2
  41. package/dist/generated/models/DemandePaiementStatut.js +5 -2
  42. package/dist/generated/models/DemandePaiementStatutRaison.js +5 -2
  43. package/dist/generated/models/ListeMeta.js +2 -1
  44. package/dist/generated/models/Paiement.js +5 -2
  45. package/dist/generated/models/PaiementAnnulationMotif.js +5 -2
  46. package/dist/generated/models/PaiementAnnulationReponseRequest.js +2 -1
  47. package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.js +2 -1
  48. package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.js +2 -1
  49. package/dist/generated/models/PaiementAnnulationRequest.js +2 -1
  50. package/dist/generated/models/PaiementAnnulationStatutRaison.js +5 -2
  51. package/dist/generated/models/PaiementEnMasseConfirmationRequest.js +2 -1
  52. package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.js +2 -1
  53. package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.js +2 -1
  54. package/dist/generated/models/PaiementEnMasseReponseStatut.js +5 -2
  55. package/dist/generated/models/PaiementEnMasseRequest.js +2 -1
  56. package/dist/generated/models/PaiementImmediatConfirmationReponse.js +5 -2
  57. package/dist/generated/models/PaiementImmediatConfirmationRequest.js +2 -1
  58. package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.js +2 -1
  59. package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.js +2 -1
  60. package/dist/generated/models/PaiementImmediatReponse.js +5 -2
  61. package/dist/generated/models/PaiementImmediatRequest.js +2 -1
  62. package/dist/generated/models/PaiementListe.js +2 -1
  63. package/dist/generated/models/PaiementRequest.js +2 -1
  64. package/dist/generated/models/PaiementStatut.js +5 -2
  65. package/dist/generated/models/PaiementStatutRaison.js +5 -2
  66. package/dist/generated/models/Problem7807.js +2 -1
  67. package/dist/generated/models/RefDocType.js +5 -2
  68. package/dist/generated/models/RetourStatut.js +5 -2
  69. package/dist/generated/models/RetourStatutRaison.js +5 -2
  70. package/dist/generated/models/WebhookCreationRequest.js +2 -1
  71. package/dist/generated/models/WebhookCreationResponse.js +2 -1
  72. package/dist/generated/models/WebhookData.js +2 -1
  73. package/dist/generated/models/WebhookEvent.js +5 -2
  74. package/dist/generated/models/WebhookEventsList.js +2 -1
  75. package/dist/generated/models/WebhookList.js +2 -1
  76. package/dist/generated/models/WebhookModificationRequest.js +2 -1
  77. package/dist/generated/models/WebhooksEvents.js +5 -2
  78. package/dist/generated/services/AliasService.js +10 -6
  79. package/dist/generated/services/ComptesService.js +10 -6
  80. package/dist/generated/services/DemandeAnnulationService.js +9 -5
  81. package/dist/generated/services/DemandesDePaiementEnMasseService.js +10 -6
  82. package/dist/generated/services/DemandesDePaiementService.js +12 -8
  83. package/dist/generated/services/NotificationService.js +12 -8
  84. package/dist/generated/services/PaiementEnMasseService.js +10 -6
  85. package/dist/generated/services/PaiementImmediatService.js +12 -8
  86. package/dist/generated/services/RetoursdeFondsService.js +8 -4
  87. package/dist/index.d.ts +1 -0
  88. package/dist/index.js +57 -8
  89. package/dist/qrcode/index.d.ts +62 -0
  90. package/dist/qrcode/index.js +541 -0
  91. package/dist/qrcode/logo.d.ts +3 -0
  92. package/dist/qrcode/logo.js +142 -0
  93. package/dist/query-builder.js +5 -1
  94. package/dist/sdk.d.ts +16 -0
  95. package/dist/sdk.js +81 -41
  96. package/dist/services/alias.d.ts +7 -3
  97. package/dist/services/alias.js +13 -15
  98. package/dist/services/base.d.ts +12 -1
  99. package/dist/services/base.js +54 -4
  100. package/dist/services/comptes.js +6 -2
  101. package/dist/services/demandes-annulation.js +6 -2
  102. package/dist/services/demandes-paiement-en-masse.d.ts +4 -110
  103. package/dist/services/demandes-paiement-en-masse.js +21 -116
  104. package/dist/services/demandes-paiement.d.ts +5 -1
  105. package/dist/services/demandes-paiement.js +7 -5
  106. package/dist/services/paiements-en-masse.js +6 -2
  107. package/dist/services/paiements.js +6 -2
  108. package/dist/services/retours-fonds.js +6 -2
  109. package/dist/services/webhooks.js +6 -2
  110. package/dist/types/alias.js +12 -7
  111. package/dist/utils/constants.js +12 -9
  112. package/dist/utils/index.js +20 -9
  113. package/package.json +6 -5
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_PISPI_LOGO_DATA_URL = exports.PISPI_QRCODE_LOGO_DATA_URL = exports.PISPI_AMBER_LOGO_DATA_URL = void 0;
4
+ const AMBER_LOGO_SEGMENTS = [
5
+ 'iVBORw0KGgoAAAANSUhEUgAAAMAAAADACAMAAABlApw1AAACUlBMVEUAAAD7uQD7uQD7uQD7uQD7uQD7',
6
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
7
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
8
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
9
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
10
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
11
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
12
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
13
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
14
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7',
15
+ 'uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQD7uQBqFsbfAAAAxXRSTlMAAAUpaqDF2uPq7ezn',
16
+ '4djPzsvDwsC3trCdfVEdAgtJn977/vXUlUQIQK7087FHHJ7vKBmsLBqtyi8bMC3WuSs+v9EjvLM0ILW9',
17
+ 'zR4yxh8Xphb9shil+Ov8bzND4BUh14g3pKgmmQdL+YsO7j8PupYKVSVKaKI15cETLnpkca+n08QN5gOX',
18
+ 'XV5gTV9TbooU0HTdQYmOewaMIk8E6PZc0tyakN9CTPJaZcgBRngJJDs4gEhY8E5SEpwREGHi5JuU2/dw',
19
+ 'ofG+YwjdAcYAAAZRSURBVHja7Z37XxRVGIfnhULYFQQlNJTLriGiSSiBGGFihVwqm0BJMfOGS2aE5C2z',
20
+ 'q0ghGqXdyBQrIaKbUWSl2fX8X82wrCyX2Xln59zm8znfn4fZ59nznrOzh3POalqcgYTEO+5MmpNsJsXn',
21
+ 'nxbf3OTJpM6ZSNq89PFkzF9gJvOuLCMLF92dvXgJxMsRL35Obl5+gNBJcOk9BctygKMDFC4vWkGJfiIr',
22
+ '713FTwGK7yuhiz+uULSakwGsKaWPb2bB/VwMoKycDT8hays4GDDk52LAlJ+9AcA6pvyGwQNMDaAyM8hW',
23
+ 'gDy4jKEBlFUxxjcybz0zA8b1H8n8REYGnPiZGXDjZ2TAkZ+FAUBlFevxJzoZD1E2gOINHPGNVNMdi7jW',
24
+ 'TzhUq0gAv2FA7+laCD8hGzZSMhDET8jDVAwAEh/hOf5EJ/NRCgZQkyQI30i1+54srH7CcV1FgvldGwjn',
25
+ 'd2fA/vsXWwNj/Nkkmt5MbZxPFQZ/nWj2cNLjGosA6rNEk0eSVe/cwOCXon7C2eTYQC5+5way8Ts1ANgo',
26
+ 'Gb9h4GA0BajIEM07MxnoWUejfjjMXzlPVT1OQL76j2RhGcZAXn5CyhEGMvNjDABqJOY3DNbF7skADY+J',
27
+ 'ZoyZYGYlxOR/nPP8lfNUxagiues/Eut+4A1+awOv8BsGT4Cn+Ulw85MwC3+D9P33dvSnZsybgtD5K+ep',
28
+ 'agSv1k84waYpVeQ5/mkGTviDW0q28omvGW2A5/cXPb1qWwWXVG5vsWuDHRMG8AySf+ezuwq5rQuDNWk2',
29
+ 'OPrucE+GnD0o/EDTXq7L2mwFCNnXCmYH2L8Swx9qe47rykKMwIHnTYGDL6AaoD2H78pIjAApfxE06NiC',
30
+ '4U87xHllJ0pgRSdohagVfIGXeNY/WoAcTtCOHMUIHDvOfWktSiD1Ze2EjrhOf4V3AyAFmk9qr2Ia4Ggi',
31
+ 'b36kAHlNex1z2RtvyiqQrr2F8jwlq0Cy5sNc1sW9C2AF/Jofc1k7d34loASUgBJQAkpACSgBeQRqT3ff',
32
+ 'ztvbLGyg9Z2ebkR61lvdIOfM5A1O986lKECCkyFnrV7/3LvR11mG9FndoL5lygvRFIhOWwwBVKwFUh3D',
33
+ 'KAEloASUgBJQAkpACSgBJaAElIASUAJKQAkoASWgBJSAElACSkAJKAFXAsXveVygtcnbAhoklqPWcUsr',
34
+ 'oEHO+33n28K5gKonIQIfoLYFf4ja1SBE4CPMGkiZBXZjzjiWWeAYZiuCzAItH3tcIPSJxwWMOyA298ss',
35
+ 'sBaxnUJqgaW5Hhcgef22BnILfLrL4wKk1PajAC2A2gBBXeDiZ3YDEVogRYgAuWS3sQ4tcFmMABlIABoC',
36
+ 'yVqmIIGSDptTUnACddoVQQLk8y9iGiAFNmtfXhUkQFoGY23uwgmEhrQdX4kSIL7eVnApkL9agxPCBMjF',
37
+ 'K42WZYQTyOvXYK/TcYieAAnWNgyDC4GrX4MGMILZz8pGwOgIIxZnNqEE9nxj7klffEmgANGr+76drTNj',
38
+ 'BPzfmX8IsN/ZlKSlwPF4BAyF/KaT35/rn9YQCIHQD+EPQ4Bs1K7uSEqvdc6a3B/z4xIwEhytLj3fO5gd',
39
+ 'fbef7E4b1AsiT4QAPzsxaA5ZxeX51Hpgyt1suqa+aGzybBJnBlIkmt+LBlP5TYMzzp+rJeI3DJYMoTbd',
40
+ 'yBH98Mx5DS9V0cz331sGs/N7x8CK3ysG1vzjBtL35OYY/KbB0FbRhDb8v1yP/VV6WO4qChT8ajcdI3U/',
41
+ 'CBQctJ+TlNgAwy+zAY5fXgMsv2nw2wHRtDOjD+DPiYNTHdK1QaD9OppfxirC14+cBk75ZTNwzi+XQTz8',
42
+ 'psHgqGjycPSu+M6phIRBKdog0DUWF78sVRRf/chj4IZfBgN3/OIN3PKbBh0Cn4v0Avfn5EJ/z+/C3v8B',
43
+ 'J88/1m3Q6XxJMx1+1/Uj1oAWvygDevxiDGjyj/8fjfOMF11+c76o+wZX/pt28z9yVxHt95+3AQt+ngZs',
44
+ '+PkZsOIfN0j2Mr9p0M18NG2+yY7fHE0drquI4/2nPX5ObwO2/YBl/fAwYM/P1iDwB3t+0+DaLTb8f57l',
45
+ 'c8g+wPb0AAP+lBFev3ID0PjXTtq/XT/695EETvymwnBNX9I/9OhDl/ctb+WHH26FsdwL/95K8fld50Zd',
46
+ '03+H7Ld0WOR/rIwlUtPE/X8AAAAASUVORK5CYII=',
47
+ ];
48
+ const OCTO_QRCODE_LOGO_SEGMENTS = [
49
+ 'iVBORw0KGgoAAAANSUhEUgAAAPYAAAD6CAYAAACS0LqzAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAA',
50
+ 'AAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAA9qADAAQAAAABAAAA+gAA',
51
+ 'AAA4bIViAAAVTklEQVR4Ae2dW2xcx3nHZ5bcpVYXmEEkBPYDuXmI5ASoJVVGEyCwRD4YsFE5lquXpK0Q',
52
+ 'CYUvDwYiG0iARkEkAbGLGkVsoyrgSwNLdYq4LRQ7qQEH9YNoGQGSoJIYP0ixXrr0g51ADkJDIpdcUns6',
53
+ 'H9cUd8nl7jln5/LNzH8AWrvnMueb3zc/z+w5Z89KgZKaQFKrVRbEzTE5UNjZaIiKFGLXqp0rq94zeptM',
54
+ 'CyHVn/ZS1VVjIsS0lCsxSplM31xsTA3IgcliuTyh6zgx1KP6Jko3AkmSDM/XZg4XCoUH1XZj3bbFOuME',
55
+ 'JkTSOFPcsOmN1v8BGD+qhweA2OskjYRerM99K0kaR9VIN7zOZljshkBVyGSi2CiclOVy1U0IvI8KsTvk',
56
+ 'Z3F+5kAjEa9A6A5weC2qNoR4fsOGjc/xCst9NBC7JQc0Si/UZ58ViTzcshgv+ROYKCbyCEbvlURB7E9Z',
57
+ '1NSJsYFC8rpI1pwQW6GFV5wJVEVh8KFSqTTJOUhbsUFsRXpJapmcUy8rtsDjOAYISDEt5OA45FYfIg3g',
58
+ '9apKSO1VunoHC7mXGEUtNqTu7YmXW0DueEdsSO2lsumDjlzuKEdsSJ3eD6+3jFju6MSG1F6rmif4qroU',
59
+ 'Nh7bpbCoxF66Tj1fu6R6RyVPD8E+3hKITu6Ct6nKGHjz5pMaLmll5BbI5pUFdTmTvsQTSHt6NiOKEfuW',
60
+ '1Lj5pGeHCHyDaEbu4MWG1IGrmr15UcgdtNiQOnuvj2SP4OUOVmxIHYmi+ZsZtNxBig2p8/f2yPYMVu7g',
61
+ 'xIbUkanZf3ODlDs4sevzs5fw1cv+e3tkNQQnd1DXsevzM69A6siU1NPc4K5zBzNiN6XGk0/09PNoawlm',
62
+ '5A5CbEgdrYgmGl4tDpV3+/4UVO+n4pDaRN+Ous7KQr12jk7C+kzB6xEbUvvc9ZjHLsVksVQe93Xk9lZs',
63
+ 'blLPXJ8WVy68u/R37fdTYurqe0s9d/b6J4LWcSnb7hjVHsq227PXue32ETGyfaeobL9LfHHPPdpj0lKh',
64
+ 'x3J7KTYnqa9cOC/eeu1floTmJLCWjm2pkk1bhsWefQ+Ig498V+T5n4TRMD2V2zuxF+Zmn02EOGo0mSkq',
65
+ 'v/bRlHjx5KPishIbRR+BvfsP8RPcQ7m9EnthvnZcndQ4oa8b5avprddOiZ++9DSrKXa+lvDd6+Ajx8TB',
66
+ 'h4/xCdAzub0Rm4vUZ19+Spx96Sk+HS7gSO4ee0A8+v0XBU3VWRSZnC4NbTrCIpYeQXghNqTukcWAV4+q',
67
+ 'k2vfe+EXkDtjjtmLDakzZjTAzSF39qSyFhtSZ09oqHtA7myZZSs2pM6WyBi2htzps8xSbEidPoGxbQm5',
68
+ '02Wc3b3ikDpd4mLdiu7o+8Fj9/G51Kh+S72u7q3glg9WYkNqbt2DZzzs5FY3TFHf5USLzVQcUnPqFn7E',
69
+ 'wm1arr4wckJ95fMkB3osxIbUHLqCnzFA7s55cy42pO6cGCxNTwByr2XlVGxIvTYhWJKPAORu5+ZMbEjd',
70
+ 'ngi8658A5F5h6ERsSL2SALzSSwByN3laF7s+N/ctIRrP6U1n9trwLa3szHzZA3ILYVXsxXr9m43G4mnX',
71
+ 'HQRSu86A+ePHLrc1sSG1+c6MI7QTiFluK2JD6vYOh3f2CMQqt3GxIbW9TowjdSZAcv/Dv/+q80oHS23c',
72
+ 'oWb0XnEuUr/6w+/gcUYOOjCXQ9K95fTgSS6FnttHbpiMx9iIzUXqF1RCz7/5qkmGqNsTAvvUE1AfPf4i',
73
+ 'm2gLhcHDg6XSGRMBGREbUptIFerUQSAWubWLvVCrjSUyOacjCf3UgZG6H3ph7xuD3Fo/Y9dv3NiVyMbr',
74
+ 'rrsFpHadAd7Hf0d9NOP0mZvu7dD9mVvbiE1Si0GpRmrp9CHQkJq3VJyiC3nk1iI2pObUXRFLFgLc5JaJ',
75
+ 'HC+WyxNZ2tBp276n4pC6E1Ys84UAt2l5Ukher9fru/rl19eIDan7xY/9uRBgNXJLMS3k4HipVJrMyye3',
76
+ '2JA6L3Lsx5VASHLnEhtSc+2aiKtfAqHInVnsWq1WGZCNSzj73W8Xwv5cCYQgd6aTZ02p6eYTXNLi2ikR',
77
+ 'V/8EWJ1QS8SwSBbPZT2hlnrEXpFaVPpHl78GXKfOzw57ZiPAauQWolpUl8JkuVxN04pUYkPqNCixTYgE',
78
+ 'fJW7p9iQOsTuijZlIeCj3F3FhtRZ0o9tQybgm9zrig2pQ+6maFseAj7J3VFsSJ0n7dgnBgK+yL1GbEgd',
79
+ 'Q/dEG/shwE7uofJu9Ry16dY2rbmOXZCNZ9UGldaNbL/GJS3bxHG8LARYXedWri7UZ8nZttImNv1KhxTy',
80
+ 'QNsWlt9AasvAcbhcBFjJncjDi/Mzbd7emopzmIJD6lx9DDs5JMBmWq6+EVYslT+/PCW/NWIPFBrHFZ+K',
81
+ 'K0aQ2hV5HLcfAmxGbnXraX1u9uhyW5ZG7E9H6/9bXmj7X0htmziOp5sAi5G7ZdReGrEHxM0x3Q1NWx+k',
82
+ 'TksK23EmwGLkVqP2/HztMHFqTsVlgabh1gukto4cBzRIgIPcSugHqYnS1TQcUhvsYajaKQHX0/LiUPkz',
83
+ 'BRfTcEjttN/h4IYJuB65F+ZmDhREQe4z3M626iF1Gw68CZSAU7ml2DUokkJFiMQKXl+k3rhBiK/uFGLk',
84
+ 'c0LcOSJEWb2nZSj+EPjle0L86Odu4yW5qdj+IcBGQ1YGldSVpaMb/s/Zl59i/6uXW4fVmYe9QuzeDpEN',
85
+ 'd4doqie5t94xIg4+fMxamwsFuVOJbf6mFJL67EtPWWtYngPd+2Ul9T0QOg877NOdAPX9jVtuE/d//fHu',
86
+ 'G+pbW7l155m+OttruvbRFHupaZT+xr2Quj1zeKeTAMlNLtgqxsXm9KuGnaCS1PSHAgImCcxe/8TqL3wa',
87
+ 'FfvKhfPisvrjWugEGaTmmp3w4iIXLl9410rDjIp99uWnrTQiz0GWTpSpz9QoIGCTwFuvnbJyOGNi0+cJ',
88
+ 'zqM1jdQkNwoI2CRAs9iZ69PGD2lM7CuWphx5CNE1abqkhQICtgnQZ+0LE28aP6wxsf934r+NB5/3ALt3',
89
+ '4Ax4XnbYr38CU1fV3TOGizGxP/7oA8Oh56/+ztH8+2JPEOiXwOWL5k+gGRPb5jW7rKC33pZ1D2wPAvoI',
90
+ 'zPr8GdvGCYK8qCF2XnLYTwcBG4OesRFbBwDUAQIgkI8AxM7HDXuBAGsCEJt1ehAcCOQjALHzccNeIMCa',
91
+ 'AMRmnR4EBwL5CEDsfNywFwiwJgCxWacHwYFAPgIQOx837AUCrAlAbNbpQXAgkI8AxM7HDXuBAGsCEJt1',
92
+ 'ehAcCOQjALHzccNeIMCaAMRmnR4EBwL5CNBzxaMrF69mf9DCZ9VXPW19j/vS+0LMzvNOy44Re4+Wol/1',
93
+ 'yFp+Z+9Jv1lDs7J9lGL/5H+ys/3qXfbEfvs3QnDvmH/3NXtiu/6pnuy9xf0emIq7zwEiAAHtBCC2dqSo',
94
+ 'EATcE4DY7nOACEBAOwGIrR0pKgQB9wQgtvscIAIQ0E4AYmtHigpBwD0BiO0+B4gABLQTgNjakaJCEHBP',
95
+ 'AGK7zwEiAAHtBCC2dqSoEATcE4DY7nOACEBAOwGIrR0pKgQB9wQgtvscIAIQ0E4AYmtHigpBwD0BiO0+',
96
+ 'B4gABLQTgNjakaJCEHBPAGK7zwEiAAHtBCC2dqSoEATcE4DY7nOACEBAOwGIrR0pKgQB9wQgtvscIAIQ',
97
+ '0E4AYmtHigpBwD0BiO0+B4gABLQTgNjakaJCEHBPAGK7zwEiAAHtBCC2dqSoEATcE4DY7nOACEBAOwGI',
98
+ 'rR0pKgQB9wQgtvscIAIQ0E4AYmtHigpBwD0BiO0+B4gABLQTgNjakaJCEHBPAGK7zwEiAAHtBCC2dqSo',
99
+ 'EATcE4DY7nOACEBAOwGIrR0pKgQB9wQgtvscIAIQ0E4AYmtHigpBwD0BiO0+B4gABLQTgNjakaJCEHBP',
100
+ 'AGK7zwEiAAHtBCC2dqSoEATcE4DY7nOACEBAOwGIrR0pKgQB9wQgtvscIIIeBDZu6LEBVq8hALHXIMECbgQe3MstIv7xDPIPERHG',
101
+ 'TuDev2gSePs3Qnw8HTuNdO2H2Ok4YSvHBEhu+nt/Kl0gs3NC/PN/pds2xK0gdohZDbhNO0bTNS72kR2f',
102
+ 'sdP1E2y1ikDs4qzCwe4txGaXEj8Cgti88wSxeeeHbXR//IRtaAhMEYDY6Aa5CHzwh1y7YSdLBCC2JdCh',
103
+ 'HYbOOv8Rl57YphVis00N/8AuXuUfY6wRQuxYM6+h3Zfe11AJqjBCAGIbwRpHpb9TN4vQlByFHwGIzS8n',
104
+ 'XkVEt3mi8CMAsfnlxKuISGyM2vxSBrH55cSriEhqjNr8Ugax+eXEu4gwavNLGcTmlxPvIqJR+2fvehd2',
105
+ '0AEbE3vTluGgwaFx7QTe/rUQdJYchQcBY2Jv3HIbjxYiCmsETqnvP+PLIb1xb7s95XdPe1e17hbGxB79',
106
+ 'wl3rHhQrwiRAU/Jnfoyz5L2yu+0Oj8X+4p57erUP6wMkQCM25O6eWBuDnrER+0sQu3t2A177we8hd7f0',
107
+ '3mnBDWNij27fKb60B4+X7JbgkNeR3Cf+FZ+5O+XYxqBnTGxq0J59+zu1C8siIbA8Lce3wFYSvnf/3wob',
108
+ 'V4yMir1v/yFh40TBCja84kaA5D71n0L85G2M3pSbg48cs5IiJXZi7OvydMnr0BPPWGkIDsKbAF3nppNq',
109
+ 'v3yPd5wmo6PR2salLmqDElsaE5sOcPfYA0t/9BolbgI0ev/o50J851RTcHofSyGhbY3Wiml1UEoxmSSi',
110
+ 'YhLwY99/Sfz91a+Iax/i1iSTnH2pe1lwivfPdwixW/3tGBFi67AvLcge56En/9HaaK2iqw7evCneKRTE',
111
+ 'geyhpt+DpuTfe+EX4geP3eet3B+rp3LamkbG9DXIi+opLPRHhcQe+ZwQn1X/blU3LvbzY3ycGB58+Jia',
112
+ 'tX6t2Ugr/238Vi7UamOJTM7ZON61j6a8ltsGIxwjLAIktcUpeBNeIo9IelWfm/mT+qxtZSIEucPquGjN',
113
+ '+gScSK3CKSby883LXY3kzPrh6V1DJxFoWo7LYHq5ojZeBFxJra5yTcpyuboktpQDb9jEArlt0saxbBNw',
114
+ 'J7VqaVJ4ntq7JHaxXJ5QU3H1Z69AbnuscSR7BJxKrZpZFGKCWtuciqsXMhEnaYHNArlt0saxTBNwLbWQ',
115
+ '8jRNw6mdt8SmUTsRwuqUnAKA3EQBxXcCzqVW166LjZXB+ZbYBLY0NH9E/VOl1zYL5LZJG8fSTYCB1Oqz',
116
+ 'tTy5PFpT+9rElvIz01JdA9Pd8DT1Qe40lLANNwIspFZT8FK5fLqVTZvYtKJ5Ik080bqRrdeQ2xZpHEcH',
117
+ 'ARZSr5qCL7drjdi0orRh43NJklg/mUbHhtxEAYU7ATZSJ3K8dQq+zE0uv+j073xt5oSU8nindaaX4Q41',
118
+ '04RRf14C3KWmdnUVmzaA3EQBBQSaBHyQmiLtKTZtBLmJAkrsBHyRmvKUSmzaEHITBZRYCfCQOpkuJoXd',
119
+ 'nT5Tr85Lx5Nnqzei90PlTSdwQq0TGSwLnQAXqcVi0vFEWSf+qUfs5Z0xci+TwL8xEOAkdWnz5sm0zDOL',
120
+ 'TRVD7rR4sZ3PBHyVmpjnEpt2hNxEASVUAj5LTTnJLTbtDLmJAkrsBHyRmvKUSmzaEHITBZRYCfCQOpkuJoXd',
121
+ 'AMXmnJLTbtDLmJAkpoBHyXmvLRl9hUwXztxmkpC9+k17YLr3LaJmz8e',
122
+ 'pG4ytvoZe3Va6TP3TfUTJWp5dfU6G+9xQs0GZXvHgNQrrJ2O2Mth1Gq1yoBM1B1qGLmXmeDfbAQgdTsv',
123
+ 'FmJTSJC7PTF4l54ApF7Lio3YFBrkXpsgLOlOAFJ35sNKbAoRcndOFJauJQCp1zJZXsJObAoMci+nB/+u',
124
+ 'RwBSr0emuZyl2BQa5O6euJjXQure2WcrNoUOuXsnMLYtIHW6jLMWm5oAudMlMoatDj35jLj/G487byrd',
125
+ '++3iNtEsDWcvNjUGcmdJaZjbPnb8RbF3/yHnjfNBaoLkhdgUKOQmCnEWSJ09796ITU2D3NkT7PsekDpf',
126
+ 'Bl0Sm5roWu7Z65+If/vht8X5N3+cjzj2SkWA7uN/8p/+Q4xuvyvV9iY38mX63crAO7EpeNdyUwzvvPmq',
127
+ '+OnLT4trH07RWxSNBO7/+uPirx75rti0ZVhjrfmq8lFqaqmXYlPgHOSmOCA4Uei/kMR7//JvxH1//big',
128
+ '0ZpDod+io5+t4hBL1hi8FZsaWr9xY5cYlPTccuf/a5+6+p64fOG8uHLxXfHxhx8I+q73zPXprPmIZvtt',
129
+ 'd4wuCTz6hT8Td489IEbUlJvDCL2cAJ+lpjZ4LTY1gJPcFA+K/wR8l5oy4L3Y1AjITRRQdBAIQWriEITY',
130
+ '1BDITRRQ+iEQitTEIBixqTGQmyig5CEQktTU/qDEpgZBbqKAkoVAaFJT24MTmxoFuYkCShoCIUpN7Q5S',
131
+ 'bGoY5CYKKN0IhCo1tTlYsalx9VrtsJDJK/QaBQTaCEgxWSyVx6WUQd5sELTYlEjI3dad8YYIBC51s4kR',
132
+ 'pBpyR5DktE2MQOpoxKaGQu60PT/g7SKRmjIY/FS8tZtC7lYakb2OSGrKbFRiU4MhN1GIrEQmNWU3OrGp',
133
+ '0ZCbKERSIpSaMhul2NRwyE0UAi+RSk1Zdfozui67ValcPk1Px3AZA45tkEDEUhPVaMWmxtOzoSE3kQiu',
134
+ 'VIsN+VCoN5+kyVa0U/FWOPO1mROqExxvXYbX3hKoFhM5Lsvlqrct0BA4xP4UYn1u9qh6+awGpqjCFYHI',
135
+ 'p9+t2KOeireCKG3Y+JxYbOxWy6qty/HaFwKN50O+9ztrFiB2C7HS5s2TN9U0Tn3uPtOyGC9ZE0imC3Lg',
136
+ 'odKGzUdj/ky9OkWYiq8m8un7hVptLJENNTWXu9bZBIudEkimk0Q8TzMtCL02ERB7LZO2JSR4QzQOSyke',
137
+ 'VJIPt63EGxcEJtSM6h0I3R09xO7Op21tcxRPDijBdwrRIMkrkL0Nke43VSGSaSELk42byW+HpHwj9rPd',
138
+ 'aQH/P0RzGOBNa7tyAAAAAElFTkSuQmCC',
139
+ ];
140
+ exports.PISPI_AMBER_LOGO_DATA_URL = `data:image/png;base64,${AMBER_LOGO_SEGMENTS.join('')}`;
141
+ exports.PISPI_QRCODE_LOGO_DATA_URL = `data:image/png;base64,${OCTO_QRCODE_LOGO_SEGMENTS.join('')}`;
142
+ exports.DEFAULT_PISPI_LOGO_DATA_URL = exports.PISPI_QRCODE_LOGO_DATA_URL;
@@ -1,7 +1,10 @@
1
+ "use strict";
1
2
  /**
2
3
  * Query builder utility for constructing filter, pagination, and sorting parameters
3
4
  */
4
- export class QueryBuilder {
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.QueryBuilder = void 0;
7
+ class QueryBuilder {
5
8
  constructor() {
6
9
  this.params = {};
7
10
  this.filters = new Map();
@@ -185,3 +188,4 @@ export class QueryBuilder {
185
188
  ].includes(value);
186
189
  }
187
190
  }
191
+ exports.QueryBuilder = QueryBuilder;
package/dist/sdk.d.ts CHANGED
@@ -61,6 +61,22 @@ export declare class PiSpiSDK {
61
61
  * Handles payment cancellation requests
62
62
  */
63
63
  readonly demandesAnnulation: DemandesAnnulationService;
64
+ /**
65
+ * QR Code utilities
66
+ * Generate and validate BCEAO compatible QR codes
67
+ */
68
+ readonly qr: {
69
+ createQrPayload: typeof import("./qrcode").createQrPayload;
70
+ buildPayloadString: typeof import("./qrcode").buildPayloadString;
71
+ computeCrc16: typeof import("./qrcode").computeCrc16;
72
+ generateQrCodeSvg: typeof import("./qrcode").generateQrCodeSvg;
73
+ isValidPispiQrPayload: typeof import("./qrcode").isValidPispiQrPayload;
74
+ payload: typeof import("./qrcode").buildPayloadString;
75
+ svg: typeof import("./qrcode").generateQrCodeSvg;
76
+ validate: typeof import("./qrcode").isValidPispiQrPayload;
77
+ raw: typeof import("./qrcode").createQrPayload;
78
+ };
79
+ private _config;
64
80
  /**
65
81
  * Initialize the PI-SPI SDK
66
82
  *
package/dist/sdk.js CHANGED
@@ -1,26 +1,64 @@
1
+ "use strict";
1
2
  /**
2
3
  * Main PI-SPI SDK class
3
4
  *
4
5
  * This is the entry point for interacting with the PI-SPI API.
5
6
  * Provides organized access to all API services.
6
7
  */
7
- import { handleApiError } from './error-handler';
8
- import { ComptesService } from './services/comptes';
9
- import { AliasService } from './services/alias';
10
- import { WebhooksService } from './services/webhooks';
11
- import { DemandesPaiementService } from './services/demandes-paiement';
12
- import { DemandesPaiementEnMasseService } from './services/demandes-paiement-en-masse';
13
- import { PaiementsService } from './services/paiements';
14
- import { PaiementsEnMasseService } from './services/paiements-en-masse';
15
- import { RetoursFondsService } from './services/retours-fonds';
16
- import { DemandesAnnulationService } from './services/demandes-annulation';
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.handleApiError = exports.PiSpiSDK = void 0;
43
+ const error_handler_1 = require("./error-handler");
44
+ Object.defineProperty(exports, "handleApiError", { enumerable: true, get: function () { return error_handler_1.handleApiError; } });
45
+ const comptes_1 = require("./services/comptes");
46
+ const alias_1 = require("./services/alias");
47
+ const webhooks_1 = require("./services/webhooks");
48
+ const demandes_paiement_1 = require("./services/demandes-paiement");
49
+ const demandes_paiement_en_masse_1 = require("./services/demandes-paiement-en-masse");
50
+ const paiements_1 = require("./services/paiements");
51
+ const paiements_en_masse_1 = require("./services/paiements-en-masse");
52
+ const retours_fonds_1 = require("./services/retours-fonds");
53
+ const demandes_annulation_1 = require("./services/demandes-annulation");
54
+ const qrcode_1 = require("./qrcode");
17
55
  // OpenAPI will be imported from generated code after running pnpm run generate
18
56
  // For now, we'll use a dynamic import approach
19
57
  let OpenAPI;
20
58
  // Try to import generated OpenAPI config
21
59
  async function loadOpenAPI() {
22
60
  try {
23
- const generated = await import('./generated');
61
+ const generated = await Promise.resolve().then(() => __importStar(require('./generated')));
24
62
  return generated.OpenAPI;
25
63
  }
26
64
  catch {
@@ -32,7 +70,7 @@ async function loadOpenAPI() {
32
70
  };
33
71
  }
34
72
  }
35
- export class PiSpiSDK {
73
+ class PiSpiSDK {
36
74
  /**
37
75
  * Initialize the PI-SPI SDK
38
76
  *
@@ -49,45 +87,48 @@ export class PiSpiSDK {
49
87
  constructor(config) {
50
88
  // Initialize OpenAPI configuration synchronously
51
89
  // Note: This will work better after code generation when OpenAPI is properly exported
90
+ /**
91
+ * QR Code utilities
92
+ * Generate and validate BCEAO compatible QR codes
93
+ */
94
+ this.qr = qrcode_1.QRCode;
95
+ // Default config object
96
+ this._config = {
97
+ BASE: config.baseUrl || 'https://sandbox.api.pi-bceao.com/piz/v1',
98
+ TOKEN: config.accessToken,
99
+ HEADERS: {
100
+ ...config.headers,
101
+ },
102
+ };
52
103
  try {
53
104
  // In a real scenario, we'd import this properly
54
105
  // For now, we'll set it up directly
55
- OpenAPI = {
56
- BASE: config.baseUrl || 'https://sandbox.api.pi-bceao.com/piz/v1',
57
- TOKEN: config.accessToken,
58
- HEADERS: {
59
- ...config.headers,
60
- Authorization: `Bearer ${config.accessToken}`,
61
- },
62
- };
106
+ OpenAPI = this._config;
107
+ // Also maintain the module level variable for backward compat if any
63
108
  }
64
109
  catch {
65
110
  // Fallback configuration
66
- OpenAPI = {
67
- BASE: config.baseUrl || 'https://sandbox.api.pi-bceao.com/piz/v1',
68
- TOKEN: config.accessToken,
69
- HEADERS: {
70
- ...config.headers,
71
- Authorization: `Bearer ${config.accessToken}`,
72
- },
73
- };
111
+ OpenAPI = this._config;
74
112
  }
75
- // Initialize services
76
- this.comptes = new ComptesService();
77
- this.alias = new AliasService();
78
- this.webhooks = new WebhooksService();
79
- this.demandesPaiement = new DemandesPaiementService();
80
- this.demandesPaiementEnMasse = new DemandesPaiementEnMasseService();
81
- this.paiements = new PaiementsService();
82
- this.paiementsEnMasse = new PaiementsEnMasseService();
83
- this.retoursFonds = new RetoursFondsService();
84
- this.demandesAnnulation = new DemandesAnnulationService();
113
+ // Initialize services with config
114
+ this.comptes = new comptes_1.ComptesService(this._config);
115
+ this.alias = new alias_1.AliasService(this._config);
116
+ this.webhooks = new webhooks_1.WebhooksService(this._config);
117
+ this.demandesPaiement = new demandes_paiement_1.DemandesPaiementService(this._config);
118
+ this.demandesPaiementEnMasse = new demandes_paiement_en_masse_1.DemandesPaiementEnMasseService(this._config);
119
+ this.paiements = new paiements_1.PaiementsService(this._config);
120
+ this.paiementsEnMasse = new paiements_en_masse_1.PaiementsEnMasseService(this._config);
121
+ this.retoursFonds = new retours_fonds_1.RetoursFondsService(this._config);
122
+ this.demandesAnnulation = new demandes_annulation_1.DemandesAnnulationService(this._config);
85
123
  }
86
124
  /**
87
125
  * Update the access token
88
126
  * Useful when tokens are refreshed
89
127
  */
90
128
  setAccessToken(token) {
129
+ if (this._config) {
130
+ this._config.TOKEN = token;
131
+ }
91
132
  if (OpenAPI) {
92
133
  OpenAPI.TOKEN = token;
93
134
  OpenAPI.HEADERS = {
@@ -100,8 +141,7 @@ export class PiSpiSDK {
100
141
  * Get the current base URL
101
142
  */
102
143
  getBaseUrl() {
103
- return OpenAPI?.BASE || 'https://sandbox.api.pi-bceao.com/piz/v1';
144
+ return this._config.BASE;
104
145
  }
105
146
  }
106
- // Export error handler for advanced use cases
107
- export { handleApiError };
147
+ exports.PiSpiSDK = PiSpiSDK;
@@ -54,7 +54,11 @@ export declare class AliasService extends BaseService {
54
54
  create(alias: {
55
55
  compte: string;
56
56
  type: AliasType;
57
- }): Promise<never>;
57
+ }): Promise<{
58
+ cle?: string;
59
+ type?: string;
60
+ compte?: string;
61
+ }>;
58
62
  /**
59
63
  * List aliases for an account
60
64
  *
@@ -62,11 +66,11 @@ export declare class AliasService extends BaseService {
62
66
  * @param params - Query parameters for pagination
63
67
  * @returns Paginated list of aliases
64
68
  */
65
- list(compte: string, params?: QueryParams): Promise<never>;
69
+ list(compte: string, params?: QueryParams): Promise<unknown>;
66
70
  /**
67
71
  * Delete an alias
68
72
  *
69
73
  * @param alias - Alias identifier
70
74
  */
71
- delete(alias: string): Promise<never>;
75
+ delete(alias: string, compte?: string): Promise<unknown>;
72
76
  }
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Aliases service wrapper
3
4
  *
@@ -20,8 +21,10 @@
20
21
  * // Returns: { cle: 'SNF00_2E4TY', type: 'MCOD', ... }
21
22
  * ```
22
23
  */
23
- import { BaseService } from './base';
24
- export class AliasService extends BaseService {
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.AliasService = void 0;
26
+ const base_1 = require("./base");
27
+ class AliasService extends base_1.BaseService {
25
28
  /**
26
29
  * Create an account alias
27
30
  *
@@ -50,10 +53,7 @@ export class AliasService extends BaseService {
50
53
  * ```
51
54
  */
52
55
  async create(alias) {
53
- return this.execute(async () => {
54
- // This will call the generated service after codegen
55
- throw new Error('Service not yet generated. Run "pnpm run generate" first.');
56
- });
56
+ return this.request('POST', `/comptes/${encodeURIComponent(alias.compte)}/alias`, { type: alias.type });
57
57
  }
58
58
  /**
59
59
  * List aliases for an account
@@ -63,20 +63,18 @@ export class AliasService extends BaseService {
63
63
  * @returns Paginated list of aliases
64
64
  */
65
65
  async list(compte, params) {
66
- return this.execute(async () => {
67
- // This will call the generated service after codegen
68
- throw new Error('Service not yet generated. Run "pnpm run generate" first.');
69
- });
66
+ return this.request('GET', `/comptes/${encodeURIComponent(compte)}/alias`, undefined, params);
70
67
  }
71
68
  /**
72
69
  * Delete an alias
73
70
  *
74
71
  * @param alias - Alias identifier
75
72
  */
76
- async delete(alias) {
77
- return this.execute(async () => {
78
- // This will call the generated service after codegen
79
- throw new Error('Service not yet generated. Run "pnpm run generate" first.');
80
- });
73
+ async delete(alias, compte) {
74
+ if (!compte) {
75
+ throw new Error('Account number (compte) is required to delete an alias.');
76
+ }
77
+ return this.request('DELETE', `/comptes/${encodeURIComponent(compte)}/alias/${encodeURIComponent(alias)}`);
81
78
  }
82
79
  }
80
+ exports.AliasService = AliasService;
@@ -1,9 +1,20 @@
1
1
  /**
2
- * Base service class with common error handling
2
+ * Base service class with common error handling and HTTP request capability
3
3
  */
4
+ export interface ApiConfig {
5
+ BASE: string;
6
+ TOKEN?: string;
7
+ HEADERS?: Record<string, string>;
8
+ }
4
9
  export declare abstract class BaseService {
10
+ protected config: ApiConfig;
11
+ constructor(config: ApiConfig);
5
12
  /**
6
13
  * Wrap an async operation with error handling
7
14
  */
8
15
  protected execute<T>(operation: () => Promise<T>): Promise<T>;
16
+ /**
17
+ * Make an HTTP request
18
+ */
19
+ protected request<T>(method: string, path: string, body?: any, params?: Record<string, any>): Promise<T>;
9
20
  }
@@ -1,8 +1,14 @@
1
+ "use strict";
1
2
  /**
2
- * Base service class with common error handling
3
+ * Base service class with common error handling and HTTP request capability
3
4
  */
4
- import { handleApiError } from '../error-handler';
5
- export class BaseService {
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.BaseService = void 0;
7
+ const error_handler_1 = require("../error-handler");
8
+ class BaseService {
9
+ constructor(config) {
10
+ this.config = config;
11
+ }
6
12
  /**
7
13
  * Wrap an async operation with error handling
8
14
  */
@@ -11,7 +17,51 @@ export class BaseService {
11
17
  return await operation();
12
18
  }
13
19
  catch (error) {
14
- handleApiError(error);
20
+ throw (0, error_handler_1.handleApiError)(error);
15
21
  }
16
22
  }
23
+ /**
24
+ * Make an HTTP request
25
+ */
26
+ async request(method, path, body, params) {
27
+ return this.execute(async () => {
28
+ const url = new URL(`${this.config.BASE}${path}`);
29
+ if (params) {
30
+ Object.entries(params).forEach(([key, value]) => {
31
+ if (value !== undefined && value !== null) {
32
+ url.searchParams.append(key, String(value));
33
+ }
34
+ });
35
+ }
36
+ const headers = {
37
+ 'Content-Type': 'application/json',
38
+ 'Accept': 'application/json',
39
+ ...this.config.HEADERS,
40
+ };
41
+ if (this.config.TOKEN) {
42
+ headers['Authorization'] = `Bearer ${this.config.TOKEN}`;
43
+ }
44
+ const response = await fetch(url.toString(), {
45
+ method,
46
+ headers,
47
+ body: body ? JSON.stringify(body) : undefined,
48
+ });
49
+ if (!response.ok) {
50
+ // Try to parse error body
51
+ let errorBody;
52
+ try {
53
+ errorBody = await response.json();
54
+ }
55
+ catch {
56
+ errorBody = { status: response.status, statusText: response.statusText };
57
+ }
58
+ throw errorBody; // Will be caught by execute/handleApiError
59
+ }
60
+ if (response.status === 204) {
61
+ return {};
62
+ }
63
+ return (await response.json());
64
+ });
65
+ }
17
66
  }
67
+ exports.BaseService = BaseService;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Accounts (Comptes) service wrapper
3
4
  *
@@ -19,12 +20,14 @@
19
20
  * });
20
21
  * ```
21
22
  */
22
- import { BaseService } from './base';
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.ComptesService = void 0;
25
+ const base_1 = require("./base");
23
26
  // Import generated types and services
24
27
  // These will be available after running the generate script
25
28
  // import { CompteSolde, CompteTransfertIntraRequest, CompteTransfertIntraReponse } from '../generated';
26
29
  // import { DefaultService } from '../generated/services/DefaultService';
27
- export class ComptesService extends BaseService {
30
+ class ComptesService extends base_1.BaseService {
28
31
  /**
29
32
  * Get account details and balance
30
33
  *
@@ -156,3 +159,4 @@ export class ComptesService extends BaseService {
156
159
  });
157
160
  }
158
161
  }
162
+ exports.ComptesService = ComptesService;
@@ -1,3 +1,4 @@
1
+ "use strict";
1
2
  /**
2
3
  * Cancellation Requests (Demandes d'Annulation) service wrapper
3
4
  *
@@ -32,8 +33,10 @@
32
33
  * });
33
34
  * ```
34
35
  */
35
- import { BaseService } from './base';
36
- export class DemandesAnnulationService extends BaseService {
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.DemandesAnnulationService = void 0;
38
+ const base_1 = require("./base");
39
+ class DemandesAnnulationService extends base_1.BaseService {
37
40
  /**
38
41
  * Create a cancellation request
39
42
  *
@@ -102,3 +105,4 @@ export class DemandesAnnulationService extends BaseService {
102
105
  });
103
106
  }
104
107
  }
108
+ exports.DemandesAnnulationService = DemandesAnnulationService;