@aajsa/moyasar-client
Version:
A lightweight and type-safe TypeScript client for interacting with Moyasar Payment Gateway APIs.
109 lines (107 loc) • 3.49 kB
JavaScript
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs');
const require_common = require('./common.cjs');
const require_payment = require('./payment.cjs');
const zod_v4_mini = require_rolldown_runtime.__toESM(require("zod/v4-mini"));
//#region src/schema/invoice.ts
const InvoiceStatusEnum = zod_v4_mini.z.enum([
"initiated",
"paid",
"failed",
"refunded",
"canceled",
"on_hold",
"expired",
"voided"
]);
const InvoiceResponseSchema = zod_v4_mini.z.object({
id: zod_v4_mini.z.uuid(),
status: InvoiceStatusEnum,
amount: zod_v4_mini.z.number(),
currency: zod_v4_mini.z.string().check(zod_v4_mini.z.length(3)),
description: zod_v4_mini.z.string(),
logo_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()),
amount_format: zod_v4_mini.z.string(),
url: zod_v4_mini.z.url(),
callback_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()),
expired_at: zod_v4_mini.z.nullish(zod_v4_mini.z.string()),
created_at: zod_v4_mini.z.string(),
updated_at: zod_v4_mini.z.string(),
back_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()),
success_url: zod_v4_mini.z.nullish(zod_v4_mini.z.url()),
payments: require_payment.PaymentResponseSchema,
metadata: zod_v4_mini.z.nullish(zod_v4_mini.z.record(zod_v4_mini.z.string(), zod_v4_mini.z.string()))
});
const createInvoiceSchema = zod_v4_mini.z.object({
amount: zod_v4_mini.z.number(),
currency: zod_v4_mini.z.string().check(zod_v4_mini.z.length(3)),
description: zod_v4_mini.z.string(),
callback_url: zod_v4_mini.z.url(),
success_url: zod_v4_mini.z.url(),
back_url: zod_v4_mini.z.url(),
expired_at: zod_v4_mini.z.string()
});
const createBulkInvoiceSchema = zod_v4_mini.z.array(zod_v4_mini.z.object({
amount: zod_v4_mini.z.number(),
currency: zod_v4_mini.z.string().check(zod_v4_mini.z.length(3)),
description: zod_v4_mini.z.string(),
callback_url: zod_v4_mini.z.url(),
success_url: zod_v4_mini.z.url(),
back_url: zod_v4_mini.z.url(),
expired_at: zod_v4_mini.z.string()
}));
const listInvoicesSchema = zod_v4_mini.z.nullish(zod_v4_mini.z.object({
id: zod_v4_mini.z.uuid(),
page: zod_v4_mini.z.number(),
status: InvoiceStatusEnum,
"created[gt]": zod_v4_mini.z.string(),
"created[lt]": zod_v4_mini.z.string(),
metadata: zod_v4_mini.z.string()
}));
const updateInvoice = 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 invoicesEndpoints = {
getInvoiceId: {
path: "/invoices/:id",
method: "GET",
params: require_common.paramPathIdSchema,
output: InvoiceResponseSchema
},
listInvoices: {
path: "/invoices",
method: "GET",
query: listInvoicesSchema,
output: zod_v4_mini.z.object({
invoices: zod_v4_mini.z.nullish(zod_v4_mini.z.array(InvoiceResponseSchema)),
meta: require_common.MetaResponseSchema
})
},
createInvoice: {
path: "/invoices",
method: "POST",
input: createInvoiceSchema,
output: InvoiceResponseSchema
},
createBulkInvoice: {
path: "/invoices/bulk",
method: "POST",
input: createBulkInvoiceSchema,
output: zod_v4_mini.z.array(InvoiceResponseSchema)
},
updateInvoice: {
path: "/invoices/:id",
method: "PUT",
params: require_common.paramPathIdSchema,
input: updateInvoice,
output: InvoiceResponseSchema
},
cancelInvoice: {
path: "/invoices/:id/cancel",
method: "POST",
params: require_common.paramPathIdSchema,
output: InvoiceResponseSchema
}
};
//#endregion
exports.invoicesEndpoints = invoicesEndpoints;