@grtsnx/payba3 1.0.0 → 2.0.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 (68) hide show
  1. package/CHANGELOG.md +20 -1
  2. package/CONTRIBUTING.md +3 -3
  3. package/README.md +149 -40
  4. package/dist/index.d.ts +4 -3
  5. package/dist/index.js +7 -3
  6. package/dist/lib/monnify/config/monnify.helper.d.ts +2 -1
  7. package/dist/lib/monnify/config/monnify.helper.js +18 -18
  8. package/dist/lib/monnify/config/monnify.helper.js.map +1 -1
  9. package/dist/lib/monnify/config/monnify.types.d.ts +11 -2
  10. package/dist/lib/monnify/monnify.service.d.ts +2 -2
  11. package/dist/lib/monnify/monnify.service.js +17 -21
  12. package/dist/lib/monnify/monnify.service.js.map +1 -1
  13. package/dist/lib/mono/config/mono.helper.d.ts +2 -1
  14. package/dist/lib/mono/config/mono.helper.js +9 -9
  15. package/dist/lib/mono/config/mono.helper.js.map +1 -1
  16. package/dist/lib/mono/config/mono.types.d.ts +7 -1
  17. package/dist/lib/mono/mono.service.d.ts +2 -2
  18. package/dist/lib/mono/mono.service.js +8 -21
  19. package/dist/lib/mono/mono.service.js.map +1 -1
  20. package/dist/lib/opay/config/opay.helper.d.ts +2 -1
  21. package/dist/lib/opay/config/opay.helper.js +15 -15
  22. package/dist/lib/opay/config/opay.helper.js.map +1 -1
  23. package/dist/lib/opay/config/opay.types.d.ts +11 -2
  24. package/dist/lib/opay/opay.service.d.ts +2 -2
  25. package/dist/lib/opay/opay.service.js +19 -21
  26. package/dist/lib/opay/opay.service.js.map +1 -1
  27. package/dist/lib/payba3.service.d.ts +3 -9
  28. package/dist/lib/payba3.service.js +17 -32
  29. package/dist/lib/payba3.service.js.map +1 -1
  30. package/dist/lib/payba3.types.d.ts +17 -0
  31. package/dist/lib/payba3.types.js.map +1 -1
  32. package/dist/lib/paystack/config/paystack.helper.js +7 -9
  33. package/dist/lib/paystack/config/paystack.helper.js.map +1 -1
  34. package/dist/lib/paystack/config/paystack.types.d.ts +6 -0
  35. package/dist/lib/paystack/paystack.service.d.ts +2 -2
  36. package/dist/lib/paystack/paystack.service.js +19 -28
  37. package/dist/lib/paystack/paystack.service.js.map +1 -1
  38. package/dist/lib/qoreid/config/qoreid.helper.js +7 -9
  39. package/dist/lib/qoreid/config/qoreid.helper.js.map +1 -1
  40. package/dist/lib/qoreid/config/qoreid.types.d.ts +7 -0
  41. package/dist/lib/qoreid/qoreid.service.d.ts +2 -2
  42. package/dist/lib/qoreid/qoreid.service.js +11 -19
  43. package/dist/lib/qoreid/qoreid.service.js.map +1 -1
  44. package/dist/lib/safehaven/config/safe.helper.d.ts +3 -1
  45. package/dist/lib/safehaven/config/safe.helper.js +29 -19
  46. package/dist/lib/safehaven/config/safe.helper.js.map +1 -1
  47. package/dist/lib/safehaven/config/safe.types.d.ts +16 -2
  48. package/dist/lib/safehaven/safe.service.d.ts +2 -4
  49. package/dist/lib/safehaven/safe.service.js +20 -27
  50. package/dist/lib/safehaven/safe.service.js.map +1 -1
  51. package/dist/lib/seerbit/config/seerbit.helper.d.ts +2 -1
  52. package/dist/lib/seerbit/config/seerbit.helper.js +13 -12
  53. package/dist/lib/seerbit/config/seerbit.helper.js.map +1 -1
  54. package/dist/lib/seerbit/config/seerbit.types.d.ts +10 -2
  55. package/dist/lib/seerbit/seerbit.service.d.ts +2 -2
  56. package/dist/lib/seerbit/seerbit.service.js +17 -24
  57. package/dist/lib/seerbit/seerbit.service.js.map +1 -1
  58. package/dist/lib/shared/index.d.ts +1 -0
  59. package/dist/lib/shared/index.js +1 -0
  60. package/dist/lib/shared/index.js.map +1 -1
  61. package/dist/lib/shared/payba3-error.d.ts +37 -0
  62. package/dist/lib/shared/payba3-error.js +64 -0
  63. package/dist/lib/shared/payba3-error.js.map +1 -0
  64. package/dist/lib/shared/response.helper.d.ts +3 -10
  65. package/dist/lib/shared/response.helper.js +5 -24
  66. package/dist/lib/shared/response.helper.js.map +1 -1
  67. package/llms.txt +12 -9
  68. package/package.json +9 -9
@@ -1,20 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.generateSeerbitBearerToken = exports.requestSeerbit = exports.assertSeerbitKeys = exports.parseSeerbitResponse = exports.buildSeerbitRequestInit = exports.buildSeerbitHeaders = exports.getSeerbitCredentials = exports.getSeerbitBaseUrl = exports.SEERBIT_BASE_URL = exports.SEERBIT_BASE_URLS = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const response_helper_1 = require("../../shared/response.helper");
3
+ exports.generateSeerbitBearerToken = exports.requestSeerbit = exports.assertSeerbitKeys = exports.parseSeerbitResponse = exports.buildSeerbitRequestInit = exports.buildSeerbitHeaders = exports.getSeerbitCredentials = exports.getSeerbitBaseUrl = exports.normalizeSeerbitEnvironment = exports.SEERBIT_BASE_URL = exports.SEERBIT_BASE_URLS = void 0;
4
+ const shared_1 = require("../../shared");
6
5
  exports.SEERBIT_BASE_URLS = {
7
6
  sandbox: 'https://seerbitapi.com/api/v2',
8
7
  live: 'https://seerbitapi.com/api/v2',
9
8
  };
10
9
  exports.SEERBIT_BASE_URL = exports.SEERBIT_BASE_URLS.sandbox;
11
- const getSeerbitBaseUrl = (environment, baseUrlOverride) => (baseUrlOverride ?? exports.SEERBIT_BASE_URLS[environment]).replace(/\/+$/, '');
10
+ const normalizeSeerbitEnvironment = (environment) => environment === 'live' || environment === 'production' ? 'live' : 'sandbox';
11
+ exports.normalizeSeerbitEnvironment = normalizeSeerbitEnvironment;
12
+ const getSeerbitBaseUrl = (environment, baseUrlOverride) => (baseUrlOverride ??
13
+ exports.SEERBIT_BASE_URLS[(0, exports.normalizeSeerbitEnvironment)(environment)]).replace(/\/+$/, '');
12
14
  exports.getSeerbitBaseUrl = getSeerbitBaseUrl;
13
15
  const getSeerbitCredentials = (environment) => ({
14
- publicKey: (environment === 'live'
16
+ publicKey: ((0, exports.normalizeSeerbitEnvironment)(environment) === 'live'
15
17
  ? process.env.SEERBIT_LIVE_PUBLIC_KEY
16
18
  : process.env.SEERBIT_PUBLIC_KEY)?.trim() ?? '',
17
- secretKey: (environment === 'live'
19
+ secretKey: ((0, exports.normalizeSeerbitEnvironment)(environment) === 'live'
18
20
  ? process.env.SEERBIT_LIVE_SECRET_KEY
19
21
  : process.env.SEERBIT_SECRET_KEY)?.trim() ?? '',
20
22
  });
@@ -46,7 +48,7 @@ const parseSeerbitResponse = async (response) => {
46
48
  exports.parseSeerbitResponse = parseSeerbitResponse;
47
49
  const assertSeerbitKeys = (publicKey, secretKey) => {
48
50
  if (!publicKey || !secretKey) {
49
- throw new common_1.InternalServerErrorException('Seerbit secret keys not set');
51
+ throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Seerbit secret keys not set');
50
52
  }
51
53
  };
52
54
  exports.assertSeerbitKeys = assertSeerbitKeys;
@@ -56,14 +58,13 @@ const requestSeerbit = async ({ baseUrl, endpoint, options = {}, }) => {
56
58
  response = await fetch(`${baseUrl}${endpoint}`, (0, exports.buildSeerbitRequestInit)(options));
57
59
  }
58
60
  catch (error) {
59
- throw new common_1.BadGatewayException({
60
- message: 'Seerbit request failed',
61
- data: error instanceof Error ? error.message : undefined,
61
+ throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'Seerbit request failed', {
62
+ data: (0, shared_1.getPayba3ErrorMessage)(error, 'Seerbit request failed'),
62
63
  });
63
64
  }
64
65
  const body = await (0, exports.parseSeerbitResponse)(response);
65
66
  if (!response.ok) {
66
- throw new response_helper_1.handleResponse(common_1.HttpStatus.BAD_REQUEST, 'Seerbit request failed', body);
67
+ throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'Seerbit request failed', body);
67
68
  }
68
69
  return body;
69
70
  };
@@ -80,7 +81,7 @@ const generateSeerbitBearerToken = async (baseUrl, publicKey, secretKey) => {
80
81
  const encryptedKey = response.data?.EncryptedSecKey?.encryptedKey ??
81
82
  response.data?.EncrytedSecKey?.encryptedKey;
82
83
  if (response.status !== 'SUCCESS' || !encryptedKey) {
83
- throw new response_helper_1.handleResponse(common_1.HttpStatus.BAD_REQUEST, 'Failed to obtain Seerbit bearer token', response);
84
+ throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'Failed to obtain Seerbit bearer token', response);
84
85
  }
85
86
  return encryptedKey;
86
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"seerbit.helper.js","sourceRoot":"","sources":["../../../../src/lib/seerbit/config/seerbit.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seerbit.helper.js","sourceRoot":"","sources":["../../../../src/lib/seerbit/config/seerbit.helper.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,17 @@
1
- export type SeerbitEnvironment = 'sandbox' | 'live';
1
+ export type SeerbitEnvironment = 'sandbox' | 'live' | 'development' | 'production' | 'test' | 'provision';
2
+ export type NormalizedSeerbitEnvironment = 'sandbox' | 'live';
2
3
  export type SeerbitCredentials = {
3
4
  publicKey: string;
4
5
  secretKey: string;
5
6
  };
6
- export type SeerbitBaseUrls = Record<SeerbitEnvironment, string>;
7
+ export type SeerbitServiceOptions = {
8
+ environment?: SeerbitEnvironment;
9
+ baseUrl?: string;
10
+ credentials?: Partial<SeerbitCredentials>;
11
+ publicKey?: string;
12
+ secretKey?: string;
13
+ };
14
+ export type SeerbitBaseUrls = Record<NormalizedSeerbitEnvironment, string>;
7
15
  export type SeerbitCreateVirtualAccountInput = {
8
16
  fullName: string;
9
17
  email: string;
@@ -1,10 +1,10 @@
1
- import type { SeerbitCreateVirtualAccountInput, SeerbitCreateVirtualAccountResult } from './config/seerbit.types';
1
+ import type { SeerbitCreateVirtualAccountInput, SeerbitCreateVirtualAccountResult, SeerbitServiceOptions } from './config/seerbit.types';
2
2
  export declare class SeerbitService {
3
3
  private readonly baseUrl;
4
4
  private readonly publicKey;
5
5
  private readonly secretKey;
6
6
  private bearerToken;
7
- constructor();
7
+ constructor(options?: SeerbitServiceOptions);
8
8
  getBearerToken(): Promise<string>;
9
9
  createVirtualAccount(input: SeerbitCreateVirtualAccountInput): Promise<SeerbitCreateVirtualAccountResult>;
10
10
  getVirtualAccount(reference: string): Promise<SeerbitCreateVirtualAccountResult | null>;
@@ -1,30 +1,27 @@
1
1
  "use strict";
2
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
- return c > 3 && r && Object.defineProperty(target, key, r), r;
7
- };
8
- var __metadata = (this && this.__metadata) || function (k, v) {
9
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
3
  exports.SeerbitService = void 0;
13
- const common_1 = require("@nestjs/common");
14
- const response_helper_1 = require("../shared/response.helper");
4
+ const shared_1 = require("../shared");
15
5
  const seerbit_helper_1 = require("./config/seerbit.helper");
16
- let SeerbitService = class SeerbitService {
6
+ class SeerbitService {
17
7
  baseUrl;
18
8
  publicKey;
19
9
  secretKey;
20
10
  bearerToken = null;
21
- constructor() {
22
- const environment = (process.env.SEERBIT_ENVIRONMENT ??
23
- 'sandbox');
11
+ constructor(options = {}) {
12
+ const environment = (0, seerbit_helper_1.normalizeSeerbitEnvironment)(options.environment ??
13
+ process.env.SEERBIT_ENVIRONMENT ??
14
+ process.env.NODE_ENV);
24
15
  const credentials = (0, seerbit_helper_1.getSeerbitCredentials)(environment);
25
- this.baseUrl = (0, seerbit_helper_1.getSeerbitBaseUrl)(environment, process.env.SEERBIT_BASE_URL);
26
- this.publicKey = credentials.publicKey;
27
- this.secretKey = credentials.secretKey;
16
+ this.baseUrl = (0, seerbit_helper_1.getSeerbitBaseUrl)(environment, options.baseUrl ?? process.env.SEERBIT_BASE_URL);
17
+ this.publicKey =
18
+ options.publicKey ??
19
+ options.credentials?.publicKey ??
20
+ credentials.publicKey;
21
+ this.secretKey =
22
+ options.secretKey ??
23
+ options.credentials?.secretKey ??
24
+ credentials.secretKey;
28
25
  }
29
26
  async getBearerToken() {
30
27
  (0, seerbit_helper_1.assertSeerbitKeys)(this.publicKey, this.secretKey);
@@ -53,7 +50,7 @@ let SeerbitService = class SeerbitService {
53
50
  },
54
51
  });
55
52
  if (body.status !== 'SUCCESS' || !body.data?.payments?.accountNumber) {
56
- throw new response_helper_1.handleResponse(common_1.HttpStatus.BAD_REQUEST, body.data?.message ?? 'Failed to create Seerbit virtual account', body);
53
+ throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, body.data?.message ?? 'Failed to create Seerbit virtual account', body);
57
54
  }
58
55
  return body;
59
56
  }
@@ -74,10 +71,6 @@ let SeerbitService = class SeerbitService {
74
71
  return null;
75
72
  }
76
73
  }
77
- };
74
+ }
78
75
  exports.SeerbitService = SeerbitService;
79
- exports.SeerbitService = SeerbitService = __decorate([
80
- (0, common_1.Injectable)(),
81
- __metadata("design:paramtypes", [])
82
- ], SeerbitService);
83
76
  //# sourceMappingURL=seerbit.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"seerbit.service.js","sourceRoot":"","sources":["../../../src/lib/seerbit/seerbit.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seerbit.service.js","sourceRoot":"","sources":["../../../src/lib/seerbit/seerbit.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
+ export * from './payba3-error';
1
2
  export * from './response.helper';
@@ -14,5 +14,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./payba3-error"), exports);
17
18
  __exportStar(require("./response.helper"), exports);
18
19
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/shared/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA+B;AAC/B,oDAAkC"}
@@ -0,0 +1,37 @@
1
+ export declare const PAYBA3_HTTP_STATUS: {
2
+ readonly BAD_REQUEST: 400;
3
+ readonly UNAUTHORIZED: 401;
4
+ readonly FORBIDDEN: 403;
5
+ readonly NOT_FOUND: 404;
6
+ readonly INTERNAL_SERVER_ERROR: 500;
7
+ readonly BAD_GATEWAY: 502;
8
+ readonly GATEWAY_TIMEOUT: 504;
9
+ };
10
+ export type Payba3HttpStatusCode = (typeof PAYBA3_HTTP_STATUS)[keyof typeof PAYBA3_HTTP_STATUS];
11
+ export type Payba3ErrorOptions = {
12
+ statusCode?: number;
13
+ provider?: string;
14
+ code?: string;
15
+ data?: unknown;
16
+ cause?: unknown;
17
+ };
18
+ export type Payba3ErrorBody = {
19
+ statusCode: number;
20
+ statusType: string;
21
+ message: string;
22
+ provider?: string;
23
+ code?: string;
24
+ data?: unknown;
25
+ };
26
+ export declare const getPayba3StatusText: (statusCode: number) => string;
27
+ export declare const getPayba3ErrorMessage: (error: unknown, fallback: string) => string;
28
+ export declare class Payba3Error extends Error {
29
+ readonly statusCode: number;
30
+ readonly statusType: string;
31
+ readonly provider?: string;
32
+ readonly code?: string;
33
+ readonly data?: unknown;
34
+ constructor(message: string, options?: Payba3ErrorOptions);
35
+ getStatus(): number;
36
+ getResponse(): Payba3ErrorBody;
37
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Payba3Error = exports.getPayba3ErrorMessage = exports.getPayba3StatusText = exports.PAYBA3_HTTP_STATUS = void 0;
4
+ exports.PAYBA3_HTTP_STATUS = {
5
+ BAD_REQUEST: 400,
6
+ UNAUTHORIZED: 401,
7
+ FORBIDDEN: 403,
8
+ NOT_FOUND: 404,
9
+ INTERNAL_SERVER_ERROR: 500,
10
+ BAD_GATEWAY: 502,
11
+ GATEWAY_TIMEOUT: 504,
12
+ };
13
+ const STATUS_TEXT = {
14
+ 400: 'BAD_REQUEST',
15
+ 401: 'UNAUTHORIZED',
16
+ 403: 'FORBIDDEN',
17
+ 404: 'NOT_FOUND',
18
+ 500: 'INTERNAL_SERVER_ERROR',
19
+ 502: 'BAD_GATEWAY',
20
+ 504: 'GATEWAY_TIMEOUT',
21
+ };
22
+ const getPayba3StatusText = (statusCode) => STATUS_TEXT[statusCode] ?? 'ERROR';
23
+ exports.getPayba3StatusText = getPayba3StatusText;
24
+ const getPayba3ErrorMessage = (error, fallback) => (error instanceof Error ? error.message : fallback);
25
+ exports.getPayba3ErrorMessage = getPayba3ErrorMessage;
26
+ class Payba3Error extends Error {
27
+ statusCode;
28
+ statusType;
29
+ provider;
30
+ code;
31
+ data;
32
+ constructor(message, options = {}) {
33
+ super(message, { cause: options.cause });
34
+ this.name = 'Payba3Error';
35
+ this.statusCode =
36
+ options.statusCode ?? exports.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR;
37
+ this.statusType = (0, exports.getPayba3StatusText)(this.statusCode);
38
+ this.provider = options.provider;
39
+ this.code = options.code;
40
+ this.data = options.data;
41
+ }
42
+ getStatus() {
43
+ return this.statusCode;
44
+ }
45
+ getResponse() {
46
+ const response = {
47
+ statusCode: this.statusCode,
48
+ statusType: this.statusType,
49
+ message: this.message,
50
+ };
51
+ if (this.provider !== undefined) {
52
+ response.provider = this.provider;
53
+ }
54
+ if (this.code !== undefined) {
55
+ response.code = this.code;
56
+ }
57
+ if (this.data !== undefined) {
58
+ response.data = this.data;
59
+ }
60
+ return response;
61
+ }
62
+ }
63
+ exports.Payba3Error = Payba3Error;
64
+ //# sourceMappingURL=payba3-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payba3-error.js","sourceRoot":"","sources":["../../../src/lib/shared/payba3-error.ts"],"names":[],"mappings":";;;AAAa,QAAA,kBAAkB,GAAG;IAChC,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,qBAAqB,EAAE,GAAG;IAC1B,WAAW,EAAE,GAAG;IAChB,eAAe,EAAE,GAAG;CACZ,CAAC;AAsBX,MAAM,WAAW,GAA2B;IAC1C,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,cAAc;IACnB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,WAAW;IAChB,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,aAAa;IAClB,GAAG,EAAE,iBAAiB;CACvB,CAAC;AAEK,MAAM,mBAAmB,GAAG,CAAC,UAAkB,EAAU,EAAE,CAChE,WAAW,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC;AADxB,QAAA,mBAAmB,uBACK;AAE9B,MAAM,qBAAqB,GAAG,CACnC,KAAc,EACd,QAAgB,EACR,EAAE,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAHpD,QAAA,qBAAqB,yBAG+B;AAEjE,MAAa,WAAY,SAAQ,KAAK;IAC3B,UAAU,CAAS;IACnB,UAAU,CAAS;IACnB,QAAQ,CAAU;IAClB,IAAI,CAAU;IACd,IAAI,CAAW;IAExB,YAAY,OAAe,EAAE,UAA8B,EAAE;QAC3D,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,UAAU;YACb,OAAO,CAAC,UAAU,IAAI,0BAAkB,CAAC,qBAAqB,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,IAAA,2BAAmB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAoB;YAChC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QACpC,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA3CD,kCA2CC"}
@@ -1,15 +1,8 @@
1
- import { HttpException } from '@nestjs/common';
2
- export type HandleResponseBody = {
3
- statusCode: number;
4
- statusType: string;
5
- message: string;
6
- data?: unknown;
7
- };
8
- export declare class handleResponse extends HttpException {
1
+ import { Payba3Error, type Payba3ErrorBody } from './payba3-error';
2
+ export type HandleResponseBody = Payba3ErrorBody;
3
+ export declare class handleResponse extends Payba3Error {
9
4
  statusCode: number;
10
5
  message: string;
11
6
  data?: unknown | undefined;
12
7
  constructor(statusCode: number, message: string, data?: unknown | undefined);
13
- getResponse(): HandleResponseBody;
14
- getStatus(): number;
15
8
  }
@@ -1,39 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.handleResponse = void 0;
4
- const common_1 = require("@nestjs/common");
5
- class handleResponse extends common_1.HttpException {
4
+ const payba3_error_1 = require("./payba3-error");
5
+ class handleResponse extends payba3_error_1.Payba3Error {
6
6
  statusCode;
7
7
  message;
8
8
  data;
9
9
  constructor(statusCode, message, data) {
10
- const response = {
10
+ super(message, {
11
11
  statusCode,
12
- statusType: common_1.HttpStatus[statusCode],
13
- message,
14
- };
15
- if (data !== undefined) {
16
- response.data = data;
17
- }
18
- super(response, statusCode);
12
+ data,
13
+ });
19
14
  this.statusCode = statusCode;
20
15
  this.message = message;
21
16
  this.data = data;
22
17
  }
23
- getResponse() {
24
- const response = {
25
- statusCode: this.getStatus(),
26
- statusType: common_1.HttpStatus[this.getStatus()],
27
- message: this.message,
28
- };
29
- if (this.data !== undefined) {
30
- response.data = this.data;
31
- }
32
- return response;
33
- }
34
- getStatus() {
35
- return this.statusCode;
36
- }
37
18
  }
38
19
  exports.handleResponse = handleResponse;
39
20
  //# sourceMappingURL=response.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"response.helper.js","sourceRoot":"","sources":["../../../src/lib/shared/response.helper.ts"],"names":[],"mappings":";;;AAAA,2CAA2D;AAS3D,MAAa,cAAe,SAAQ,sBAAa;IAEtC;IACA;IACA;IAHT,YACS,UAAkB,EAClB,OAAe,EACf,IAAc;QAErB,MAAM,QAAQ,GAAuB;YACnC,UAAU;YACV,UAAU,EAAE,mBAAU,CAAC,UAAU,CAAC;YAClC,OAAO;SACR,CAAC;QAEF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACvB,CAAC;QAED,KAAK,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAdrB,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAU;IAavB,CAAC;IAED,WAAW;QACT,MAAM,QAAQ,GAAuB;YACnC,UAAU,EAAE,IAAI,CAAC,SAAS,EAAE;YAC5B,UAAU,EAAE,mBAAU,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACxC,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QAEF,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC5B,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF;AApCD,wCAoCC"}
1
+ {"version":3,"file":"response.helper.js","sourceRoot":"","sources":["../../../src/lib/shared/response.helper.ts"],"names":[],"mappings":";;;AAAA,iDAAmE;AAInE,MAAa,cAAe,SAAQ,0BAAW;IAEpC;IACA;IACA;IAHT,YACS,UAAkB,EAClB,OAAe,EACf,IAAc;QAErB,KAAK,CAAC,OAAO,EAAE;YACb,UAAU;YACV,IAAI;SACL,CAAC,CAAC;QAPI,eAAU,GAAV,UAAU,CAAQ;QAClB,YAAO,GAAP,OAAO,CAAQ;QACf,SAAI,GAAJ,IAAI,CAAU;IAMvB,CAAC;CACF;AAXD,wCAWC"}
package/llms.txt CHANGED
@@ -4,22 +4,25 @@ payba3 is a developer-first integration surface for multiple payment and verific
4
4
 
5
5
  ## Provider References
6
6
 
7
- - Paystack: `src/lib/paystack/paystack_llm.txt`
8
- - Safehaven: `src/lib/safehaven/safehaven_llm.txt`
9
- - SeerBit: `src/lib/seerbit/seerbit_llm.txt`
10
- - OPay: `src/lib/opay/opay_llm.txt`
11
- - Mono: `src/lib/mono/mono_llm.txt`
12
- - Monnify: `src/lib/monnify/monnify_llm.txt`
13
- - QoreID: `src/lib/qoreid/qoreid_llm.txt`
7
+ - Paystack: `@grtsnx/payba3/llms/paystack.txt` or `src/lib/paystack/paystack_llm.txt`
8
+ - Safehaven: `@grtsnx/payba3/llms/safehaven.txt` or `src/lib/safehaven/safehaven_llm.txt`
9
+ - SeerBit: `@grtsnx/payba3/llms/seerbit.txt` or `src/lib/seerbit/seerbit_llm.txt`
10
+ - OPay: `@grtsnx/payba3/llms/opay.txt` or `src/lib/opay/opay_llm.txt`
11
+ - Mono: `@grtsnx/payba3/llms/mono.txt` or `src/lib/mono/mono_llm.txt`
12
+ - Monnify: `@grtsnx/payba3/llms/monnify.txt` or `src/lib/monnify/monnify_llm.txt`
13
+ - QoreID: `@grtsnx/payba3/llms/qoreid.txt` or `src/lib/qoreid/qoreid_llm.txt`
14
14
 
15
15
  ## Integration Rules
16
16
 
17
- - Import payba3 from `@grtsnx/payba3` and select providers with `Payba3Service.use('<provider>')`.
17
+ - Import `createPayba3` from `@grtsnx/payba3`, create a client, and select providers with `payba3.use('<provider>')`.
18
+ - payba3 2.x is framework-neutral and has no Nest runtime peer dependency.
18
19
  - Configure only the provider you use.
20
+ - Prefer explicit `createPayba3({ provider: { ...config } })` options when generating code; environment variables remain supported.
19
21
  - Use provider-specific environment switches such as `SAFEHAVEN_ENVIRONMENT`, `OPAY_ENVIRONMENT`, `MONNIFY_ENVIRONMENT`, `PAYSTACK_ENVIRONMENT`, `QOREID_ENVIRONMENT`, and `SEERBIT_ENVIRONMENT`.
20
22
  - Keep secrets server-side.
21
23
  - Verify provider webhooks before trusting callback payloads.
22
24
  - Verify transaction status server-side before delivering value.
23
25
  - Refresh expiring access tokens before they expire.
24
- - Core Nest packages are peer dependencies, so host applications should provide `@nestjs/common`, `@nestjs/core`, `@nestjs/config`, `reflect-metadata`, and `rxjs`.
26
+ - For IDE and AI-agent use, read `@grtsnx/payba3/llms.txt`, then read the provider-specific `@grtsnx/payba3/llms/<provider>.txt` file before generating integration code.
27
+ - Agents must generate server-side code only, keep secrets in environment variables, and never expose provider keys to client-side code.
25
28
  - Validate package readiness with `bun run pack:dry`, `bun run test:package`, and `bun run test:package:bun`.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@grtsnx/payba3",
3
- "version": "1.0.0",
4
- "description": "One payment integration surface for many payment channels.",
3
+ "version": "2.0.0",
4
+ "description": "Framework-neutral payment integration surface for many payment channels.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "exports": {
@@ -11,6 +11,13 @@
11
11
  "default": "./dist/index.js"
12
12
  },
13
13
  "./llms.txt": "./llms.txt",
14
+ "./llms/paystack.txt": "./src/lib/paystack/paystack_llm.txt",
15
+ "./llms/safehaven.txt": "./src/lib/safehaven/safehaven_llm.txt",
16
+ "./llms/seerbit.txt": "./src/lib/seerbit/seerbit_llm.txt",
17
+ "./llms/opay.txt": "./src/lib/opay/opay_llm.txt",
18
+ "./llms/mono.txt": "./src/lib/mono/mono_llm.txt",
19
+ "./llms/monnify.txt": "./src/lib/monnify/monnify_llm.txt",
20
+ "./llms/qoreid.txt": "./src/lib/qoreid/qoreid_llm.txt",
14
21
  "./package.json": "./package.json"
15
22
  },
16
23
  "files": [
@@ -80,13 +87,6 @@
80
87
  "test:e2e": "node node_modules/jest/bin/jest.js --config ./test/jest-e2e.json --runInBand"
81
88
  },
82
89
  "dependencies": {},
83
- "peerDependencies": {
84
- "@nestjs/common": ">=10 <12",
85
- "@nestjs/config": ">=3 <5",
86
- "@nestjs/core": ">=10 <12",
87
- "reflect-metadata": "^0.2.0",
88
- "rxjs": "^7.8.0"
89
- },
90
90
  "devDependencies": {
91
91
  "@eslint/eslintrc": "^3.2.0",
92
92
  "@eslint/js": "^9.18.0",