@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.
- package/README.md +84 -14
- package/dist/client.d.mts +136 -155
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +101 -74
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +394 -2
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +447 -206
- package/dist/index.mjs.map +1 -1
- package/dist/types-CNI2ur0p.d.mts +271 -0
- package/dist/types-CNI2ur0p.d.mts.map +1 -0
- package/dist/version-C_50YiuM.mjs +6 -0
- package/dist/version-C_50YiuM.mjs.map +1 -0
- package/package.json +21 -22
- package/dist/index-Dwbeddkr.d.mts +0 -711
- package/dist/index-Dwbeddkr.d.mts.map +0 -1
|
@@ -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 @@
|
|
|
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.
|
|
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.
|
|
69
|
-
"better-call": "
|
|
68
|
+
"@alexasomba/paystack-node": "^1.9.4",
|
|
69
|
+
"better-call": "~1.3.5",
|
|
70
70
|
"defu": "^6.1.7",
|
|
71
|
-
"zod": "^4.3
|
|
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": "^
|
|
78
|
-
"@commitlint/config-conventional": "^
|
|
79
|
-
"@eslint/compat": "^2.0
|
|
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.
|
|
82
|
-
"@typescript-eslint/eslint-plugin": "^8.
|
|
83
|
-
"@typescript-eslint/parser": "^8.
|
|
84
|
-
"@vitest/coverage-v8": "^4.1.
|
|
85
|
-
"better-auth": "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.
|
|
88
|
-
"eslint-plugin-react-hooks": "^7.1.
|
|
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.
|
|
91
|
-
"typescript": "^
|
|
92
|
-
"typescript-eslint": "^8.
|
|
93
|
-
"vite-plus": "^0.1.
|
|
94
|
-
"vitest": "npm:@voidzero-dev/vite-plus-test@^0.1.
|
|
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.
|
|
96
|
+
"better-auth": "^1.6.9"
|
|
98
97
|
},
|
|
99
98
|
"optionalDependencies": {
|
|
100
|
-
"@rollup/rollup-linux-x64-gnu": "^4.60.
|
|
99
|
+
"@rollup/rollup-linux-x64-gnu": "^4.60.3"
|
|
101
100
|
},
|
|
102
101
|
"engines": {
|
|
103
102
|
"node": ">=24.0.0"
|