mpesalib
Version:
A robust Node.js library for Safaricom's Daraja API with complete TypeScript support and modern async/await patterns
110 lines • 6.3 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.reversalSchema = exports.transactionStatusSchema = exports.accountBalanceSchema = exports.stkPushQuerySchema = exports.stkPushSchema = exports.b2bSchema = exports.b2cSchema = exports.c2bSimulateSchema = exports.c2bRegisterUrlSchema = exports.configSchema = void 0;
const joi_1 = __importDefault(require("joi"));
exports.configSchema = joi_1.default.object({
consumerKey: joi_1.default.string().required(),
consumerSecret: joi_1.default.string().required(),
environment: joi_1.default.string().valid('sandbox', 'production').required(),
shortCode: joi_1.default.string().required(),
initiatorName: joi_1.default.string().optional(),
securityCredential: joi_1.default.string().optional(),
certificatePath: joi_1.default.string().optional(),
passkey: joi_1.default.string().optional(),
});
exports.c2bRegisterUrlSchema = joi_1.default.object({
ShortCode: joi_1.default.string().required(),
ResponseType: joi_1.default.string().valid('Completed', 'Cancelled').required(),
ConfirmationURL: joi_1.default.string().uri().required(),
ValidationURL: joi_1.default.string().uri().required(),
});
exports.c2bSimulateSchema = joi_1.default.object({
ShortCode: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('CustomerPayBillOnline', 'CustomerBuyGoodsOnline').required(),
Amount: joi_1.default.number().positive().required(),
Msisdn: joi_1.default.string().pattern(/^254[0-9]{9}$/).required(),
BillRefNumber: joi_1.default.string().optional(),
});
exports.b2cSchema = joi_1.default.object({
InitiatorName: joi_1.default.string().required(),
SecurityCredential: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('SalaryPayment', 'BusinessPayment', 'PromotionPayment').required(),
Amount: joi_1.default.number().positive().required(),
PartyA: joi_1.default.string().required(),
PartyB: joi_1.default.string().pattern(/^254[0-9]{9}$/).required(),
Remarks: joi_1.default.string().max(100).required(),
QueueTimeOutURL: joi_1.default.string().uri().required(),
ResultURL: joi_1.default.string().uri().required(),
Occasion: joi_1.default.string().max(100).optional(),
});
exports.b2bSchema = joi_1.default.object({
InitiatorName: joi_1.default.string().required(),
SecurityCredential: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('BusinessPayBill', 'MerchantToMerchantTransfer', 'MerchantTransferFromMerchantToWorking', 'MerchantServicesMMFAccountTransfer', 'AgencyFloatAdvance').required(),
Amount: joi_1.default.number().positive().required(),
PartyA: joi_1.default.string().required(),
PartyB: joi_1.default.string().required(),
RecieverIdentifierType: joi_1.default.number().valid(1, 2, 4).required(),
Remarks: joi_1.default.string().max(100).required(),
QueueTimeOutURL: joi_1.default.string().uri().required(),
ResultURL: joi_1.default.string().uri().required(),
AccountReference: joi_1.default.string().max(100).required(),
});
exports.stkPushSchema = joi_1.default.object({
BusinessShortCode: joi_1.default.string().required(),
Password: joi_1.default.string().required(),
Timestamp: joi_1.default.string().length(14).required(),
TransactionType: joi_1.default.string().valid('CustomerPayBillOnline', 'CustomerBuyGoodsOnline').required(),
Amount: joi_1.default.number().positive().required(),
PartyA: joi_1.default.string().pattern(/^254[0-9]{9}$/).required(),
PartyB: joi_1.default.string().required(),
PhoneNumber: joi_1.default.string().pattern(/^254[0-9]{9}$/).required(),
CallBackURL: joi_1.default.string().uri().required(),
AccountReference: joi_1.default.string().max(100).required(),
TransactionDesc: joi_1.default.string().max(100).required(),
});
exports.stkPushQuerySchema = joi_1.default.object({
BusinessShortCode: joi_1.default.string().required(),
Password: joi_1.default.string().required(),
Timestamp: joi_1.default.string().length(14).required(),
CheckoutRequestID: joi_1.default.string().required(),
});
exports.accountBalanceSchema = joi_1.default.object({
InitiatorName: joi_1.default.string().required(),
SecurityCredential: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('AccountBalance').required(),
PartyA: joi_1.default.string().required(),
IdentifierType: joi_1.default.string().valid('1', '2', '4').required(),
Remarks: joi_1.default.string().max(100).required(),
QueueTimeOutURL: joi_1.default.string().uri().required(),
ResultURL: joi_1.default.string().uri().required(),
});
exports.transactionStatusSchema = joi_1.default.object({
InitiatorName: joi_1.default.string().required(),
SecurityCredential: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('TransactionStatusQuery').required(),
TransactionID: joi_1.default.string().required(),
PartyA: joi_1.default.string().required(),
IdentifierType: joi_1.default.string().valid('1', '2', '4').required(),
ResultURL: joi_1.default.string().uri().required(),
QueueTimeOutURL: joi_1.default.string().uri().required(),
Remarks: joi_1.default.string().max(100).required(),
Occasion: joi_1.default.string().max(100).optional(),
});
exports.reversalSchema = joi_1.default.object({
InitiatorName: joi_1.default.string().required(),
SecurityCredential: joi_1.default.string().required(),
CommandID: joi_1.default.string().valid('TransactionReversal').required(),
TransactionID: joi_1.default.string().required(),
Amount: joi_1.default.number().positive().required(),
ReceiverParty: joi_1.default.string().required(),
RecieverIdentifierType: joi_1.default.string().valid('1', '2', '4').required(),
ResultURL: joi_1.default.string().uri().required(),
QueueTimeOutURL: joi_1.default.string().uri().required(),
Remarks: joi_1.default.string().max(100).required(),
Occasion: joi_1.default.string().max(100).optional(),
});
//# sourceMappingURL=schemas.js.map