@alexasomba/better-auth-paystack 1.1.2 → 1.2.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 +22 -2
- package/dist/client.d.mts +23 -1
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +51 -87
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +308 -63
- package/dist/index.mjs.map +1 -1
- package/dist/{types-CMXvth6C.d.mts → types-BOpjdQrr.d.mts} +31 -4
- package/dist/types-BOpjdQrr.d.mts.map +1 -0
- package/package.json +8 -8
- 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,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { a as PaystackProduct, o as PaystackTransaction, s as Subscription } from "./types-BOpjdQrr.mjs";
|
|
2
2
|
import { paystack } from "./index.mjs";
|
|
3
3
|
import { BetterFetch, BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
|
|
4
4
|
|
|
@@ -25,6 +25,9 @@ declare const paystackClient: <O extends {
|
|
|
25
25
|
quantity?: number;
|
|
26
26
|
referenceId?: string;
|
|
27
27
|
product?: string;
|
|
28
|
+
scheduleAtPeriodEnd?: boolean;
|
|
29
|
+
cancelAtPeriodEnd?: boolean;
|
|
30
|
+
prorateAndCharge?: boolean;
|
|
28
31
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
29
32
|
url: string;
|
|
30
33
|
reference: string;
|
|
@@ -46,6 +49,9 @@ declare const paystackClient: <O extends {
|
|
|
46
49
|
quantity?: number;
|
|
47
50
|
referenceId?: string;
|
|
48
51
|
product?: string;
|
|
52
|
+
scheduleAtPeriodEnd?: boolean;
|
|
53
|
+
cancelAtPeriodEnd?: boolean;
|
|
54
|
+
prorateAndCharge?: boolean;
|
|
49
55
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
50
56
|
url: string;
|
|
51
57
|
reference: string;
|
|
@@ -58,6 +64,7 @@ declare const paystackClient: <O extends {
|
|
|
58
64
|
cancel: (data: {
|
|
59
65
|
subscriptionCode: string;
|
|
60
66
|
emailToken?: string;
|
|
67
|
+
atPeriodEnd?: boolean;
|
|
61
68
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
62
69
|
status: string;
|
|
63
70
|
}>>;
|
|
@@ -102,6 +109,7 @@ declare const paystackClient: <O extends {
|
|
|
102
109
|
disable: (data: {
|
|
103
110
|
subscriptionCode: string;
|
|
104
111
|
emailToken?: string;
|
|
112
|
+
atPeriodEnd?: boolean;
|
|
105
113
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
106
114
|
status: string;
|
|
107
115
|
}>>;
|
|
@@ -126,6 +134,9 @@ declare const paystackClient: <O extends {
|
|
|
126
134
|
quantity?: number;
|
|
127
135
|
referenceId?: string;
|
|
128
136
|
product?: string;
|
|
137
|
+
scheduleAtPeriodEnd?: boolean;
|
|
138
|
+
cancelAtPeriodEnd?: boolean;
|
|
139
|
+
prorateAndCharge?: boolean;
|
|
129
140
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
130
141
|
url: string;
|
|
131
142
|
reference: string;
|
|
@@ -158,6 +169,9 @@ declare const paystackClient: <O extends {
|
|
|
158
169
|
quantity?: number;
|
|
159
170
|
referenceId?: string;
|
|
160
171
|
product?: string;
|
|
172
|
+
scheduleAtPeriodEnd?: boolean;
|
|
173
|
+
cancelAtPeriodEnd?: boolean;
|
|
174
|
+
prorateAndCharge?: boolean;
|
|
161
175
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
162
176
|
url: string;
|
|
163
177
|
reference: string;
|
|
@@ -176,6 +190,9 @@ declare const paystackClient: <O extends {
|
|
|
176
190
|
quantity?: number;
|
|
177
191
|
referenceId?: string;
|
|
178
192
|
product?: string;
|
|
193
|
+
scheduleAtPeriodEnd?: boolean;
|
|
194
|
+
cancelAtPeriodEnd?: boolean;
|
|
195
|
+
prorateAndCharge?: boolean;
|
|
179
196
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
180
197
|
url: string;
|
|
181
198
|
reference: string;
|
|
@@ -185,6 +202,7 @@ declare const paystackClient: <O extends {
|
|
|
185
202
|
cancel: (data: {
|
|
186
203
|
subscriptionCode: string;
|
|
187
204
|
emailToken?: string;
|
|
205
|
+
atPeriodEnd?: boolean;
|
|
188
206
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
189
207
|
status: string;
|
|
190
208
|
}>>;
|
|
@@ -217,6 +235,7 @@ declare const paystackClient: <O extends {
|
|
|
217
235
|
disable: (data: {
|
|
218
236
|
subscriptionCode: string;
|
|
219
237
|
emailToken?: string;
|
|
238
|
+
atPeriodEnd?: boolean;
|
|
220
239
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
221
240
|
status: string;
|
|
222
241
|
}>>;
|
|
@@ -239,6 +258,9 @@ declare const paystackClient: <O extends {
|
|
|
239
258
|
quantity?: number;
|
|
240
259
|
referenceId?: string;
|
|
241
260
|
product?: string;
|
|
261
|
+
scheduleAtPeriodEnd?: boolean;
|
|
262
|
+
cancelAtPeriodEnd?: boolean;
|
|
263
|
+
prorateAndCharge?: boolean;
|
|
242
264
|
}, options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
243
265
|
url: string;
|
|
244
266
|
reference: string;
|
package/dist/client.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":";;;;;cAOa,cAAA;EAEX,YAAA;AAAA,GAGA,QAAA,GAAW,CAAA;;sBAIe,UAAA,QAAkB,QAAA;uBACvB,WAAA;;MADK;;;;QAGxB,IAAA;QACA,KAAA;QACA,MAAA;QACA,SAAA;QACA,QAAA,GAAW,MAAA;QACX,WAAA;QACA,WAAA;QACA,QAAA;QACA,QAAA;QACA,WAAA;QACA,OAAA;MAAA,GACA,OAAA,GAAY,iBAAA,KAAoB,OAAA,CAAQ,mBAAA;QACxC,GAAA;QACA,SAAA;QACA,UAAA;QACA,QAAA;MAAA;
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":"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"}
|
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: 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}, 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}, 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
|
|
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: 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,WAAwB;GACpC,MAAM,wBAAwB,OAAO,MAelC,YAKI;AACN,WAAO,OAKJ,mCAAmC;KACrC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,MAA6B,YAIvD;AACN,WAAO,OAIJ,+BAA+B;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,mBAAmB,OAAO,OAA4C,EAAE,EAAE,YAEzE;AACN,WAAO,OAEJ,8BAA8B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,OAA4C,EAAE,EAAE,YAE1E;AACN,WAAO,OAEJ,+BAA+B;KACjC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,4BAA4B,OAAO,MAAoC,YAEtE;AACN,WAAO,OAEJ,yCAAyC;KAC3C,QAAQ;KACR,OAAO;KACP,GAAG;KACH,CAAC;;GAGH,MAAM,qBAAqB,OAAO,MAI/B,YAEI;AACN,WAAO,OAEJ,iCAAiC;KACnC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,sBAAsB,OAAO,MAGhC,YAEI;AACN,WAAO,OAEJ,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,OAAgC,uBAAuB,EAC7D,QAAQ,OACR,CAAC;;KAEH,cAAc,YAA6E;AAC1F,aAAO,OAA0C,0BAA0B,EAC1E,QAAQ,QACR,CAAC;;KAEH,WAAW,YAA6E;AACvF,aAAO,OAA0C,uBAAuB,EACvE,QAAQ,QACR,CAAC;;KAEH,cAAc,OAAO,YAEd;AACN,aAAO,OAEJ,0BAA0B;OAC5B,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH,WAAW,OAAO,YAEX;AACN,aAAO,OAEJ,uBAAuB;OACzB,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH;IACD;;EAEF"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as PaystackProduct, c as SubscriptionOptions, i as PaystackPlan, n as PaystackNodeClient, r as PaystackOptions, s as Subscription, t as PaystackClientLike } from "./types-BOpjdQrr.mjs";
|
|
2
|
+
import * as _better_auth_core_utils_error_codes0 from "@better-auth/core/utils/error-codes";
|
|
2
3
|
import * as better_auth0 from "better-auth";
|
|
3
4
|
import { AuthContext, GenericEndpointContext } from "better-auth";
|
|
4
5
|
import * as _better_auth_core_db0 from "@better-auth/core/db";
|
|
@@ -21,6 +22,9 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
21
22
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
22
23
|
callbackURL: zod.ZodOptional<zod.ZodString>;
|
|
23
24
|
quantity: zod.ZodOptional<zod.ZodNumber>;
|
|
25
|
+
scheduleAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
26
|
+
cancelAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
27
|
+
prorateAndCharge: zod.ZodOptional<zod.ZodBoolean>;
|
|
24
28
|
}, better_auth0.$strip>;
|
|
25
29
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
26
30
|
referenceId: string;
|
|
@@ -47,12 +51,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
47
51
|
};
|
|
48
52
|
};
|
|
49
53
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
50
|
-
},
|
|
51
|
-
url: string | undefined;
|
|
52
|
-
reference: string | undefined;
|
|
53
|
-
accessCode: string | undefined;
|
|
54
|
-
redirect: boolean;
|
|
55
|
-
}>;
|
|
54
|
+
}, any>;
|
|
56
55
|
verifyTransaction: better_call0.StrictEndpoint<"/paystack/verify-transaction", {
|
|
57
56
|
method: "POST";
|
|
58
57
|
body: zod.ZodObject<{
|
|
@@ -83,11 +82,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
83
82
|
};
|
|
84
83
|
};
|
|
85
84
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
86
|
-
},
|
|
87
|
-
status: string | undefined;
|
|
88
|
-
reference: string;
|
|
89
|
-
data: Record<string, unknown>;
|
|
90
|
-
}>;
|
|
85
|
+
}, any>;
|
|
91
86
|
listSubscriptions: better_call0.StrictEndpoint<"/paystack/list-subscriptions", {
|
|
92
87
|
method: "GET";
|
|
93
88
|
query: zod.ZodObject<{
|
|
@@ -118,9 +113,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
118
113
|
};
|
|
119
114
|
};
|
|
120
115
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
121
|
-
},
|
|
122
|
-
subscriptions: Subscription[];
|
|
123
|
-
}>;
|
|
116
|
+
}, any>;
|
|
124
117
|
paystackWebhook: better_call0.StrictEndpoint<"/paystack/webhook", {
|
|
125
118
|
method: "POST";
|
|
126
119
|
metadata: {
|
|
@@ -131,9 +124,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
131
124
|
};
|
|
132
125
|
cloneRequest: true;
|
|
133
126
|
disableBody: true;
|
|
134
|
-
},
|
|
135
|
-
received: boolean;
|
|
136
|
-
}>;
|
|
127
|
+
}, any>;
|
|
137
128
|
listTransactions: better_call0.StrictEndpoint<"/paystack/list-transactions", {
|
|
138
129
|
method: "GET";
|
|
139
130
|
query: zod.ZodObject<{
|
|
@@ -164,9 +155,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
164
155
|
};
|
|
165
156
|
};
|
|
166
157
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
167
|
-
},
|
|
168
|
-
transactions: PaystackTransaction[];
|
|
169
|
-
}>;
|
|
158
|
+
}, any>;
|
|
170
159
|
getConfig: better_call0.StrictEndpoint<"/paystack/get-config", {
|
|
171
160
|
method: "GET";
|
|
172
161
|
metadata: {
|
|
@@ -174,16 +163,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
174
163
|
operationId: string;
|
|
175
164
|
};
|
|
176
165
|
};
|
|
177
|
-
},
|
|
178
|
-
plans: PaystackPlan<Record<string, unknown>>[];
|
|
179
|
-
products: InputPaystackProduct[];
|
|
180
|
-
}>;
|
|
166
|
+
}, any>;
|
|
181
167
|
disableSubscription: better_call0.StrictEndpoint<"/paystack/disable-subscription", {
|
|
182
168
|
method: "POST";
|
|
183
169
|
body: zod.ZodObject<{
|
|
184
170
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
185
171
|
subscriptionCode: zod.ZodString;
|
|
186
172
|
emailToken: zod.ZodOptional<zod.ZodString>;
|
|
173
|
+
atPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
187
174
|
}, better_auth0.$strip>;
|
|
188
175
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
189
176
|
referenceId: string;
|
|
@@ -210,15 +197,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
210
197
|
};
|
|
211
198
|
};
|
|
212
199
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
213
|
-
},
|
|
214
|
-
status: string;
|
|
215
|
-
}>;
|
|
200
|
+
}, any>;
|
|
216
201
|
enableSubscription: better_call0.StrictEndpoint<"/paystack/enable-subscription", {
|
|
217
202
|
method: "POST";
|
|
218
203
|
body: zod.ZodObject<{
|
|
219
204
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
220
205
|
subscriptionCode: zod.ZodString;
|
|
221
206
|
emailToken: zod.ZodOptional<zod.ZodString>;
|
|
207
|
+
atPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
222
208
|
}, better_auth0.$strip>;
|
|
223
209
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
224
210
|
referenceId: string;
|
|
@@ -245,9 +231,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
245
231
|
};
|
|
246
232
|
};
|
|
247
233
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
248
|
-
},
|
|
249
|
-
status: string;
|
|
250
|
-
}>;
|
|
234
|
+
}, any>;
|
|
251
235
|
getSubscriptionManageLink: better_call0.StrictEndpoint<"/paystack/get-subscription-manage-link", {
|
|
252
236
|
method: "GET";
|
|
253
237
|
query: zod.ZodObject<{
|
|
@@ -278,12 +262,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
278
262
|
};
|
|
279
263
|
};
|
|
280
264
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
281
|
-
},
|
|
282
|
-
link: null;
|
|
283
|
-
message: string;
|
|
284
|
-
} | {
|
|
285
|
-
link: string | undefined;
|
|
286
|
-
}>;
|
|
265
|
+
}, any>;
|
|
287
266
|
subscriptionManageLink: better_call0.StrictEndpoint<"/paystack/subscription/manage-link", {
|
|
288
267
|
method: "GET";
|
|
289
268
|
query: zod.ZodObject<{
|
|
@@ -314,12 +293,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
314
293
|
};
|
|
315
294
|
};
|
|
316
295
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
317
|
-
},
|
|
318
|
-
link: null;
|
|
319
|
-
message: string;
|
|
320
|
-
} | {
|
|
321
|
-
link: string | undefined;
|
|
322
|
-
}>;
|
|
296
|
+
}, any>;
|
|
323
297
|
createSubscription: better_call0.StrictEndpoint<"/paystack/create-subscription", {
|
|
324
298
|
method: "POST";
|
|
325
299
|
body: zod.ZodObject<{
|
|
@@ -332,6 +306,9 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
332
306
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
333
307
|
callbackURL: zod.ZodOptional<zod.ZodString>;
|
|
334
308
|
quantity: zod.ZodOptional<zod.ZodNumber>;
|
|
309
|
+
scheduleAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
310
|
+
cancelAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
311
|
+
prorateAndCharge: zod.ZodOptional<zod.ZodBoolean>;
|
|
335
312
|
}, better_auth0.$strip>;
|
|
336
313
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
337
314
|
referenceId: string;
|
|
@@ -358,12 +335,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
358
335
|
};
|
|
359
336
|
};
|
|
360
337
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
361
|
-
},
|
|
362
|
-
url: string | undefined;
|
|
363
|
-
reference: string | undefined;
|
|
364
|
-
accessCode: string | undefined;
|
|
365
|
-
redirect: boolean;
|
|
366
|
-
}>;
|
|
338
|
+
}, any>;
|
|
367
339
|
upgradeSubscription: better_call0.StrictEndpoint<"/paystack/upgrade-subscription", {
|
|
368
340
|
method: "POST";
|
|
369
341
|
body: zod.ZodObject<{
|
|
@@ -376,6 +348,9 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
376
348
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
377
349
|
callbackURL: zod.ZodOptional<zod.ZodString>;
|
|
378
350
|
quantity: zod.ZodOptional<zod.ZodNumber>;
|
|
351
|
+
scheduleAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
352
|
+
cancelAtPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
353
|
+
prorateAndCharge: zod.ZodOptional<zod.ZodBoolean>;
|
|
379
354
|
}, better_auth0.$strip>;
|
|
380
355
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
381
356
|
referenceId: string;
|
|
@@ -402,18 +377,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
402
377
|
};
|
|
403
378
|
};
|
|
404
379
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
405
|
-
},
|
|
406
|
-
url: string | undefined;
|
|
407
|
-
reference: string | undefined;
|
|
408
|
-
accessCode: string | undefined;
|
|
409
|
-
redirect: boolean;
|
|
410
|
-
}>;
|
|
380
|
+
}, any>;
|
|
411
381
|
cancelSubscription: better_call0.StrictEndpoint<"/paystack/cancel-subscription", {
|
|
412
382
|
method: "POST";
|
|
413
383
|
body: zod.ZodObject<{
|
|
414
384
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
415
385
|
subscriptionCode: zod.ZodString;
|
|
416
386
|
emailToken: zod.ZodOptional<zod.ZodString>;
|
|
387
|
+
atPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
417
388
|
}, better_auth0.$strip>;
|
|
418
389
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
419
390
|
referenceId: string;
|
|
@@ -440,15 +411,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
440
411
|
};
|
|
441
412
|
};
|
|
442
413
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
443
|
-
},
|
|
444
|
-
status: string;
|
|
445
|
-
}>;
|
|
414
|
+
}, any>;
|
|
446
415
|
restoreSubscription: better_call0.StrictEndpoint<"/paystack/restore-subscription", {
|
|
447
416
|
method: "POST";
|
|
448
417
|
body: zod.ZodObject<{
|
|
449
418
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
450
419
|
subscriptionCode: zod.ZodString;
|
|
451
420
|
emailToken: zod.ZodOptional<zod.ZodString>;
|
|
421
|
+
atPeriodEnd: zod.ZodOptional<zod.ZodBoolean>;
|
|
452
422
|
}, better_auth0.$strip>;
|
|
453
423
|
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
454
424
|
referenceId: string;
|
|
@@ -475,19 +445,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
475
445
|
};
|
|
476
446
|
};
|
|
477
447
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
478
|
-
},
|
|
479
|
-
status: string;
|
|
480
|
-
}>;
|
|
448
|
+
}, any>;
|
|
481
449
|
chargeRecurringSubscription: better_call0.StrictEndpoint<"/paystack/charge-recurring", {
|
|
482
450
|
method: "POST";
|
|
483
451
|
body: zod.ZodObject<{
|
|
484
452
|
subscriptionId: zod.ZodString;
|
|
485
453
|
amount: zod.ZodOptional<zod.ZodNumber>;
|
|
486
454
|
}, better_auth0.$strip>;
|
|
487
|
-
},
|
|
488
|
-
status: string;
|
|
489
|
-
data: Record<string, unknown>;
|
|
490
|
-
}>;
|
|
455
|
+
}, any>;
|
|
491
456
|
syncProducts: better_call0.StrictEndpoint<"/paystack/sync-products", {
|
|
492
457
|
method: "POST";
|
|
493
458
|
metadata: {
|
|
@@ -517,10 +482,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
517
482
|
};
|
|
518
483
|
};
|
|
519
484
|
}>)[];
|
|
520
|
-
},
|
|
521
|
-
status: string;
|
|
522
|
-
count: number;
|
|
523
|
-
}>;
|
|
485
|
+
}, any>;
|
|
524
486
|
listProducts: better_call0.StrictEndpoint<"/paystack/list-products", {
|
|
525
487
|
method: "GET";
|
|
526
488
|
metadata: {
|
|
@@ -528,9 +490,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
528
490
|
operationId: string;
|
|
529
491
|
};
|
|
530
492
|
};
|
|
531
|
-
},
|
|
532
|
-
products: PaystackProduct[];
|
|
533
|
-
}>;
|
|
493
|
+
}, any>;
|
|
534
494
|
syncPlans: better_call0.StrictEndpoint<"/paystack/sync-plans", {
|
|
535
495
|
method: "POST";
|
|
536
496
|
metadata: {
|
|
@@ -560,10 +520,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
560
520
|
};
|
|
561
521
|
};
|
|
562
522
|
}>)[];
|
|
563
|
-
},
|
|
564
|
-
status: string;
|
|
565
|
-
count: number;
|
|
566
|
-
}>;
|
|
523
|
+
}, any>;
|
|
567
524
|
listPlans: better_call0.StrictEndpoint<"/paystack/list-plans", {
|
|
568
525
|
method: "GET";
|
|
569
526
|
metadata: {
|
|
@@ -592,9 +549,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
592
549
|
};
|
|
593
550
|
};
|
|
594
551
|
}>)[];
|
|
595
|
-
},
|
|
596
|
-
plans: any[];
|
|
597
|
-
}>;
|
|
552
|
+
}, any>;
|
|
598
553
|
};
|
|
599
554
|
schema: _better_auth_core_db0.BetterAuthPluginDBSchema;
|
|
600
555
|
init: (ctx: AuthContext) => {
|
|
@@ -624,6 +579,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
624
579
|
before: (member: {
|
|
625
580
|
organizationId: string;
|
|
626
581
|
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
582
|
+
after: (member: {
|
|
583
|
+
organizationId: string | undefined;
|
|
584
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
585
|
+
};
|
|
586
|
+
delete: {
|
|
587
|
+
after: (member: {
|
|
588
|
+
organizationId: string | undefined;
|
|
589
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
627
590
|
};
|
|
628
591
|
};
|
|
629
592
|
invitation: {
|
|
@@ -631,6 +594,14 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
631
594
|
before: (invitation: {
|
|
632
595
|
organizationId: string;
|
|
633
596
|
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
597
|
+
after: (invitation: {
|
|
598
|
+
organizationId: string | undefined;
|
|
599
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
600
|
+
};
|
|
601
|
+
delete: {
|
|
602
|
+
after: (invitation: {
|
|
603
|
+
organizationId: string | undefined;
|
|
604
|
+
}, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
|
|
634
605
|
};
|
|
635
606
|
};
|
|
636
607
|
team: {
|
|
@@ -643,14 +614,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
643
614
|
};
|
|
644
615
|
};
|
|
645
616
|
$ERROR_CODES: {
|
|
646
|
-
|
|
647
|
-
readonly SUBSCRIPTION_PLAN_NOT_FOUND: "Subscription plan not found";
|
|
648
|
-
readonly UNABLE_TO_CREATE_CUSTOMER: "Unable to create customer";
|
|
649
|
-
readonly FAILED_TO_INITIALIZE_TRANSACTION: "Failed to initialize transaction";
|
|
650
|
-
readonly FAILED_TO_VERIFY_TRANSACTION: "Failed to verify transaction";
|
|
651
|
-
readonly FAILED_TO_DISABLE_SUBSCRIPTION: "Failed to disable subscription";
|
|
652
|
-
readonly FAILED_TO_ENABLE_SUBSCRIPTION: "Failed to enable subscription";
|
|
653
|
-
readonly EMAIL_VERIFICATION_REQUIRED: "Email verification is required before you can subscribe to a plan";
|
|
617
|
+
[x: string]: _better_auth_core_utils_error_codes0.RawError<string>;
|
|
654
618
|
};
|
|
655
619
|
};
|
|
656
620
|
type PaystackPlugin<O extends PaystackOptions<PaystackClientLike, any, any> = PaystackOptions> = ReturnType<typeof paystack<PaystackClientLike, any, any, O>>;
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;;cAiDa,QAAA,2BACY,kBAAA,GAAqB,kBAAA,cACjC,MAAA,6BACF,MAAA,6BACA,eAAA,CAAgB,eAAA,EAAiB,SAAA,EAAW,OAAA,IAAW,eAAA,CAAgB,eAAA,EAAiB,SAAA,EAAW,OAAA,GAE5G,OAAA,EAAS,CAAA;;;;;;8BAAC,GAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BE,WAAA;;;;;;cAMc,EAAA;cAAY,KAAA;cAAe,IAAA;YAAA,GAAsB,OAAA,GAAY,sBAAA,UAA6B,OAAA;UAAA;QAAA;;;;cA+B1F,EAAA;cAAY,IAAA;cAAc,KAAA;YAAA,GAAuB,OAAA,EAAW,sBAAA,UAA6B,OAAA;UAAA;QAAA;MAAA;;;;YAmErF,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;;YAKzE,cAAA;UAAA,GAAoC,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;;;YAOpF,cAAA;UAAA,GAAoC,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;;;;YAS/E,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;;YAKzE,cAAA;UAAA,GAAoC,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;;;YAOpF,cAAA;UAAA,GAAoC,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;;;;YASzF,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;IAAA;EAAA;;iBAAA,oCAAA,CAAA,QAAA;EAAA;AAAA;AAAA,KAyB1F,cAAA,WAED,eAAA,CAAgB,kBAAA,cAAgC,eAAA,IACvD,UAAA,QAEI,QAAA,CAAS,kBAAA,YAA8B,CAAA"}
|