pi-spi-sdk 0.1.3 → 0.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.
Files changed (218) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +23 -1
  3. package/dist/chunk-7W56NW2S.mjs +2066 -0
  4. package/dist/generated-FM5EVVHH.mjs +84 -0
  5. package/dist/index.cjs +4754 -0
  6. package/dist/index.d.cts +4940 -0
  7. package/dist/index.d.ts +4937 -12
  8. package/dist/index.mjs +2359 -0
  9. package/dist/index.umd.js +2 -0
  10. package/dist/qrcode/index.cjs +757 -0
  11. package/dist/qrcode/index.d.cts +68 -0
  12. package/dist/qrcode/index.d.ts +20 -14
  13. package/dist/qrcode/index.mjs +712 -0
  14. package/package.json +24 -8
  15. package/dist/config.d.ts +0 -35
  16. package/dist/config.js +0 -5
  17. package/dist/error-handler.d.ts +0 -7
  18. package/dist/error-handler.js +0 -55
  19. package/dist/errors.d.ts +0 -25
  20. package/dist/errors.js +0 -48
  21. package/dist/examples.d.ts +0 -8
  22. package/dist/examples.js +0 -93
  23. package/dist/generated/core/ApiError.d.ts +0 -10
  24. package/dist/generated/core/ApiError.js +0 -15
  25. package/dist/generated/core/ApiRequestOptions.d.ts +0 -13
  26. package/dist/generated/core/ApiRequestOptions.js +0 -2
  27. package/dist/generated/core/ApiResult.d.ts +0 -7
  28. package/dist/generated/core/ApiResult.js +0 -2
  29. package/dist/generated/core/CancelablePromise.d.ts +0 -20
  30. package/dist/generated/core/CancelablePromise.js +0 -116
  31. package/dist/generated/core/OpenAPI.d.ts +0 -16
  32. package/dist/generated/core/OpenAPI.js +0 -14
  33. package/dist/generated/core/request.d.ts +0 -34
  34. package/dist/generated/core/request.js +0 -292
  35. package/dist/generated/index.d.ts +0 -78
  36. package/dist/generated/index.js +0 -86
  37. package/dist/generated/models/AliasCreationReponse.d.ts +0 -22
  38. package/dist/generated/models/AliasCreationReponse.js +0 -2
  39. package/dist/generated/models/AliasCreationRequest.d.ts +0 -11
  40. package/dist/generated/models/AliasCreationRequest.js +0 -2
  41. package/dist/generated/models/AliasReponseListe.d.ts +0 -26
  42. package/dist/generated/models/AliasReponseListe.js +0 -2
  43. package/dist/generated/models/AnnulationStatut.d.ts +0 -13
  44. package/dist/generated/models/AnnulationStatut.js +0 -21
  45. package/dist/generated/models/Champs.d.ts +0 -1
  46. package/dist/generated/models/Champs.js +0 -2
  47. package/dist/generated/models/CompteOperation.d.ts +0 -72
  48. package/dist/generated/models/CompteOperation.js +0 -27
  49. package/dist/generated/models/CompteOperationListe.d.ts +0 -18
  50. package/dist/generated/models/CompteOperationListe.js +0 -2
  51. package/dist/generated/models/CompteSolde.d.ts +0 -129
  52. package/dist/generated/models/CompteSolde.js +0 -74
  53. package/dist/generated/models/CompteTransfertIntraReponse.d.ts +0 -33
  54. package/dist/generated/models/CompteTransfertIntraReponse.js +0 -15
  55. package/dist/generated/models/CompteTransfertIntraRequest.d.ts +0 -9
  56. package/dist/generated/models/CompteTransfertIntraRequest.js +0 -2
  57. package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.d.ts +0 -14
  58. package/dist/generated/models/DemandePaiementConfirmationAnnulationRaison.js +0 -22
  59. package/dist/generated/models/DemandePaiementConfirmationReponse.d.ts +0 -41
  60. package/dist/generated/models/DemandePaiementConfirmationReponse.js +0 -16
  61. package/dist/generated/models/DemandePaiementConfirmationRequest.d.ts +0 -3
  62. package/dist/generated/models/DemandePaiementConfirmationRequest.js +0 -2
  63. package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.d.ts +0 -9
  64. package/dist/generated/models/DemandePaiementConfirmationRequestAccepter.js +0 -2
  65. package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.d.ts +0 -9
  66. package/dist/generated/models/DemandePaiementConfirmationRequestRejeter.js +0 -2
  67. package/dist/generated/models/DemandePaiementConsultationReponse.d.ts +0 -151
  68. package/dist/generated/models/DemandePaiementConsultationReponse.js +0 -30
  69. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.d.ts +0 -3
  70. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequest.js +0 -2
  71. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.d.ts +0 -9
  72. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestAccepter.js +0 -2
  73. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.d.ts +0 -9
  74. package/dist/generated/models/DemandePaiementEnMasseConfirmationRequestRejeter.js +0 -2
  75. package/dist/generated/models/DemandePaiementEnMasseRequest.d.ts +0 -74
  76. package/dist/generated/models/DemandePaiementEnMasseRequest.js +0 -2
  77. package/dist/generated/models/DemandePaiementEnMasseStatutReponse.d.ts +0 -98
  78. package/dist/generated/models/DemandePaiementEnMasseStatutReponse.js +0 -23
  79. package/dist/generated/models/DemandePaiementListe.d.ts +0 -26
  80. package/dist/generated/models/DemandePaiementListe.js +0 -2
  81. package/dist/generated/models/DemandePaiementListeItem.d.ts +0 -163
  82. package/dist/generated/models/DemandePaiementListeItem.js +0 -30
  83. package/dist/generated/models/DemandePaiementReponse.d.ts +0 -129
  84. package/dist/generated/models/DemandePaiementReponse.js +0 -2
  85. package/dist/generated/models/DemandePaiementReponseRequest.d.ts +0 -21
  86. package/dist/generated/models/DemandePaiementReponseRequest.js +0 -14
  87. package/dist/generated/models/DemandePaiementRequest.d.ts +0 -98
  88. package/dist/generated/models/DemandePaiementRequest.js +0 -10
  89. package/dist/generated/models/DemandePaiementRequestBase.d.ts +0 -42
  90. package/dist/generated/models/DemandePaiementRequestBase.js +0 -2
  91. package/dist/generated/models/DemandePaiementRequestCategorie.d.ts +0 -12
  92. package/dist/generated/models/DemandePaiementRequestCategorie.js +0 -20
  93. package/dist/generated/models/DemandePaiementStatut.d.ts +0 -13
  94. package/dist/generated/models/DemandePaiementStatut.js +0 -21
  95. package/dist/generated/models/DemandePaiementStatutRaison.d.ts +0 -46
  96. package/dist/generated/models/DemandePaiementStatutRaison.js +0 -54
  97. package/dist/generated/models/ListeMeta.d.ts +0 -14
  98. package/dist/generated/models/ListeMeta.js +0 -2
  99. package/dist/generated/models/Paiement.d.ts +0 -156
  100. package/dist/generated/models/Paiement.js +0 -31
  101. package/dist/generated/models/PaiementAnnulationMotif.d.ts +0 -17
  102. package/dist/generated/models/PaiementAnnulationMotif.js +0 -25
  103. package/dist/generated/models/PaiementAnnulationReponseRequest.d.ts +0 -11
  104. package/dist/generated/models/PaiementAnnulationReponseRequest.js +0 -2
  105. package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.d.ts +0 -9
  106. package/dist/generated/models/PaiementAnnulationReponseRequestAccepter.js +0 -2
  107. package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.d.ts +0 -9
  108. package/dist/generated/models/PaiementAnnulationReponseRequestRejeter.js +0 -2
  109. package/dist/generated/models/PaiementAnnulationRequest.d.ts +0 -4
  110. package/dist/generated/models/PaiementAnnulationRequest.js +0 -2
  111. package/dist/generated/models/PaiementAnnulationStatutRaison.d.ts +0 -21
  112. package/dist/generated/models/PaiementAnnulationStatutRaison.js +0 -29
  113. package/dist/generated/models/PaiementEnMasseConfirmationRequest.d.ts +0 -3
  114. package/dist/generated/models/PaiementEnMasseConfirmationRequest.js +0 -2
  115. package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.d.ts +0 -9
  116. package/dist/generated/models/PaiementEnMasseConfirmationRequestAccepter.js +0 -2
  117. package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.d.ts +0 -9
  118. package/dist/generated/models/PaiementEnMasseConfirmationRequestRejeter.js +0 -2
  119. package/dist/generated/models/PaiementEnMasseReponseStatut.d.ts +0 -97
  120. package/dist/generated/models/PaiementEnMasseReponseStatut.js +0 -23
  121. package/dist/generated/models/PaiementEnMasseRequest.d.ts +0 -54
  122. package/dist/generated/models/PaiementEnMasseRequest.js +0 -2
  123. package/dist/generated/models/PaiementImmediatConfirmationReponse.d.ts +0 -31
  124. package/dist/generated/models/PaiementImmediatConfirmationReponse.js +0 -10
  125. package/dist/generated/models/PaiementImmediatConfirmationRequest.d.ts +0 -3
  126. package/dist/generated/models/PaiementImmediatConfirmationRequest.js +0 -2
  127. package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.d.ts +0 -9
  128. package/dist/generated/models/PaiementImmediatConfirmationRequestAccepter.js +0 -2
  129. package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.d.ts +0 -9
  130. package/dist/generated/models/PaiementImmediatConfirmationRequestRejeter.js +0 -2
  131. package/dist/generated/models/PaiementImmediatReponse.d.ts +0 -98
  132. package/dist/generated/models/PaiementImmediatReponse.js +0 -10
  133. package/dist/generated/models/PaiementImmediatRequest.d.ts +0 -13
  134. package/dist/generated/models/PaiementImmediatRequest.js +0 -2
  135. package/dist/generated/models/PaiementListe.d.ts +0 -6
  136. package/dist/generated/models/PaiementListe.js +0 -2
  137. package/dist/generated/models/PaiementRequest.d.ts +0 -33
  138. package/dist/generated/models/PaiementRequest.js +0 -2
  139. package/dist/generated/models/PaiementStatut.d.ts +0 -13
  140. package/dist/generated/models/PaiementStatut.js +0 -21
  141. package/dist/generated/models/PaiementStatutRaison.d.ts +0 -56
  142. package/dist/generated/models/PaiementStatutRaison.js +0 -64
  143. package/dist/generated/models/Problem7807.d.ts +0 -31
  144. package/dist/generated/models/Problem7807.js +0 -2
  145. package/dist/generated/models/RefDocType.d.ts +0 -38
  146. package/dist/generated/models/RefDocType.js +0 -46
  147. package/dist/generated/models/RetourStatut.d.ts +0 -13
  148. package/dist/generated/models/RetourStatut.js +0 -21
  149. package/dist/generated/models/RetourStatutRaison.d.ts +0 -25
  150. package/dist/generated/models/RetourStatutRaison.js +0 -33
  151. package/dist/generated/models/WebhookCreationRequest.d.ts +0 -14
  152. package/dist/generated/models/WebhookCreationRequest.js +0 -2
  153. package/dist/generated/models/WebhookCreationResponse.d.ts +0 -12
  154. package/dist/generated/models/WebhookCreationResponse.js +0 -2
  155. package/dist/generated/models/WebhookData.d.ts +0 -8
  156. package/dist/generated/models/WebhookData.js +0 -2
  157. package/dist/generated/models/WebhookEvent.d.ts +0 -191
  158. package/dist/generated/models/WebhookEvent.js +0 -45
  159. package/dist/generated/models/WebhookEventsList.d.ts +0 -13
  160. package/dist/generated/models/WebhookEventsList.js +0 -2
  161. package/dist/generated/models/WebhookList.d.ts +0 -13
  162. package/dist/generated/models/WebhookList.js +0 -2
  163. package/dist/generated/models/WebhookModificationRequest.d.ts +0 -4
  164. package/dist/generated/models/WebhookModificationRequest.js +0 -2
  165. package/dist/generated/models/WebhooksEvents.d.ts +0 -12
  166. package/dist/generated/models/WebhooksEvents.js +0 -20
  167. package/dist/generated/services/AliasService.d.ts +0 -63
  168. package/dist/generated/services/AliasService.js +0 -88
  169. package/dist/generated/services/ComptesService.d.ts +0 -64
  170. package/dist/generated/services/ComptesService.js +0 -90
  171. package/dist/generated/services/DemandeAnnulationService.d.ts +0 -84
  172. package/dist/generated/services/DemandeAnnulationService.js +0 -103
  173. package/dist/generated/services/DemandesDePaiementEnMasseService.d.ts +0 -161
  174. package/dist/generated/services/DemandesDePaiementEnMasseService.js +0 -193
  175. package/dist/generated/services/DemandesDePaiementService.d.ts +0 -123
  176. package/dist/generated/services/DemandesDePaiementService.js +0 -165
  177. package/dist/generated/services/NotificationService.d.ts +0 -80
  178. package/dist/generated/services/NotificationService.js +0 -136
  179. package/dist/generated/services/PaiementEnMasseService.d.ts +0 -159
  180. package/dist/generated/services/PaiementEnMasseService.js +0 -191
  181. package/dist/generated/services/PaiementImmediatService.d.ts +0 -135
  182. package/dist/generated/services/PaiementImmediatService.js +0 -180
  183. package/dist/generated/services/RetoursdeFondsService.d.ts +0 -28
  184. package/dist/generated/services/RetoursdeFondsService.js +0 -41
  185. package/dist/index.js +0 -72
  186. package/dist/qrcode/index.js +0 -541
  187. package/dist/qrcode/logo.d.ts +0 -3
  188. package/dist/qrcode/logo.js +0 -142
  189. package/dist/query-builder.d.ts +0 -91
  190. package/dist/query-builder.js +0 -191
  191. package/dist/sdk.d.ts +0 -104
  192. package/dist/sdk.js +0 -147
  193. package/dist/services/alias.d.ts +0 -76
  194. package/dist/services/alias.js +0 -80
  195. package/dist/services/base.d.ts +0 -20
  196. package/dist/services/base.js +0 -67
  197. package/dist/services/comptes.d.ts +0 -149
  198. package/dist/services/comptes.js +0 -162
  199. package/dist/services/demandes-annulation.d.ts +0 -97
  200. package/dist/services/demandes-annulation.js +0 -108
  201. package/dist/services/demandes-paiement-en-masse.d.ts +0 -33
  202. package/dist/services/demandes-paiement-en-masse.js +0 -44
  203. package/dist/services/demandes-paiement.d.ts +0 -148
  204. package/dist/services/demandes-paiement.js +0 -153
  205. package/dist/services/paiements-en-masse.d.ts +0 -152
  206. package/dist/services/paiements-en-masse.js +0 -157
  207. package/dist/services/paiements.d.ts +0 -135
  208. package/dist/services/paiements.js +0 -139
  209. package/dist/services/retours-fonds.d.ts +0 -94
  210. package/dist/services/retours-fonds.js +0 -104
  211. package/dist/services/webhooks.d.ts +0 -131
  212. package/dist/services/webhooks.js +0 -146
  213. package/dist/types/alias.d.ts +0 -64
  214. package/dist/types/alias.js +0 -78
  215. package/dist/utils/constants.d.ts +0 -93
  216. package/dist/utils/constants.js +0 -96
  217. package/dist/utils/index.d.ts +0 -60
  218. package/dist/utils/index.js +0 -126
package/package.json CHANGED
@@ -1,15 +1,27 @@
1
1
  {
2
2
  "name": "pi-spi-sdk",
3
- "version": "0.1.3",
3
+ "version": "0.2.0",
4
4
  "description": "TypeScript SDK for the π-SPI Business API. Built by lomi. for the West African fintech community",
5
- "main": "./dist/index.js",
5
+ "type": "module",
6
+ "main": "./dist/index.cjs",
7
+ "module": "./dist/index.mjs",
6
8
  "types": "./dist/index.d.ts",
9
+ "browser": "./dist/index.umd.js",
7
10
  "exports": {
8
11
  ".": {
9
12
  "types": "./dist/index.d.ts",
10
- "import": "./dist/index.js",
11
- "require": "./dist/index.js",
12
- "default": "./dist/index.js"
13
+ "import": "./dist/index.mjs",
14
+ "require": "./dist/index.cjs",
15
+ "default": "./dist/index.mjs"
16
+ },
17
+ "./qrcode": {
18
+ "types": "./dist/qrcode/index.d.ts",
19
+ "import": "./dist/qrcode/index.mjs",
20
+ "require": "./dist/qrcode/index.cjs",
21
+ "default": "./dist/qrcode/index.mjs"
22
+ },
23
+ "./umd": {
24
+ "default": "./dist/index.umd.js"
13
25
  }
14
26
  },
15
27
  "files": [
@@ -20,10 +32,13 @@
20
32
  "CHANGELOG.md"
21
33
  ],
22
34
  "scripts": {
23
- "build": "tsc",
24
- "dev": "tsc --watch",
35
+ "build": "tsup --config tsup.config.ts",
36
+ "dev": "tsup --config tsup.config.ts --watch",
37
+ "typecheck": "tsc --noEmit",
38
+ "test": "vitest run",
39
+ "test:watch": "vitest",
25
40
  "format": "prettier --write \"src/**/*.{ts,tsx,json,md}\" \"*.{json,md}\" \"scripts/**/*.{js,ts}\"",
26
- "prepublish": "pnpm run generate && pnpm run build",
41
+ "prepublishOnly": "pnpm run generate && pnpm run build && pnpm run typecheck && pnpm test",
27
42
  "generate": "node scripts/pre-generate.js && openapi --input ./openapi.json --output ./src/generated --client axios --useOptions && node scripts/post-generate.js"
28
43
  },
29
44
  "keywords": [
@@ -79,6 +94,7 @@
79
94
  "@types/qrcode": "^1.5.6",
80
95
  "openapi-typescript-codegen": "^0.29.0",
81
96
  "prettier": "^3.6.2",
97
+ "tsup": "^8.5.0",
82
98
  "typescript": "^5.9.3",
83
99
  "vitest": "^4.0.16"
84
100
  }
package/dist/config.d.ts DELETED
@@ -1,35 +0,0 @@
1
- /**
2
- * PI-SPI SDK Configuration
3
- */
4
- export interface PiSpiConfig {
5
- /**
6
- * Base URL for the PI-SPI API
7
- * @default 'https://sandbox.api.pi-bceao.com/piz/v1'
8
- */
9
- baseUrl?: string;
10
- /**
11
- * OAuth2 access token for authentication
12
- */
13
- accessToken: string;
14
- /**
15
- * Optional: Client certificate path for mTLS
16
- */
17
- clientCert?: string;
18
- /**
19
- * Optional: Client key path for mTLS
20
- */
21
- clientKey?: string;
22
- /**
23
- * Optional: CA certificate path for mTLS
24
- */
25
- caCert?: string;
26
- /**
27
- * Optional: Additional headers to include in requests
28
- */
29
- headers?: Record<string, string>;
30
- /**
31
- * Optional: Request timeout in milliseconds
32
- * @default 30000
33
- */
34
- timeout?: number;
35
- }
package/dist/config.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
- /**
3
- * PI-SPI SDK Configuration
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- /**
2
- * Error handler utility for converting API errors to SDK errors
3
- */
4
- /**
5
- * Convert a generated API error to a SDK error
6
- */
7
- export declare function handleApiError(error: unknown): never;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- /**
3
- * Error handler utility for converting API errors to SDK errors
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.handleApiError = handleApiError;
7
- const errors_1 = require("./errors");
8
- /**
9
- * Convert a generated API error to a SDK error
10
- */
11
- function handleApiError(error) {
12
- // Check if it's an ApiError-like object (from generated code)
13
- const isApiError = error &&
14
- typeof error === 'object' &&
15
- 'status' in error &&
16
- 'statusText' in error &&
17
- 'body' in error;
18
- if (isApiError) {
19
- const apiError = error;
20
- const status = apiError.status;
21
- const body = apiError.body;
22
- // Extract error details from RFC 7807 Problem format
23
- const type = body?.type;
24
- const title = body?.title || apiError.statusText;
25
- const detail = body?.detail || apiError.message;
26
- const instance = body?.instance;
27
- // Handle validation errors (400)
28
- if (status === 400) {
29
- const invalidParams = body?.invalidParams || body?.errors;
30
- throw new errors_1.PiSpiValidationError(detail || title || 'Validation error', status, apiError.statusText, invalidParams, type, detail);
31
- }
32
- // Handle authentication errors (401)
33
- if (status === 401) {
34
- throw new errors_1.PiSpiAuthError(detail || title || 'Authentication failed', status, apiError.statusText);
35
- }
36
- // Handle forbidden errors (403)
37
- if (status === 403) {
38
- throw new errors_1.PiSpiError(detail || title || 'Forbidden', status, apiError.statusText, type, detail, instance);
39
- }
40
- // Handle not found errors (404)
41
- if (status === 404) {
42
- throw new errors_1.PiSpiNotFoundError(detail || title || 'Resource not found', status, apiError.statusText);
43
- }
44
- // Handle rate limit errors (429)
45
- if (status === 429) {
46
- // Retry-After header would be in the response, but ApiError doesn't expose it
47
- // This can be enhanced if needed
48
- throw new errors_1.PiSpiRateLimitError(detail || title || 'Rate limit exceeded', status, apiError.statusText);
49
- }
50
- // Handle other errors
51
- throw new errors_1.PiSpiError(detail || title || apiError.message || 'API error', status, apiError.statusText, type, detail, instance);
52
- }
53
- // Re-throw if it's not an API error
54
- throw error;
55
- }
package/dist/errors.d.ts DELETED
@@ -1,25 +0,0 @@
1
- /**
2
- * Custom error classes for PI-SPI SDK
3
- */
4
- export declare class PiSpiError extends Error {
5
- readonly statusCode: number;
6
- readonly statusText: string;
7
- readonly type?: string;
8
- readonly detail?: string;
9
- readonly instance?: string;
10
- constructor(message: string, statusCode: number, statusText: string, type?: string, detail?: string, instance?: string);
11
- }
12
- export declare class PiSpiValidationError extends PiSpiError {
13
- readonly errors?: Record<string, string[]>;
14
- constructor(message: string, statusCode: number, statusText: string, errors?: Record<string, string[]>, type?: string, detail?: string);
15
- }
16
- export declare class PiSpiAuthError extends PiSpiError {
17
- constructor(message: string, statusCode: number, statusText: string);
18
- }
19
- export declare class PiSpiNotFoundError extends PiSpiError {
20
- constructor(message: string, statusCode: number, statusText: string);
21
- }
22
- export declare class PiSpiRateLimitError extends PiSpiError {
23
- readonly retryAfter?: number;
24
- constructor(message: string, statusCode: number, statusText: string, retryAfter?: number);
25
- }
package/dist/errors.js DELETED
@@ -1,48 +0,0 @@
1
- "use strict";
2
- /**
3
- * Custom error classes for PI-SPI SDK
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.PiSpiRateLimitError = exports.PiSpiNotFoundError = exports.PiSpiAuthError = exports.PiSpiValidationError = exports.PiSpiError = void 0;
7
- class PiSpiError extends Error {
8
- constructor(message, statusCode, statusText, type, detail, instance) {
9
- super(message);
10
- this.name = 'PiSpiError';
11
- this.statusCode = statusCode;
12
- this.statusText = statusText;
13
- this.type = type;
14
- this.detail = detail;
15
- this.instance = instance;
16
- }
17
- }
18
- exports.PiSpiError = PiSpiError;
19
- class PiSpiValidationError extends PiSpiError {
20
- constructor(message, statusCode, statusText, errors, type, detail) {
21
- super(message, statusCode, statusText, type, detail);
22
- this.name = 'PiSpiValidationError';
23
- this.errors = errors;
24
- }
25
- }
26
- exports.PiSpiValidationError = PiSpiValidationError;
27
- class PiSpiAuthError extends PiSpiError {
28
- constructor(message, statusCode, statusText) {
29
- super(message, statusCode, statusText);
30
- this.name = 'PiSpiAuthError';
31
- }
32
- }
33
- exports.PiSpiAuthError = PiSpiAuthError;
34
- class PiSpiNotFoundError extends PiSpiError {
35
- constructor(message, statusCode, statusText) {
36
- super(message, statusCode, statusText);
37
- this.name = 'PiSpiNotFoundError';
38
- }
39
- }
40
- exports.PiSpiNotFoundError = PiSpiNotFoundError;
41
- class PiSpiRateLimitError extends PiSpiError {
42
- constructor(message, statusCode, statusText, retryAfter) {
43
- super(message, statusCode, statusText);
44
- this.name = 'PiSpiRateLimitError';
45
- this.retryAfter = retryAfter;
46
- }
47
- }
48
- exports.PiSpiRateLimitError = PiSpiRateLimitError;
@@ -1,8 +0,0 @@
1
- /**
2
- * Usage Examples for PI-SPI SDK
3
- *
4
- * These examples use production-like data from the PI-SPI OpenAPI specification.
5
- *
6
- * @see {@link https://developers.pi-bceao.com} Official PI-SPI Documentation
7
- */
8
- export {};
package/dist/examples.js DELETED
@@ -1,93 +0,0 @@
1
- "use strict";
2
- /**
3
- * Usage Examples for PI-SPI SDK
4
- *
5
- * These examples use production-like data from the PI-SPI OpenAPI specification.
6
- *
7
- * @see {@link https://developers.pi-bceao.com} Official PI-SPI Documentation
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const index_1 = require("./index");
11
- // Initialize the SDK
12
- const sdk = new index_1.PiSpiSDK({
13
- baseUrl: 'https://sandbox.api.pi-bceao.com/piz/v1',
14
- accessToken: process.env.PI_SPI_ACCESS_TOKEN,
15
- });
16
- // Example: Get account balance
17
- // Account numbers follow format: [CountryCode][AccountNumber]
18
- // Examples: 'CIC2344256727788288822' (Côte d'Ivoire), 'SNC2344256727788288822' (Senegal)
19
- async function getAccountBalance() {
20
- const account = await sdk.comptes.getAccount('CIC2344256727788288822');
21
- // @ts-expect-error - Service implementation pending code generation
22
- console.log('Account balance:', account?.solde ?? 'N/A');
23
- // @ts-expect-error
24
- console.log('Account status:', account?.statut);
25
- }
26
- // Example: Create alias
27
- // SHID: System-generated UUID (36 chars) - available for all client types
28
- // MCOD: Merchant code for USSD - business clients only (C, B, G)
29
- // MBNO: Mobile number - individuals only (P)
30
- async function createAliasExample() {
31
- // Create SHID alias (available for all client types)
32
- const shidAlias = await sdk.alias.create({
33
- compte: 'CIC2344256727788288822',
34
- type: index_1.AliasType.SHID,
35
- });
36
- // Returns: { cle: '8b1b2499-3e50-435b-b757-ac7a83d8aa7f', type: 'SHID', ... }
37
- // Create MCOD alias (business clients only)
38
- const mcodAlias = await sdk.alias.create({
39
- compte: 'SNC2344256727788288822',
40
- type: index_1.AliasType.MCOD,
41
- });
42
- // Returns: { cle: 'SNF00_2E4TY', type: 'MCOD', ... }
43
- }
44
- // Example: Query builder usage
45
- async function queryExample() {
46
- const query = new index_1.QueryBuilder()
47
- .filter('statut', 'eq', 'IRREVOCABLE')
48
- .filter('montant', 'gte', 150000) // 1,500 XOF minimum
49
- .sort('-dateCreation')
50
- .page(1)
51
- .size(50)
52
- .build();
53
- const payments = await sdk.paiements.list(query);
54
- }
55
- // Example: Create payment with realistic data
56
- async function createPaymentExample() {
57
- const payment = await sdk.paiements.create({
58
- comptePayeur: 'CIC2344256727788288822',
59
- payeAlias: '8b1b2499-3e50-435b-b757-ac7a83d8aa7f', // SHID alias (UUID format)
60
- montant: 150000, // 1,500 XOF (amounts are in centimes)
61
- motif: 'Paiement de services',
62
- txId: '23552722', // Unique transaction ID
63
- });
64
- }
65
- // Example: Error handling
66
- const index_2 = require("./index");
67
- async function errorHandlingExample() {
68
- try {
69
- await sdk.paiements.create({
70
- comptePayeur: 'CIC2344256727788288822',
71
- payeAlias: '9b1b2499-3e50-435b-b757-ac7a83d8aa8c', // SHID alias
72
- montant: 150000, // 1,500 XOF
73
- motif: 'Paiement de test',
74
- });
75
- }
76
- catch (error) {
77
- if (error instanceof index_2.PiSpiValidationError) {
78
- console.error('Validation error:', error.errors);
79
- }
80
- else if (error instanceof index_2.PiSpiAuthError) {
81
- console.error('Authentication error:', error.message);
82
- }
83
- else if (error instanceof index_2.PiSpiError) {
84
- console.error('API error:', error.message, error.statusCode);
85
- }
86
- else if (error instanceof Error) {
87
- console.error('Unexpected error:', error.message);
88
- }
89
- else {
90
- console.error('Unknown error:', error);
91
- }
92
- }
93
- }
@@ -1,10 +0,0 @@
1
- import type { ApiRequestOptions } from './ApiRequestOptions';
2
- import type { ApiResult } from './ApiResult';
3
- export declare class ApiError extends Error {
4
- readonly url: string;
5
- readonly status: number;
6
- readonly statusText: string;
7
- readonly body: any;
8
- readonly request: ApiRequestOptions;
9
- constructor(request: ApiRequestOptions, response: ApiResult, message: string);
10
- }
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ApiError = void 0;
4
- class ApiError extends Error {
5
- constructor(request, response, message) {
6
- super(message);
7
- this.name = 'ApiError';
8
- this.url = response.url;
9
- this.status = response.status;
10
- this.statusText = response.statusText;
11
- this.body = response.body;
12
- this.request = request;
13
- }
14
- }
15
- exports.ApiError = ApiError;
@@ -1,13 +0,0 @@
1
- export type ApiRequestOptions = {
2
- readonly method: 'GET' | 'PUT' | 'POST' | 'DELETE' | 'OPTIONS' | 'HEAD' | 'PATCH';
3
- readonly url: string;
4
- readonly path?: Record<string, any>;
5
- readonly cookies?: Record<string, any>;
6
- readonly headers?: Record<string, any>;
7
- readonly query?: Record<string, any>;
8
- readonly formData?: Record<string, any>;
9
- readonly body?: any;
10
- readonly mediaType?: string;
11
- readonly responseHeader?: string;
12
- readonly errors?: Record<number, string>;
13
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- export type ApiResult = {
2
- readonly url: string;
3
- readonly ok: boolean;
4
- readonly status: number;
5
- readonly statusText: string;
6
- readonly body: any;
7
- };
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,20 +0,0 @@
1
- export declare class CancelError extends Error {
2
- constructor(message: string);
3
- get isCancelled(): boolean;
4
- }
5
- export interface OnCancel {
6
- readonly isResolved: boolean;
7
- readonly isRejected: boolean;
8
- readonly isCancelled: boolean;
9
- (cancelHandler: () => void): void;
10
- }
11
- export declare class CancelablePromise<T> implements Promise<T> {
12
- #private;
13
- constructor(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void, onCancel: OnCancel) => void);
14
- get [Symbol.toStringTag](): string;
15
- then<TResult1 = T, TResult2 = never>(onFulfilled?: ((value: T) => TResult1 | PromiseLike<TResult1>) | null, onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null): Promise<TResult1 | TResult2>;
16
- catch<TResult = never>(onRejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null): Promise<T | TResult>;
17
- finally(onFinally?: (() => void) | null): Promise<T>;
18
- cancel(): void;
19
- get isCancelled(): boolean;
20
- }
@@ -1,116 +0,0 @@
1
- "use strict";
2
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
- if (kind === "m") throw new TypeError("Private method is not writable");
4
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
- };
8
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
- };
13
- var _CancelablePromise_isResolved, _CancelablePromise_isRejected, _CancelablePromise_isCancelled, _CancelablePromise_cancelHandlers, _CancelablePromise_promise, _CancelablePromise_resolve, _CancelablePromise_reject;
14
- Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CancelablePromise = exports.CancelError = void 0;
16
- /* generated using openapi-typescript-codegen -- do not edit */
17
- /* istanbul ignore file */
18
- /* tslint:disable */
19
- /* eslint-disable */
20
- class CancelError extends Error {
21
- constructor(message) {
22
- super(message);
23
- this.name = 'CancelError';
24
- }
25
- get isCancelled() {
26
- return true;
27
- }
28
- }
29
- exports.CancelError = CancelError;
30
- class CancelablePromise {
31
- constructor(executor) {
32
- _CancelablePromise_isResolved.set(this, void 0);
33
- _CancelablePromise_isRejected.set(this, void 0);
34
- _CancelablePromise_isCancelled.set(this, void 0);
35
- _CancelablePromise_cancelHandlers.set(this, void 0);
36
- _CancelablePromise_promise.set(this, void 0);
37
- _CancelablePromise_resolve.set(this, void 0);
38
- _CancelablePromise_reject.set(this, void 0);
39
- __classPrivateFieldSet(this, _CancelablePromise_isResolved, false, "f");
40
- __classPrivateFieldSet(this, _CancelablePromise_isRejected, false, "f");
41
- __classPrivateFieldSet(this, _CancelablePromise_isCancelled, false, "f");
42
- __classPrivateFieldSet(this, _CancelablePromise_cancelHandlers, [], "f");
43
- __classPrivateFieldSet(this, _CancelablePromise_promise, new Promise((resolve, reject) => {
44
- __classPrivateFieldSet(this, _CancelablePromise_resolve, resolve, "f");
45
- __classPrivateFieldSet(this, _CancelablePromise_reject, reject, "f");
46
- const onResolve = (value) => {
47
- if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
48
- return;
49
- }
50
- __classPrivateFieldSet(this, _CancelablePromise_isResolved, true, "f");
51
- if (__classPrivateFieldGet(this, _CancelablePromise_resolve, "f"))
52
- __classPrivateFieldGet(this, _CancelablePromise_resolve, "f").call(this, value);
53
- };
54
- const onReject = (reason) => {
55
- if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
56
- return;
57
- }
58
- __classPrivateFieldSet(this, _CancelablePromise_isRejected, true, "f");
59
- if (__classPrivateFieldGet(this, _CancelablePromise_reject, "f"))
60
- __classPrivateFieldGet(this, _CancelablePromise_reject, "f").call(this, reason);
61
- };
62
- const onCancel = (cancelHandler) => {
63
- if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
64
- return;
65
- }
66
- __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").push(cancelHandler);
67
- };
68
- Object.defineProperty(onCancel, 'isResolved', {
69
- get: () => __classPrivateFieldGet(this, _CancelablePromise_isResolved, "f"),
70
- });
71
- Object.defineProperty(onCancel, 'isRejected', {
72
- get: () => __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f"),
73
- });
74
- Object.defineProperty(onCancel, 'isCancelled', {
75
- get: () => __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f"),
76
- });
77
- return executor(onResolve, onReject, onCancel);
78
- }), "f");
79
- }
80
- get [(_CancelablePromise_isResolved = new WeakMap(), _CancelablePromise_isRejected = new WeakMap(), _CancelablePromise_isCancelled = new WeakMap(), _CancelablePromise_cancelHandlers = new WeakMap(), _CancelablePromise_promise = new WeakMap(), _CancelablePromise_resolve = new WeakMap(), _CancelablePromise_reject = new WeakMap(), Symbol.toStringTag)]() {
81
- return "Cancellable Promise";
82
- }
83
- then(onFulfilled, onRejected) {
84
- return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").then(onFulfilled, onRejected);
85
- }
86
- catch(onRejected) {
87
- return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").catch(onRejected);
88
- }
89
- finally(onFinally) {
90
- return __classPrivateFieldGet(this, _CancelablePromise_promise, "f").finally(onFinally);
91
- }
92
- cancel() {
93
- if (__classPrivateFieldGet(this, _CancelablePromise_isResolved, "f") || __classPrivateFieldGet(this, _CancelablePromise_isRejected, "f") || __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f")) {
94
- return;
95
- }
96
- __classPrivateFieldSet(this, _CancelablePromise_isCancelled, true, "f");
97
- if (__classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").length) {
98
- try {
99
- for (const cancelHandler of __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f")) {
100
- cancelHandler();
101
- }
102
- }
103
- catch (error) {
104
- console.warn('Cancellation threw an error', error);
105
- return;
106
- }
107
- }
108
- __classPrivateFieldGet(this, _CancelablePromise_cancelHandlers, "f").length = 0;
109
- if (__classPrivateFieldGet(this, _CancelablePromise_reject, "f"))
110
- __classPrivateFieldGet(this, _CancelablePromise_reject, "f").call(this, new CancelError('Request aborted'));
111
- }
112
- get isCancelled() {
113
- return __classPrivateFieldGet(this, _CancelablePromise_isCancelled, "f");
114
- }
115
- }
116
- exports.CancelablePromise = CancelablePromise;
@@ -1,16 +0,0 @@
1
- import type { ApiRequestOptions } from './ApiRequestOptions';
2
- type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
3
- type Headers = Record<string, string>;
4
- export type OpenAPIConfig = {
5
- BASE: string;
6
- VERSION: string;
7
- WITH_CREDENTIALS: boolean;
8
- CREDENTIALS: 'include' | 'omit' | 'same-origin';
9
- TOKEN?: string | Resolver<string> | undefined;
10
- USERNAME?: string | Resolver<string> | undefined;
11
- PASSWORD?: string | Resolver<string> | undefined;
12
- HEADERS?: Headers | Resolver<Headers> | undefined;
13
- ENCODE_PATH?: ((path: string) => string) | undefined;
14
- };
15
- export declare const OpenAPI: OpenAPIConfig;
16
- export {};
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OpenAPI = void 0;
4
- exports.OpenAPI = {
5
- BASE: 'https://sandbox.api.pi-bceao.com/piz/v1',
6
- VERSION: '1.0.0',
7
- WITH_CREDENTIALS: false,
8
- CREDENTIALS: 'include',
9
- TOKEN: undefined,
10
- USERNAME: undefined,
11
- PASSWORD: undefined,
12
- HEADERS: undefined,
13
- ENCODE_PATH: undefined,
14
- };
@@ -1,34 +0,0 @@
1
- import type { AxiosResponse, AxiosInstance } from 'axios';
2
- import FormData from 'form-data';
3
- import type { ApiRequestOptions } from './ApiRequestOptions';
4
- import type { ApiResult } from './ApiResult';
5
- import { CancelablePromise } from './CancelablePromise';
6
- import type { OnCancel } from './CancelablePromise';
7
- import type { OpenAPIConfig } from './OpenAPI';
8
- export declare const isDefined: <T>(value: T | null | undefined) => value is Exclude<T, null | undefined>;
9
- export declare const isString: (value: any) => value is string;
10
- export declare const isStringWithValue: (value: any) => value is string;
11
- export declare const isBlob: (value: any) => value is Blob;
12
- export declare const isFormData: (value: any) => value is FormData;
13
- export declare const isSuccess: (status: number) => boolean;
14
- export declare const base64: (str: string) => string;
15
- export declare const getQueryString: (params: Record<string, any>) => string;
16
- export declare const getFormData: (options: ApiRequestOptions) => FormData | undefined;
17
- type Resolver<T> = (options: ApiRequestOptions) => Promise<T>;
18
- export declare const resolve: <T>(options: ApiRequestOptions, resolver?: T | Resolver<T>) => Promise<T | undefined>;
19
- export declare const getHeaders: (config: OpenAPIConfig, options: ApiRequestOptions, formData?: FormData) => Promise<Record<string, string>>;
20
- export declare const getRequestBody: (options: ApiRequestOptions) => any;
21
- export declare const sendRequest: <T>(config: OpenAPIConfig, options: ApiRequestOptions, url: string, body: any, formData: FormData | undefined, headers: Record<string, string>, onCancel: OnCancel, axiosClient: AxiosInstance) => Promise<AxiosResponse<T>>;
22
- export declare const getResponseHeader: (response: AxiosResponse<any>, responseHeader?: string) => string | undefined;
23
- export declare const getResponseBody: (response: AxiosResponse<any>) => any;
24
- export declare const catchErrorCodes: (options: ApiRequestOptions, result: ApiResult) => void;
25
- /**
26
- * Request method
27
- * @param config The OpenAPI configuration object
28
- * @param options The request options from the service
29
- * @param axiosClient The axios client instance to use
30
- * @returns CancelablePromise<T>
31
- * @throws ApiError
32
- */
33
- export declare const request: <T>(config: OpenAPIConfig, options: ApiRequestOptions, axiosClient?: AxiosInstance) => CancelablePromise<T>;
34
- export {};