@alexasomba/better-auth-paystack
Version:
Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more
73 lines (72 loc) • 2.38 kB
JavaScript
//#region src/metadata.ts
function isMetadataRecord(value) {
return value !== null && typeof value === "object" && !Array.isArray(value);
}
function parsePaystackMetadata(value) {
if (value === void 0 || value === null || value === "") return {};
if (typeof value === "string") try {
const parsed = JSON.parse(value);
return isMetadataRecord(parsed) ? parsed : {};
} catch {
return {};
}
return isMetadataRecord(value) ? value : {};
}
function stringifyPaystackMetadata(value) {
if (value === void 0 || value === null || value === "") return void 0;
return JSON.stringify(parsePaystackMetadata(value));
}
function hasPaystackMetadata(value) {
return Object.keys(parsePaystackMetadata(value)).length > 0;
}
function getMetadataString(metadata, key) {
const value = metadata[key];
return typeof value === "string" && value !== "" ? value : void 0;
}
function getMetadataNumber(metadata, key) {
const value = metadata[key];
return typeof value === "number" && Number.isFinite(value) ? value : void 0;
}
function getMetadataBoolean(metadata, key) {
const value = metadata[key];
return value === true || value === "true";
}
function createCheckoutMetadata(input) {
return {
referenceId: input.referenceId,
userId: input.userId,
plan: input.plan,
groupId: input.groupId,
product: input.product,
...input.extra,
isTrial: input.trial.isTrial,
trialRequested: input.trial.requested,
trialGranted: input.trial.granted,
trialDeniedReason: input.trial.deniedReason,
trialEnd: input.trial.endsAt?.toISOString()
};
}
function createProrationMetadata(input) {
return {
type: "proration",
subscriptionId: input.subscriptionId,
referenceId: input.referenceId,
newPlan: input.newPlan,
oldPlan: input.oldPlan,
newSeatCount: input.newSeatCount,
remainingDays: input.remainingDays
};
}
function createRenewalMetadata(input) {
return {
type: "renewal",
subscriptionId: input.subscriptionId,
referenceId: input.referenceId
};
}
//#endregion
//#region src/version.ts
const PACKAGE_VERSION = "3.1.1";
//#endregion
export { getMetadataBoolean as a, hasPaystackMetadata as c, createRenewalMetadata as i, parsePaystackMetadata as l, createCheckoutMetadata as n, getMetadataNumber as o, createProrationMetadata as r, getMetadataString as s, PACKAGE_VERSION as t, stringifyPaystackMetadata as u };
//# sourceMappingURL=version-B4mP7Bib.mjs.map