@alexasomba/better-auth-paystack 2.1.0 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,271 @@
1
+ import { GenericEndpointContext, InferOptionSchema, Session, User } from "better-auth";
2
+ import { PaystackCustomerClient, PaystackPlanClient, PaystackProductClient, PaystackSubscriptionClient, PaystackTransactionClient, PaystackWebhookEvent, components } from "@alexasomba/paystack-node";
3
+ import { BetterAuthPluginDBSchema, DBFieldAttribute } from "better-auth/db";
4
+ //#region src/schema.d.ts
5
+ type PluginSchemaTable<TableName extends string, FieldName extends string> = Record<TableName, {
6
+ fields: Record<FieldName, DBFieldAttribute>;
7
+ disableMigration?: boolean;
8
+ modelName?: string;
9
+ }>;
10
+ type TransactionsSchema = PluginSchemaTable<"paystackTransaction", "reference" | "paystackId" | "referenceId" | "userId" | "amount" | "currency" | "status" | "plan" | "product" | "metadata" | "createdAt" | "updatedAt">;
11
+ type SubscriptionsSchema = PluginSchemaTable<"subscription", "plan" | "referenceId" | "paystackCustomerCode" | "paystackSubscriptionCode" | "paystackTransactionReference" | "paystackAuthorizationCode" | "paystackEmailToken" | "status" | "periodStart" | "periodEnd" | "trialStart" | "trialEnd" | "cancelAtPeriodEnd" | "groupId" | "seats" | "pendingPlan">;
12
+ type UserSchema = PluginSchemaTable<"user", "paystackCustomerCode">;
13
+ type OrganizationSchema = PluginSchemaTable<"organization", "paystackCustomerCode" | "email">;
14
+ type ProductsSchema = PluginSchemaTable<"paystackProduct", "name" | "description" | "price" | "currency" | "quantity" | "unlimited" | "paystackId" | "slug" | "metadata" | "createdAt" | "updatedAt">;
15
+ type PlansSchema = PluginSchemaTable<"paystackPlan", "name" | "description" | "amount" | "currency" | "interval" | "planCode" | "paystackId" | "metadata" | "createdAt" | "updatedAt">;
16
+ type PaystackPluginSchema = SubscriptionsSchema & TransactionsSchema & UserSchema & OrganizationSchema & ProductsSchema & PlansSchema;
17
+ declare const getSchema: (options: PaystackOptions) => BetterAuthPluginDBSchema;
18
+ //#endregion
19
+ //#region src/types.d.ts
20
+ type PaystackCheckoutChannel = "card" | "bank" | "ussd" | "qr" | "mobile_money" | "bank_transfer" | "eft" | "apple_pay";
21
+ /**
22
+ * Custom models for Paystack Plugin
23
+ * These align with the database schema in src/schema.ts
24
+ */
25
+ interface PaystackTransaction {
26
+ id: string;
27
+ reference: string;
28
+ paystackId?: string;
29
+ referenceId: string;
30
+ userId: string;
31
+ amount: number;
32
+ currency: string;
33
+ status: string;
34
+ plan?: string | null;
35
+ product?: string | null;
36
+ metadata?: string | null;
37
+ createdAt: Date;
38
+ updatedAt: Date;
39
+ }
40
+ interface PaystackProduct {
41
+ id?: string;
42
+ name: string;
43
+ description?: string;
44
+ price: number;
45
+ currency: string;
46
+ quantity?: number;
47
+ unlimited?: boolean;
48
+ paystackId?: string;
49
+ slug?: string;
50
+ metadata?: string | null;
51
+ createdAt?: Date;
52
+ updatedAt?: Date;
53
+ }
54
+ interface PaystackPlan {
55
+ id?: string;
56
+ name: string;
57
+ description?: string;
58
+ amount?: number;
59
+ currency?: string;
60
+ interval?: string;
61
+ planCode?: string;
62
+ paystackId?: string;
63
+ seatAmount?: number;
64
+ /**
65
+ * Deprecated legacy alias for `seatAmount`.
66
+ * If used, it must still be a numeric amount in the smallest currency unit.
67
+ */
68
+ seatPriceId?: number | string;
69
+ seatPlanCode?: string;
70
+ invoiceLimit?: number;
71
+ freeTrial?: {
72
+ days?: number;
73
+ onTrialStart?: (subscription: Subscription) => Promise<void>;
74
+ };
75
+ limits?: Record<string, unknown>;
76
+ features?: string[];
77
+ metadata?: string | null;
78
+ createdAt?: Date;
79
+ updatedAt?: Date;
80
+ }
81
+ /**
82
+ * Paystack Webhook Payload structure
83
+ */
84
+ type PaystackWebhookPayload = PaystackWebhookEvent;
85
+ /**
86
+ * Paystack SDK Result types
87
+ */
88
+ type PaystackTransactionResponse = components["schemas"]["VerifyResponse"]["data"];
89
+ interface SubscriptionOptions {
90
+ /**
91
+ * Enable subscriptions
92
+ */
93
+ enabled?: boolean;
94
+ /**
95
+ * Plans configuration
96
+ */
97
+ plans: PaystackPlan[] | (() => Promise<PaystackPlan[]>);
98
+ /**
99
+ * Automatically sync quantity from local DB to Paystack (if seats are used)
100
+ */
101
+ autoSyncQuantity?: boolean;
102
+ /**
103
+ * Handling of subscription cancellation
104
+ * @default "at_period_end"
105
+ */
106
+ cancelBehavior?: "at_period_end" | "immediately";
107
+ /**
108
+ * Handlers for subscription events
109
+ */
110
+ onSubscriptionComplete?: (data: {
111
+ event: PaystackWebhookPayload;
112
+ subscription: Subscription;
113
+ plan: PaystackPlan;
114
+ }, ctx: GenericEndpointContext) => Promise<void>;
115
+ onSubscriptionCreated?: (data: {
116
+ event: PaystackWebhookPayload;
117
+ subscription: Subscription;
118
+ plan: PaystackPlan;
119
+ }, ctx: GenericEndpointContext) => Promise<void>;
120
+ onSubscriptionCancel?: (data: {
121
+ event: PaystackWebhookPayload;
122
+ subscription: Subscription;
123
+ }, ctx: GenericEndpointContext) => Promise<void>;
124
+ /**
125
+ * Authorization handler for reference checks
126
+ */
127
+ authorizeReference?: (data: {
128
+ user: User;
129
+ session: Session;
130
+ referenceId: string;
131
+ action: string;
132
+ }, ctx: GenericEndpointContext) => Promise<boolean>;
133
+ /**
134
+ * Require email verification before subscription
135
+ */
136
+ requireEmailVerification?: boolean;
137
+ /**
138
+ * Restrict checkout to specific Paystack channels for subscription flows.
139
+ * Use `["card"]` to enforce card-only subscriptions.
140
+ */
141
+ allowedPaymentChannels?: PaystackCheckoutChannel[];
142
+ }
143
+ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackClientLike> {
144
+ /**
145
+ * Paystack Secret Key
146
+ */
147
+ secretKey: string;
148
+ /**
149
+ * Deprecated alias for `webhook.secret`.
150
+ * Use `webhook.secret` for new code.
151
+ */
152
+ paystackWebhookSecret?: string;
153
+ /**
154
+ * Paystack Client Instance
155
+ * If provided, will be used instead of creating a new one with secretKey
156
+ */
157
+ paystackClient?: TPaystackClient;
158
+ /**
159
+ * Webhook configuration
160
+ */
161
+ webhook?: {
162
+ /**
163
+ * Webhook secret for signature verification
164
+ */
165
+ secret?: string;
166
+ /**
167
+ * Whether to verify the request origin IP address
168
+ * @default false
169
+ */
170
+ verifyIP?: boolean;
171
+ /**
172
+ * List of trusted IP addresses for webhooks.
173
+ * Defaults to official Paystack IPs if verifyIP is true and this is empty.
174
+ */
175
+ trustedIPs?: string[];
176
+ };
177
+ /**
178
+ * Subscription configuration
179
+ */
180
+ subscription?: SubscriptionOptions;
181
+ /**
182
+ * Billing pattern
183
+ * @default "native"
184
+ */
185
+ billingPattern?: "native" | "local";
186
+ /**
187
+ * Global event handler
188
+ */
189
+ onEvent?: (event: PaystackWebhookEvent) => Promise<void>;
190
+ /**
191
+ * Organization billing configuration
192
+ */
193
+ organization?: {
194
+ enabled?: boolean;
195
+ getCustomerCreateParams?: (org: {
196
+ id: string;
197
+ name: string;
198
+ email?: string | null;
199
+ }, ctx: GenericEndpointContext) => Promise<Record<string, unknown>>;
200
+ onCustomerCreate?: (data: {
201
+ paystackCustomer: Record<string, unknown>;
202
+ organization: unknown;
203
+ }, ctx: GenericEndpointContext) => Promise<void>;
204
+ };
205
+ /**
206
+ * Products configuration
207
+ */
208
+ products?: {
209
+ products?: PaystackProduct[] | (() => Promise<PaystackProduct[]>);
210
+ };
211
+ createCustomerOnSignUp?: boolean;
212
+ onCustomerCreate?: (data: {
213
+ paystackCustomer: Record<string, unknown>;
214
+ user: unknown;
215
+ }, ctx: GenericEndpointContext) => Promise<void>;
216
+ /**
217
+ * Custom database schema / model names
218
+ */
219
+ schema?: InferOptionSchema<PaystackPluginSchema>;
220
+ }
221
+ interface Subscription {
222
+ id: string;
223
+ userId: string;
224
+ organizationId?: string;
225
+ plan: string;
226
+ pendingPlan?: string | null;
227
+ paystackSubscriptionCode?: string;
228
+ paystackCustomerCode?: string;
229
+ paystackPlanCode?: string;
230
+ paystackAuthorizationCode?: string;
231
+ paystackTransactionReference?: string;
232
+ paystackEmailToken?: string;
233
+ status: string;
234
+ seats: number;
235
+ referenceId: string;
236
+ periodStart?: Date | null;
237
+ periodEnd?: Date | null;
238
+ cancelAtPeriodEnd: boolean;
239
+ trialStart?: Date | null;
240
+ trialEnd?: Date | null;
241
+ groupId?: string | null;
242
+ createdAt: Date;
243
+ updatedAt: Date;
244
+ }
245
+ interface ChargeRecurringSubscriptionInput {
246
+ subscriptionId: string;
247
+ amount?: number;
248
+ }
249
+ interface ChargeRecurringSubscriptionResult {
250
+ status: "success" | "failed";
251
+ data: PaystackTransactionResponse;
252
+ }
253
+ interface PaystackSyncResult {
254
+ status: "success";
255
+ count: number;
256
+ }
257
+ type AnyPaystackOptions = PaystackOptions<PaystackClientLike>;
258
+ /**
259
+ * Exact grouped SDK slices used by this plugin.
260
+ * This deliberately matches the official SDK surface instead of a handwritten approximation.
261
+ */
262
+ interface PaystackClientLike {
263
+ transaction: Pick<PaystackTransactionClient, "initialize" | "verify" | "chargeAuthorization">;
264
+ customer: Pick<PaystackCustomerClient, "create" | "update" | "fetch">;
265
+ subscription: Pick<PaystackSubscriptionClient, "create" | "fetch" | "disable" | "enable" | "manageLink">;
266
+ product: Pick<PaystackProductClient, "fetch" | "list">;
267
+ plan: Pick<PaystackPlanClient, "list" | "create">;
268
+ }
269
+ //#endregion
270
+ export { PaystackOptions as a, PaystackSyncResult as c, Subscription as d, SubscriptionOptions as f, PaystackClientLike as i, PaystackTransaction as l, ChargeRecurringSubscriptionInput as n, PaystackPlan as o, getSchema as p, ChargeRecurringSubscriptionResult as r, PaystackProduct as s, AnyPaystackOptions as t, PaystackTransactionResponse as u };
271
+ //# sourceMappingURL=types-CNI2ur0p.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-CNI2ur0p.d.mts","names":["GenericEndpointContext","InferOptionSchema","Session","User","Organization","Member","PaystackPaths","PaystackResponse","PaystackWebhookEvent","PaystackClient","PaystackCustomerClient","PaystackPlanClient","PaystackProductClient","PaystackSubscriptionClient","PaystackTransactionClient","components","PaystackPluginSchema","PaystackCurrency","PaystackCheckoutChannel","PaystackTransaction","Date","id","reference","paystackId","referenceId","userId","amount","currency","status","plan","product","metadata","createdAt","updatedAt","PaystackProduct","name","description","price","quantity","unlimited","slug","InputPaystackProduct","PaystackUser","paystackCustomerCode","PaystackOrganization","PaystackPlan","Subscription","Promise","Record","interval","planCode","seatAmount","seatPriceId","seatPlanCode","invoiceLimit","freeTrial","days","onTrialStart","subscription","limits","features","PaystackWebhookPayload","PaystackTransactionResponse","PaystackPlanResponse","PaystackCustomerResponse","PaystackSubscriptionResponse","PaystackProductResponse","SubscriptionOptions","enabled","plans","autoSyncQuantity","cancelBehavior","onSubscriptionComplete","event","data","ctx","onSubscriptionCreated","onSubscriptionCancel","authorizeReference","user","session","action","requireEmailVerification","allowedPaymentChannels","PaystackOptions","TPaystackClient","PaystackClientLike","secretKey","paystackWebhookSecret","paystackClient","webhook","secret","verifyIP","trustedIPs","billingPattern","onEvent","organization","getCustomerCreateParams","email","org","onCustomerCreate","paystackCustomer","products","createCustomerOnSignUp","schema","organizationId","pendingPlan","paystackSubscriptionCode","paystackPlanCode","paystackAuthorizationCode","paystackTransactionReference","paystackEmailToken","seats","periodStart","periodEnd","cancelAtPeriodEnd","trialStart","trialEnd","groupId","ChargeRecurringSubscriptionInput","subscriptionId","ChargeRecurringSubscriptionResult","PaystackSyncResult","count","AnyPaystackOptions","Pick","transaction","customer"],"sources":["../src/schema.ts","../src/types.d.ts"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ //#region src/version.ts
2
+ const PACKAGE_VERSION = "2.3.0";
3
+ //#endregion
4
+ export { PACKAGE_VERSION as t };
5
+
6
+ //# sourceMappingURL=version-C_50YiuM.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-C_50YiuM.mjs","names":[],"sources":["../src/version.ts"],"sourcesContent":["export const PACKAGE_VERSION = \"2.3.0\";\n"],"mappings":";AAAA,MAAa,kBAAkB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexasomba/better-auth-paystack",
3
- "version": "2.1.0",
3
+ "version": "2.4.0",
4
4
  "description": "Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more",
5
5
  "keywords": [
6
6
  "africa",
@@ -65,39 +65,38 @@
65
65
  "access": "public"
66
66
  },
67
67
  "dependencies": {
68
- "@alexasomba/paystack-node": "^1.9.2",
69
- "better-call": "^1.3.5",
68
+ "@alexasomba/paystack-node": "^1.9.4",
69
+ "better-call": "~1.3.5",
70
70
  "defu": "^6.1.7",
71
- "zod": "^4.3.6"
71
+ "zod": "^4.4.3"
72
72
  },
73
73
  "devDependencies": {
74
74
  "@arethetypeswrong/cli": "^0.18.2",
75
- "@better-auth/core": "1.7.0-beta.1",
76
75
  "@better-fetch/fetch": "^1.1.21",
77
- "@commitlint/cli": "^20.5.0",
78
- "@commitlint/config-conventional": "^20.5.0",
79
- "@eslint/compat": "^2.0.5",
76
+ "@commitlint/cli": "^21.0.0",
77
+ "@commitlint/config-conventional": "^21.0.0",
78
+ "@eslint/compat": "^2.1.0",
80
79
  "@eslint/js": "^10.0.1",
81
- "@types/node": "^24.12.2",
82
- "@typescript-eslint/eslint-plugin": "^8.58.2",
83
- "@typescript-eslint/parser": "^8.58.2",
84
- "@vitest/coverage-v8": "^4.1.4",
85
- "better-auth": "1.7.0-beta.1",
80
+ "@types/node": "^24.12.3",
81
+ "@typescript-eslint/eslint-plugin": "^8.59.2",
82
+ "@typescript-eslint/parser": "^8.59.2",
83
+ "@vitest/coverage-v8": "^4.1.5",
84
+ "better-auth": "^1.6.9",
86
85
  "eslint-plugin-import-x": "^4.16.2",
87
- "eslint-plugin-promise": "^7.2.1",
88
- "eslint-plugin-react-hooks": "^7.1.0",
86
+ "eslint-plugin-promise": "^7.3.0",
87
+ "eslint-plugin-react-hooks": "^7.1.1",
89
88
  "eslint-plugin-unicorn": "^64.0.0",
90
- "publint": "^0.3.18",
91
- "typescript": "^5.9.3",
92
- "typescript-eslint": "^8.58.2",
93
- "vite-plus": "^0.1.18",
94
- "vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.18"
89
+ "publint": "^0.3.20",
90
+ "typescript": "^6.0.3",
91
+ "typescript-eslint": "^8.59.2",
92
+ "vite-plus": "^0.1.20",
93
+ "vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.20"
95
94
  },
96
95
  "peerDependencies": {
97
- "better-auth": "^1.6.5"
96
+ "better-auth": "^1.6.9"
98
97
  },
99
98
  "optionalDependencies": {
100
- "@rollup/rollup-linux-x64-gnu": "^4.60.1"
99
+ "@rollup/rollup-linux-x64-gnu": "^4.60.3"
101
100
  },
102
101
  "engines": {
103
102
  "node": ">=24.0.0"