@alexasomba/better-auth-paystack 1.1.2 → 1.2.1
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 +22 -2
- package/dist/client.d.mts +25 -4
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +15 -14
- package/dist/client.mjs.map +1 -1
- package/dist/{types-CMXvth6C.d.mts → index-DoMJ9OLF.d.mts} +126 -6
- package/dist/index-DoMJ9OLF.d.mts.map +1 -0
- package/dist/index.d.mts +2 -659
- package/dist/index.mjs +440 -212
- package/dist/index.mjs.map +1 -1
- package/package.json +10 -10
- package/dist/index.d.mts.map +0 -1
- package/dist/types-CMXvth6C.d.mts.map +0 -1
package/README.md
CHANGED
|
@@ -10,7 +10,9 @@ A TypeScript-first plugin that integrates Paystack into [Better Auth](https://ww
|
|
|
10
10
|
- [x] **Auto Customer Creation**: Optional Paystack customer creation on user sign up or organization creation.
|
|
11
11
|
- [x] **Trial Management**: Configurable trial periods with built-in abuse prevention logic.
|
|
12
12
|
- [x] **Organization Billing**: Associate subscriptions with organizations and authorize access via roles.
|
|
13
|
-
- [x] **Enforced Limits**: Automatic enforcement of seat
|
|
13
|
+
- [x] **Enforced Limits & Seats**: Automatic enforcement of member seat upgrades and resource limits (teams).
|
|
14
|
+
- [x] **Scheduled Changes**: Defer subscription updates or cancellations to the end of the billing cycle.
|
|
15
|
+
- [x] **Proration**: Immediate mid-cycle prorated charges for seat and plan upgrades.
|
|
14
16
|
- [x] **Popup Modal Flow**: Optional support for Paystack's inline checkout experience via `@alexasomba/paystack-browser`.
|
|
15
17
|
- [x] **Webhook Security**: Pre-configured signature verification (HMAC-SHA512).
|
|
16
18
|
- [x] **Transaction History**: Built-in support for listing and viewing local transaction records.
|
|
@@ -207,6 +209,25 @@ if (data?.accessCode) {
|
|
|
207
209
|
}
|
|
208
210
|
```
|
|
209
211
|
|
|
212
|
+
### Scheduled Changes & Cancellation
|
|
213
|
+
|
|
214
|
+
Defer changes to the end of the current billing cycle:
|
|
215
|
+
- **Upgrades**: Pass `scheduleAtPeriodEnd: true` in `initializeTransaction()`.
|
|
216
|
+
- **Cancellations**: Use `authClient.subscription.cancel({ atPeriodEnd: true })` to keep the subscription active until the period ends.
|
|
217
|
+
|
|
218
|
+
### Mid-Cycle Proration (`prorateAndCharge`)
|
|
219
|
+
|
|
220
|
+
The plugin can dynamically calculate the cost difference for immediate mid-cycle upgrades (like adding more seats).
|
|
221
|
+
If the user has a saved Paystack authorization code, the plugin will execute a prorated charge for the remaining cycle days and immediately sync the new amount/seats.
|
|
222
|
+
|
|
223
|
+
```ts
|
|
224
|
+
await authClient.paystack.transaction.initialize({
|
|
225
|
+
plan: "pro",
|
|
226
|
+
quantity: 5, // Upgrading seats
|
|
227
|
+
prorateAndCharge: true, // Will calculate and charge the prorated amount instantly
|
|
228
|
+
});
|
|
229
|
+
```
|
|
230
|
+
|
|
210
231
|
### Trial Abuse Prevention
|
|
211
232
|
|
|
212
233
|
The plugin checks the `referenceId` history. If a trial was ever used (active, expired, or trialing), it will not be granted again, preventing resubscribe-abuse.
|
|
@@ -514,7 +535,6 @@ Future features planned for upcoming versions:
|
|
|
514
535
|
### Future Considerations
|
|
515
536
|
|
|
516
537
|
- [ ] Multi-currency support improvements
|
|
517
|
-
- [ ] Proration for plan upgrades/downgrades
|
|
518
538
|
- [ ] Invoice generation
|
|
519
539
|
- [ ] Payment retry logic for failed renewals
|
|
520
540
|
|
package/dist/client.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { BetterFetch, BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
|
|
1
|
+
import { a as PaystackProduct, n as paystack, o as PaystackTransaction, s as Subscription } from "./index-DoMJ9OLF.mjs";
|
|
2
|
+
import { BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
|
|
4
3
|
|
|
5
4
|
//#region src/client.d.ts
|
|
6
5
|
declare const paystackClient: <O extends {
|
|
@@ -8,7 +7,7 @@ declare const paystackClient: <O extends {
|
|
|
8
7
|
}>(_options?: O) => {
|
|
9
8
|
id: "paystack";
|
|
10
9
|
$InferServerPlugin: ReturnType<typeof paystack>;
|
|
11
|
-
getActions: ($fetch:
|
|
10
|
+
getActions: ($fetch: unknown, _$store: unknown, _options: unknown) => {
|
|
12
11
|
subscription: {
|
|
13
12
|
/**
|
|
14
13
|
* Initialize a transaction to upgrade or creating a subscription.
|
|
@@ -25,6 +24,9 @@ declare const paystackClient: <O extends {
|
|
|
25
24
|
quantity?: number;
|
|
26
25
|
referenceId?: string;
|
|
27
26
|
product?: string;
|
|
27
|
+
scheduleAtPeriodEnd?: boolean;
|
|
28
|
+
cancelAtPeriodEnd?: boolean;
|
|
29
|
+
prorateAndCharge?: boolean;
|
|
28
30
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
29
31
|
url: string;
|
|
30
32
|
reference: string;
|
|
@@ -46,6 +48,9 @@ declare const paystackClient: <O extends {
|
|
|
46
48
|
quantity?: number;
|
|
47
49
|
referenceId?: string;
|
|
48
50
|
product?: string;
|
|
51
|
+
scheduleAtPeriodEnd?: boolean;
|
|
52
|
+
cancelAtPeriodEnd?: boolean;
|
|
53
|
+
prorateAndCharge?: boolean;
|
|
49
54
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
50
55
|
url: string;
|
|
51
56
|
reference: string;
|
|
@@ -58,6 +63,7 @@ declare const paystackClient: <O extends {
|
|
|
58
63
|
cancel: (data: {
|
|
59
64
|
subscriptionCode: string;
|
|
60
65
|
emailToken?: string;
|
|
66
|
+
atPeriodEnd?: boolean;
|
|
61
67
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
62
68
|
status: string;
|
|
63
69
|
}>>;
|
|
@@ -102,6 +108,7 @@ declare const paystackClient: <O extends {
|
|
|
102
108
|
disable: (data: {
|
|
103
109
|
subscriptionCode: string;
|
|
104
110
|
emailToken?: string;
|
|
111
|
+
atPeriodEnd?: boolean;
|
|
105
112
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
106
113
|
status: string;
|
|
107
114
|
}>>;
|
|
@@ -126,6 +133,9 @@ declare const paystackClient: <O extends {
|
|
|
126
133
|
quantity?: number;
|
|
127
134
|
referenceId?: string;
|
|
128
135
|
product?: string;
|
|
136
|
+
scheduleAtPeriodEnd?: boolean;
|
|
137
|
+
cancelAtPeriodEnd?: boolean;
|
|
138
|
+
prorateAndCharge?: boolean;
|
|
129
139
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
130
140
|
url: string;
|
|
131
141
|
reference: string;
|
|
@@ -158,6 +168,9 @@ declare const paystackClient: <O extends {
|
|
|
158
168
|
quantity?: number;
|
|
159
169
|
referenceId?: string;
|
|
160
170
|
product?: string;
|
|
171
|
+
scheduleAtPeriodEnd?: boolean;
|
|
172
|
+
cancelAtPeriodEnd?: boolean;
|
|
173
|
+
prorateAndCharge?: boolean;
|
|
161
174
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
162
175
|
url: string;
|
|
163
176
|
reference: string;
|
|
@@ -176,6 +189,9 @@ declare const paystackClient: <O extends {
|
|
|
176
189
|
quantity?: number;
|
|
177
190
|
referenceId?: string;
|
|
178
191
|
product?: string;
|
|
192
|
+
scheduleAtPeriodEnd?: boolean;
|
|
193
|
+
cancelAtPeriodEnd?: boolean;
|
|
194
|
+
prorateAndCharge?: boolean;
|
|
179
195
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
180
196
|
url: string;
|
|
181
197
|
reference: string;
|
|
@@ -185,6 +201,7 @@ declare const paystackClient: <O extends {
|
|
|
185
201
|
cancel: (data: {
|
|
186
202
|
subscriptionCode: string;
|
|
187
203
|
emailToken?: string;
|
|
204
|
+
atPeriodEnd?: boolean;
|
|
188
205
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
189
206
|
status: string;
|
|
190
207
|
}>>;
|
|
@@ -217,6 +234,7 @@ declare const paystackClient: <O extends {
|
|
|
217
234
|
disable: (data: {
|
|
218
235
|
subscriptionCode: string;
|
|
219
236
|
emailToken?: string;
|
|
237
|
+
atPeriodEnd?: boolean;
|
|
220
238
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
221
239
|
status: string;
|
|
222
240
|
}>>;
|
|
@@ -239,6 +257,9 @@ declare const paystackClient: <O extends {
|
|
|
239
257
|
quantity?: number;
|
|
240
258
|
referenceId?: string;
|
|
241
259
|
product?: string;
|
|
260
|
+
scheduleAtPeriodEnd?: boolean;
|
|
261
|
+
cancelAtPeriodEnd?: boolean;
|
|
262
|
+
prorateAndCharge?: boolean;
|
|
242
263
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
243
264
|
url: string;
|
|
244
265
|
reference: string;
|
package/dist/client.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":"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"}
|
package/dist/client.mjs
CHANGED
|
@@ -3,51 +3,52 @@ const paystackClient = (_options) => {
|
|
|
3
3
|
return {
|
|
4
4
|
id: "paystack",
|
|
5
5
|
$InferServerPlugin: {},
|
|
6
|
-
getActions: ($fetch) => {
|
|
6
|
+
getActions: ($fetch, _$store, _options) => {
|
|
7
|
+
const fetch = $fetch;
|
|
7
8
|
const initializeTransaction = async (data, options) => {
|
|
8
|
-
return
|
|
9
|
+
return fetch("paystack/initialize-transaction", {
|
|
9
10
|
method: "POST",
|
|
10
11
|
body: data,
|
|
11
12
|
...options
|
|
12
13
|
});
|
|
13
14
|
};
|
|
14
15
|
const verifyTransaction = async (data, options) => {
|
|
15
|
-
return
|
|
16
|
+
return fetch("paystack/verify-transaction", {
|
|
16
17
|
method: "POST",
|
|
17
18
|
body: data,
|
|
18
19
|
...options
|
|
19
20
|
});
|
|
20
21
|
};
|
|
21
22
|
const listTransactions = async (data = {}, options) => {
|
|
22
|
-
return
|
|
23
|
+
return fetch("paystack/list-transactions", {
|
|
23
24
|
method: "GET",
|
|
24
25
|
query: data.query,
|
|
25
26
|
...options
|
|
26
27
|
});
|
|
27
28
|
};
|
|
28
29
|
const listSubscriptions = async (data = {}, options) => {
|
|
29
|
-
return
|
|
30
|
+
return fetch("paystack/list-subscriptions", {
|
|
30
31
|
method: "GET",
|
|
31
32
|
query: data.query,
|
|
32
33
|
...options
|
|
33
34
|
});
|
|
34
35
|
};
|
|
35
36
|
const getSubscriptionManageLink = async (data, options) => {
|
|
36
|
-
return
|
|
37
|
+
return fetch("paystack/get-subscription-manage-link", {
|
|
37
38
|
method: "GET",
|
|
38
39
|
query: data,
|
|
39
40
|
...options
|
|
40
41
|
});
|
|
41
42
|
};
|
|
42
43
|
const cancelSubscription = async (data, options) => {
|
|
43
|
-
return
|
|
44
|
+
return fetch("paystack/disable-subscription", {
|
|
44
45
|
method: "POST",
|
|
45
46
|
body: data,
|
|
46
47
|
...options
|
|
47
48
|
});
|
|
48
49
|
};
|
|
49
50
|
const restoreSubscription = async (data, options) => {
|
|
50
|
-
return
|
|
51
|
+
return fetch("paystack/enable-subscription", {
|
|
51
52
|
method: "POST",
|
|
52
53
|
body: data,
|
|
53
54
|
...options
|
|
@@ -90,22 +91,22 @@ const paystackClient = (_options) => {
|
|
|
90
91
|
listSubscriptions,
|
|
91
92
|
getSubscriptionManageLink,
|
|
92
93
|
getConfig: async () => {
|
|
93
|
-
return
|
|
94
|
+
return fetch("paystack/get-config", { method: "GET" });
|
|
94
95
|
},
|
|
95
96
|
syncProducts: async () => {
|
|
96
|
-
return
|
|
97
|
+
return fetch("paystack/sync-products", { method: "POST" });
|
|
97
98
|
},
|
|
98
99
|
syncPlans: async () => {
|
|
99
|
-
return
|
|
100
|
+
return fetch("paystack/sync-plans", { method: "POST" });
|
|
100
101
|
},
|
|
101
102
|
listProducts: async (options) => {
|
|
102
|
-
return
|
|
103
|
+
return fetch("paystack/list-products", {
|
|
103
104
|
method: "GET",
|
|
104
105
|
...options
|
|
105
106
|
});
|
|
106
107
|
},
|
|
107
108
|
listPlans: async (options) => {
|
|
108
|
-
return
|
|
109
|
+
return fetch("paystack/list-plans", {
|
|
109
110
|
method: "GET",
|
|
110
111
|
...options
|
|
111
112
|
});
|
|
@@ -115,7 +116,7 @@ const paystackClient = (_options) => {
|
|
|
115
116
|
}
|
|
116
117
|
};
|
|
117
118
|
};
|
|
118
|
-
|
|
119
119
|
//#endregion
|
|
120
120
|
export { paystackClient };
|
|
121
|
+
|
|
121
122
|
//# sourceMappingURL=client.mjs.map
|
package/dist/client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type { BetterFetchResponse, BetterFetchOption, BetterFetch } from \"@better-fetch/fetch\";\n\nimport type { PaystackProduct, PaystackTransaction, Subscription } from \"./types\";\n\nimport type { paystack } from \"./index\";\n\nexport const paystackClient = <\n\tO extends {\n\t\tsubscription: boolean;\n\t},\n>(\n\t\t_options?: O,\n\t) => {\n\treturn {\n\t\tid: \"paystack\",\n\t\t$InferServerPlugin: {} as ReturnType<typeof paystack>,\n\t\tgetActions: ($fetch:
|
|
1
|
+
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type { BetterFetchResponse, BetterFetchOption, BetterFetch } from \"@better-fetch/fetch\";\n\nimport type { PaystackProduct, PaystackTransaction, Subscription } from \"./types\";\n\nimport type { paystack } from \"./index\";\n\nexport const paystackClient = <\n\tO extends {\n\t\tsubscription: boolean;\n\t},\n>(\n\t\t_options?: O,\n\t) => {\n\treturn {\n\t\tid: \"paystack\",\n\t\t$InferServerPlugin: {} as ReturnType<typeof paystack>,\n\t\tgetActions: ($fetch: unknown, _$store: unknown, _options: unknown) => {\n\t\t\tconst fetch = $fetch as BetterFetch;\n\t\t\tconst initializeTransaction = async (data: {\n\t\t\t\tplan?: string;\n\t\t\t\temail?: string;\n\t\t\t\tamount?: number;\n\t\t\t\treference?: string;\n\t\t\t\tmetadata?: Record<string, unknown>;\n\t\t\t\tcallbackUrl?: string;\n\t\t\t\tcallbackURL?: string;\n\t\t\t\tcurrency?: string;\n\t\t\t\tquantity?: number;\n\t\t\t\treferenceId?: string;\n\t\t\t\tproduct?: string;\n\t\t\t\tscheduleAtPeriodEnd?: boolean;\n\t\t\t\tcancelAtPeriodEnd?: boolean;\n\t\t\t\tprorateAndCharge?: boolean;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\turl: string;\n\t\t\t\treference: string;\n\t\t\t\taccessCode: string;\n\t\t\t\tredirect: boolean;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\turl: string;\n\t\t\t\t\treference: string;\n\t\t\t\t\taccessCode: string;\n\t\t\t\t\tredirect: boolean;\n\t\t\t\t}>(\"paystack/initialize-transaction\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst verifyTransaction = async (data: { reference: string }, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t\treference: string;\n\t\t\t\tdata: unknown;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t\treference: string;\n\t\t\t\t\tdata: unknown;\n\t\t\t\t}>(\"paystack/verify-transaction\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst listTransactions = async (data: { query?: Record<string, unknown> } = {}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\ttransactions: PaystackTransaction[];\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\ttransactions: PaystackTransaction[];\n\t\t\t\t}>(\"paystack/list-transactions\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst listSubscriptions = async (data: { query?: Record<string, unknown> } = {}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tsubscriptions: Subscription[];\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tsubscriptions: Subscription[];\n\t\t\t\t}>(\"paystack/list-subscriptions\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst getSubscriptionManageLink = async (data: { subscriptionCode: string }, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tlink: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tlink: string;\n\t\t\t\t}>(\"paystack/get-subscription-manage-link\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst cancelSubscription = async (data: {\n\t\t\t\tsubscriptionCode: string;\n\t\t\t\temailToken?: string;\n\t\t\t\tatPeriodEnd?: boolean;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t}>(\"paystack/disable-subscription\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst restoreSubscription = async (data: {\n\t\t\t\tsubscriptionCode: string;\n\t\t\t\temailToken?: string;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t}>(\"paystack/enable-subscription\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tsubscription: {\n\t\t\t\t\t/**\n\t\t\t\t\t * Initialize a transaction to upgrade or creating a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t/**\n\t\t\t\t\t * Initialize a payment to create a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t/**\n\t\t\t\t\t * Disable a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t/**\n\t\t\t\t\t * Enable a subscription.\n\t\t\t\t\t */\n\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t/**\n\t\t\t\t\t * List subscriptions for the user.\n\t\t\t\t\t */\n\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t/**\n\t\t\t\t\t * Get a link to manage the subscription on Paystack.\n\t\t\t\t\t */\n\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t/**\n\t\t\t\t\t * Aliases for legacy/demo usage.\n\t\t\t\t\t */\n\t\t\t\t\tlistLocal: listSubscriptions,\n\t\t\t\t\tmanageLink: getSubscriptionManageLink,\n\t\t\t\t\tdisable: cancelSubscription,\n\t\t\t\t\tenable: restoreSubscription,\n\t\t\t\t},\n\t\t\t\tpaystack: {\n\t\t\t\t\ttransaction: {\n\t\t\t\t\t\tinitialize: initializeTransaction,\n\t\t\t\t\t\tverify: verifyTransaction,\n\t\t\t\t\t\tlist: listTransactions,\n\t\t\t\t\t},\n\t\t\t\t\tsubscription: {\n\t\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t\tlistLocal: listSubscriptions,\n\t\t\t\t\t\tmanageLink: getSubscriptionManageLink,\n\t\t\t\t\t\tdisable: cancelSubscription,\n\t\t\t\t\t\tenable: restoreSubscription,\n\t\t\t\t\t},\n\t\t\t\t\tinitializeTransaction,\n\t\t\t\t\tverifyTransaction,\n\t\t\t\t\tlistTransactions,\n\t\t\t\t\tlistSubscriptions,\n\t\t\t\t\tgetSubscriptionManageLink,\n\t\t\t\t\tgetConfig: async (): Promise<BetterFetchResponse<Record<string, unknown>>> => {\n\t\t\t\t\t\treturn fetch<Record<string, unknown>>(\"paystack/get-config\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsyncProducts: async (): Promise<BetterFetchResponse<{ status: string; count: number }>> => {\n\t\t\t\t\t\treturn fetch<{ status: string; count: number }>(\"paystack/sync-products\", {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsyncPlans: async (): Promise<BetterFetchResponse<{ status: string; count: number }>> => {\n\t\t\t\t\t\treturn fetch<{ status: string; count: number }>(\"paystack/sync-plans\", {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistProducts: async (options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\t\t\tproducts: PaystackProduct[];\n\t\t\t\t\t}>> => {\n\t\t\t\t\t\treturn fetch<{\n\t\t\t\t\t\t\tproducts: PaystackProduct[];\n\t\t\t\t\t\t}>(\"paystack/list-products\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistPlans: async (options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\t\t\tplans: unknown[];\n\t\t\t\t\t}>> => {\n\t\t\t\t\t\treturn fetch<{\n\t\t\t\t\t\t\tplans: unknown[];\n\t\t\t\t\t\t}>(\"paystack/list-plans\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t} satisfies BetterAuthClientPlugin;\n};\n"],"mappings":";AAOA,MAAa,kBAKX,aACI;AACL,QAAO;EACN,IAAI;EACJ,oBAAoB,EAAE;EACtB,aAAa,QAAiB,SAAkB,aAAsB;GACrE,MAAM,QAAQ;GACd,MAAM,wBAAwB,OAAO,MAelC,YAKI;AACN,WAAO,MAKJ,mCAAmC;KACrC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,MAA6B,YAIvD;AACN,WAAO,MAIJ,+BAA+B;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,mBAAmB,OAAO,OAA4C,EAAE,EAAE,YAEzE;AACN,WAAO,MAEJ,8BAA8B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,OAA4C,EAAE,EAAE,YAE1E;AACN,WAAO,MAEJ,+BAA+B;KACjC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,4BAA4B,OAAO,MAAoC,YAEtE;AACN,WAAO,MAEJ,yCAAyC;KAC3C,QAAQ;KACR,OAAO;KACP,GAAG;KACH,CAAC;;GAGH,MAAM,qBAAqB,OAAO,MAI/B,YAEI;AACN,WAAO,MAEJ,iCAAiC;KACnC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,sBAAsB,OAAO,MAGhC,YAEI;AACN,WAAO,MAEJ,gCAAgC;KAClC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;AAGH,UAAO;IACN,cAAc;KAIb,SAAS;KAIT,QAAQ;KAIR,QAAQ;KAIR,SAAS;KAIT,MAAM;KAIN,eAAe;KAIf,WAAW;KACX,YAAY;KACZ,SAAS;KACT,QAAQ;KACR;IACD,UAAU;KACT,aAAa;MACZ,YAAY;MACZ,QAAQ;MACR,MAAM;MACN;KACD,cAAc;MACb,QAAQ;MACR,SAAS;MACT,QAAQ;MACR,SAAS;MACT,MAAM;MACN,eAAe;MACf,WAAW;MACX,YAAY;MACZ,SAAS;MACT,QAAQ;MACR;KACD;KACA;KACA;KACA;KACA;KACA,WAAW,YAAmE;AAC7E,aAAO,MAA+B,uBAAuB,EAC5D,QAAQ,OACR,CAAC;;KAEH,cAAc,YAA6E;AAC1F,aAAO,MAAyC,0BAA0B,EACzE,QAAQ,QACR,CAAC;;KAEH,WAAW,YAA6E;AACvF,aAAO,MAAyC,uBAAuB,EACtE,QAAQ,QACR,CAAC;;KAEH,cAAc,OAAO,YAEd;AACN,aAAO,MAEJ,0BAA0B;OAC5B,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH,WAAW,OAAO,YAEX;AACN,aAAO,MAEJ,uBAAuB;OACzB,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH;IACD;;EAEF"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as _better_auth_core_utils_error_codes0 from "@better-auth/core/utils/error-codes";
|
|
2
|
+
import { AuthContext, GenericEndpointContext, InferOptionSchema, Session, User } from "better-auth";
|
|
2
3
|
import { createPaystack } from "@alexasomba/paystack-node";
|
|
3
|
-
import "@better-auth/core
|
|
4
|
+
import { GenericEndpointContext as GenericEndpointContext$1 } from "@better-auth/core";
|
|
5
|
+
import * as _better_auth_core_db0 from "@better-auth/core/db";
|
|
4
6
|
|
|
5
7
|
//#region src/schema.d.ts
|
|
6
8
|
declare const subscriptions: {
|
|
@@ -72,6 +74,10 @@ declare const subscriptions: {
|
|
|
72
74
|
type: "number";
|
|
73
75
|
required: false;
|
|
74
76
|
};
|
|
77
|
+
pendingPlan: {
|
|
78
|
+
type: "string";
|
|
79
|
+
required: false;
|
|
80
|
+
};
|
|
75
81
|
};
|
|
76
82
|
};
|
|
77
83
|
};
|
|
@@ -142,12 +148,28 @@ type SubscriptionToggleInit = NonNullableInit<Parameters<PaystackNodeClient["sub
|
|
|
142
148
|
type TransactionChargeAuthorizationInit = NonNullableInit<Parameters<PaystackNodeClient["transaction_chargeAuthorization"]>[0]>;
|
|
143
149
|
type PaystackCustomerCreateInput = WithMetadataStringOrObject<ExtractBody<CustomerCreateInit>>;
|
|
144
150
|
type PaystackCustomerUpdateInput = WithMetadataStringOrObject<WithEmail<ExtractBody<CustomerUpdateInit>>>;
|
|
145
|
-
type PaystackTransactionInitializeInput = WithMetadataObject<ExtractBody<TransactionInitializeInit
|
|
151
|
+
type PaystackTransactionInitializeInput = WithMetadataObject<ExtractBody<TransactionInitializeInit>> & {
|
|
152
|
+
scheduleAtPeriodEnd?: boolean;
|
|
153
|
+
cancelAtPeriodEnd?: boolean;
|
|
154
|
+
prorateAndCharge?: boolean;
|
|
155
|
+
};
|
|
146
156
|
type PaystackTransactionChargeAuthorizationInput = WithMetadataObject<ExtractBody<TransactionChargeAuthorizationInit>>;
|
|
147
157
|
type PaystackSubscriptionCreateInput = ExtractBody<SubscriptionCreateInit>;
|
|
148
158
|
type PaystackSubscriptionToggleInput = ExtractBody<SubscriptionToggleInit>;
|
|
149
159
|
type PaystackClientLike = Partial<PaystackNodeClient> & {
|
|
150
160
|
subscription_manage_link?: PaystackNodeClient["subscription_manageLink"];
|
|
161
|
+
subscription_update?: (params: {
|
|
162
|
+
params: {
|
|
163
|
+
path: {
|
|
164
|
+
code: string;
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
body: {
|
|
168
|
+
plan?: string;
|
|
169
|
+
authorization?: string;
|
|
170
|
+
amount?: number;
|
|
171
|
+
};
|
|
172
|
+
}) => Promise<unknown>;
|
|
151
173
|
customer?: {
|
|
152
174
|
create?: (params: PaystackCustomerCreateInput) => Promise<unknown>;
|
|
153
175
|
update?: (code: string, params: PaystackCustomerUpdateInput) => Promise<unknown>;
|
|
@@ -215,6 +237,10 @@ interface PaystackPlan<TLimits = Record<string, unknown>> {
|
|
|
215
237
|
invoiceLimit?: number | undefined;
|
|
216
238
|
/** Arbitrary limits (stored/consumed by your app). */
|
|
217
239
|
limits?: TLimits | undefined;
|
|
240
|
+
/** Amount per seat (optional). */
|
|
241
|
+
seatAmount?: number | undefined;
|
|
242
|
+
/** Paystack plan code for seat (optional). */
|
|
243
|
+
seatPlanCode?: string | undefined;
|
|
218
244
|
/** Optional free trial config, if your app supports it. */
|
|
219
245
|
freeTrial?: {
|
|
220
246
|
days: number;
|
|
@@ -287,6 +313,8 @@ interface Subscription {
|
|
|
287
313
|
cancelAtPeriodEnd?: boolean | undefined;
|
|
288
314
|
groupId?: string | undefined;
|
|
289
315
|
seats?: number | undefined;
|
|
316
|
+
/** The plan that will be applied at the next billing cycle. */
|
|
317
|
+
pendingPlan?: string | undefined;
|
|
290
318
|
}
|
|
291
319
|
interface SubscriptionOptions<TMetadata = Record<string, unknown>, TLimits = Record<string, unknown>> {
|
|
292
320
|
plans: PaystackPlan<TLimits>[] | (() => PaystackPlan<TLimits>[] | Promise<PaystackPlan<TLimits>[]>);
|
|
@@ -337,7 +365,7 @@ interface OrganizationOptions<TMetadata = Record<string, unknown>> {
|
|
|
337
365
|
metadata?: TMetadata;
|
|
338
366
|
}>) | undefined;
|
|
339
367
|
}
|
|
340
|
-
interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata = Record<string, unknown>, TLimits = Record<string, unknown>> {
|
|
368
|
+
interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata extends Record<string, unknown> = Record<string, unknown>, TLimits extends Record<string, unknown> = Record<string, unknown>> {
|
|
341
369
|
/** Paystack SDK instance (recommended: `@alexasomba/paystack-node` via `createPaystack({ secretKey })`). */
|
|
342
370
|
paystackClient: NoInfer<TPaystackClient>;
|
|
343
371
|
/** Paystack webhook secret used to verify `x-paystack-signature`. */
|
|
@@ -364,5 +392,97 @@ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackN
|
|
|
364
392
|
schema?: InferOptionSchema<typeof subscriptions & typeof user & typeof organization> | undefined;
|
|
365
393
|
}
|
|
366
394
|
//#endregion
|
|
367
|
-
|
|
368
|
-
|
|
395
|
+
//#region src/index.d.ts
|
|
396
|
+
declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata extends Record<string, unknown> = Record<string, unknown>, TLimits extends Record<string, unknown> = Record<string, unknown>, O extends PaystackOptions<TPaystackClient, TMetadata, TLimits> = PaystackOptions<TPaystackClient, TMetadata, TLimits>>(options: O) => {
|
|
397
|
+
id: string;
|
|
398
|
+
endpoints: {
|
|
399
|
+
initializeTransaction: StrictEndpoint<Path, Options, R>;
|
|
400
|
+
verifyTransaction: StrictEndpoint<Path, Options, R>;
|
|
401
|
+
listSubscriptions: StrictEndpoint<Path, Options, R>;
|
|
402
|
+
paystackWebhook: StrictEndpoint<Path, Options, R>;
|
|
403
|
+
listTransactions: StrictEndpoint<Path, Options, R>;
|
|
404
|
+
getConfig: StrictEndpoint<Path, Options, R>;
|
|
405
|
+
disableSubscription: StrictEndpoint<Path, Options, R>;
|
|
406
|
+
enableSubscription: StrictEndpoint<Path, Options, R>;
|
|
407
|
+
getSubscriptionManageLink: StrictEndpoint<Path, Options, R>;
|
|
408
|
+
subscriptionManageLink: StrictEndpoint<Path, Options, R>;
|
|
409
|
+
createSubscription: StrictEndpoint<Path, Options, R>;
|
|
410
|
+
upgradeSubscription: StrictEndpoint<Path, Options, R>;
|
|
411
|
+
cancelSubscription: StrictEndpoint<Path, Options, R>;
|
|
412
|
+
restoreSubscription: StrictEndpoint<Path, Options, R>;
|
|
413
|
+
chargeRecurringSubscription: StrictEndpoint<Path, Options, R>;
|
|
414
|
+
syncProducts: StrictEndpoint<Path, Options, R>;
|
|
415
|
+
listProducts: StrictEndpoint<Path, Options, R>;
|
|
416
|
+
syncPlans: StrictEndpoint<Path, Options, R>;
|
|
417
|
+
listPlans: StrictEndpoint<Path, Options, R>;
|
|
418
|
+
};
|
|
419
|
+
schema: _better_auth_core_db0.BetterAuthPluginDBSchema;
|
|
420
|
+
init: (ctx: AuthContext) => {
|
|
421
|
+
options: {
|
|
422
|
+
databaseHooks: {
|
|
423
|
+
user: {
|
|
424
|
+
create: {
|
|
425
|
+
after(user: {
|
|
426
|
+
id: string;
|
|
427
|
+
email?: string | null;
|
|
428
|
+
name?: string | null;
|
|
429
|
+
}, hookCtx?: GenericEndpointContext | null): Promise<void>;
|
|
430
|
+
};
|
|
431
|
+
};
|
|
432
|
+
organization: {
|
|
433
|
+
create: {
|
|
434
|
+
after(org: {
|
|
435
|
+
id: string;
|
|
436
|
+
name: string;
|
|
437
|
+
email?: string | null;
|
|
438
|
+
}, hookCtx: GenericEndpointContext | null): Promise<void>;
|
|
439
|
+
};
|
|
440
|
+
} | undefined;
|
|
441
|
+
};
|
|
442
|
+
member: {
|
|
443
|
+
create: {
|
|
444
|
+
before: (member: {
|
|
445
|
+
organizationId: string;
|
|
446
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
447
|
+
after: (member: {
|
|
448
|
+
organizationId: string | undefined;
|
|
449
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
450
|
+
};
|
|
451
|
+
delete: {
|
|
452
|
+
after: (member: {
|
|
453
|
+
organizationId: string | undefined;
|
|
454
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
455
|
+
};
|
|
456
|
+
};
|
|
457
|
+
invitation: {
|
|
458
|
+
create: {
|
|
459
|
+
before: (invitation: {
|
|
460
|
+
organizationId: string;
|
|
461
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
462
|
+
after: (invitation: {
|
|
463
|
+
organizationId: string | undefined;
|
|
464
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
465
|
+
};
|
|
466
|
+
delete: {
|
|
467
|
+
after: (invitation: {
|
|
468
|
+
organizationId: string | undefined;
|
|
469
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
470
|
+
};
|
|
471
|
+
};
|
|
472
|
+
team: {
|
|
473
|
+
create: {
|
|
474
|
+
before: (team: {
|
|
475
|
+
organizationId: string;
|
|
476
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
477
|
+
};
|
|
478
|
+
};
|
|
479
|
+
};
|
|
480
|
+
};
|
|
481
|
+
$ERROR_CODES: {
|
|
482
|
+
[x: string]: _better_auth_core_utils_error_codes0.RawError<string>;
|
|
483
|
+
};
|
|
484
|
+
};
|
|
485
|
+
type PaystackPlugin<TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata extends Record<string, unknown> = Record<string, unknown>, TLimits extends Record<string, unknown> = Record<string, unknown>, O extends PaystackOptions<TPaystackClient, TMetadata, TLimits> = PaystackOptions<TPaystackClient, TMetadata, TLimits>> = ReturnType<typeof paystack<TPaystackClient, TMetadata, TLimits, O>>;
|
|
486
|
+
//#endregion
|
|
487
|
+
export { PaystackProduct as a, SubscriptionOptions as c, PaystackPlan as i, paystack as n, PaystackTransaction as o, PaystackOptions as r, Subscription as s, PaystackPlugin as t };
|
|
488
|
+
//# sourceMappingURL=index-DoMJ9OLF.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DoMJ9OLF.d.mts","names":["InferOptionSchema","Session","User","createPaystack","GenericEndpointContext","DBAdapter","organization","subscriptions","user","PaystackUser","paystackCustomerCode","PaystackNodeClient","ReturnType","PaystackCurrency","PaystackEvent","PaystackWebhookPayload","TData","TMetadata","Record","PaystackMetadata","event","data","metadata","key","PaystackCustomerResponse","customer_code","email","first_name","last_name","id","PaystackTransactionResponse","domain","status","reference","receipt_number","amount","message","gateway_response","helpdesk_link","paid_at","created_at","channel","currency","ip_address","custom_fields","authorization_url","access_code","customer","authorization","authorization_code","bin","last4","exp_month","exp_year","card_type","bank","country_code","brand","reusable","signature","account_name","PaystackProductResponse","name","description","product_code","price","quantity","quantity_sold","type","is_shippable","unlimited","active","createdAt","updatedAt","PaystackSubscriptionResponse","subscription_code","email_token","cron_expression","next_payment_date","open_invoice","cancelledAt","integration","plan","plan_code","interval","send_invoices","send_sms","PaystackOpenApiFetchResponse","T","Response","error","response","PaystackApiResult","Promise","NonNullableInit","Exclude","ExtractBody","body","B","WithMetadataStringOrObject","Omit","WithMetadataObject","WithEmail","CustomerCreateInit","Parameters","CustomerUpdateInit","TransactionInitializeInit","SubscriptionCreateInit","SubscriptionToggleInit","TransactionChargeAuthorizationInit","PaystackCustomerCreateInput","PaystackCustomerUpdateInput","PaystackTransactionInitializeInput","scheduleAtPeriodEnd","cancelAtPeriodEnd","prorateAndCharge","PaystackTransactionChargeAuthorizationInput","PaystackSubscriptionCreateInput","PaystackSubscriptionToggleInput","PaystackSubscriptionFetchInit","params","path","code","id_or_code","PaystackPlanResponse","PaystackClientLike","Partial","subscription_manage_link","subscription_update","create","update","transaction","initialize","verify","chargeAuthorization","subscription","fetch","idOrCode","disable","enable","manage","link","list","init","product","delete","product_list","product_fetch","product_create","product_update","product_delete","plan_list","plan_fetch","plan_create","plan_update","userId","organizationId","NoInfer","AuthSession","session","PaystackPlan","TLimits","Subscription","planCode","features","invoiceLimit","limits","seatAmount","seatPlanCode","freeTrial","days","onTrialStart","onTrialEnd","ctx","onTrialExpired","PaystackProduct","Date","paystackId","slug","InputPaystackProduct","PaystackTransaction","referenceId","InputPaystackTransaction","paystackSubscriptionCode","paystackTransactionReference","paystackAuthorizationCode","paystackEmailToken","periodStart","periodEnd","trialStart","trialEnd","groupId","seats","pendingPlan","InputSubscription","SubscriptionOptions","plans","requireEmailVerification","authorizeReference","action","onSubscriptionComplete","onSubscriptionUpdate","onSubscriptionCreated","onSubscriptionCancel","onSubscriptionDelete","ProductOptions","products","OrganizationOptions","enabled","createCustomerOnOrganizationCreate","onCustomerCreate","paystackCustomer","getCustomerCreateParams","PaystackOptions","TPaystackClient","paystackClient","paystackWebhookSecret","createCustomerOnSignUp","onEvent","schema","Organization","Member","role","AnyPaystackOptions"],"sources":["../src/schema.ts","../src/types.d.ts","../src/index.ts"],"mappings":"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"}
|