UNPKG

@aajsa/moyasar-client

Version:

A lightweight and type-safe TypeScript client for interacting with Moyasar Payment Gateway APIs.

187 lines (185 loc) 7.3 kB
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); const require_common = require('./common.cjs'); const zod_v4_mini = require_rolldown_runtime.__toESM(require("zod/v4-mini")); //#region src/schema/payment.ts const PaymentStatusEnum = zod_v4_mini.z.enum([ "initiated", "paid", "authorized", "failed", "refunded", "captured", "voided", "verified" ]); const PaymentResponseSchema = zod_v4_mini.z.object({ id: zod_v4_mini.z.uuid(), status: PaymentStatusEnum, amount: zod_v4_mini.z.number(), fee: zod_v4_mini.z.number(), currency: zod_v4_mini.z.string().check(zod_v4_mini.z.length(3)), refunded: zod_v4_mini.z.number(), refunded_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), captured: zod_v4_mini.z.number(), captured_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), voided_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), description: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), amount_format: zod_v4_mini.z.string(), fee_format: zod_v4_mini.z.string(), refunded_format: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), captured_format: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), invoice_id: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), ip: zod_v4_mini.z.string(), callback_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()), created_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), updated_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), metadata: zod_v4_mini.z.nullish(zod_v4_mini.z.record(zod_v4_mini.z.string(), zod_v4_mini.z.string())), source: zod_v4_mini.z.object({ type: zod_v4_mini.z.enum([ "creditcard", "applepay", "googlepay", "samsungpay", "stcpay" ]), number: zod_v4_mini.z.string(), gateway_id: zod_v4_mini.z.string(), company: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), name: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), reference_number: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), message: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), authorization_code: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), transaction_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()), response_code: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), issuer_name: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), issuer_country: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), issuer_card_type: zod_v4_mini.z.nullish(zod_v4_mini.z.enum([ "debit", "credit", "charge_card", "unspecified" ])), issuer_card_category: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), token: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), dpan: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), mobile: zod_v4_mini.z.nullish(zod_v4_mini.z.string()), cashier: zod_v4_mini.z.nullish(zod_v4_mini.z.string()) }) }); const createPaymentSchema = zod_v4_mini.z.object({ given_id: zod_v4_mini.z.uuid(), amount: zod_v4_mini.z.number().check(zod_v4_mini.z.positive()), currency: zod_v4_mini.z.string().check(zod_v4_mini.z.length(3)), description: zod_v4_mini.z.optional(zod_v4_mini.z.string()), source: zod_v4_mini.z.discriminatedUnion("type", [ zod_v4_mini.z.object({ type: zod_v4_mini.z.literal("creditcard"), name: zod_v4_mini.z.string().check(zod_v4_mini.z.minLength(1), zod_v4_mini.z.maxLength(255)), number: zod_v4_mini.z.string().check(zod_v4_mini.z.regex(/^\d{16,19}$/)), month: zod_v4_mini.z.number().check(zod_v4_mini.z.minimum(1), zod_v4_mini.z.maximum(12)), year: zod_v4_mini.z.number().check(zod_v4_mini.z.minimum(Number((/* @__PURE__ */ new Date()).getFullYear()))), cvc: zod_v4_mini.z.string().check(zod_v4_mini.z.minLength(3), zod_v4_mini.z.maxLength(4)), statement_descriptor: zod_v4_mini.z.optional(zod_v4_mini.z.string()), "3ds": zod_v4_mini.z.optional(zod_v4_mini.z._default(zod_v4_mini.z.boolean(), true)), manual: zod_v4_mini.z.optional(zod_v4_mini.z.boolean()), save_card: zod_v4_mini.z.optional(zod_v4_mini.z._default(zod_v4_mini.z.boolean(), false)) }), zod_v4_mini.z.object({ type: zod_v4_mini.z.literal("token"), token: zod_v4_mini.z.string().check(zod_v4_mini.z.startsWith("token_")), cvc: zod_v4_mini.z.string().check(zod_v4_mini.z.minLength(3), zod_v4_mini.z.maxLength(4)), statement_descriptor: zod_v4_mini.z.optional(zod_v4_mini.z.string()), "3ds": zod_v4_mini.z._default(zod_v4_mini.z.boolean(), true), manual: zod_v4_mini.z.optional(zod_v4_mini.z.boolean()) }), zod_v4_mini.z.object({ type: zod_v4_mini.z.enum([ "applepay", "samsungpay", "googlepay" ]), token: zod_v4_mini.z.string(), manual: zod_v4_mini.z.optional(zod_v4_mini.z.boolean()), statement_descriptor: zod_v4_mini.z.optional(zod_v4_mini.z.string()) }), zod_v4_mini.z.object({ type: zod_v4_mini.z.literal("stcpay"), mobile: zod_v4_mini.z.string().check(zod_v4_mini.z.regex(/^(0|(00|\+)?966)?(5\d{8})/)), cashier: zod_v4_mini.z.optional(zod_v4_mini.z.string()), branch: zod_v4_mini.z.optional(zod_v4_mini.z.string()) }) ]), callback_url: zod_v4_mini.z.url(), metadata: zod_v4_mini.z.optional(zod_v4_mini.z.record(zod_v4_mini.z.string(), zod_v4_mini.z.string())), apply_coupon: zod_v4_mini.z.optional(zod_v4_mini.z.boolean()) }); const listPaymentSchema = zod_v4_mini.z.optional(zod_v4_mini.z.partial(zod_v4_mini.z.object({ page: zod_v4_mini.z.number(), id: zod_v4_mini.z.uuid(), status: PaymentStatusEnum, "created[gt]": zod_v4_mini.z.string(), "created[lt]": zod_v4_mini.z.string(), "updated[gt]": zod_v4_mini.z.string(), "updated[lt]": zod_v4_mini.z.string(), card_last_digits: zod_v4_mini.z.string().check(zod_v4_mini.z.minLength(4)), receipt_no: zod_v4_mini.z.string(), metadata: zod_v4_mini.z.record(zod_v4_mini.z.string(), zod_v4_mini.z.string()) }))); const updatePaymentSchema = zod_v4_mini.z.partial(zod_v4_mini.z.object({ description: zod_v4_mini.z.string(), metadata: zod_v4_mini.z.record(zod_v4_mini.z.string(), zod_v4_mini.z.string()) })); const paymentAdjustmentSchema = zod_v4_mini.z.object({ amount: zod_v4_mini.z.number() }); const paymentsEndpoints = { getPaymentId: { path: "/payments/:id", method: "GET", params: require_common.paramPathIdSchema, output: PaymentResponseSchema }, listPayments: { path: "/payments", method: "GET", query: listPaymentSchema, output: zod_v4_mini.z.partial(zod_v4_mini.z.object({ payments: zod_v4_mini.z.array(PaymentResponseSchema), meta: require_common.MetaResponseSchema })) }, createPayment: { path: "/payments", method: "POST", input: createPaymentSchema, output: PaymentResponseSchema }, updatePayment: { path: "/payments/:id", method: "PUT", params: require_common.paramPathIdSchema, input: updatePaymentSchema, output: PaymentResponseSchema }, refundPayment: { path: "/payments/:id/refund", method: "POST", params: require_common.paramPathIdSchema, input: paymentAdjustmentSchema, output: PaymentResponseSchema }, capturePayment: { path: "/payments/:id/capture", method: "POST", params: require_common.paramPathIdSchema, input: paymentAdjustmentSchema, output: PaymentResponseSchema }, voidPayment: { path: "/payments/:id/void", method: "POST", params: require_common.paramPathIdSchema, output: PaymentResponseSchema } }; //#endregion exports.PaymentResponseSchema = PaymentResponseSchema; exports.paymentsEndpoints = paymentsEndpoints;