@alexasomba/better-auth-paystack 2.1.0 → 2.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/dist/client.mjs CHANGED
@@ -1,102 +1,118 @@
1
1
  //#region src/client.ts
2
+ /**
3
+ * Better Auth Paystack Client Plugin
4
+ */
2
5
  const paystackClient = (_options) => {
3
6
  return {
4
7
  id: "paystack",
5
- version: "1.0.0",
8
+ version: "2.1.1",
6
9
  $InferServerPlugin: {},
7
- getActions: ($fetch, _$store, _options) => {
10
+ getActions: ($fetch, _store, _options) => {
8
11
  const fetch = $fetch;
9
- const initializeTransaction = async (data, options) => {
10
- return fetch("paystack/initialize-transaction", {
12
+ const actions = {
13
+ transaction: {
14
+ initialize: (data, options) => fetch("paystack/initialize-transaction", {
15
+ method: "POST",
16
+ body: data,
17
+ ...options
18
+ }),
19
+ verify: (data, options) => fetch("paystack/verify-transaction", {
20
+ method: "POST",
21
+ body: data,
22
+ ...options
23
+ }),
24
+ list: (data, options) => fetch("paystack/list-transactions", {
25
+ method: "GET",
26
+ query: data?.query,
27
+ ...options
28
+ })
29
+ },
30
+ subscription: {
31
+ upgrade: (data, options) => fetch("paystack/initialize-transaction", {
32
+ method: "POST",
33
+ body: data,
34
+ ...options
35
+ }),
36
+ create: (data, options) => fetch("paystack/initialize-transaction", {
37
+ method: "POST",
38
+ body: data,
39
+ ...options
40
+ }),
41
+ cancel: (data, options) => fetch("paystack/disable-subscription", {
42
+ method: "POST",
43
+ body: data,
44
+ ...options
45
+ }),
46
+ restore: (data, options) => fetch("paystack/enable-subscription", {
47
+ method: "POST",
48
+ body: data,
49
+ ...options
50
+ }),
51
+ list: (data, options) => fetch("paystack/list-subscriptions", {
52
+ method: "GET",
53
+ query: data?.query,
54
+ ...options
55
+ }),
56
+ billingPortal: (data, options) => fetch("paystack/subscription-manage-link", {
57
+ method: "GET",
58
+ query: data,
59
+ ...options
60
+ }),
61
+ manageLink: (data, options) => fetch("paystack/subscription-manage-link", {
62
+ method: "GET",
63
+ query: data,
64
+ ...options
65
+ }),
66
+ disable: function(data, options) {
67
+ return this.cancel(data, options);
68
+ },
69
+ enable: function(data, options) {
70
+ return this.restore(data, options);
71
+ }
72
+ },
73
+ initializeTransaction: (data, options) => fetch("paystack/initialize-transaction", {
11
74
  method: "POST",
12
75
  body: data,
13
76
  ...options
14
- });
15
- };
16
- const verifyTransaction = async (data, options) => {
17
- return fetch("paystack/verify-transaction", {
77
+ }),
78
+ verifyTransaction: (data, options) => fetch("paystack/verify-transaction", {
18
79
  method: "POST",
19
80
  body: data,
20
81
  ...options
21
- });
22
- };
23
- const listTransactions = async (data = {}, options) => {
24
- return fetch("paystack/list-transactions", {
82
+ }),
83
+ listTransactions: (data, options) => fetch("paystack/list-transactions", {
25
84
  method: "GET",
26
- query: data.query,
85
+ query: data?.query,
27
86
  ...options
28
- });
29
- };
30
- const listSubscriptions = async (data = {}, options) => {
31
- return fetch("paystack/list-subscriptions", {
87
+ }),
88
+ listSubscriptions: (data, options) => fetch("paystack/list-subscriptions", {
32
89
  method: "GET",
33
- query: data.query,
90
+ query: data?.query,
34
91
  ...options
35
- });
36
- };
37
- const getSubscriptionManageLink = async (data, options) => {
38
- return fetch("paystack/subscription-manage-link", {
92
+ }),
93
+ getSubscriptionManageLink: (data, options) => fetch("paystack/subscription-manage-link", {
39
94
  method: "GET",
40
95
  query: data,
41
96
  ...options
42
- });
43
- };
44
- const cancelSubscription = async (data, options) => {
45
- return fetch("paystack/disable-subscription", {
46
- method: "POST",
47
- body: data,
97
+ }),
98
+ config: () => fetch("/paystack/config", { method: "GET" }),
99
+ listProducts: (options) => fetch("paystack/list-products", {
100
+ method: "GET",
48
101
  ...options
49
- });
50
- };
51
- const restoreSubscription = async (data, options) => {
52
- return fetch("paystack/enable-subscription", {
53
- method: "POST",
54
- body: data,
102
+ }),
103
+ listPlans: (options) => fetch("paystack/list-plans", {
104
+ method: "GET",
55
105
  ...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
- }
106
+ }),
107
+ paystack: {}
95
108
  };
109
+ actions.paystack = actions;
110
+ return actions;
96
111
  }
97
112
  };
98
113
  };
114
+ const paystack = paystackClient;
99
115
  //#endregion
100
- export { paystackClient };
116
+ export { paystack, paystackClient };
101
117
 
102
118
  //# sourceMappingURL=client.mjs.map
@@ -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 { BetterAuthClientPlugin } from \"better-auth\";\nimport type { BetterFetchResponse, BetterFetchOption, BetterFetch } from \"@better-fetch/fetch\";\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\";\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 disable: PaystackClientActions[\"subscription\"][\"cancel\"];\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: \"2.1.1\",\n $InferServerPlugin: {} as ReturnType<\n typeof paystackServer<PaystackClientLike, AnyPaystackOptions>\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\", { method: \"GET\", query: data?.query, ...options }),\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 ) => 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":";;;;AA2JA,MAAa,kBAKX,aAGG;AACH,QAAO;EACL,IAAI;EACJ,SAAS;EACT,oBAAoB,EAAE;EAGtB,aACE,QACA,QACA,aAC0B;GAC1B,MAAM,QAAQ;GAEd,MAAM,UAAU;IACd,aAAa;KACX,aAAa,MAAe,YAC1B,MAAM,mCAAmC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACtF,SAAS,MAAe,YACtB,MAAM,+BAA+B;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KAClF,OAAO,MAA4C,YACjD,MAAM,8BAA8B;MAAE,QAAQ;MAAO,OAAO,MAAM;MAAO,GAAG;MAAS,CAAC;KACzF;IACD,cAAc;KACZ,UAAU,MAAe,YACvB,MAAM,mCAAmC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACtF,SAAS,MAAe,YACtB,MAAM,mCAAmC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACtF,SAAS,MAAe,YACtB,MAAM,iCAAiC;MAAE,QAAQ;MAAQ,MAAM;MAAM,GAAG;MAAS,CAAC;KACpF,UAAU,MAAe,YACvB,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;KACzF,gBAAgB,MAAe,YAC7B,MAAM,qCAAqC;MAAE,QAAQ;MAAO,OAAO;MAAM,GAAG;MAAS,CAAC;KACxF,aAAa,MAAe,YAC1B,MAAM,qCAAqC;MAAE,QAAQ;MAAO,OAAO;MAAM,GAAG;MAAS,CAAC;KACxF,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,mCAAmC;KAAE,QAAQ;KAAQ,MAAM;KAAM,GAAG;KAAS,CAAC;IACtF,oBAAoB,MAAe,YACjC,MAAM,+BAA+B;KAAE,QAAQ;KAAQ,MAAM;KAAM,GAAG;KAAS,CAAC;IAClF,mBACE,MACA,YACG,MAAM,8BAA8B;KAAE,QAAQ;KAAO,OAAO,MAAM;KAAO,GAAG;KAAS,CAAC;IAC3F,oBACE,MACA,YAEA,MAAM,+BAA+B;KAAE,QAAQ;KAAO,OAAO,MAAM;KAAO,GAAG;KAAS,CAAC;IACzF,4BAA4B,MAAe,YACzC,MAAM,qCAAqC;KAAE,QAAQ;KAAO,OAAO;KAAM,GAAG;KAAS,CAAC;IACxF,cAAc,MAAM,oBAAoB,EAAE,QAAQ,OAAO,CAAC;IAC1D,eAAe,YACb,MAAM,0BAA0B;KAAE,QAAQ;KAAO,GAAG;KAAS,CAAC;IAChE,YAAY,YACV,MAAM,uBAAuB;KAAE,QAAQ;KAAO,GAAG;KAAS,CAAC;IAC7D,UAAU,EAAE;IACb;AAED,WAAQ,WAAW;AAEnB,UAAO;;EAEV;;AAGH,MAAa,WAAkC"}
package/dist/index.d.mts CHANGED
@@ -1,2 +1,423 @@
1
- import { a as syncPaystackProducts, c as PaystackOptions, f as Subscription, i as syncPaystackPlans, l as PaystackPlan, n as paystack, p as SubscriptionOptions, r as chargeSubscriptionRenewal, t as PaystackPlugin, u as PaystackProduct } from "./index-Dwbeddkr.mjs";
2
- export { PaystackOptions, PaystackPlan, PaystackPlugin, PaystackProduct, Subscription, SubscriptionOptions, chargeSubscriptionRenewal, paystack, syncPaystackPlans, syncPaystackProducts };
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, r as ChargeRecurringSubscriptionResult, s as PaystackProduct, t as AnyPaystackOptions } from "./types-B5ZnlFrq.mjs";
2
+ import { AuthContext, BetterAuthPluginDBSchema, GenericEndpointContext, MiddlewareInputContext, MiddlewareOptions, RawError, StrictEndpoint, ZodBoolean, ZodNumber, ZodObject, ZodOptional, ZodRecord, ZodString, ZodUnknown } from "better-auth";
3
+ import { $strip } from "zod/v4/core";
4
+
5
+ //#region src/operations.d.ts
6
+ declare function syncPaystackProducts(ctx: GenericEndpointContext, options: AnyPaystackOptions): Promise<PaystackSyncResult>;
7
+ declare function syncPaystackPlans(ctx: GenericEndpointContext, options: AnyPaystackOptions): Promise<PaystackSyncResult>;
8
+ declare function chargeSubscriptionRenewal(ctx: GenericEndpointContext, options: AnyPaystackOptions, input: ChargeRecurringSubscriptionInput): Promise<ChargeRecurringSubscriptionResult>;
9
+ //#endregion
10
+ //#region src/index.d.ts
11
+ declare module "@better-auth/core" {
12
+ interface BetterAuthPluginRegistry<AuthOptions, Options> {
13
+ paystack: {
14
+ creator: typeof paystack;
15
+ };
16
+ }
17
+ }
18
+ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackClientLike, O extends PaystackOptions<TPaystackClient> = PaystackOptions<TPaystackClient>>(options: O) => {
19
+ id: "paystack";
20
+ endpoints: {
21
+ initializeTransaction: StrictEndpoint<"/paystack/initialize-transaction", {
22
+ method: "POST";
23
+ body: ZodObject<{
24
+ plan: ZodOptional<ZodString>;
25
+ product: ZodOptional<ZodString>;
26
+ amount: ZodOptional<ZodNumber>;
27
+ currency: ZodOptional<ZodString>;
28
+ email: ZodOptional<ZodString>;
29
+ metadata: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
30
+ referenceId: ZodOptional<ZodString>;
31
+ callbackURL: ZodOptional<ZodString>;
32
+ quantity: ZodOptional<ZodNumber>;
33
+ scheduleAtPeriodEnd: ZodOptional<ZodBoolean>;
34
+ cancelAtPeriodEnd: ZodOptional<ZodBoolean>;
35
+ prorateAndCharge: ZodOptional<ZodBoolean>;
36
+ }, $strip>;
37
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
38
+ }, {
39
+ status: string;
40
+ message: string;
41
+ scheduled: boolean;
42
+ } | {
43
+ status: string;
44
+ message: string;
45
+ prorated: boolean;
46
+ } | {
47
+ url: string;
48
+ reference: string;
49
+ accessCode: string;
50
+ redirect: boolean;
51
+ } | undefined>;
52
+ verifyTransaction: StrictEndpoint<"/paystack/verify-transaction", {
53
+ method: "POST";
54
+ body: ZodObject<{
55
+ reference: ZodString;
56
+ }, $strip>;
57
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
58
+ }, {
59
+ status: string;
60
+ reference: string;
61
+ data: {
62
+ id: number;
63
+ domain: string;
64
+ status: string;
65
+ reference: string;
66
+ receipt_number: string | null;
67
+ amount: number;
68
+ message: string | null;
69
+ gateway_response: string;
70
+ channel: string;
71
+ currency: string;
72
+ ip_address: string | null;
73
+ metadata: (string | Record<string, never> | number) | null;
74
+ log: {
75
+ start_time: number;
76
+ time_spent: number;
77
+ attempts: number;
78
+ errors: number;
79
+ success: boolean;
80
+ mobile: boolean;
81
+ input: unknown[];
82
+ history: {
83
+ type: string;
84
+ message: string;
85
+ time: number;
86
+ }[];
87
+ } | null;
88
+ fees: number | null;
89
+ fees_split: unknown;
90
+ authorization: {
91
+ authorization_code?: string;
92
+ bin?: string | null;
93
+ last4?: string;
94
+ exp_month?: string;
95
+ exp_year?: string;
96
+ channel?: string;
97
+ card_type?: string;
98
+ bank?: string;
99
+ country_code?: string;
100
+ brand?: string;
101
+ reusable?: boolean;
102
+ signature?: string;
103
+ account_name?: string | null;
104
+ receiver_bank_account_number?: string | null;
105
+ receiver_bank?: string | null;
106
+ };
107
+ customer: {
108
+ id: number;
109
+ first_name: string | null;
110
+ last_name: string | null;
111
+ email: string;
112
+ customer_code: string;
113
+ phone: string | null;
114
+ metadata: Record<string, never> | null;
115
+ risk_action: string;
116
+ international_format_phone?: string | null;
117
+ };
118
+ plan: (string | Record<string, never>) | null;
119
+ split: Record<string, never> | null;
120
+ order_id: unknown;
121
+ paidAt: string | null;
122
+ createdAt: string;
123
+ requested_amount: number;
124
+ pos_transaction_data: unknown;
125
+ source: unknown;
126
+ fees_breakdown: unknown;
127
+ connect: unknown;
128
+ transaction_date: string;
129
+ plan_object: {
130
+ id?: number;
131
+ name?: string;
132
+ plan_code?: string;
133
+ description?: unknown;
134
+ amount?: number;
135
+ interval?: string;
136
+ send_invoices?: boolean;
137
+ send_sms?: boolean;
138
+ currency?: string;
139
+ };
140
+ subaccount: Record<string, never> | null;
141
+ };
142
+ }>;
143
+ listSubscriptions: StrictEndpoint<"/paystack/list-subscriptions", {
144
+ method: "GET";
145
+ query: ZodObject<{
146
+ referenceId: ZodOptional<ZodString>;
147
+ }, $strip>;
148
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
149
+ }, {
150
+ subscriptions: Subscription[];
151
+ }>;
152
+ paystackWebhook: StrictEndpoint<"/paystack/webhook", {
153
+ method: "POST";
154
+ metadata: {
155
+ openapi: {
156
+ operationId: string;
157
+ };
158
+ scope: "server";
159
+ };
160
+ cloneRequest: true;
161
+ disableBody: true;
162
+ }, {
163
+ received: boolean;
164
+ }>;
165
+ listTransactions: StrictEndpoint<"/paystack/list-transactions", {
166
+ method: "GET";
167
+ query: ZodObject<{
168
+ referenceId: ZodOptional<ZodString>;
169
+ }, $strip>;
170
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
171
+ }, {
172
+ transactions: PaystackTransaction[];
173
+ }>;
174
+ getConfig: StrictEndpoint<"/paystack/config", {
175
+ method: "GET";
176
+ metadata: {
177
+ openapi: {
178
+ operationId: string;
179
+ };
180
+ };
181
+ }, {
182
+ plans: PaystackPlan[];
183
+ products: PaystackProduct[];
184
+ }>;
185
+ disableSubscription: StrictEndpoint<"/paystack/disable-subscription", {
186
+ method: "POST";
187
+ body: ZodObject<{
188
+ referenceId: ZodOptional<ZodString>;
189
+ subscriptionCode: ZodString;
190
+ emailToken: ZodOptional<ZodString>;
191
+ atPeriodEnd: ZodOptional<ZodBoolean>;
192
+ }, $strip>;
193
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
194
+ }, {
195
+ status: string;
196
+ }>;
197
+ enableSubscription: StrictEndpoint<"/paystack/enable-subscription", {
198
+ method: "POST";
199
+ body: ZodObject<{
200
+ referenceId: ZodOptional<ZodString>;
201
+ subscriptionCode: ZodString;
202
+ emailToken: ZodOptional<ZodString>;
203
+ atPeriodEnd: ZodOptional<ZodBoolean>;
204
+ }, $strip>;
205
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
206
+ }, {
207
+ status: string;
208
+ }>;
209
+ getSubscriptionManageLink: StrictEndpoint<"/paystack/subscription-manage-link", {
210
+ method: "GET";
211
+ query: ZodObject<{
212
+ subscriptionCode: ZodString;
213
+ }, $strip>;
214
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
215
+ }, {
216
+ link: string | null;
217
+ }>;
218
+ subscriptionManageLink: StrictEndpoint<"/paystack/subscription/manage-link", {
219
+ method: "GET";
220
+ query: ZodObject<{
221
+ subscriptionCode: ZodString;
222
+ }, $strip>;
223
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
224
+ }, {
225
+ link: string | null;
226
+ }>;
227
+ createSubscription: StrictEndpoint<"/paystack/create-subscription", {
228
+ method: "POST";
229
+ body: ZodObject<{
230
+ plan: ZodOptional<ZodString>;
231
+ product: ZodOptional<ZodString>;
232
+ amount: ZodOptional<ZodNumber>;
233
+ currency: ZodOptional<ZodString>;
234
+ email: ZodOptional<ZodString>;
235
+ metadata: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
236
+ referenceId: ZodOptional<ZodString>;
237
+ callbackURL: ZodOptional<ZodString>;
238
+ quantity: ZodOptional<ZodNumber>;
239
+ scheduleAtPeriodEnd: ZodOptional<ZodBoolean>;
240
+ cancelAtPeriodEnd: ZodOptional<ZodBoolean>;
241
+ prorateAndCharge: ZodOptional<ZodBoolean>;
242
+ }, $strip>;
243
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
244
+ }, {
245
+ status: string;
246
+ message: string;
247
+ scheduled: boolean;
248
+ } | {
249
+ status: string;
250
+ message: string;
251
+ prorated: boolean;
252
+ } | {
253
+ url: string;
254
+ reference: string;
255
+ accessCode: string;
256
+ redirect: boolean;
257
+ } | undefined>;
258
+ upgradeSubscription: StrictEndpoint<"/paystack/upgrade-subscription", {
259
+ method: "POST";
260
+ body: ZodObject<{
261
+ plan: ZodOptional<ZodString>;
262
+ product: ZodOptional<ZodString>;
263
+ amount: ZodOptional<ZodNumber>;
264
+ currency: ZodOptional<ZodString>;
265
+ email: ZodOptional<ZodString>;
266
+ metadata: ZodOptional<ZodRecord<ZodString, ZodUnknown>>;
267
+ referenceId: ZodOptional<ZodString>;
268
+ callbackURL: ZodOptional<ZodString>;
269
+ quantity: ZodOptional<ZodNumber>;
270
+ scheduleAtPeriodEnd: ZodOptional<ZodBoolean>;
271
+ cancelAtPeriodEnd: ZodOptional<ZodBoolean>;
272
+ prorateAndCharge: ZodOptional<ZodBoolean>;
273
+ }, $strip>;
274
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
275
+ }, {
276
+ status: string;
277
+ message: string;
278
+ scheduled: boolean;
279
+ } | {
280
+ status: string;
281
+ message: string;
282
+ prorated: boolean;
283
+ } | {
284
+ url: string;
285
+ reference: string;
286
+ accessCode: string;
287
+ redirect: boolean;
288
+ } | undefined>;
289
+ cancelSubscription: StrictEndpoint<"/paystack/cancel-subscription", {
290
+ method: "POST";
291
+ body: ZodObject<{
292
+ referenceId: ZodOptional<ZodString>;
293
+ subscriptionCode: ZodString;
294
+ emailToken: ZodOptional<ZodString>;
295
+ atPeriodEnd: ZodOptional<ZodBoolean>;
296
+ }, $strip>;
297
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
298
+ }, {
299
+ status: string;
300
+ }>;
301
+ restoreSubscription: StrictEndpoint<"/paystack/restore-subscription", {
302
+ method: "POST";
303
+ body: ZodObject<{
304
+ referenceId: ZodOptional<ZodString>;
305
+ subscriptionCode: ZodString;
306
+ emailToken: ZodOptional<ZodString>;
307
+ atPeriodEnd: ZodOptional<ZodBoolean>;
308
+ }, $strip>;
309
+ use: (((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<void>) | ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<unknown>))[];
310
+ }, {
311
+ status: string;
312
+ }>;
313
+ listProducts: StrictEndpoint<"/paystack/list-products", {
314
+ method: "GET";
315
+ metadata: {
316
+ openapi: {
317
+ operationId: string;
318
+ };
319
+ };
320
+ }, {
321
+ products: PaystackProduct[];
322
+ }>;
323
+ listPlans: StrictEndpoint<"/paystack/list-plans", {
324
+ method: "GET";
325
+ metadata: {
326
+ scope: "server";
327
+ };
328
+ use: ((inputContext: MiddlewareInputContext<MiddlewareOptions>) => Promise<{
329
+ session: {
330
+ session: Record<string, unknown> & {
331
+ id: string;
332
+ createdAt: Date;
333
+ updatedAt: Date;
334
+ userId: string;
335
+ expiresAt: Date;
336
+ token: string;
337
+ ipAddress?: string | null | undefined;
338
+ userAgent?: string | null | undefined;
339
+ };
340
+ user: Record<string, unknown> & {
341
+ id: string;
342
+ createdAt: Date;
343
+ updatedAt: Date;
344
+ email: string;
345
+ emailVerified: boolean;
346
+ name: string;
347
+ image?: string | null | undefined;
348
+ };
349
+ };
350
+ }>)[];
351
+ }, {
352
+ plans: PaystackPlan[];
353
+ }>;
354
+ };
355
+ schema: BetterAuthPluginDBSchema;
356
+ init: (ctx: AuthContext) => {
357
+ options: {
358
+ databaseHooks: {
359
+ user: {
360
+ create: {
361
+ after(user: {
362
+ id: string;
363
+ email?: string | null;
364
+ name?: string | null;
365
+ }, hookCtx?: GenericEndpointContext | null): Promise<void>;
366
+ };
367
+ };
368
+ organization: {
369
+ create: {
370
+ after(org: {
371
+ id: string;
372
+ name: string;
373
+ email?: string | null;
374
+ }, hookCtx: GenericEndpointContext | null): Promise<void>;
375
+ };
376
+ } | undefined;
377
+ };
378
+ member: {
379
+ create: {
380
+ before: (member: {
381
+ organizationId: string;
382
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
383
+ after: (member: {
384
+ organizationId: string | undefined;
385
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
386
+ };
387
+ delete: {
388
+ after: (member: {
389
+ organizationId: string | undefined;
390
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
391
+ };
392
+ };
393
+ invitation: {
394
+ create: {
395
+ before: (invitation: {
396
+ organizationId: string;
397
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
398
+ after: (invitation: {
399
+ organizationId: string | undefined;
400
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
401
+ };
402
+ delete: {
403
+ after: (invitation: {
404
+ organizationId: string | undefined;
405
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
406
+ };
407
+ };
408
+ team: {
409
+ create: {
410
+ before: (team: {
411
+ organizationId: string;
412
+ }, ctx: GenericEndpointContext | null | undefined) => Promise<void>;
413
+ };
414
+ };
415
+ };
416
+ };
417
+ $ERROR_CODES: Record<string, RawError<string>>;
418
+ options: NoInfer<O>;
419
+ };
420
+ type PaystackPlugin<TPaystackClient extends PaystackClientLike = PaystackClientLike, O extends PaystackOptions<TPaystackClient> = PaystackOptions<TPaystackClient>> = ReturnType<typeof paystack<TPaystackClient, O>>;
421
+ //#endregion
422
+ export { type ChargeRecurringSubscriptionResult, type PaystackClientLike, type PaystackOptions, type PaystackPlan, PaystackPlugin, type PaystackProduct, type PaystackSyncResult, type Subscription, type SubscriptionOptions, chargeSubscriptionRenewal, paystack, syncPaystackPlans, syncPaystackProducts };
423
+ //# sourceMappingURL=index.d.mts.map