@alexasomba/better-auth-paystack 1.2.1 → 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/README.md +232 -59
- package/dist/client.d.mts +133 -305
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +90 -94
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +423 -2
- package/dist/index.d.mts.map +1 -0
- package/dist/index.mjs +818 -687
- package/dist/index.mjs.map +1 -1
- package/dist/types-B5ZnlFrq.d.mts +258 -0
- package/dist/types-B5ZnlFrq.d.mts.map +1 -0
- package/package.json +64 -73
- package/dist/index-DoMJ9OLF.d.mts +0 -488
- package/dist/index-DoMJ9OLF.d.mts.map +0 -1
package/dist/client.mjs
CHANGED
|
@@ -1,122 +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",
|
|
8
|
+
version: "2.1.1",
|
|
5
9
|
$InferServerPlugin: {},
|
|
6
|
-
getActions: ($fetch,
|
|
10
|
+
getActions: ($fetch, _store, _options) => {
|
|
7
11
|
const fetch = $fetch;
|
|
8
|
-
const
|
|
9
|
-
|
|
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", {
|
|
10
74
|
method: "POST",
|
|
11
75
|
body: data,
|
|
12
76
|
...options
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
const verifyTransaction = async (data, options) => {
|
|
16
|
-
return fetch("paystack/verify-transaction", {
|
|
77
|
+
}),
|
|
78
|
+
verifyTransaction: (data, options) => fetch("paystack/verify-transaction", {
|
|
17
79
|
method: "POST",
|
|
18
80
|
body: data,
|
|
19
81
|
...options
|
|
20
|
-
})
|
|
21
|
-
|
|
22
|
-
const listTransactions = async (data = {}, options) => {
|
|
23
|
-
return fetch("paystack/list-transactions", {
|
|
82
|
+
}),
|
|
83
|
+
listTransactions: (data, options) => fetch("paystack/list-transactions", {
|
|
24
84
|
method: "GET",
|
|
25
|
-
query: data
|
|
85
|
+
query: data?.query,
|
|
26
86
|
...options
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
const listSubscriptions = async (data = {}, options) => {
|
|
30
|
-
return fetch("paystack/list-subscriptions", {
|
|
87
|
+
}),
|
|
88
|
+
listSubscriptions: (data, options) => fetch("paystack/list-subscriptions", {
|
|
31
89
|
method: "GET",
|
|
32
|
-
query: data
|
|
90
|
+
query: data?.query,
|
|
33
91
|
...options
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
const getSubscriptionManageLink = async (data, options) => {
|
|
37
|
-
return fetch("paystack/get-subscription-manage-link", {
|
|
92
|
+
}),
|
|
93
|
+
getSubscriptionManageLink: (data, options) => fetch("paystack/subscription-manage-link", {
|
|
38
94
|
method: "GET",
|
|
39
95
|
query: data,
|
|
40
96
|
...options
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
method: "POST",
|
|
46
|
-
body: data,
|
|
97
|
+
}),
|
|
98
|
+
config: () => fetch("/paystack/config", { method: "GET" }),
|
|
99
|
+
listProducts: (options) => fetch("paystack/list-products", {
|
|
100
|
+
method: "GET",
|
|
47
101
|
...options
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return fetch("paystack/enable-subscription", {
|
|
52
|
-
method: "POST",
|
|
53
|
-
body: data,
|
|
102
|
+
}),
|
|
103
|
+
listPlans: (options) => fetch("paystack/list-plans", {
|
|
104
|
+
method: "GET",
|
|
54
105
|
...options
|
|
55
|
-
})
|
|
56
|
-
|
|
57
|
-
return {
|
|
58
|
-
subscription: {
|
|
59
|
-
upgrade: initializeTransaction,
|
|
60
|
-
create: initializeTransaction,
|
|
61
|
-
cancel: cancelSubscription,
|
|
62
|
-
restore: restoreSubscription,
|
|
63
|
-
list: listSubscriptions,
|
|
64
|
-
billingPortal: getSubscriptionManageLink,
|
|
65
|
-
listLocal: listSubscriptions,
|
|
66
|
-
manageLink: getSubscriptionManageLink,
|
|
67
|
-
disable: cancelSubscription,
|
|
68
|
-
enable: restoreSubscription
|
|
69
|
-
},
|
|
70
|
-
paystack: {
|
|
71
|
-
transaction: {
|
|
72
|
-
initialize: initializeTransaction,
|
|
73
|
-
verify: verifyTransaction,
|
|
74
|
-
list: listTransactions
|
|
75
|
-
},
|
|
76
|
-
subscription: {
|
|
77
|
-
create: initializeTransaction,
|
|
78
|
-
upgrade: initializeTransaction,
|
|
79
|
-
cancel: cancelSubscription,
|
|
80
|
-
restore: restoreSubscription,
|
|
81
|
-
list: listSubscriptions,
|
|
82
|
-
billingPortal: getSubscriptionManageLink,
|
|
83
|
-
listLocal: listSubscriptions,
|
|
84
|
-
manageLink: getSubscriptionManageLink,
|
|
85
|
-
disable: cancelSubscription,
|
|
86
|
-
enable: restoreSubscription
|
|
87
|
-
},
|
|
88
|
-
initializeTransaction,
|
|
89
|
-
verifyTransaction,
|
|
90
|
-
listTransactions,
|
|
91
|
-
listSubscriptions,
|
|
92
|
-
getSubscriptionManageLink,
|
|
93
|
-
getConfig: async () => {
|
|
94
|
-
return fetch("paystack/get-config", { method: "GET" });
|
|
95
|
-
},
|
|
96
|
-
syncProducts: async () => {
|
|
97
|
-
return fetch("paystack/sync-products", { method: "POST" });
|
|
98
|
-
},
|
|
99
|
-
syncPlans: async () => {
|
|
100
|
-
return fetch("paystack/sync-plans", { method: "POST" });
|
|
101
|
-
},
|
|
102
|
-
listProducts: async (options) => {
|
|
103
|
-
return fetch("paystack/list-products", {
|
|
104
|
-
method: "GET",
|
|
105
|
-
...options
|
|
106
|
-
});
|
|
107
|
-
},
|
|
108
|
-
listPlans: async (options) => {
|
|
109
|
-
return fetch("paystack/list-plans", {
|
|
110
|
-
method: "GET",
|
|
111
|
-
...options
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
106
|
+
}),
|
|
107
|
+
paystack: {}
|
|
115
108
|
};
|
|
109
|
+
actions.paystack = actions;
|
|
110
|
+
return actions;
|
|
116
111
|
}
|
|
117
112
|
};
|
|
118
113
|
};
|
|
114
|
+
const paystack = paystackClient;
|
|
119
115
|
//#endregion
|
|
120
|
-
export { paystackClient };
|
|
116
|
+
export { paystack, paystackClient };
|
|
121
117
|
|
|
122
118
|
//# sourceMappingURL=client.mjs.map
|
package/dist/client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { BetterAuthClientPlugin } from \"better-auth\";\nimport type { BetterFetchResponse, BetterFetchOption, BetterFetch } from \"@better-fetch/fetch\";\n\nimport type { PaystackProduct, PaystackTransaction, Subscription } from \"./types\";\n\nimport type { paystack } from \"./index\";\n\nexport const paystackClient = <\n\tO extends {\n\t\tsubscription: boolean;\n\t},\n>(\n\t\t_options?: O,\n\t) => {\n\treturn {\n\t\tid: \"paystack\",\n\t\t$InferServerPlugin: {} as ReturnType<typeof paystack>,\n\t\tgetActions: ($fetch: unknown, _$store: unknown, _options: unknown) => {\n\t\t\tconst fetch = $fetch as BetterFetch;\n\t\t\tconst initializeTransaction = async (data: {\n\t\t\t\tplan?: string;\n\t\t\t\temail?: string;\n\t\t\t\tamount?: number;\n\t\t\t\treference?: string;\n\t\t\t\tmetadata?: Record<string, unknown>;\n\t\t\t\tcallbackUrl?: string;\n\t\t\t\tcallbackURL?: string;\n\t\t\t\tcurrency?: string;\n\t\t\t\tquantity?: number;\n\t\t\t\treferenceId?: string;\n\t\t\t\tproduct?: string;\n\t\t\t\tscheduleAtPeriodEnd?: boolean;\n\t\t\t\tcancelAtPeriodEnd?: boolean;\n\t\t\t\tprorateAndCharge?: boolean;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\turl: string;\n\t\t\t\treference: string;\n\t\t\t\taccessCode: string;\n\t\t\t\tredirect: boolean;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\turl: string;\n\t\t\t\t\treference: string;\n\t\t\t\t\taccessCode: string;\n\t\t\t\t\tredirect: boolean;\n\t\t\t\t}>(\"paystack/initialize-transaction\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst verifyTransaction = async (data: { reference: string }, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t\treference: string;\n\t\t\t\tdata: unknown;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t\treference: string;\n\t\t\t\t\tdata: unknown;\n\t\t\t\t}>(\"paystack/verify-transaction\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst listTransactions = async (data: { query?: Record<string, unknown> } = {}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\ttransactions: PaystackTransaction[];\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\ttransactions: PaystackTransaction[];\n\t\t\t\t}>(\"paystack/list-transactions\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst listSubscriptions = async (data: { query?: Record<string, unknown> } = {}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tsubscriptions: Subscription[];\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tsubscriptions: Subscription[];\n\t\t\t\t}>(\"paystack/list-subscriptions\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data.query,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst getSubscriptionManageLink = async (data: { subscriptionCode: string }, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tlink: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tlink: string;\n\t\t\t\t}>(\"paystack/get-subscription-manage-link\", {\n\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\tquery: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst cancelSubscription = async (data: {\n\t\t\t\tsubscriptionCode: string;\n\t\t\t\temailToken?: string;\n\t\t\t\tatPeriodEnd?: boolean;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t}>(\"paystack/disable-subscription\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst restoreSubscription = async (data: {\n\t\t\t\tsubscriptionCode: string;\n\t\t\t\temailToken?: string;\n\t\t\t}, options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\tstatus: string;\n\t\t\t}>> => {\n\t\t\t\treturn fetch<{\n\t\t\t\t\tstatus: string;\n\t\t\t\t}>(\"paystack/enable-subscription\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\tbody: data,\n\t\t\t\t\t...options,\n\t\t\t\t});\n\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tsubscription: {\n\t\t\t\t\t/**\n\t\t\t\t\t * Initialize a transaction to upgrade or creating a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t/**\n\t\t\t\t\t * Initialize a payment to create a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t/**\n\t\t\t\t\t * Disable a subscription.\n\t\t\t\t\t */\n\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t/**\n\t\t\t\t\t * Enable a subscription.\n\t\t\t\t\t */\n\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t/**\n\t\t\t\t\t * List subscriptions for the user.\n\t\t\t\t\t */\n\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t/**\n\t\t\t\t\t * Get a link to manage the subscription on Paystack.\n\t\t\t\t\t */\n\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t/**\n\t\t\t\t\t * Aliases for legacy/demo usage.\n\t\t\t\t\t */\n\t\t\t\t\tlistLocal: listSubscriptions,\n\t\t\t\t\tmanageLink: getSubscriptionManageLink,\n\t\t\t\t\tdisable: cancelSubscription,\n\t\t\t\t\tenable: restoreSubscription,\n\t\t\t\t},\n\t\t\t\tpaystack: {\n\t\t\t\t\ttransaction: {\n\t\t\t\t\t\tinitialize: initializeTransaction,\n\t\t\t\t\t\tverify: verifyTransaction,\n\t\t\t\t\t\tlist: listTransactions,\n\t\t\t\t\t},\n\t\t\t\t\tsubscription: {\n\t\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t\tlistLocal: listSubscriptions,\n\t\t\t\t\t\tmanageLink: getSubscriptionManageLink,\n\t\t\t\t\t\tdisable: cancelSubscription,\n\t\t\t\t\t\tenable: restoreSubscription,\n\t\t\t\t\t},\n\t\t\t\t\tinitializeTransaction,\n\t\t\t\t\tverifyTransaction,\n\t\t\t\t\tlistTransactions,\n\t\t\t\t\tlistSubscriptions,\n\t\t\t\t\tgetSubscriptionManageLink,\n\t\t\t\t\tgetConfig: async (): Promise<BetterFetchResponse<Record<string, unknown>>> => {\n\t\t\t\t\t\treturn fetch<Record<string, unknown>>(\"paystack/get-config\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsyncProducts: async (): Promise<BetterFetchResponse<{ status: string; count: number }>> => {\n\t\t\t\t\t\treturn fetch<{ status: string; count: number }>(\"paystack/sync-products\", {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tsyncPlans: async (): Promise<BetterFetchResponse<{ status: string; count: number }>> => {\n\t\t\t\t\t\treturn fetch<{ status: string; count: number }>(\"paystack/sync-plans\", {\n\t\t\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistProducts: async (options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\t\t\tproducts: PaystackProduct[];\n\t\t\t\t\t}>> => {\n\t\t\t\t\t\treturn fetch<{\n\t\t\t\t\t\t\tproducts: PaystackProduct[];\n\t\t\t\t\t\t}>(\"paystack/list-products\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t\tlistPlans: async (options?: BetterFetchOption): Promise<BetterFetchResponse<{\n\t\t\t\t\t\tplans: unknown[];\n\t\t\t\t\t}>> => {\n\t\t\t\t\t\treturn fetch<{\n\t\t\t\t\t\t\tplans: unknown[];\n\t\t\t\t\t\t}>(\"paystack/list-plans\", {\n\t\t\t\t\t\t\tmethod: \"GET\",\n\t\t\t\t\t\t\t...options,\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t};\n\t\t}\n\t} satisfies BetterAuthClientPlugin;\n};\n"],"mappings":";AAOA,MAAa,kBAKX,aACI;AACL,QAAO;EACN,IAAI;EACJ,oBAAoB,EAAE;EACtB,aAAa,QAAiB,SAAkB,aAAsB;GACrE,MAAM,QAAQ;GACd,MAAM,wBAAwB,OAAO,MAelC,YAKI;AACN,WAAO,MAKJ,mCAAmC;KACrC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,MAA6B,YAIvD;AACN,WAAO,MAIJ,+BAA+B;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,mBAAmB,OAAO,OAA4C,EAAE,EAAE,YAEzE;AACN,WAAO,MAEJ,8BAA8B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,OAA4C,EAAE,EAAE,YAE1E;AACN,WAAO,MAEJ,+BAA+B;KACjC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,4BAA4B,OAAO,MAAoC,YAEtE;AACN,WAAO,MAEJ,yCAAyC;KAC3C,QAAQ;KACR,OAAO;KACP,GAAG;KACH,CAAC;;GAGH,MAAM,qBAAqB,OAAO,MAI/B,YAEI;AACN,WAAO,MAEJ,iCAAiC;KACnC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,sBAAsB,OAAO,MAGhC,YAEI;AACN,WAAO,MAEJ,gCAAgC;KAClC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;AAGH,UAAO;IACN,cAAc;KAIb,SAAS;KAIT,QAAQ;KAIR,QAAQ;KAIR,SAAS;KAIT,MAAM;KAIN,eAAe;KAIf,WAAW;KACX,YAAY;KACZ,SAAS;KACT,QAAQ;KACR;IACD,UAAU;KACT,aAAa;MACZ,YAAY;MACZ,QAAQ;MACR,MAAM;MACN;KACD,cAAc;MACb,QAAQ;MACR,SAAS;MACT,QAAQ;MACR,SAAS;MACT,MAAM;MACN,eAAe;MACf,WAAW;MACX,YAAY;MACZ,SAAS;MACT,QAAQ;MACR;KACD;KACA;KACA;KACA;KACA;KACA,WAAW,YAAmE;AAC7E,aAAO,MAA+B,uBAAuB,EAC5D,QAAQ,OACR,CAAC;;KAEH,cAAc,YAA6E;AAC1F,aAAO,MAAyC,0BAA0B,EACzE,QAAQ,QACR,CAAC;;KAEH,WAAW,YAA6E;AACvF,aAAO,MAAyC,uBAAuB,EACtE,QAAQ,QACR,CAAC;;KAEH,cAAc,OAAO,YAEd;AACN,aAAO,MAEJ,0BAA0B;OAC5B,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH,WAAW,OAAO,YAEX;AACN,aAAO,MAEJ,uBAAuB;OACzB,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH;IACD;;EAEF"}
|
|
1
|
+
{"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"}
|