@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/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: "1.0.0",
9
+ version: PACKAGE_VERSION,
6
10
  $InferServerPlugin: {},
7
- getActions: ($fetch, _$store, _options) => {
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 initializeTransaction = async (data, options) => {
10
- return fetch("paystack/initialize-transaction", {
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.query,
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.query,
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
- const cancelSubscription = async (data, options) => {
45
- return fetch("paystack/disable-subscription", {
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
- const restoreSubscription = async (data, options) => {
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
@@ -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 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, 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