UNPKG

@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
//#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