@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.
- package/CHANGELOG.md +20 -1
- package/CONTRIBUTING.md +3 -3
- package/README.md +149 -40
- package/dist/index.d.ts +4 -3
- package/dist/index.js +7 -3
- package/dist/lib/monnify/config/monnify.helper.d.ts +2 -1
- package/dist/lib/monnify/config/monnify.helper.js +18 -18
- package/dist/lib/monnify/config/monnify.helper.js.map +1 -1
- package/dist/lib/monnify/config/monnify.types.d.ts +11 -2
- package/dist/lib/monnify/monnify.service.d.ts +2 -2
- package/dist/lib/monnify/monnify.service.js +17 -21
- package/dist/lib/monnify/monnify.service.js.map +1 -1
- package/dist/lib/mono/config/mono.helper.d.ts +2 -1
- package/dist/lib/mono/config/mono.helper.js +9 -9
- package/dist/lib/mono/config/mono.helper.js.map +1 -1
- package/dist/lib/mono/config/mono.types.d.ts +7 -1
- package/dist/lib/mono/mono.service.d.ts +2 -2
- package/dist/lib/mono/mono.service.js +8 -21
- package/dist/lib/mono/mono.service.js.map +1 -1
- package/dist/lib/opay/config/opay.helper.d.ts +2 -1
- package/dist/lib/opay/config/opay.helper.js +15 -15
- package/dist/lib/opay/config/opay.helper.js.map +1 -1
- package/dist/lib/opay/config/opay.types.d.ts +11 -2
- package/dist/lib/opay/opay.service.d.ts +2 -2
- package/dist/lib/opay/opay.service.js +19 -21
- package/dist/lib/opay/opay.service.js.map +1 -1
- package/dist/lib/payba3.service.d.ts +3 -9
- package/dist/lib/payba3.service.js +17 -32
- package/dist/lib/payba3.service.js.map +1 -1
- package/dist/lib/payba3.types.d.ts +17 -0
- package/dist/lib/payba3.types.js.map +1 -1
- package/dist/lib/paystack/config/paystack.helper.js +7 -9
- package/dist/lib/paystack/config/paystack.helper.js.map +1 -1
- package/dist/lib/paystack/config/paystack.types.d.ts +6 -0
- package/dist/lib/paystack/paystack.service.d.ts +2 -2
- package/dist/lib/paystack/paystack.service.js +19 -28
- package/dist/lib/paystack/paystack.service.js.map +1 -1
- package/dist/lib/qoreid/config/qoreid.helper.js +7 -9
- package/dist/lib/qoreid/config/qoreid.helper.js.map +1 -1
- package/dist/lib/qoreid/config/qoreid.types.d.ts +7 -0
- package/dist/lib/qoreid/qoreid.service.d.ts +2 -2
- package/dist/lib/qoreid/qoreid.service.js +11 -19
- package/dist/lib/qoreid/qoreid.service.js.map +1 -1
- package/dist/lib/safehaven/config/safe.helper.d.ts +3 -1
- package/dist/lib/safehaven/config/safe.helper.js +29 -19
- package/dist/lib/safehaven/config/safe.helper.js.map +1 -1
- package/dist/lib/safehaven/config/safe.types.d.ts +16 -2
- package/dist/lib/safehaven/safe.service.d.ts +2 -4
- package/dist/lib/safehaven/safe.service.js +20 -27
- package/dist/lib/safehaven/safe.service.js.map +1 -1
- package/dist/lib/seerbit/config/seerbit.helper.d.ts +2 -1
- package/dist/lib/seerbit/config/seerbit.helper.js +13 -12
- package/dist/lib/seerbit/config/seerbit.helper.js.map +1 -1
- package/dist/lib/seerbit/config/seerbit.types.d.ts +10 -2
- package/dist/lib/seerbit/seerbit.service.d.ts +2 -2
- package/dist/lib/seerbit/seerbit.service.js +17 -24
- package/dist/lib/seerbit/seerbit.service.js.map +1 -1
- package/dist/lib/shared/index.d.ts +1 -0
- package/dist/lib/shared/index.js +1 -0
- package/dist/lib/shared/index.js.map +1 -1
- package/dist/lib/shared/payba3-error.d.ts +37 -0
- package/dist/lib/shared/payba3-error.js +64 -0
- package/dist/lib/shared/payba3-error.js.map +1 -0
- package/dist/lib/shared/response.helper.d.ts +3 -10
- package/dist/lib/shared/response.helper.js +5 -24
- package/dist/lib/shared/response.helper.js.map +1 -1
- package/llms.txt +12 -9
- package/package.json +9 -9
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
export type PaystackEnvironment = 'sandbox' | 'live' | 'development' | 'production' | 'test' | 'provision';
|
|
2
2
|
export type NormalizedPaystackEnvironment = 'sandbox' | 'live';
|
|
3
|
+
export type PaystackServiceOptions = {
|
|
4
|
+
environment?: PaystackEnvironment;
|
|
5
|
+
baseUrl?: string;
|
|
6
|
+
secretKey?: string;
|
|
7
|
+
preferredBank?: string;
|
|
8
|
+
};
|
|
3
9
|
export type PaystackHttpMethod = 'GET' | 'POST' | 'DELETE';
|
|
4
10
|
export type PaystackRequestOptions = {
|
|
5
11
|
method?: PaystackHttpMethod;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { PaystackBank, PaystackChargeAuthorizationInput, PaystackCreateCustomerInput, PaystackCreateSubscriptionInput, PaystackCreateTransferRecipientInput, PaystackInitiateTransferInput, PaystackListSubscriptionsOptions, PaystackOneTimeCheckoutInput, PaystackResponse, PaystackSubscriptionCheckoutInput, PaystackWebhookEvent, PaystackWebhookHeaders } from './config/paystack.types';
|
|
1
|
+
import type { PaystackBank, PaystackChargeAuthorizationInput, PaystackCreateCustomerInput, PaystackCreateSubscriptionInput, PaystackCreateTransferRecipientInput, PaystackInitiateTransferInput, PaystackListSubscriptionsOptions, PaystackOneTimeCheckoutInput, PaystackResponse, PaystackServiceOptions, PaystackSubscriptionCheckoutInput, PaystackWebhookEvent, PaystackWebhookHeaders } from './config/paystack.types';
|
|
2
2
|
export declare class PaystackService {
|
|
3
3
|
private readonly paystackSecret;
|
|
4
4
|
private readonly preferredBank;
|
|
5
5
|
private readonly baseUrl;
|
|
6
|
-
constructor();
|
|
6
|
+
constructor(options?: PaystackServiceOptions);
|
|
7
7
|
createPaystackCustomer(email: string, firstName: string, lastName: string, phone: string): Promise<unknown>;
|
|
8
8
|
createDedicatedAccount(customerCode: string): Promise<unknown>;
|
|
9
9
|
retrieveDedicatedAccount(dedicatedAccountId: string): Promise<unknown>;
|
|
@@ -1,29 +1,24 @@
|
|
|
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.PaystackService = void 0;
|
|
13
|
-
const
|
|
14
|
-
const response_helper_1 = require("../shared/response.helper");
|
|
4
|
+
const shared_1 = require("../shared");
|
|
15
5
|
const paystack_helper_1 = require("./config/paystack.helper");
|
|
16
|
-
|
|
6
|
+
class PaystackService {
|
|
17
7
|
paystackSecret;
|
|
18
8
|
preferredBank;
|
|
19
|
-
baseUrl
|
|
20
|
-
constructor() {
|
|
9
|
+
baseUrl;
|
|
10
|
+
constructor(options = {}) {
|
|
21
11
|
const environment = (process.env.PAYSTACK_ENVIRONMENT ??
|
|
22
12
|
process.env.NODE_ENV ??
|
|
23
13
|
'sandbox');
|
|
24
|
-
|
|
25
|
-
this.paystackSecret =
|
|
26
|
-
|
|
14
|
+
this.baseUrl = (options.baseUrl ?? paystack_helper_1.PAYSTACK_BASE_URL).replace(/\/+$/, '');
|
|
15
|
+
this.paystackSecret =
|
|
16
|
+
options.secretKey ??
|
|
17
|
+
(0, paystack_helper_1.getPaystackSecret)(options.environment ?? environment) ??
|
|
18
|
+
'';
|
|
19
|
+
this.preferredBank =
|
|
20
|
+
options.preferredBank ??
|
|
21
|
+
(0, paystack_helper_1.getPaystackPreferredBank)(options.environment ?? environment);
|
|
27
22
|
}
|
|
28
23
|
async createPaystackCustomer(email, firstName, lastName, phone) {
|
|
29
24
|
return (0, paystack_helper_1.requestPaystack)({
|
|
@@ -191,20 +186,20 @@ let PaystackService = class PaystackService {
|
|
|
191
186
|
return response.data;
|
|
192
187
|
}
|
|
193
188
|
catch (error) {
|
|
194
|
-
if (error instanceof
|
|
195
|
-
throw new
|
|
189
|
+
if (error instanceof shared_1.handleResponse && error.getStatus() === 400) {
|
|
190
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'Invalid account number or bank code');
|
|
196
191
|
}
|
|
197
|
-
throw new
|
|
192
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Failed to resolve account details');
|
|
198
193
|
}
|
|
199
194
|
}
|
|
200
195
|
verifyWebhookSignature(body, headers) {
|
|
201
196
|
const signature = (0, paystack_helper_1.getPaystackSignature)(headers);
|
|
202
197
|
if (!signature) {
|
|
203
|
-
throw new
|
|
198
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.UNAUTHORIZED, 'Invalid Paystack signature');
|
|
204
199
|
}
|
|
205
200
|
const hash = (0, paystack_helper_1.createPaystackSignatureHash)(body, this.paystackSecret);
|
|
206
201
|
if (!(0, paystack_helper_1.isTimingSafeEqual)(hash, signature)) {
|
|
207
|
-
throw new
|
|
202
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.FORBIDDEN, 'Invalid Paystack signature');
|
|
208
203
|
}
|
|
209
204
|
}
|
|
210
205
|
handlePaystackWebhook(body, headers) {
|
|
@@ -223,7 +218,7 @@ let PaystackService = class PaystackService {
|
|
|
223
218
|
}
|
|
224
219
|
async createSubscription(data) {
|
|
225
220
|
if (!data.authorization?.trim()) {
|
|
226
|
-
throw new
|
|
221
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_REQUEST, 'No saved payment method. Complete Paystack checkout to authorize billing.', {
|
|
227
222
|
code: 'no_active_authorizations_for_customer',
|
|
228
223
|
type: 'validation_error',
|
|
229
224
|
meta: {
|
|
@@ -319,10 +314,6 @@ let PaystackService = class PaystackService {
|
|
|
319
314
|
endpoint: '/balance',
|
|
320
315
|
});
|
|
321
316
|
}
|
|
322
|
-
}
|
|
317
|
+
}
|
|
323
318
|
exports.PaystackService = PaystackService;
|
|
324
|
-
exports.PaystackService = PaystackService = __decorate([
|
|
325
|
-
(0, common_1.Injectable)(),
|
|
326
|
-
__metadata("design:paramtypes", [])
|
|
327
|
-
], PaystackService);
|
|
328
319
|
//# sourceMappingURL=paystack.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paystack.service.js","sourceRoot":"","sources":["../../../src/lib/paystack/paystack.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"paystack.service.js","sourceRoot":"","sources":["../../../src/lib/paystack/paystack.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildQoreIDCacEndpoint = exports.getValidQoreIDAccessToken = exports.isQoreIDTokenFresh = exports.fetchQoreIDToken = exports.requestQoreID = exports.assertQoreIDCredentials = exports.getQoreIDErrorMessage = exports.getQoreIDExpiresInFromResponse = exports.getQoreIDAccessTokenFromResponse = exports.isQoreIDTokenResponse = exports.parseQoreIDResponse = exports.buildQoreIDRequestInit = exports.buildQoreIDHeaders = exports.getQoreIDCredentials = exports.getQoreIDBaseUrl = exports.normalizeQoreIDEnvironment = exports.QOREID_BASE_URL = exports.QOREID_BASE_URLS = void 0;
|
|
4
|
-
const
|
|
5
|
-
const response_helper_1 = require("../../shared/response.helper");
|
|
4
|
+
const shared_1 = require("../../shared");
|
|
6
5
|
const TOKEN_REFRESH_BUFFER_MS = 60_000;
|
|
7
6
|
const DEFAULT_TOKEN_TTL_SECONDS = 50 * 60;
|
|
8
7
|
exports.QOREID_BASE_URLS = {
|
|
@@ -62,11 +61,11 @@ const getQoreIDAccessTokenFromResponse = (response) => response.accessToken ?? r
|
|
|
62
61
|
exports.getQoreIDAccessTokenFromResponse = getQoreIDAccessTokenFromResponse;
|
|
63
62
|
const getQoreIDExpiresInFromResponse = (response) => response.expiresIn ?? response.expires_in ?? DEFAULT_TOKEN_TTL_SECONDS;
|
|
64
63
|
exports.getQoreIDExpiresInFromResponse = getQoreIDExpiresInFromResponse;
|
|
65
|
-
const getQoreIDErrorMessage = (error) =>
|
|
64
|
+
const getQoreIDErrorMessage = (error) => (0, shared_1.getPayba3ErrorMessage)(error, 'QoreID request failed');
|
|
66
65
|
exports.getQoreIDErrorMessage = getQoreIDErrorMessage;
|
|
67
66
|
const assertQoreIDCredentials = (credentials) => {
|
|
68
67
|
if (!credentials.clientId || !credentials.secret) {
|
|
69
|
-
throw new
|
|
68
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'QoreID credentials are not configured');
|
|
70
69
|
}
|
|
71
70
|
return {
|
|
72
71
|
clientId: credentials.clientId,
|
|
@@ -80,14 +79,13 @@ const requestQoreID = async ({ baseUrl, endpoint, options = {}, }) => {
|
|
|
80
79
|
response = await fetch(`${baseUrl}${endpoint}`, (0, exports.buildQoreIDRequestInit)(options));
|
|
81
80
|
}
|
|
82
81
|
catch (error) {
|
|
83
|
-
throw new
|
|
84
|
-
message: 'QoreID request failed',
|
|
82
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'QoreID request failed', {
|
|
85
83
|
data: (0, exports.getQoreIDErrorMessage)(error),
|
|
86
84
|
});
|
|
87
85
|
}
|
|
88
86
|
const body = await (0, exports.parseQoreIDResponse)(response);
|
|
89
87
|
if (!response.ok) {
|
|
90
|
-
throw new
|
|
88
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'An error occurred with the verification service', body);
|
|
91
89
|
}
|
|
92
90
|
return body;
|
|
93
91
|
};
|
|
@@ -106,11 +104,11 @@ const fetchQoreIDToken = async (baseUrl, credentials) => {
|
|
|
106
104
|
},
|
|
107
105
|
});
|
|
108
106
|
if (!(0, exports.isQoreIDTokenResponse)(response)) {
|
|
109
|
-
throw new
|
|
107
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Invalid response from QoreID token endpoint', response);
|
|
110
108
|
}
|
|
111
109
|
const accessToken = (0, exports.getQoreIDAccessTokenFromResponse)(response);
|
|
112
110
|
if (!accessToken) {
|
|
113
|
-
throw new
|
|
111
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'Invalid response from QoreID token endpoint', response);
|
|
114
112
|
}
|
|
115
113
|
return {
|
|
116
114
|
accessToken,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qoreid.helper.js","sourceRoot":"","sources":["../../../../src/lib/qoreid/config/qoreid.helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"qoreid.helper.js","sourceRoot":"","sources":["../../../../src/lib/qoreid/config/qoreid.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,13 @@ export type QoreIDCredentials = {
|
|
|
4
4
|
clientId?: string;
|
|
5
5
|
secret?: string;
|
|
6
6
|
};
|
|
7
|
+
export type QoreIDServiceOptions = {
|
|
8
|
+
environment?: QoreIDEnvironment;
|
|
9
|
+
baseUrl?: string;
|
|
10
|
+
credentials?: QoreIDCredentials;
|
|
11
|
+
clientId?: string;
|
|
12
|
+
secret?: string;
|
|
13
|
+
};
|
|
7
14
|
export type QoreIDTokenResponse = {
|
|
8
15
|
accessToken?: string;
|
|
9
16
|
access_token?: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type { QoreIDCreateSessionInput, QoreIDCreateSessionResponse, QoreIDVerifyCacOptions, QoreIDVerifyCacResponse } from './config/qoreid.types';
|
|
1
|
+
import type { QoreIDCreateSessionInput, QoreIDCreateSessionResponse, QoreIDServiceOptions, QoreIDVerifyCacOptions, QoreIDVerifyCacResponse } from './config/qoreid.types';
|
|
2
2
|
export declare class QoreIDService {
|
|
3
3
|
private readonly baseUrl;
|
|
4
4
|
private readonly credentials;
|
|
5
5
|
private token?;
|
|
6
|
-
constructor();
|
|
6
|
+
constructor(options?: QoreIDServiceOptions);
|
|
7
7
|
getToken(): Promise<string>;
|
|
8
8
|
createSession(input: QoreIDCreateSessionInput): Promise<QoreIDCreateSessionResponse>;
|
|
9
9
|
verifyCacNumber(cacNumber: string, options?: QoreIDVerifyCacOptions): Promise<QoreIDVerifyCacResponse>;
|
|
@@ -1,27 +1,23 @@
|
|
|
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.QoreIDService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
4
|
const qoreid_helper_1 = require("./config/qoreid.helper");
|
|
15
|
-
|
|
5
|
+
class QoreIDService {
|
|
16
6
|
baseUrl;
|
|
17
7
|
credentials;
|
|
18
8
|
token;
|
|
19
|
-
constructor() {
|
|
9
|
+
constructor(options = {}) {
|
|
20
10
|
const environment = (process.env.QOREID_ENVIRONMENT ??
|
|
21
11
|
process.env.NODE_ENV ??
|
|
22
12
|
'sandbox');
|
|
23
|
-
|
|
24
|
-
this.
|
|
13
|
+
const envCredentials = (0, qoreid_helper_1.getQoreIDCredentials)(options.environment ?? environment);
|
|
14
|
+
this.baseUrl = (0, qoreid_helper_1.getQoreIDBaseUrl)(options.environment ?? environment, options.baseUrl ?? process.env.QOREID_BASE_URL);
|
|
15
|
+
this.credentials = {
|
|
16
|
+
clientId: options.clientId ??
|
|
17
|
+
options.credentials?.clientId ??
|
|
18
|
+
envCredentials.clientId,
|
|
19
|
+
secret: options.secret ?? options.credentials?.secret ?? envCredentials.secret,
|
|
20
|
+
};
|
|
25
21
|
}
|
|
26
22
|
async getToken() {
|
|
27
23
|
this.token = await (0, qoreid_helper_1.getValidQoreIDAccessToken)(this.token, () => (0, qoreid_helper_1.fetchQoreIDToken)(this.baseUrl, this.credentials));
|
|
@@ -54,10 +50,6 @@ let QoreIDService = class QoreIDService {
|
|
|
54
50
|
},
|
|
55
51
|
});
|
|
56
52
|
}
|
|
57
|
-
}
|
|
53
|
+
}
|
|
58
54
|
exports.QoreIDService = QoreIDService;
|
|
59
|
-
exports.QoreIDService = QoreIDService = __decorate([
|
|
60
|
-
(0, common_1.Injectable)(),
|
|
61
|
-
__metadata("design:paramtypes", [])
|
|
62
|
-
], QoreIDService);
|
|
63
55
|
//# sourceMappingURL=qoreid.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qoreid.service.js","sourceRoot":"","sources":["../../../src/lib/qoreid/qoreid.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"qoreid.service.js","sourceRoot":"","sources":["../../../src/lib/qoreid/qoreid.service.ts"],"names":[],"mappings":";;;AAAA,0DAOgC;AAYhC,MAAa,aAAa;IACP,OAAO,CAAS;IAChB,WAAW,CAAoB;IACxC,KAAK,CAAoB;IAEjC,YAAY,UAAgC,EAAE;QAC5C,MAAM,WAAW,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB;YACjD,OAAO,CAAC,GAAG,CAAC,QAAQ;YACpB,SAAS,CAAsB,CAAC;QAClC,MAAM,cAAc,GAAG,IAAA,oCAAoB,EACzC,OAAO,CAAC,WAAW,IAAI,WAAW,CACnC,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG,IAAA,gCAAgB,EAC7B,OAAO,CAAC,WAAW,IAAI,WAAW,EAClC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAC/C,CAAC;QACF,IAAI,CAAC,WAAW,GAAG;YACjB,QAAQ,EACN,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,WAAW,EAAE,QAAQ;gBAC7B,cAAc,CAAC,QAAQ;YACzB,MAAM,EACJ,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,IAAI,cAAc,CAAC,MAAM;SACzE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,KAAK,GAAG,MAAM,IAAA,yCAAyB,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAC5D,IAAA,gCAAgB,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CACjD,CAAC;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAA+B;QAE/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QAEpC,OAAO,IAAA,6BAAa,EAA8B;YAChD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,KAAK;gBACL,IAAI,EAAE,KAAK;aACZ;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,SAAiB,EACjB,UAAkC,EAAE;QAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAEjE,OAAO,IAAA,6BAAa,EAA0B;YAC5C,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,IAAA,sCAAsB,EAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC;YACxD,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,KAAK;gBACL,IAAI,EAAE;oBACJ,SAAS,EAAE,SAAS;iBACrB;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF;AAtED,sCAsEC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { SafehavenBaseUrls, SafehavenEnvironment, SafehavenRequestContext, SafehavenRequestHeaders, SafehavenRequestOptions, SafehavenTokenCache, SafehavenTokenResponse } from './safe.types';
|
|
1
|
+
import type { NormalizedSafehavenEnvironment, SafehavenBaseUrls, SafehavenCredentials, SafehavenEnvironment, SafehavenRequestContext, SafehavenRequestHeaders, SafehavenRequestOptions, SafehavenTokenCache, SafehavenTokenResponse } from './safe.types';
|
|
2
2
|
export declare const SAFEHAVEN_BASE_URLS: SafehavenBaseUrls;
|
|
3
|
+
export declare const normalizeSafehavenEnvironment: (environment?: string) => NormalizedSafehavenEnvironment;
|
|
3
4
|
export declare const getSafehavenBaseUrl: (environment: SafehavenEnvironment, baseUrlOverride?: string) => string;
|
|
5
|
+
export declare const getSafehavenCredentials: (environment: SafehavenEnvironment) => SafehavenCredentials;
|
|
4
6
|
export declare const buildSafehavenHeaders: (options: SafehavenRequestOptions) => SafehavenRequestHeaders;
|
|
5
7
|
export declare const parseSafehavenResponse: (response: Response) => Promise<unknown>;
|
|
6
8
|
export declare const getSafehavenErrorData: (error: unknown, isProduction: boolean) => unknown;
|
|
@@ -1,14 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.requestSafehaven = exports.throwSafehavenRequestError = exports.getSafehavenClientHeaderValue = exports.getValidSafehavenToken = exports.getValidSafehavenAccessToken = exports.isSafehavenTokenFresh = exports.createSafehavenTokenCache = exports.buildSafehavenTokenPayload = exports.assertSafehavenClientAssertion = exports.assertSafehavenClientId = exports.getSafehavenErrorData = exports.parseSafehavenResponse = exports.buildSafehavenHeaders = exports.getSafehavenBaseUrl = exports.SAFEHAVEN_BASE_URLS = void 0;
|
|
4
|
-
const
|
|
3
|
+
exports.requestSafehaven = exports.throwSafehavenRequestError = exports.getSafehavenClientHeaderValue = exports.getValidSafehavenToken = exports.getValidSafehavenAccessToken = exports.isSafehavenTokenFresh = exports.createSafehavenTokenCache = exports.buildSafehavenTokenPayload = exports.assertSafehavenClientAssertion = exports.assertSafehavenClientId = exports.getSafehavenErrorData = exports.parseSafehavenResponse = exports.buildSafehavenHeaders = exports.getSafehavenCredentials = exports.getSafehavenBaseUrl = exports.normalizeSafehavenEnvironment = exports.SAFEHAVEN_BASE_URLS = void 0;
|
|
4
|
+
const shared_1 = require("../../shared");
|
|
5
5
|
const TOKEN_REFRESH_BUFFER_MS = 60_000;
|
|
6
6
|
exports.SAFEHAVEN_BASE_URLS = {
|
|
7
7
|
sandbox: 'https://api.sandbox.safehavenmfb.com',
|
|
8
8
|
live: 'https://api.safehavenmfb.com',
|
|
9
9
|
};
|
|
10
|
-
const
|
|
10
|
+
const normalizeSafehavenEnvironment = (environment) => environment === 'live' || environment === 'production' ? 'live' : 'sandbox';
|
|
11
|
+
exports.normalizeSafehavenEnvironment = normalizeSafehavenEnvironment;
|
|
12
|
+
const getSafehavenBaseUrl = (environment, baseUrlOverride) => (baseUrlOverride ??
|
|
13
|
+
exports.SAFEHAVEN_BASE_URLS[(0, exports.normalizeSafehavenEnvironment)(environment)]).replace(/\/+$/, '');
|
|
11
14
|
exports.getSafehavenBaseUrl = getSafehavenBaseUrl;
|
|
15
|
+
const getSafehavenCredentials = (environment) => {
|
|
16
|
+
const isLive = (0, exports.normalizeSafehavenEnvironment)(environment) === 'live';
|
|
17
|
+
return {
|
|
18
|
+
clientId: (isLive
|
|
19
|
+
? process.env.SAFEHAVEN_LIVE_CLIENT_ID
|
|
20
|
+
: process.env.SAFEHAVEN_CLIENT_ID)?.trim() ??
|
|
21
|
+
process.env.SAFEHAVEN_CLIENT_ID?.trim() ??
|
|
22
|
+
'',
|
|
23
|
+
clientAssertion: (isLive
|
|
24
|
+
? process.env.SAFEHAVEN_LIVE_CLIENT_ASSERTION
|
|
25
|
+
: process.env.SAFEHAVEN_CLIENT_ASSERTION)?.trim() ??
|
|
26
|
+
process.env.SAFEHAVEN_CLIENT_ASSERTION?.trim() ??
|
|
27
|
+
'',
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
exports.getSafehavenCredentials = getSafehavenCredentials;
|
|
12
31
|
const buildSafehavenHeaders = (options) => ({
|
|
13
32
|
accept: 'application/json',
|
|
14
33
|
'content-type': 'application/json',
|
|
@@ -36,21 +55,21 @@ const getSafehavenErrorData = (error, isProduction) => {
|
|
|
36
55
|
return undefined;
|
|
37
56
|
}
|
|
38
57
|
if (error instanceof Error) {
|
|
39
|
-
return error
|
|
58
|
+
return (0, shared_1.getPayba3ErrorMessage)(error, 'Safehaven request failed');
|
|
40
59
|
}
|
|
41
60
|
return error;
|
|
42
61
|
};
|
|
43
62
|
exports.getSafehavenErrorData = getSafehavenErrorData;
|
|
44
63
|
const assertSafehavenClientId = (clientId) => {
|
|
45
64
|
if (!clientId) {
|
|
46
|
-
throw new
|
|
65
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'SAFEHAVEN_CLIENT_ID is not configured');
|
|
47
66
|
}
|
|
48
67
|
return clientId;
|
|
49
68
|
};
|
|
50
69
|
exports.assertSafehavenClientId = assertSafehavenClientId;
|
|
51
70
|
const assertSafehavenClientAssertion = (clientAssertion) => {
|
|
52
71
|
if (!clientAssertion) {
|
|
53
|
-
throw new
|
|
72
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.INTERNAL_SERVER_ERROR, 'SAFEHAVEN_CLIENT_ASSERTION is not configured');
|
|
54
73
|
}
|
|
55
74
|
return clientAssertion;
|
|
56
75
|
};
|
|
@@ -89,15 +108,9 @@ const getSafehavenClientHeaderValue = (token, fallbackClientId) => token.ibsClie
|
|
|
89
108
|
exports.getSafehavenClientHeaderValue = getSafehavenClientHeaderValue;
|
|
90
109
|
const throwSafehavenRequestError = (status, responseBody, isProduction) => {
|
|
91
110
|
if (status === 401) {
|
|
92
|
-
throw new
|
|
93
|
-
message: 'Unauthorized request to Safehaven',
|
|
94
|
-
data: (0, exports.getSafehavenErrorData)(responseBody, isProduction),
|
|
95
|
-
});
|
|
111
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.UNAUTHORIZED, 'Unauthorized request to Safehaven', (0, exports.getSafehavenErrorData)(responseBody, isProduction));
|
|
96
112
|
}
|
|
97
|
-
throw new
|
|
98
|
-
message: 'Safehaven request failed',
|
|
99
|
-
data: (0, exports.getSafehavenErrorData)(responseBody, isProduction),
|
|
100
|
-
});
|
|
113
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'Safehaven request failed', (0, exports.getSafehavenErrorData)(responseBody, isProduction));
|
|
101
114
|
};
|
|
102
115
|
exports.throwSafehavenRequestError = throwSafehavenRequestError;
|
|
103
116
|
const requestSafehaven = async ({ baseUrl, endpoint, options = {}, timeoutMs, isProduction, }) => {
|
|
@@ -116,12 +129,9 @@ const requestSafehaven = async ({ baseUrl, endpoint, options = {}, timeoutMs, is
|
|
|
116
129
|
}
|
|
117
130
|
catch (error) {
|
|
118
131
|
if (abortController.signal.aborted) {
|
|
119
|
-
throw new
|
|
132
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.GATEWAY_TIMEOUT, 'Safehaven request timed out');
|
|
120
133
|
}
|
|
121
|
-
throw new
|
|
122
|
-
message: 'Safehaven request failed',
|
|
123
|
-
data: (0, exports.getSafehavenErrorData)(error, isProduction),
|
|
124
|
-
});
|
|
134
|
+
throw new shared_1.handleResponse(shared_1.PAYBA3_HTTP_STATUS.BAD_GATEWAY, 'Safehaven request failed', (0, exports.getSafehavenErrorData)(error, isProduction));
|
|
125
135
|
}
|
|
126
136
|
finally {
|
|
127
137
|
clearTimeout(timeout);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.helper.js","sourceRoot":"","sources":["../../../../src/lib/safehaven/config/safe.helper.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"safe.helper.js","sourceRoot":"","sources":["../../../../src/lib/safehaven/config/safe.helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
|
-
export type SafehavenEnvironment = 'sandbox' | 'live';
|
|
1
|
+
export type SafehavenEnvironment = 'sandbox' | 'live' | 'development' | 'production' | 'test' | 'provision';
|
|
2
|
+
export type NormalizedSafehavenEnvironment = 'sandbox' | 'live';
|
|
2
3
|
export type SafehavenHttpMethod = 'GET' | 'POST';
|
|
3
|
-
export type
|
|
4
|
+
export type SafehavenServiceOptions = {
|
|
5
|
+
environment?: SafehavenEnvironment;
|
|
6
|
+
baseUrl?: string;
|
|
7
|
+
credentials?: Partial<SafehavenCredentials>;
|
|
8
|
+
clientId?: string;
|
|
9
|
+
clientAssertion?: string;
|
|
10
|
+
timeoutMs?: number;
|
|
11
|
+
isProduction?: boolean;
|
|
12
|
+
};
|
|
13
|
+
export type SafehavenCredentials = {
|
|
14
|
+
clientId: string;
|
|
15
|
+
clientAssertion: string;
|
|
16
|
+
};
|
|
17
|
+
export type SafehavenBaseUrls = Record<NormalizedSafehavenEnvironment, string>;
|
|
4
18
|
export type SafehavenTokenResponse = {
|
|
5
19
|
access_token: string;
|
|
6
20
|
client_id: string;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import type { CreateSafehavenSubAccountPayload, SafehavenSubAccountResponse, SafehavenTokenResponse } from './config/safe.types';
|
|
1
|
+
import type { CreateSafehavenSubAccountPayload, SafehavenServiceOptions, SafehavenSubAccountResponse, SafehavenTokenResponse } from './config/safe.types';
|
|
3
2
|
export declare class SafehavenService {
|
|
4
|
-
private readonly configService;
|
|
5
3
|
private readonly baseUrl;
|
|
6
4
|
private readonly clientId;
|
|
7
5
|
private readonly clientAssertion;
|
|
8
6
|
private readonly isProduction;
|
|
9
7
|
private readonly timeoutMs;
|
|
10
8
|
private token?;
|
|
11
|
-
constructor(
|
|
9
|
+
constructor(options?: SafehavenServiceOptions);
|
|
12
10
|
getAccessToken(): Promise<SafehavenTokenResponse>;
|
|
13
11
|
createSubAccount(payload: CreateSafehavenSubAccountPayload): Promise<SafehavenSubAccountResponse>;
|
|
14
12
|
}
|
|
@@ -1,37 +1,34 @@
|
|
|
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.SafehavenService = void 0;
|
|
13
|
-
const common_1 = require("@nestjs/common");
|
|
14
|
-
const config_1 = require("@nestjs/config");
|
|
15
4
|
const safe_helper_1 = require("./config/safe.helper");
|
|
16
|
-
|
|
17
|
-
configService;
|
|
5
|
+
class SafehavenService {
|
|
18
6
|
baseUrl;
|
|
19
7
|
clientId;
|
|
20
8
|
clientAssertion;
|
|
21
9
|
isProduction;
|
|
22
10
|
timeoutMs;
|
|
23
11
|
token;
|
|
24
|
-
constructor(
|
|
25
|
-
|
|
12
|
+
constructor(options = {}) {
|
|
13
|
+
const environment = (0, safe_helper_1.normalizeSafehavenEnvironment)(options.environment ??
|
|
14
|
+
process.env.SAFEHAVEN_ENVIRONMENT ??
|
|
15
|
+
process.env.NODE_ENV);
|
|
16
|
+
const credentials = (0, safe_helper_1.getSafehavenCredentials)(environment);
|
|
26
17
|
this.isProduction =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
18
|
+
options.isProduction ?? process.env.NODE_ENV === 'production';
|
|
19
|
+
this.baseUrl = (0, safe_helper_1.getSafehavenBaseUrl)(environment, options.baseUrl ?? process.env.SAFEHAVEN_BASE_URL);
|
|
20
|
+
this.clientId =
|
|
21
|
+
options.clientId ??
|
|
22
|
+
options.credentials?.clientId ??
|
|
23
|
+
credentials.clientId ??
|
|
24
|
+
'';
|
|
32
25
|
this.clientAssertion =
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
options.clientAssertion ??
|
|
27
|
+
options.credentials?.clientAssertion ??
|
|
28
|
+
credentials.clientAssertion ??
|
|
29
|
+
'';
|
|
30
|
+
this.timeoutMs =
|
|
31
|
+
options.timeoutMs ?? (Number(process.env.SAFEHAVEN_TIMEOUT_MS) || 10_000);
|
|
35
32
|
}
|
|
36
33
|
async getAccessToken() {
|
|
37
34
|
const response = await (0, safe_helper_1.requestSafehaven)({
|
|
@@ -68,10 +65,6 @@ let SafehavenService = class SafehavenService {
|
|
|
68
65
|
},
|
|
69
66
|
});
|
|
70
67
|
}
|
|
71
|
-
}
|
|
68
|
+
}
|
|
72
69
|
exports.SafehavenService = SafehavenService;
|
|
73
|
-
exports.SafehavenService = SafehavenService = __decorate([
|
|
74
|
-
(0, common_1.Injectable)(),
|
|
75
|
-
__metadata("design:paramtypes", [config_1.ConfigService])
|
|
76
|
-
], SafehavenService);
|
|
77
70
|
//# sourceMappingURL=safe.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.service.js","sourceRoot":"","sources":["../../../src/lib/safehaven/safe.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"safe.service.js","sourceRoot":"","sources":["../../../src/lib/safehaven/safe.service.ts"],"names":[],"mappings":";;;AAAA,sDAS8B;AAU9B,MAAa,gBAAgB;IACV,OAAO,CAAS;IAChB,QAAQ,CAAS;IACjB,eAAe,CAAS;IACxB,YAAY,CAAU;IACtB,SAAS,CAAS;IAC3B,KAAK,CAAuB;IAEpC,YAAY,UAAmC,EAAE;QAC/C,MAAM,WAAW,GAAG,IAAA,2CAA6B,EAC/C,OAAO,CAAC,WAAW;YACjB,OAAO,CAAC,GAAG,CAAC,qBAAqB;YACjC,OAAO,CAAC,GAAG,CAAC,QAAQ,CACC,CAAC;QAC1B,MAAM,WAAW,GAAG,IAAA,qCAAuB,EAAC,WAAW,CAAC,CAAC;QAEzD,IAAI,CAAC,YAAY;YACf,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;QAChE,IAAI,CAAC,OAAO,GAAG,IAAA,iCAAmB,EAChC,WAAW,EACX,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAClD,CAAC;QACF,IAAI,CAAC,QAAQ;YACX,OAAO,CAAC,QAAQ;gBAChB,OAAO,CAAC,WAAW,EAAE,QAAQ;gBAC7B,WAAW,CAAC,QAAQ;gBACpB,EAAE,CAAC;QACL,IAAI,CAAC,eAAe;YAClB,OAAO,CAAC,eAAe;gBACvB,OAAO,CAAC,WAAW,EAAE,eAAe;gBACpC,WAAW,CAAC,eAAe;gBAC3B,EAAE,CAAC;QACL,IAAI,CAAC,SAAS;YACZ,OAAO,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAA,8BAAgB,EAAyB;YAC9D,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,eAAe;YACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAA,wCAA0B,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC;aACtE;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,IAAA,uCAAyB,EAAC,QAAQ,CAAC,CAAC;QAEjD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,OAAyC;QAEzC,MAAM,KAAK,GAAG,MAAM,IAAA,oCAAsB,EAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAC1D,IAAI,CAAC,cAAc,EAAE,CACtB,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,OAAO,IAAA,8BAAgB,EAA8B;YACnD,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,QAAQ,EAAE,yBAAyB;YACnC,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO,EAAE;gBACP,MAAM,EAAE,MAAM;gBACd,WAAW,EAAE,KAAK,CAAC,WAAW;gBAC9B,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAA,2CAA6B,EAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC;iBAC9D;gBACD,IAAI,EAAE;oBACJ,SAAS,EAAE,KAAK;oBAChB,GAAG,OAAO;iBACX;aACF;SACF,CAAC,CAAC;IACL,CAAC;CACF;AA/ED,4CA+EC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { SeerbitBaseUrls, SeerbitCredentials, SeerbitEnvironment, SeerbitRequestContext, SeerbitRequestOptions } from './seerbit.types';
|
|
1
|
+
import type { SeerbitBaseUrls, SeerbitCredentials, SeerbitEnvironment, NormalizedSeerbitEnvironment, SeerbitRequestContext, SeerbitRequestOptions } from './seerbit.types';
|
|
2
2
|
export declare const SEERBIT_BASE_URLS: SeerbitBaseUrls;
|
|
3
3
|
export declare const SEERBIT_BASE_URL: string;
|
|
4
|
+
export declare const normalizeSeerbitEnvironment: (environment?: string) => NormalizedSeerbitEnvironment;
|
|
4
5
|
export declare const getSeerbitBaseUrl: (environment: SeerbitEnvironment, baseUrlOverride?: string) => string;
|
|
5
6
|
export declare const getSeerbitCredentials: (environment: SeerbitEnvironment) => SeerbitCredentials;
|
|
6
7
|
export declare const buildSeerbitHeaders: (token?: string) => Record<string, string>;
|