@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
package/dist/client.mjs
CHANGED
|
@@ -1,102 +1,129 @@
|
|
|
1
|
+
import { t as PACKAGE_VERSION } from "./version-C_50YiuM.mjs";
|
|
1
2
|
//#region src/client.ts
|
|
3
|
+
/**
|
|
4
|
+
* Better Auth Paystack Client Plugin
|
|
5
|
+
*/
|
|
2
6
|
const paystackClient = (_options) => {
|
|
3
7
|
return {
|
|
4
8
|
id: "paystack",
|
|
5
|
-
version:
|
|
9
|
+
version: PACKAGE_VERSION,
|
|
6
10
|
$InferServerPlugin: {},
|
|
7
|
-
|
|
11
|
+
pathMethods: {
|
|
12
|
+
"/paystack/initialize-transaction": "POST",
|
|
13
|
+
"/paystack/verify-transaction": "POST",
|
|
14
|
+
"/paystack/disable-subscription": "POST",
|
|
15
|
+
"/paystack/enable-subscription": "POST",
|
|
16
|
+
"/paystack/create-subscription": "POST",
|
|
17
|
+
"/paystack/upgrade-subscription": "POST",
|
|
18
|
+
"/paystack/cancel-subscription": "POST",
|
|
19
|
+
"/paystack/restore-subscription": "POST"
|
|
20
|
+
},
|
|
21
|
+
getActions: ($fetch, _store, _options) => {
|
|
8
22
|
const fetch = $fetch;
|
|
9
|
-
const
|
|
10
|
-
|
|
23
|
+
const actions = {
|
|
24
|
+
transaction: {
|
|
25
|
+
initialize: (data, options) => fetch("/paystack/initialize-transaction", {
|
|
26
|
+
method: "POST",
|
|
27
|
+
body: data,
|
|
28
|
+
...options
|
|
29
|
+
}),
|
|
30
|
+
verify: (data, options) => fetch("/paystack/verify-transaction", {
|
|
31
|
+
method: "POST",
|
|
32
|
+
body: data,
|
|
33
|
+
...options
|
|
34
|
+
}),
|
|
35
|
+
list: (data, options) => fetch("/paystack/list-transactions", {
|
|
36
|
+
method: "GET",
|
|
37
|
+
query: data?.query,
|
|
38
|
+
...options
|
|
39
|
+
})
|
|
40
|
+
},
|
|
41
|
+
subscription: {
|
|
42
|
+
upgrade: (data, options) => fetch("/paystack/initialize-transaction", {
|
|
43
|
+
method: "POST",
|
|
44
|
+
body: data,
|
|
45
|
+
...options
|
|
46
|
+
}),
|
|
47
|
+
create: (data, options) => fetch("/paystack/initialize-transaction", {
|
|
48
|
+
method: "POST",
|
|
49
|
+
body: data,
|
|
50
|
+
...options
|
|
51
|
+
}),
|
|
52
|
+
cancel: (data, options) => fetch("/paystack/disable-subscription", {
|
|
53
|
+
method: "POST",
|
|
54
|
+
body: data,
|
|
55
|
+
...options
|
|
56
|
+
}),
|
|
57
|
+
restore: (data, options) => fetch("/paystack/enable-subscription", {
|
|
58
|
+
method: "POST",
|
|
59
|
+
body: data,
|
|
60
|
+
...options
|
|
61
|
+
}),
|
|
62
|
+
list: (data, options) => fetch("/paystack/list-subscriptions", {
|
|
63
|
+
method: "GET",
|
|
64
|
+
query: data?.query,
|
|
65
|
+
...options
|
|
66
|
+
}),
|
|
67
|
+
billingPortal: (data, options) => fetch("/paystack/subscription-manage-link", {
|
|
68
|
+
method: "GET",
|
|
69
|
+
query: data,
|
|
70
|
+
...options
|
|
71
|
+
}),
|
|
72
|
+
manageLink: (data, options) => fetch("/paystack/subscription-manage-link", {
|
|
73
|
+
method: "GET",
|
|
74
|
+
query: data,
|
|
75
|
+
...options
|
|
76
|
+
}),
|
|
77
|
+
disable: function(data, options) {
|
|
78
|
+
return this.cancel(data, options);
|
|
79
|
+
},
|
|
80
|
+
enable: function(data, options) {
|
|
81
|
+
return this.restore(data, options);
|
|
82
|
+
}
|
|
83
|
+
},
|
|
84
|
+
initializeTransaction: (data, options) => fetch("/paystack/initialize-transaction", {
|
|
11
85
|
method: "POST",
|
|
12
86
|
body: data,
|
|
13
87
|
...options
|
|
14
|
-
})
|
|
15
|
-
|
|
16
|
-
const verifyTransaction = async (data, options) => {
|
|
17
|
-
return fetch("paystack/verify-transaction", {
|
|
88
|
+
}),
|
|
89
|
+
verifyTransaction: (data, options) => fetch("/paystack/verify-transaction", {
|
|
18
90
|
method: "POST",
|
|
19
91
|
body: data,
|
|
20
92
|
...options
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
const listTransactions = async (data = {}, options) => {
|
|
24
|
-
return fetch("paystack/list-transactions", {
|
|
93
|
+
}),
|
|
94
|
+
listTransactions: (data, options) => fetch("/paystack/list-transactions", {
|
|
25
95
|
method: "GET",
|
|
26
|
-
query: data
|
|
96
|
+
query: data?.query,
|
|
27
97
|
...options
|
|
28
|
-
})
|
|
29
|
-
|
|
30
|
-
const listSubscriptions = async (data = {}, options) => {
|
|
31
|
-
return fetch("paystack/list-subscriptions", {
|
|
98
|
+
}),
|
|
99
|
+
listSubscriptions: (data, options) => fetch("/paystack/list-subscriptions", {
|
|
32
100
|
method: "GET",
|
|
33
|
-
query: data
|
|
101
|
+
query: data?.query,
|
|
34
102
|
...options
|
|
35
|
-
})
|
|
36
|
-
|
|
37
|
-
const getSubscriptionManageLink = async (data, options) => {
|
|
38
|
-
return fetch("paystack/subscription-manage-link", {
|
|
103
|
+
}),
|
|
104
|
+
getSubscriptionManageLink: (data, options) => fetch("/paystack/subscription-manage-link", {
|
|
39
105
|
method: "GET",
|
|
40
106
|
query: data,
|
|
41
107
|
...options
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
method: "POST",
|
|
47
|
-
body: data,
|
|
108
|
+
}),
|
|
109
|
+
config: () => fetch("/paystack/config", { method: "GET" }),
|
|
110
|
+
listProducts: (options) => fetch("/paystack/list-products", {
|
|
111
|
+
method: "GET",
|
|
48
112
|
...options
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return fetch("paystack/enable-subscription", {
|
|
53
|
-
method: "POST",
|
|
54
|
-
body: data,
|
|
113
|
+
}),
|
|
114
|
+
listPlans: (options) => fetch("/paystack/list-plans", {
|
|
115
|
+
method: "GET",
|
|
55
116
|
...options
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
return {
|
|
59
|
-
transaction: {
|
|
60
|
-
initialize: initializeTransaction,
|
|
61
|
-
verify: verifyTransaction,
|
|
62
|
-
list: listTransactions
|
|
63
|
-
},
|
|
64
|
-
subscription: {
|
|
65
|
-
upgrade: initializeTransaction,
|
|
66
|
-
create: initializeTransaction,
|
|
67
|
-
cancel: cancelSubscription,
|
|
68
|
-
restore: restoreSubscription,
|
|
69
|
-
list: listSubscriptions,
|
|
70
|
-
billingPortal: getSubscriptionManageLink,
|
|
71
|
-
manageLink: getSubscriptionManageLink,
|
|
72
|
-
disable: cancelSubscription,
|
|
73
|
-
enable: restoreSubscription
|
|
74
|
-
},
|
|
75
|
-
initializeTransaction,
|
|
76
|
-
verifyTransaction,
|
|
77
|
-
listTransactions,
|
|
78
|
-
listSubscriptions,
|
|
79
|
-
getSubscriptionManageLink,
|
|
80
|
-
config: async () => {
|
|
81
|
-
return fetch("/paystack/config", { method: "GET" });
|
|
82
|
-
},
|
|
83
|
-
listProducts: async (options) => {
|
|
84
|
-
return fetch("paystack/list-products", {
|
|
85
|
-
method: "GET",
|
|
86
|
-
...options
|
|
87
|
-
});
|
|
88
|
-
},
|
|
89
|
-
listPlans: async (options) => {
|
|
90
|
-
return fetch("paystack/list-plans", {
|
|
91
|
-
method: "GET",
|
|
92
|
-
...options
|
|
93
|
-
});
|
|
94
|
-
}
|
|
117
|
+
}),
|
|
118
|
+
paystack: {}
|
|
95
119
|
};
|
|
120
|
+
actions.paystack = actions;
|
|
121
|
+
return actions;
|
|
96
122
|
}
|
|
97
123
|
};
|
|
98
124
|
};
|
|
125
|
+
const paystack = paystackClient;
|
|
99
126
|
//#endregion
|
|
100
|
-
export { paystackClient };
|
|
127
|
+
export { paystack, paystackClient };
|
|
101
128
|
|
|
102
129
|
//# 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\";\nimport type {\n PaystackPlan,\n PaystackProduct,\n PaystackTransaction,\n Subscription,\n PaystackClientLike,\n AnyPaystackOptions,\n} from \"./types\";\n\nimport type { paystack } from \"./index\";\n\nexport const paystackClient = <\n O extends {\n subscription?: boolean;\n },\n>(\n _options?: O,\n): {\n id: \"paystack\";\n version: string;\n $InferServerPlugin: ReturnType<typeof paystack<PaystackClientLike, AnyPaystackOptions>>;\n getActions: (\n $fetch: BetterFetch,\n _$store: unknown,\n _options: unknown,\n ) => {\n transaction: {\n initialize: (\n data: Record<string, unknown> & {\n callbackUrl?: string; // Client-side alias\n callbackURL?: string; // Client-side alias\n product?: string;\n referenceId?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>\n >;\n verify: (\n data: { reference: string },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n reference: string;\n data: unknown;\n }>\n >;\n list: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n transactions: PaystackTransaction[];\n }>\n >;\n };\n subscription: {\n /**\n * Initialize a transaction to upgrade or creating a subscription.\n */\n upgrade: (\n data: Record<string, unknown> & {\n callbackUrl?: string; // Client-side alias\n callbackURL?: string; // Client-side alias\n product?: string;\n referenceId?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>\n >;\n /**\n * Initialize a payment to create a subscription.\n */\n create: (\n data: Record<string, unknown> & {\n callbackUrl?: string; // Client-side alias\n callbackURL?: string; // Client-side alias\n product?: string;\n referenceId?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>\n >;\n /**\n * Disable a subscription.\n */\n cancel: (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n atPeriodEnd?: boolean;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n }>\n >;\n /**\n * Enable a subscription.\n */\n restore: (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n }>\n >;\n /**\n * List subscriptions for the user.\n */\n list: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n subscriptions: Subscription[];\n }>\n >;\n /**\n * Get a link to manage the subscription on Paystack.\n */\n billingPortal: (\n data: { subscriptionCode: string },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n link: string;\n }>\n >;\n manageLink: (\n data: { subscriptionCode: string },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n link: string;\n }>\n >;\n disable: (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n atPeriodEnd?: boolean;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n }>\n >;\n enable: (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n }>\n >;\n };\n initializeTransaction: (\n data: Record<string, unknown> & {\n callbackUrl?: string; // Client-side alias\n callbackURL?: string; // Client-side alias\n product?: string;\n referenceId?: string;\n },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>\n >;\n verifyTransaction: (\n data: { reference: string },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n status: string;\n reference: string;\n data: unknown;\n }>\n >;\n listTransactions: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n transactions: PaystackTransaction[];\n }>\n >;\n listSubscriptions: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n subscriptions: Subscription[];\n }>\n >;\n getSubscriptionManageLink: (\n data: { subscriptionCode: string },\n options?: BetterFetchOption,\n ) => Promise<\n BetterFetchResponse<{\n link: string;\n }>\n >;\n config: () => Promise<BetterFetchResponse<Record<string, unknown>>>;\n listProducts: (options?: BetterFetchOption) => Promise<\n BetterFetchResponse<{\n products: PaystackProduct[];\n }>\n >;\n listPlans: (options?: BetterFetchOption) => Promise<\n BetterFetchResponse<{\n plans: PaystackPlan[];\n }>\n >;\n };\n} => {\n return {\n id: \"paystack\",\n version: \"1.0.0\",\n $InferServerPlugin: {} as ReturnType<typeof paystack<PaystackClientLike, AnyPaystackOptions>>,\n getActions: ($fetch: BetterFetch, _$store: unknown, _options: unknown) => {\n const fetch = $fetch;\n\n const initializeTransaction = async (\n data: Record<string, unknown> & {\n callbackUrl?: string; // Client-side alias\n callbackURL?: string; // Client-side alias\n product?: string;\n referenceId?: string;\n },\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>\n > => {\n return fetch<{\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n }>(\"paystack/initialize-transaction\", {\n method: \"POST\",\n body: data,\n ...options,\n });\n };\n\n const verifyTransaction = async (\n data: { reference: string },\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n status: string;\n reference: string;\n data: unknown;\n }>\n > => {\n return fetch<{\n status: string;\n reference: string;\n data: unknown;\n }>(\"paystack/verify-transaction\", {\n method: \"POST\",\n body: data,\n ...options,\n });\n };\n\n const listTransactions = async (\n data: { query?: Record<string, unknown> } = {},\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n transactions: PaystackTransaction[];\n }>\n > => {\n return fetch<{\n transactions: PaystackTransaction[];\n }>(\"paystack/list-transactions\", {\n method: \"GET\",\n query: data.query,\n ...options,\n });\n };\n\n const listSubscriptions = async (\n data: { query?: Record<string, unknown> } = {},\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n subscriptions: Subscription[];\n }>\n > => {\n return fetch<{\n subscriptions: Subscription[];\n }>(\"paystack/list-subscriptions\", {\n method: \"GET\",\n query: data.query,\n ...options,\n });\n };\n\n const getSubscriptionManageLink = async (\n data: { subscriptionCode: string },\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n link: string;\n }>\n > => {\n return fetch<{\n link: string;\n }>(\"paystack/subscription-manage-link\", {\n method: \"GET\",\n query: data,\n ...options,\n });\n };\n\n const cancelSubscription = async (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n atPeriodEnd?: boolean;\n },\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n status: string;\n }>\n > => {\n return fetch<{\n status: string;\n }>(\"paystack/disable-subscription\", {\n method: \"POST\",\n body: data,\n ...options,\n });\n };\n\n const restoreSubscription = async (\n data: {\n subscriptionCode: string;\n emailToken?: string;\n },\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n status: string;\n }>\n > => {\n return fetch<{\n status: string;\n }>(\"paystack/enable-subscription\", {\n method: \"POST\",\n body: data,\n ...options,\n });\n };\n\n return {\n transaction: {\n initialize: initializeTransaction,\n verify: verifyTransaction,\n list: listTransactions,\n },\n subscription: {\n /**\n * Initialize a transaction to upgrade or creating a subscription.\n */\n upgrade: initializeTransaction,\n /**\n * Initialize a payment to create a subscription.\n */\n create: initializeTransaction,\n /**\n * Disable a subscription.\n */\n cancel: cancelSubscription,\n /**\n * Enable a subscription.\n */\n restore: restoreSubscription,\n /**\n * List subscriptions for the user.\n */\n list: listSubscriptions,\n /**\n * Get a link to manage the subscription on Paystack.\n */\n billingPortal: getSubscriptionManageLink,\n manageLink: getSubscriptionManageLink,\n disable: cancelSubscription,\n enable: restoreSubscription,\n },\n initializeTransaction,\n verifyTransaction,\n listTransactions,\n listSubscriptions,\n getSubscriptionManageLink,\n config: async (): Promise<BetterFetchResponse<Record<string, unknown>>> => {\n return fetch<Record<string, unknown>>(\"/paystack/config\", {\n method: \"GET\",\n });\n },\n listProducts: async (\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n products: PaystackProduct[];\n }>\n > => {\n return fetch<{\n products: PaystackProduct[];\n }>(\"paystack/list-products\", {\n method: \"GET\",\n ...options,\n });\n },\n listPlans: async (\n options?: BetterFetchOption,\n ): Promise<\n BetterFetchResponse<{\n plans: PaystackPlan[];\n }>\n > => {\n return fetch<{\n plans: PaystackPlan[];\n }>(\"paystack/list-plans\", {\n method: \"GET\",\n ...options,\n });\n },\n };\n },\n } satisfies BetterAuthClientPlugin;\n};\n"],"mappings":";AAaA,MAAa,kBAKX,aAsOG;AACH,QAAO;EACL,IAAI;EACJ,SAAS;EACT,oBAAoB,EAAE;EACtB,aAAa,QAAqB,SAAkB,aAAsB;GACxE,MAAM,QAAQ;GAEd,MAAM,wBAAwB,OAC5B,MAMA,YAQG;AACH,WAAO,MAKJ,mCAAmC;KACpC,QAAQ;KACR,MAAM;KACN,GAAG;KACJ,CAAC;;GAGJ,MAAM,oBAAoB,OACxB,MACA,YAOG;AACH,WAAO,MAIJ,+BAA+B;KAChC,QAAQ;KACR,MAAM;KACN,GAAG;KACJ,CAAC;;GAGJ,MAAM,mBAAmB,OACvB,OAA4C,EAAE,EAC9C,YAKG;AACH,WAAO,MAEJ,8BAA8B;KAC/B,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACJ,CAAC;;GAGJ,MAAM,oBAAoB,OACxB,OAA4C,EAAE,EAC9C,YAKG;AACH,WAAO,MAEJ,+BAA+B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACJ,CAAC;;GAGJ,MAAM,4BAA4B,OAChC,MACA,YAKG;AACH,WAAO,MAEJ,qCAAqC;KACtC,QAAQ;KACR,OAAO;KACP,GAAG;KACJ,CAAC;;GAGJ,MAAM,qBAAqB,OACzB,MAKA,YAKG;AACH,WAAO,MAEJ,iCAAiC;KAClC,QAAQ;KACR,MAAM;KACN,GAAG;KACJ,CAAC;;GAGJ,MAAM,sBAAsB,OAC1B,MAIA,YAKG;AACH,WAAO,MAEJ,gCAAgC;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACJ,CAAC;;AAGJ,UAAO;IACL,aAAa;KACX,YAAY;KACZ,QAAQ;KACR,MAAM;KACP;IACD,cAAc;KAIZ,SAAS;KAIT,QAAQ;KAIR,QAAQ;KAIR,SAAS;KAIT,MAAM;KAIN,eAAe;KACf,YAAY;KACZ,SAAS;KACT,QAAQ;KACT;IACD;IACA;IACA;IACA;IACA;IACA,QAAQ,YAAmE;AACzE,YAAO,MAA+B,oBAAoB,EACxD,QAAQ,OACT,CAAC;;IAEJ,cAAc,OACZ,YAKG;AACH,YAAO,MAEJ,0BAA0B;MAC3B,QAAQ;MACR,GAAG;MACJ,CAAC;;IAEJ,WAAW,OACT,YAKG;AACH,YAAO,MAEJ,uBAAuB;MACxB,QAAQ;MACR,GAAG;MACJ,CAAC;;IAEL;;EAEJ"}
|
|
1
|
+
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { BetterFetchResponse, BetterFetchOption, BetterFetch } from \"@better-fetch/fetch\";\nimport type { BetterAuthClientPlugin } from \"better-auth/client\";\nimport type {\n PaystackPlan,\n PaystackProduct,\n PaystackTransaction,\n PaystackTransactionResponse,\n Subscription,\n PaystackClientLike,\n AnyPaystackOptions,\n} from \"./types\";\n\nimport type { paystack as paystackServer } from \"./index\";\nimport { PACKAGE_VERSION } from \"./version\";\n\n/**\n * Helper type to handle the conditional return type based on 'throw' option.\n */\nexport type FetchResult<T, O extends BetterFetchOption | undefined> = O extends { throw: true }\n ? T\n : BetterFetchResponse<T>;\n\n/**\n * Paystack Client Action Definitions\n */\nexport interface PaystackActions {\n /**\n * Initialize a transaction.\n */\n initializeTransaction: <O extends BetterFetchOption | undefined = undefined>(\n data: Record<string, unknown> & {\n callbackUrl?: string;\n callbackURL?: string;\n product?: string;\n referenceId?: string;\n },\n options?: O,\n ) => Promise<\n FetchResult<\n {\n url: string;\n reference: string;\n accessCode: string;\n redirect: boolean;\n },\n O\n >\n >;\n /**\n * Verify a transaction by reference.\n */\n verifyTransaction: <O extends BetterFetchOption | undefined = undefined>(\n data: { reference: string },\n options?: O,\n ) => Promise<\n FetchResult<\n {\n status: string;\n reference: string;\n data: PaystackTransactionResponse;\n },\n O\n >\n >;\n /**\n * List transactions for the current user/reference.\n */\n listTransactions: <O extends BetterFetchOption | undefined = undefined>(\n data?: { query?: Record<string, unknown> },\n options?: O,\n ) => Promise<FetchResult<{ transactions: PaystackTransaction[] }, O>>;\n /**\n * List subscriptions for the current user/reference.\n */\n listSubscriptions: <O extends BetterFetchOption | undefined = undefined>(\n data?: { query?: Record<string, unknown> },\n options?: O,\n ) => Promise<FetchResult<{ subscriptions: Subscription[] }, O>>;\n /**\n * Get a manage link/billing portal link for a subscription.\n */\n getSubscriptionManageLink: <O extends BetterFetchOption | undefined = undefined>(\n data: { subscriptionCode: string },\n options?: O,\n ) => Promise<FetchResult<{ link: string }, O>>;\n /**\n * Get the plugin configuration (plans and products).\n */\n config: () => Promise<BetterFetchResponse<Record<string, unknown>>>;\n /**\n * List available products.\n */\n listProducts: <O extends BetterFetchOption | undefined = undefined>(\n options?: O,\n ) => Promise<FetchResult<{ products: PaystackProduct[] }, O>>;\n /**\n * List available plans.\n */\n listPlans: <O extends BetterFetchOption | undefined = undefined>(\n options?: O,\n ) => Promise<FetchResult<{ plans: PaystackPlan[] }, O>>;\n}\n\n/**\n * Paystack Client Plugin Actions including namespaces\n */\nexport interface PaystackClientActions extends PaystackActions {\n transaction: {\n initialize: PaystackActions[\"initializeTransaction\"];\n verify: PaystackActions[\"verifyTransaction\"];\n list: PaystackActions[\"listTransactions\"];\n };\n subscription: {\n upgrade: PaystackActions[\"initializeTransaction\"];\n create: PaystackActions[\"initializeTransaction\"];\n cancel: <O extends BetterFetchOption | undefined = undefined>(\n data: {\n subscriptionCode: string;\n emailToken?: string;\n atPeriodEnd?: boolean;\n },\n options?: O,\n ) => Promise<FetchResult<{ status: string }, O>>;\n restore: <O extends BetterFetchOption | undefined = undefined>(\n data: {\n subscriptionCode: string;\n emailToken?: string;\n },\n options?: O,\n ) => Promise<FetchResult<{ status: string }, O>>;\n list: PaystackActions[\"listSubscriptions\"];\n billingPortal: PaystackActions[\"getSubscriptionManageLink\"];\n manageLink: PaystackActions[\"getSubscriptionManageLink\"];\n /**\n * @deprecated Use `subscription.cancel` instead.\n */\n disable: PaystackClientActions[\"subscription\"][\"cancel\"];\n /**\n * @deprecated Use `subscription.restore` instead.\n */\n enable: PaystackClientActions[\"subscription\"][\"restore\"];\n };\n paystack: PaystackClientActions;\n}\n\ndeclare module \"better-auth/client\" {\n interface BetterAuthClient {\n paystack: PaystackClientActions;\n subscription: PaystackClientActions[\"subscription\"];\n transaction: PaystackClientActions[\"transaction\"];\n }\n}\n\ndeclare module \"better-auth\" {\n interface BetterAuthClientPlugins {\n paystack: ReturnType<typeof paystackClient>;\n }\n}\n\n/**\n * Better Auth Paystack Client Plugin\n */\nexport const paystackClient = <\n O extends {\n subscription?: boolean;\n } = { subscription?: boolean },\n>(\n _options?: O,\n): BetterAuthClientPlugin & {\n getActions: ($fetch: BetterFetch, $store: unknown, options: unknown) => PaystackClientActions;\n} => {\n return {\n id: \"paystack\",\n version: PACKAGE_VERSION,\n $InferServerPlugin: {} as ReturnType<\n typeof paystackServer<PaystackClientLike, AnyPaystackOptions>\n >,\n pathMethods: {\n \"/paystack/initialize-transaction\": \"POST\",\n \"/paystack/verify-transaction\": \"POST\",\n \"/paystack/disable-subscription\": \"POST\",\n \"/paystack/enable-subscription\": \"POST\",\n \"/paystack/create-subscription\": \"POST\",\n \"/paystack/upgrade-subscription\": \"POST\",\n \"/paystack/cancel-subscription\": \"POST\",\n \"/paystack/restore-subscription\": \"POST\",\n },\n getActions: (\n $fetch: BetterFetch,\n _store: unknown,\n _options: unknown,\n ): PaystackClientActions => {\n const fetch = $fetch;\n\n const actions = {\n transaction: {\n initialize: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/initialize-transaction\", { method: \"POST\", body: data, ...options }),\n verify: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/verify-transaction\", { method: \"POST\", body: data, ...options }),\n list: (data?: { query?: Record<string, unknown> }, options?: BetterFetchOption) =>\n fetch(\"/paystack/list-transactions\", { method: \"GET\", query: data?.query, ...options }),\n },\n subscription: {\n upgrade: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/initialize-transaction\", { method: \"POST\", body: data, ...options }),\n create: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/initialize-transaction\", { method: \"POST\", body: data, ...options }),\n cancel: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/disable-subscription\", { method: \"POST\", body: data, ...options }),\n restore: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/enable-subscription\", { method: \"POST\", body: data, ...options }),\n list: (data?: { query?: Record<string, unknown> }, options?: BetterFetchOption) =>\n fetch(\"/paystack/list-subscriptions\", {\n method: \"GET\",\n query: data?.query,\n ...options,\n }),\n billingPortal: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/subscription-manage-link\", { method: \"GET\", query: data, ...options }),\n manageLink: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/subscription-manage-link\", { method: \"GET\", query: data, ...options }),\n disable: function (data: unknown, options?: BetterFetchOption) {\n return this.cancel(data, options);\n },\n enable: function (data: unknown, options?: BetterFetchOption) {\n return this.restore(data, options);\n },\n },\n initializeTransaction: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/initialize-transaction\", { method: \"POST\", body: data, ...options }),\n verifyTransaction: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/verify-transaction\", { method: \"POST\", body: data, ...options }),\n listTransactions: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) =>\n fetch(\"/paystack/list-transactions\", { method: \"GET\", query: data?.query, ...options }),\n listSubscriptions: (\n data?: { query?: Record<string, unknown> },\n options?: BetterFetchOption,\n ) =>\n fetch(\"/paystack/list-subscriptions\", { method: \"GET\", query: data?.query, ...options }),\n getSubscriptionManageLink: (data: unknown, options?: BetterFetchOption) =>\n fetch(\"/paystack/subscription-manage-link\", { method: \"GET\", query: data, ...options }),\n config: () => fetch(\"/paystack/config\", { method: \"GET\" }),\n listProducts: (options?: BetterFetchOption) =>\n fetch(\"/paystack/list-products\", { method: \"GET\", ...options }),\n listPlans: (options?: BetterFetchOption) =>\n fetch(\"/paystack/list-plans\", { method: \"GET\", ...options }),\n paystack: {} as unknown,\n } as unknown as PaystackClientActions;\n\n actions.paystack = actions;\n\n return actions;\n },\n } satisfies BetterAuthClientPlugin;\n};\n\nexport const paystack: typeof paystackClient = paystackClient;\n"],"mappings":";;;;;AAkKA,MAAa,kBAKX,aAGG;AACH,QAAO;EACL,IAAI;EACJ,SAAS;EACT,oBAAoB,EAAE;EAGtB,aAAa;GACX,oCAAoC;GACpC,gCAAgC;GAChC,kCAAkC;GAClC,iCAAiC;GACjC,iCAAiC;GACjC,kCAAkC;GAClC,iCAAiC;GACjC,kCAAkC;GACnC;EACD,aACE,QACA,QACA,aAC0B;GAC1B,MAAM,QAAQ;GAEd,MAAM,UAAU;IACd,aAAa;KACX,aAAa,MAAe,YAC1B,MAAM,oCAAoC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACvF,SAAS,MAAe,YACtB,MAAM,gCAAgC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACnF,OAAO,MAA4C,YACjD,MAAM,+BAA+B;MAAE,QAAQ;MAAO,OAAO,MAAM;MAAO,GAAG;MAAS,CAAC;KAC1F;IACD,cAAc;KACZ,UAAU,MAAe,YACvB,MAAM,oCAAoC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACvF,SAAS,MAAe,YACtB,MAAM,oCAAoC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACvF,SAAS,MAAe,YACtB,MAAM,kCAAkC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACrF,UAAU,MAAe,YACvB,MAAM,iCAAiC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACpF,OAAO,MAA4C,YACjD,MAAM,gCAAgC;MACpC,QAAQ;MACR,OAAO,MAAM;MACb,GAAG;MACJ,CAAC;KACJ,gBAAgB,MAAe,YAC7B,MAAM,sCAAsC;MAAE,QAAQ;MAAO,OAAO;MAAM,GAAG;MAAS,CAAC;KACzF,aAAa,MAAe,YAC1B,MAAM,sCAAsC;MAAE,QAAQ;MAAO,OAAO;MAAM,GAAG;MAAS,CAAC;KACzF,SAAS,SAAU,MAAe,SAA6B;AAC7D,aAAO,KAAK,OAAO,MAAM,QAAQ;;KAEnC,QAAQ,SAAU,MAAe,SAA6B;AAC5D,aAAO,KAAK,QAAQ,MAAM,QAAQ;;KAErC;IACD,wBAAwB,MAAe,YACrC,MAAM,oCAAoC;KAAE,QAAQ;KAAQ,MAAM;KAAM,GAAG;KAAS,CAAC;IACvF,oBAAoB,MAAe,YACjC,MAAM,gCAAgC;KAAE,QAAQ;KAAQ,MAAM;KAAM,GAAG;KAAS,CAAC;IACnF,mBACE,MACA,YAEA,MAAM,+BAA+B;KAAE,QAAQ;KAAO,OAAO,MAAM;KAAO,GAAG;KAAS,CAAC;IACzF,oBACE,MACA,YAEA,MAAM,gCAAgC;KAAE,QAAQ;KAAO,OAAO,MAAM;KAAO,GAAG;KAAS,CAAC;IAC1F,4BAA4B,MAAe,YACzC,MAAM,sCAAsC;KAAE,QAAQ;KAAO,OAAO;KAAM,GAAG;KAAS,CAAC;IACzF,cAAc,MAAM,oBAAoB,EAAE,QAAQ,OAAO,CAAC;IAC1D,eAAe,YACb,MAAM,2BAA2B;KAAE,QAAQ;KAAO,GAAG;KAAS,CAAC;IACjE,YAAY,YACV,MAAM,wBAAwB;KAAE,QAAQ;KAAO,GAAG;KAAS,CAAC;IAC9D,UAAU,EAAE;IACb;AAED,WAAQ,WAAW;AAEnB,UAAO;;EAEV;;AAGH,MAAa,WAAkC"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,394 @@
|
|
|
1
|
-
import { a as
|
|
2
|
-
|
|
1
|
+
import { a as PaystackOptions, c as PaystackSyncResult, d as Subscription, f as SubscriptionOptions, i as PaystackClientLike, l as PaystackTransaction, n as ChargeRecurringSubscriptionInput, o as PaystackPlan, p as getSchema, r as ChargeRecurringSubscriptionResult, s as PaystackProduct, t as AnyPaystackOptions } from "./types-CNI2ur0p.mjs";
|
|
2
|
+
import { AuthContext, BetterAuthPlugin, GenericEndpointContext, MiddlewareInputContext, MiddlewareOptions, StrictEndpoint, defineErrorCodes } from "better-auth";
|
|
3
|
+
import { z } from "zod";
|
|
4
|
+
|
|
5
|
+
//#region src/routes.d.ts
|
|
6
|
+
declare const paystackWebhook: <P extends string = "/webhook">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
7
|
+
method: "POST";
|
|
8
|
+
metadata: {
|
|
9
|
+
openapi: {
|
|
10
|
+
operationId: string;
|
|
11
|
+
};
|
|
12
|
+
scope: "server";
|
|
13
|
+
};
|
|
14
|
+
cloneRequest: true;
|
|
15
|
+
disableBody: true;
|
|
16
|
+
}, {
|
|
17
|
+
received: boolean;
|
|
18
|
+
}>;
|
|
19
|
+
declare const initializeTransaction: <P extends string = "/initialize-transaction">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
20
|
+
method: "POST";
|
|
21
|
+
body: z.ZodObject<{
|
|
22
|
+
plan: z.ZodOptional<z.ZodString>;
|
|
23
|
+
product: z.ZodOptional<z.ZodString>;
|
|
24
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
currency: z.ZodOptional<z.ZodString>;
|
|
26
|
+
email: z.ZodOptional<z.ZodString>;
|
|
27
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
28
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
29
|
+
callbackURL: z.ZodOptional<z.ZodString>;
|
|
30
|
+
quantity: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
scheduleAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
32
|
+
cancelAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
33
|
+
prorateAndCharge: z.ZodOptional<z.ZodBoolean>;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
36
|
+
}, {
|
|
37
|
+
status: string;
|
|
38
|
+
message: string;
|
|
39
|
+
scheduled: boolean;
|
|
40
|
+
} | {
|
|
41
|
+
status: string;
|
|
42
|
+
message: string;
|
|
43
|
+
prorated: boolean;
|
|
44
|
+
} | {
|
|
45
|
+
url: string;
|
|
46
|
+
reference: string;
|
|
47
|
+
accessCode: string;
|
|
48
|
+
redirect: boolean;
|
|
49
|
+
} | undefined>;
|
|
50
|
+
declare const createSubscription: <P extends string = "/create-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
51
|
+
method: "POST";
|
|
52
|
+
body: z.ZodObject<{
|
|
53
|
+
plan: z.ZodOptional<z.ZodString>;
|
|
54
|
+
product: z.ZodOptional<z.ZodString>;
|
|
55
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
56
|
+
currency: z.ZodOptional<z.ZodString>;
|
|
57
|
+
email: z.ZodOptional<z.ZodString>;
|
|
58
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
59
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
60
|
+
callbackURL: z.ZodOptional<z.ZodString>;
|
|
61
|
+
quantity: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
scheduleAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
63
|
+
cancelAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
64
|
+
prorateAndCharge: z.ZodOptional<z.ZodBoolean>;
|
|
65
|
+
}, z.core.$strip>;
|
|
66
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
67
|
+
}, {
|
|
68
|
+
status: string;
|
|
69
|
+
message: string;
|
|
70
|
+
scheduled: boolean;
|
|
71
|
+
} | {
|
|
72
|
+
status: string;
|
|
73
|
+
message: string;
|
|
74
|
+
prorated: boolean;
|
|
75
|
+
} | {
|
|
76
|
+
url: string;
|
|
77
|
+
reference: string;
|
|
78
|
+
accessCode: string;
|
|
79
|
+
redirect: boolean;
|
|
80
|
+
} | undefined>;
|
|
81
|
+
declare const upgradeSubscription: <P extends string = "/upgrade-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
82
|
+
method: "POST";
|
|
83
|
+
body: z.ZodObject<{
|
|
84
|
+
plan: z.ZodOptional<z.ZodString>;
|
|
85
|
+
product: z.ZodOptional<z.ZodString>;
|
|
86
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
87
|
+
currency: z.ZodOptional<z.ZodString>;
|
|
88
|
+
email: z.ZodOptional<z.ZodString>;
|
|
89
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
90
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
91
|
+
callbackURL: z.ZodOptional<z.ZodString>;
|
|
92
|
+
quantity: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
scheduleAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
94
|
+
cancelAtPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
95
|
+
prorateAndCharge: z.ZodOptional<z.ZodBoolean>;
|
|
96
|
+
}, z.core.$strip>;
|
|
97
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
98
|
+
}, {
|
|
99
|
+
status: string;
|
|
100
|
+
message: string;
|
|
101
|
+
scheduled: boolean;
|
|
102
|
+
} | {
|
|
103
|
+
status: string;
|
|
104
|
+
message: string;
|
|
105
|
+
prorated: boolean;
|
|
106
|
+
} | {
|
|
107
|
+
url: string;
|
|
108
|
+
reference: string;
|
|
109
|
+
accessCode: string;
|
|
110
|
+
redirect: boolean;
|
|
111
|
+
} | undefined>;
|
|
112
|
+
declare const cancelSubscription: <P extends string = "/cancel-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
113
|
+
method: "POST";
|
|
114
|
+
body: z.ZodObject<{
|
|
115
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
116
|
+
subscriptionCode: z.ZodString;
|
|
117
|
+
emailToken: z.ZodOptional<z.ZodString>;
|
|
118
|
+
atPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
119
|
+
}, z.core.$strip>;
|
|
120
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
121
|
+
}, {
|
|
122
|
+
status: string;
|
|
123
|
+
}>;
|
|
124
|
+
declare const restoreSubscription: <P extends string = "/restore-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
125
|
+
method: "POST";
|
|
126
|
+
body: z.ZodObject<{
|
|
127
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
128
|
+
subscriptionCode: z.ZodString;
|
|
129
|
+
emailToken: z.ZodOptional<z.ZodString>;
|
|
130
|
+
atPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
131
|
+
}, z.core.$strip>;
|
|
132
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
133
|
+
}, {
|
|
134
|
+
status: string;
|
|
135
|
+
}>;
|
|
136
|
+
declare const verifyTransaction: <P extends string = "/verify-transaction">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
137
|
+
method: "POST";
|
|
138
|
+
body: z.ZodObject<{
|
|
139
|
+
reference: z.ZodString;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
142
|
+
}, {
|
|
143
|
+
status: string;
|
|
144
|
+
reference: string;
|
|
145
|
+
data: {
|
|
146
|
+
id: number;
|
|
147
|
+
domain: string;
|
|
148
|
+
status: string;
|
|
149
|
+
reference: string;
|
|
150
|
+
receipt_number: string | null;
|
|
151
|
+
amount: number;
|
|
152
|
+
message: string | null;
|
|
153
|
+
gateway_response: string;
|
|
154
|
+
channel: string;
|
|
155
|
+
currency: string;
|
|
156
|
+
ip_address: string | null;
|
|
157
|
+
metadata: (string | Record<string, never> | number) | null;
|
|
158
|
+
log: {
|
|
159
|
+
start_time: number;
|
|
160
|
+
time_spent: number;
|
|
161
|
+
attempts: number;
|
|
162
|
+
errors: number;
|
|
163
|
+
success: boolean;
|
|
164
|
+
mobile: boolean;
|
|
165
|
+
input: unknown[];
|
|
166
|
+
history: {
|
|
167
|
+
type: string;
|
|
168
|
+
message: string;
|
|
169
|
+
time: number;
|
|
170
|
+
}[];
|
|
171
|
+
} | null;
|
|
172
|
+
fees: number | null;
|
|
173
|
+
fees_split: unknown;
|
|
174
|
+
authorization: {
|
|
175
|
+
authorization_code?: string;
|
|
176
|
+
bin?: string | null;
|
|
177
|
+
last4?: string;
|
|
178
|
+
exp_month?: string;
|
|
179
|
+
exp_year?: string;
|
|
180
|
+
channel?: string;
|
|
181
|
+
card_type?: string;
|
|
182
|
+
bank?: string;
|
|
183
|
+
country_code?: string;
|
|
184
|
+
brand?: string;
|
|
185
|
+
reusable?: boolean;
|
|
186
|
+
signature?: string;
|
|
187
|
+
account_name?: string | null;
|
|
188
|
+
receiver_bank_account_number?: string | null;
|
|
189
|
+
receiver_bank?: string | null;
|
|
190
|
+
};
|
|
191
|
+
customer: {
|
|
192
|
+
id: number;
|
|
193
|
+
first_name: string | null;
|
|
194
|
+
last_name: string | null;
|
|
195
|
+
email: string;
|
|
196
|
+
customer_code: string;
|
|
197
|
+
phone: string | null;
|
|
198
|
+
metadata: Record<string, never> | null;
|
|
199
|
+
risk_action: string;
|
|
200
|
+
international_format_phone?: string | null;
|
|
201
|
+
};
|
|
202
|
+
plan: (string | Record<string, never>) | null;
|
|
203
|
+
split: Record<string, never> | null;
|
|
204
|
+
order_id: unknown;
|
|
205
|
+
paidAt: string | null;
|
|
206
|
+
createdAt: string;
|
|
207
|
+
requested_amount: number;
|
|
208
|
+
pos_transaction_data: unknown;
|
|
209
|
+
source: unknown;
|
|
210
|
+
fees_breakdown: unknown;
|
|
211
|
+
connect: unknown;
|
|
212
|
+
transaction_date: string;
|
|
213
|
+
plan_object: {
|
|
214
|
+
id?: number;
|
|
215
|
+
name?: string;
|
|
216
|
+
plan_code?: string;
|
|
217
|
+
description?: unknown;
|
|
218
|
+
amount?: number;
|
|
219
|
+
interval?: string;
|
|
220
|
+
send_invoices?: boolean;
|
|
221
|
+
send_sms?: boolean;
|
|
222
|
+
currency?: string;
|
|
223
|
+
};
|
|
224
|
+
subaccount: Record<string, never> | null;
|
|
225
|
+
};
|
|
226
|
+
}>;
|
|
227
|
+
declare const listSubscriptions: <P extends string = "/list-subscriptions">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
228
|
+
method: "GET";
|
|
229
|
+
query: z.ZodObject<{
|
|
230
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
231
|
+
}, z.core.$strip>;
|
|
232
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
233
|
+
}, {
|
|
234
|
+
subscriptions: Subscription[];
|
|
235
|
+
}>;
|
|
236
|
+
declare const listTransactions: <P extends string = "/list-transactions">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
237
|
+
method: "GET";
|
|
238
|
+
query: z.ZodObject<{
|
|
239
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
240
|
+
}, z.core.$strip>;
|
|
241
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
242
|
+
}, {
|
|
243
|
+
transactions: PaystackTransaction[];
|
|
244
|
+
}>;
|
|
245
|
+
declare const disablePaystackSubscription: <P extends string = "/disable-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
246
|
+
method: "POST";
|
|
247
|
+
body: z.ZodObject<{
|
|
248
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
249
|
+
subscriptionCode: z.ZodString;
|
|
250
|
+
emailToken: z.ZodOptional<z.ZodString>;
|
|
251
|
+
atPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
252
|
+
}, z.core.$strip>;
|
|
253
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
254
|
+
}, {
|
|
255
|
+
status: string;
|
|
256
|
+
}>;
|
|
257
|
+
declare const enablePaystackSubscription: <P extends string = "/enable-subscription">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
258
|
+
method: "POST";
|
|
259
|
+
body: z.ZodObject<{
|
|
260
|
+
referenceId: z.ZodOptional<z.ZodString>;
|
|
261
|
+
subscriptionCode: z.ZodString;
|
|
262
|
+
emailToken: z.ZodOptional<z.ZodString>;
|
|
263
|
+
atPeriodEnd: z.ZodOptional<z.ZodBoolean>;
|
|
264
|
+
}, z.core.$strip>;
|
|
265
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
266
|
+
}, {
|
|
267
|
+
status: string;
|
|
268
|
+
}>;
|
|
269
|
+
declare const getSubscriptionManageLink: <P extends string = "/subscription-manage-link">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
270
|
+
method: "GET";
|
|
271
|
+
query: z.ZodObject<{
|
|
272
|
+
subscriptionCode: z.ZodString;
|
|
273
|
+
}, z.core.$strip>;
|
|
274
|
+
use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
|
|
275
|
+
}, {
|
|
276
|
+
link: string | null;
|
|
277
|
+
}>;
|
|
278
|
+
declare const listProducts: <P extends string = "/list-products">(_options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
279
|
+
method: "GET";
|
|
280
|
+
metadata: {
|
|
281
|
+
openapi: {
|
|
282
|
+
operationId: string;
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
}, {
|
|
286
|
+
products: PaystackProduct[];
|
|
287
|
+
}>;
|
|
288
|
+
declare const listPlans: <P extends string = "/list-plans">(_options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
289
|
+
method: "GET";
|
|
290
|
+
metadata: {
|
|
291
|
+
scope: "server";
|
|
292
|
+
};
|
|
293
|
+
use: ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<{
|
|
294
|
+
session: {
|
|
295
|
+
session: Record<string, unknown> & {
|
|
296
|
+
id: string;
|
|
297
|
+
createdAt: Date;
|
|
298
|
+
updatedAt: Date;
|
|
299
|
+
userId: string;
|
|
300
|
+
expiresAt: Date;
|
|
301
|
+
token: string;
|
|
302
|
+
ipAddress?: string | null | undefined;
|
|
303
|
+
userAgent?: string | null | undefined;
|
|
304
|
+
};
|
|
305
|
+
user: Record<string, unknown> & {
|
|
306
|
+
id: string;
|
|
307
|
+
createdAt: Date;
|
|
308
|
+
updatedAt: Date;
|
|
309
|
+
email: string;
|
|
310
|
+
emailVerified: boolean;
|
|
311
|
+
name: string;
|
|
312
|
+
image?: string | null | undefined;
|
|
313
|
+
};
|
|
314
|
+
};
|
|
315
|
+
}>)[];
|
|
316
|
+
}, {
|
|
317
|
+
plans: PaystackPlan[];
|
|
318
|
+
}>;
|
|
319
|
+
declare const getConfig: <P extends string = "/get-config">(options: AnyPaystackOptions, path?: P) => StrictEndpoint<P, {
|
|
320
|
+
method: "GET";
|
|
321
|
+
metadata: {
|
|
322
|
+
openapi: {
|
|
323
|
+
operationId: string;
|
|
324
|
+
};
|
|
325
|
+
};
|
|
326
|
+
}, {
|
|
327
|
+
plans: PaystackPlan[];
|
|
328
|
+
products: PaystackProduct[];
|
|
329
|
+
}>;
|
|
330
|
+
//#endregion
|
|
331
|
+
//#region src/version.d.ts
|
|
332
|
+
declare const PACKAGE_VERSION = "2.3.0";
|
|
333
|
+
//#endregion
|
|
334
|
+
//#region src/operations.d.ts
|
|
335
|
+
declare function syncPaystackProducts(ctx: GenericEndpointContext, options: AnyPaystackOptions): Promise<PaystackSyncResult>;
|
|
336
|
+
declare function syncPaystackPlans(ctx: GenericEndpointContext, options: AnyPaystackOptions): Promise<PaystackSyncResult>;
|
|
337
|
+
declare function chargeSubscriptionRenewal(ctx: GenericEndpointContext, options: AnyPaystackOptions, input: ChargeRecurringSubscriptionInput): Promise<ChargeRecurringSubscriptionResult>;
|
|
338
|
+
//#endregion
|
|
339
|
+
//#region src/index.d.ts
|
|
340
|
+
declare module "better-auth" {
|
|
341
|
+
interface BetterAuthPluginRegistry<AuthOptions, Options> {
|
|
342
|
+
paystack: {
|
|
343
|
+
creator: typeof paystack;
|
|
344
|
+
};
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
declare const INTERNAL_ERROR_CODES: ReturnType<typeof defineErrorCodes>;
|
|
348
|
+
type BetterAuthEndpoint = NonNullable<BetterAuthPlugin["endpoints"]>[string];
|
|
349
|
+
interface PaystackPluginEndpoints extends Record<string, BetterAuthEndpoint> {
|
|
350
|
+
initializeTransaction: ReturnType<typeof initializeTransaction>;
|
|
351
|
+
verifyTransaction: ReturnType<typeof verifyTransaction>;
|
|
352
|
+
listSubscriptions: ReturnType<typeof listSubscriptions>;
|
|
353
|
+
paystackWebhook: ReturnType<typeof paystackWebhook>;
|
|
354
|
+
listTransactions: ReturnType<typeof listTransactions>;
|
|
355
|
+
getConfig: ReturnType<typeof getConfig>;
|
|
356
|
+
disableSubscription: ReturnType<typeof disablePaystackSubscription>;
|
|
357
|
+
enableSubscription: ReturnType<typeof enablePaystackSubscription>;
|
|
358
|
+
getSubscriptionManageLink: ReturnType<typeof getSubscriptionManageLink>;
|
|
359
|
+
subscriptionManageLink: ReturnType<typeof getSubscriptionManageLink>;
|
|
360
|
+
createSubscription: ReturnType<typeof createSubscription>;
|
|
361
|
+
upgradeSubscription: ReturnType<typeof upgradeSubscription>;
|
|
362
|
+
cancelSubscription: ReturnType<typeof cancelSubscription>;
|
|
363
|
+
restoreSubscription: ReturnType<typeof restoreSubscription>;
|
|
364
|
+
listProducts: ReturnType<typeof listProducts>;
|
|
365
|
+
listPlans: ReturnType<typeof listPlans>;
|
|
366
|
+
}
|
|
367
|
+
type PaystackHookHandler = (...args: unknown[]) => unknown;
|
|
368
|
+
interface PaystackPluginInitResult {
|
|
369
|
+
options: {
|
|
370
|
+
databaseHooks: Record<string, unknown> & {
|
|
371
|
+
organization: {
|
|
372
|
+
create: {
|
|
373
|
+
after: PaystackHookHandler;
|
|
374
|
+
};
|
|
375
|
+
};
|
|
376
|
+
};
|
|
377
|
+
};
|
|
378
|
+
}
|
|
379
|
+
type PaystackPluginInit = ((ctx: AuthContext) => PaystackPluginInitResult) & NonNullable<BetterAuthPlugin["init"]>;
|
|
380
|
+
type PaystackPluginInstance<O extends AnyPaystackOptions> = Omit<BetterAuthPlugin, "id" | "version" | "endpoints" | "schema" | "init" | "$ERROR_CODES" | "options"> & {
|
|
381
|
+
id: "paystack";
|
|
382
|
+
version: typeof PACKAGE_VERSION;
|
|
383
|
+
endpoints: PaystackPluginEndpoints;
|
|
384
|
+
schema: ReturnType<typeof getSchema>;
|
|
385
|
+
init: PaystackPluginInit;
|
|
386
|
+
$ERROR_CODES: typeof INTERNAL_ERROR_CODES;
|
|
387
|
+
options: NoInfer<O>;
|
|
388
|
+
};
|
|
389
|
+
declare const createPaystackPlugin: <TPaystackClient extends PaystackClientLike = PaystackClientLike, O extends PaystackOptions<TPaystackClient> = PaystackOptions<TPaystackClient>>(options: O) => PaystackPluginInstance<O>;
|
|
390
|
+
declare const paystack: typeof createPaystackPlugin;
|
|
391
|
+
type PaystackPlugin<TPaystackClient extends PaystackClientLike = PaystackClientLike, O extends PaystackOptions<TPaystackClient> = PaystackOptions<TPaystackClient>> = ReturnType<typeof paystack<TPaystackClient, O>>;
|
|
392
|
+
//#endregion
|
|
393
|
+
export { type ChargeRecurringSubscriptionResult, type PaystackClientLike, type PaystackOptions, type PaystackPlan, PaystackPlugin, type PaystackProduct, type PaystackSyncResult, type Subscription, type SubscriptionOptions, chargeSubscriptionRenewal, paystack, syncPaystackPlans, syncPaystackProducts };
|
|
394
|
+
//# sourceMappingURL=index.d.mts.map
|