@alexasomba/better-auth-paystack 1.0.0 → 1.1.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.
@@ -9,22 +9,35 @@ declare const subscriptions: {
9
9
  plan: {
10
10
  type: "string";
11
11
  required: true;
12
+ index: true;
12
13
  };
13
14
  referenceId: {
14
15
  type: "string";
15
16
  required: true;
17
+ index: true;
16
18
  };
17
19
  paystackCustomerCode: {
18
20
  type: "string";
19
21
  required: false;
22
+ index: true;
20
23
  };
21
24
  paystackSubscriptionCode: {
22
25
  type: "string";
23
26
  required: false;
27
+ unique: true;
24
28
  };
25
29
  paystackTransactionReference: {
26
30
  type: "string";
27
31
  required: false;
32
+ index: true;
33
+ };
34
+ paystackAuthorizationCode: {
35
+ type: "string";
36
+ required: false;
37
+ };
38
+ paystackEmailToken: {
39
+ type: "string";
40
+ required: false;
28
41
  };
29
42
  status: {
30
43
  type: "string";
@@ -68,6 +81,7 @@ declare const user: {
68
81
  paystackCustomerCode: {
69
82
  type: "string";
70
83
  required: false;
84
+ index: true;
71
85
  };
72
86
  };
73
87
  };
@@ -78,6 +92,7 @@ declare const organization: {
78
92
  paystackCustomerCode: {
79
93
  type: "string";
80
94
  required: false;
95
+ index: true;
81
96
  };
82
97
  email: {
83
98
  type: "string";
@@ -89,6 +104,23 @@ declare const organization: {
89
104
  //#endregion
90
105
  //#region src/types.d.ts
91
106
  type PaystackNodeClient = ReturnType<typeof createPaystack>;
107
+ type PaystackCurrency = "NGN" | "GHS" | "KES" | "ZAR" | "USD" | "XOF";
108
+ type PaystackEvent = "charge.success" | "charge.failure" | "subscription.create" | "subscription.disable" | "subscription.not_renew" | "subscription.expiring_cards" | "invoice.create" | "invoice.payment_failed" | "invoice.update" | "transfer.success" | "transfer.failed" | "transfer.reversed" | "customeridentification.success" | "customeridentification.failed" | (string & {});
109
+ interface PaystackWebhookPayload<TData = any, TMetadata = any> {
110
+ event: PaystackEvent;
111
+ data: TData;
112
+ metadata?: TMetadata;
113
+ [key: string]: any;
114
+ }
115
+ interface PaystackCustomerResponse {
116
+ customer_code: string;
117
+ email: string;
118
+ first_name?: string;
119
+ last_name?: string;
120
+ metadata?: Record<string, unknown>;
121
+ id: number;
122
+ [key: string]: unknown;
123
+ }
92
124
  type NonNullableInit<T> = Exclude<T, undefined>;
93
125
  type ExtractBody<T> = T extends {
94
126
  body?: infer B;
@@ -107,9 +139,11 @@ type CustomerUpdateInit = NonNullableInit<Parameters<PaystackNodeClient["custome
107
139
  type TransactionInitializeInit = NonNullableInit<Parameters<PaystackNodeClient["transaction_initialize"]>[0]>;
108
140
  type SubscriptionCreateInit = NonNullableInit<Parameters<PaystackNodeClient["subscription_create"]>[0]>;
109
141
  type SubscriptionToggleInit = NonNullableInit<Parameters<PaystackNodeClient["subscription_disable"]>[0]>;
142
+ type TransactionChargeAuthorizationInit = NonNullableInit<Parameters<PaystackNodeClient["transaction_chargeAuthorization"]>[0]>;
110
143
  type PaystackCustomerCreateInput = WithMetadataStringOrObject<ExtractBody<CustomerCreateInit>>;
111
144
  type PaystackCustomerUpdateInput = WithMetadataStringOrObject<WithEmail<ExtractBody<CustomerUpdateInit>>>;
112
145
  type PaystackTransactionInitializeInput = WithMetadataObject<ExtractBody<TransactionInitializeInit>>;
146
+ type PaystackTransactionChargeAuthorizationInput = WithMetadataObject<ExtractBody<TransactionChargeAuthorizationInit>>;
113
147
  type PaystackSubscriptionCreateInput = ExtractBody<SubscriptionCreateInit>;
114
148
  type PaystackSubscriptionToggleInput = ExtractBody<SubscriptionToggleInit>;
115
149
  type PaystackClientLike = Partial<PaystackNodeClient> & {
@@ -121,6 +155,7 @@ type PaystackClientLike = Partial<PaystackNodeClient> & {
121
155
  transaction?: {
122
156
  initialize?: (params: PaystackTransactionInitializeInput) => Promise<unknown>;
123
157
  verify?: (reference: string) => Promise<unknown>;
158
+ chargeAuthorization?: (params: PaystackTransactionChargeAuthorizationInput) => Promise<unknown>;
124
159
  };
125
160
  subscription?: {
126
161
  fetch?: (idOrCode: string) => Promise<unknown>;
@@ -132,9 +167,21 @@ type PaystackClientLike = Partial<PaystackNodeClient> & {
132
167
  email?: (code: string, email: string) => Promise<unknown>;
133
168
  };
134
169
  };
170
+ product?: {
171
+ list?: () => Promise<unknown>;
172
+ fetch?: (idOrCode: string) => Promise<unknown>;
173
+ create?: (params: Record<string, unknown>) => Promise<unknown>;
174
+ update?: (idOrCode: string, params: Record<string, unknown>) => Promise<unknown>;
175
+ delete?: (idOrCode: string) => Promise<unknown>;
176
+ };
177
+ product_list?: (init?: any) => Promise<unknown>;
178
+ product_fetch?: (init: any) => Promise<unknown>;
179
+ product_create?: (init: any) => Promise<unknown>;
180
+ product_update?: (init: any) => Promise<unknown>;
181
+ product_delete?: (init: any) => Promise<unknown>;
135
182
  };
136
183
  type NoInfer<T> = [T][T extends unknown ? 0 : never];
137
- interface PaystackPlan {
184
+ interface PaystackPlan<TLimits = Record<string, unknown>> {
138
185
  /** Human name stored in DB (lowercased). */
139
186
  name: string;
140
187
  /** Paystack plan code (if you use Paystack plans). */
@@ -142,7 +189,7 @@ interface PaystackPlan {
142
189
  /** Amount in the smallest currency unit (e.g. kobo). */
143
190
  amount?: number | undefined;
144
191
  /** Currency ISO code (e.g. NGN). */
145
- currency?: string | undefined;
192
+ currency?: PaystackCurrency | (string & {}) | undefined;
146
193
  /** Paystack interval keyword (when using Paystack plans). */
147
194
  interval?: "daily" | "weekly" | "monthly" | "quarterly" | "biannually" | "annually" | undefined;
148
195
  /** Optional description of the plan. */
@@ -152,7 +199,7 @@ interface PaystackPlan {
152
199
  /** Optional invoice limit; Paystack uses `invoice_limit` during init. */
153
200
  invoiceLimit?: number | undefined;
154
201
  /** Arbitrary limits (stored/consumed by your app). */
155
- limits?: Record<string, unknown> | undefined;
202
+ limits?: TLimits | undefined;
156
203
  /** Optional free trial config, if your app supports it. */
157
204
  freeTrial?: {
158
205
  days: number;
@@ -164,18 +211,29 @@ interface PaystackPlan {
164
211
  } | undefined;
165
212
  }
166
213
  interface PaystackProduct {
214
+ id: string;
167
215
  /** Human-readable name of the product. */
168
216
  name: string;
169
- /** Amount in the smallest currency unit (e.g., kobo). */
170
- amount: number;
217
+ /** Price in the smallest currency unit (e.g., kobo). */
218
+ price: number;
171
219
  /** Currency ISO code (e.g., NGN). */
172
- currency: string;
173
- /** Optional metadata to include with the transaction. */
174
- metadata?: Record<string, unknown> | undefined;
220
+ currency: PaystackCurrency | (string & {});
221
+ /** Optional metadata to include with the product. */
222
+ metadata?: string | undefined;
175
223
  /** Optional description of the product. */
176
224
  description?: string | undefined;
177
225
  /** Optional list of features for the product. */
178
226
  features?: string[] | undefined;
227
+ /** Optional stock quantity for the product. */
228
+ quantity?: number | undefined;
229
+ /** Whether the product has unlimited stock. */
230
+ unlimited?: boolean | undefined;
231
+ /** The internal Paystack ID for the product. */
232
+ paystackId?: string | undefined;
233
+ /** Unique slug for the product. */
234
+ slug: string;
235
+ createdAt: Date;
236
+ updatedAt: Date;
179
237
  }
180
238
  interface PaystackTransaction {
181
239
  id: string;
@@ -184,9 +242,10 @@ interface PaystackTransaction {
184
242
  referenceId: string;
185
243
  userId: string;
186
244
  amount: number;
187
- currency: string;
245
+ currency: PaystackCurrency | (string & {});
188
246
  status: string;
189
247
  plan?: string | undefined;
248
+ product?: string | undefined;
190
249
  metadata?: string | undefined;
191
250
  createdAt: Date;
192
251
  updatedAt: Date;
@@ -198,6 +257,8 @@ interface Subscription {
198
257
  paystackCustomerCode?: string | undefined;
199
258
  paystackSubscriptionCode?: string | undefined;
200
259
  paystackTransactionReference?: string | undefined;
260
+ paystackAuthorizationCode?: string | undefined;
261
+ paystackEmailToken?: string | undefined;
201
262
  status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "paused" | "trialing" | "unpaid";
202
263
  periodStart?: Date | undefined;
203
264
  periodEnd?: Date | undefined;
@@ -207,8 +268,8 @@ interface Subscription {
207
268
  groupId?: string | undefined;
208
269
  seats?: number | undefined;
209
270
  }
210
- interface SubscriptionOptions {
211
- plans: PaystackPlan[] | (() => PaystackPlan[] | Promise<PaystackPlan[]>);
271
+ interface SubscriptionOptions<TMetadata = any, TLimits = any> {
272
+ plans: PaystackPlan<TLimits>[] | (() => PaystackPlan<TLimits>[] | Promise<PaystackPlan<TLimits>[]>);
212
273
  requireEmailVerification?: boolean | undefined;
213
274
  authorizeReference?: ((data: {
214
275
  user: User;
@@ -217,44 +278,46 @@ interface SubscriptionOptions {
217
278
  action: "initialize-transaction" | "verify-transaction" | "list-subscriptions" | "list-transactions" | "disable-subscription" | "enable-subscription" | "get-subscription-manage-link";
218
279
  }, ctx: GenericEndpointContext$1) => Promise<boolean>) | undefined;
219
280
  onSubscriptionComplete?: ((data: {
220
- event: unknown;
281
+ event: PaystackWebhookPayload<any, TMetadata>;
221
282
  subscription: Subscription;
222
- plan: PaystackPlan;
283
+ plan: PaystackPlan<TLimits>;
223
284
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
224
285
  onSubscriptionUpdate?: ((data: {
225
- event: unknown;
286
+ event: PaystackWebhookPayload<any, TMetadata>;
226
287
  subscription: Subscription;
227
- plan?: PaystackPlan;
288
+ plan?: PaystackPlan<TLimits>;
228
289
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
229
290
  onSubscriptionCreated?: ((data: {
230
- event: unknown;
291
+ event: PaystackWebhookPayload<any, TMetadata>;
231
292
  subscription: Subscription;
232
- plan: PaystackPlan;
293
+ plan: PaystackPlan<TLimits>;
233
294
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
234
295
  onSubscriptionCancel?: ((data: {
235
- event: unknown;
296
+ event: PaystackWebhookPayload<any, TMetadata>;
236
297
  subscription: Subscription;
237
298
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
238
299
  onSubscriptionDelete?: ((data: {
239
- event: unknown;
300
+ event: PaystackWebhookPayload<any, TMetadata>;
240
301
  subscription: Subscription;
241
302
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
242
303
  }
243
304
  interface ProductOptions {
244
305
  products: PaystackProduct[] | (() => PaystackProduct[] | Promise<PaystackProduct[]>);
245
306
  }
246
- interface OrganizationOptions {
307
+ interface OrganizationOptions<TMetadata = any> {
247
308
  enabled: boolean;
248
309
  createCustomerOnOrganizationCreate?: boolean | undefined;
249
310
  onCustomerCreate?: ((data: {
250
- paystackCustomer: Record<string, unknown>;
311
+ paystackCustomer: PaystackCustomerResponse;
251
312
  organization: Record<string, unknown> & {
252
313
  paystackCustomerCode: string;
253
314
  };
254
315
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
255
- getCustomerCreateParams?: ((organization: unknown, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown>>) | undefined;
316
+ getCustomerCreateParams?: ((organization: unknown, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown> & {
317
+ metadata?: TMetadata;
318
+ }>) | undefined;
256
319
  }
257
- interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackNodeClient> {
320
+ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata = any, TLimits = any> {
258
321
  /** Paystack SDK instance (recommended: `@alexasomba/paystack-node` via `createPaystack({ secretKey })`). */
259
322
  paystackClient: NoInfer<TPaystackClient>;
260
323
  /** Paystack webhook secret used to verify `x-paystack-signature`. */
@@ -262,22 +325,24 @@ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackN
262
325
  /** Enable customer creation on Better Auth sign up. */
263
326
  createCustomerOnSignUp?: boolean | undefined;
264
327
  onCustomerCreate?: ((data: {
265
- paystackCustomer: Record<string, unknown>;
328
+ paystackCustomer: PaystackCustomerResponse;
266
329
  user: User & {
267
330
  paystackCustomerCode: string;
268
331
  };
269
332
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
270
- getCustomerCreateParams?: ((user: User, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown>>) | undefined;
333
+ getCustomerCreateParams?: ((user: User, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown> & {
334
+ metadata?: TMetadata;
335
+ }>) | undefined;
271
336
  subscription?: ({
272
337
  enabled: false;
273
338
  } | ({
274
339
  enabled: true;
275
- } & SubscriptionOptions)) | undefined;
340
+ } & SubscriptionOptions<TMetadata, TLimits>)) | undefined;
276
341
  products?: ProductOptions | undefined;
277
- organization?: OrganizationOptions | undefined;
278
- onEvent?: ((event: unknown) => Promise<void>) | undefined;
342
+ organization?: OrganizationOptions<TMetadata> | undefined;
343
+ onEvent?: ((event: PaystackWebhookPayload<any, TMetadata>) => Promise<void>) | undefined;
279
344
  schema?: InferOptionSchema<typeof subscriptions & typeof user & typeof organization> | undefined;
280
345
  }
281
346
  //#endregion
282
347
  export { PaystackProduct as a, SubscriptionOptions as c, PaystackPlan as i, PaystackNodeClient as n, PaystackTransaction as o, PaystackOptions as r, Subscription as s, PaystackClientLike as t };
283
- //# sourceMappingURL=types-Du5udJ7X.d.mts.map
348
+ //# sourceMappingURL=types-BVSLYZGY.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-BVSLYZGY.d.mts","names":["GenericEndpointContext","InferOptionSchema","Session","User","createPaystack","organization","subscriptions","user","PaystackNodeClient","ReturnType","PaystackCurrency","PaystackEvent","PaystackWebhookPayload","TData","TMetadata","event","data","metadata","key","PaystackCustomerResponse","Record","customer_code","email","first_name","last_name","id","PaystackTransactionResponse","domain","status","reference","amount","message","gateway_response","paid_at","created_at","channel","currency","ip_address","customer","PaystackSubscriptionResponse","plan","subscription_code","email_token","PaystackOpenApiFetchResponse","T","Response","error","response","PaystackApiResult","Promise","NonNullableInit","Exclude","ExtractBody","body","B","WithMetadataStringOrObject","Omit","WithMetadataObject","WithEmail","CustomerCreateInit","Parameters","CustomerUpdateInit","TransactionInitializeInit","SubscriptionCreateInit","SubscriptionToggleInit","TransactionChargeAuthorizationInit","PaystackCustomerCreateInput","PaystackCustomerUpdateInput","PaystackTransactionInitializeInput","PaystackTransactionChargeAuthorizationInput","PaystackSubscriptionCreateInput","PaystackSubscriptionToggleInput","PaystackSubscriptionFetchInit","params","path","code","id_or_code","PaystackClientLike","Partial","subscription_manage_link","create","update","transaction","initialize","verify","chargeAuthorization","subscription","fetch","idOrCode","disable","enable","manage","link","product","list","delete","product_list","init","product_fetch","product_create","product_update","product_delete","NoInfer","AuthSession","session","PaystackPlan","TLimits","Subscription","name","planCode","interval","description","features","invoiceLimit","limits","freeTrial","days","onTrialStart","onTrialEnd","ctx","onTrialExpired","PaystackProduct","Date","price","quantity","unlimited","paystackId","slug","createdAt","updatedAt","InputPaystackProduct","PaystackTransaction","referenceId","userId","InputPaystackTransaction","paystackCustomerCode","paystackSubscriptionCode","paystackTransactionReference","paystackAuthorizationCode","paystackEmailToken","periodStart","periodEnd","trialStart","trialEnd","cancelAtPeriodEnd","groupId","seats","InputSubscription","SubscriptionOptions","plans","requireEmailVerification","authorizeReference","action","onSubscriptionComplete","onSubscriptionUpdate","onSubscriptionCreated","onSubscriptionCancel","onSubscriptionDelete","ProductOptions","products","OrganizationOptions","enabled","createCustomerOnOrganizationCreate","onCustomerCreate","paystackCustomer","getCustomerCreateParams","PaystackOptions","TPaystackClient","paystackClient","paystackWebhookSecret","createCustomerOnSignUp","onEvent","schema","Organization","Member","organizationId","role"],"sources":["../src/schema.ts","../src/types.d.ts"],"mappings":";;;;;cA+Da,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cAyEA,IAAA;;;;;;;;;;;cAYA,YAAA;;;;;;;;;;;;;;;;;KChJDQ,kBAAAA,GAAqBC,UAAAA,QAAkBL,cAAAA;AAAAA,KACvCM,gBAAAA;AAAAA,KACAC,aAAAA;AAAAA,UACKC,sBAAAA;EACbG,KAAAA,EAAOJ,aAAAA;EACPK,IAAAA,EAAMH,KAAAA;EACNI,QAAAA,GAAWH,SAAAA;EAAAA,CACVI,GAAAA;AAAAA;AAAAA,UAEYC,wBAAAA;EACbE,aAAAA;EACAC,KAAAA;EACAC,UAAAA;EACAC,SAAAA;EACAP,QAAAA,GAAWG,MAAAA;EACXK,EAAAA;EAAAA,CACCP,GAAAA;AAAAA;AAAAA,KAoCAgC,eAAAA,MAAqBC,OAAAA,CAAQP,CAAAA;AAAAA,KAC7BQ,WAAAA,MAAiBR,CAAAA;EAClBS,IAAAA;AAAAA,IACAC,CAAAA;AAAAA,KACCC,0BAAAA,MAAgCX,CAAAA,kBAAmBY,IAAAA,CAAKZ,CAAAA;EACzD3B,QAAAA,YAAoBG,MAAAA;AAAAA,IACpBwB,CAAAA;AAAAA,KACCa,kBAAAA,MAAwBb,CAAAA,kBAAmBY,IAAAA,CAAKZ,CAAAA;EACjD3B,QAAAA,GAAWG,MAAAA;AAAAA,IACXwB,CAAAA;AAAAA,KACCc,SAAAA,MAAed,CAAAA,kBAAmBY,IAAAA,CAAKZ,CAAAA;EACxCtB,KAAAA;AAAAA,IACAsB,CAAAA;AAAAA,KACCe,kBAAAA,GAAqBT,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KAChDqD,kBAAAA,GAAqBX,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KAChDsD,yBAAAA,GAA4BZ,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KACvDuD,sBAAAA,GAAyBb,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KACpDwD,sBAAAA,GAAyBd,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KACpDyD,kCAAAA,GAAqCf,eAAAA,CAAgBU,UAAAA,CAAWpD,kBAAAA;AAAAA,KACzD0D,2BAAAA,GAA8BX,0BAAAA,CAA2BH,WAAAA,CAAYO,kBAAAA;AAAAA,KACrEQ,2BAAAA,GAA8BZ,0BAAAA,CAA2BG,SAAAA,CAAUN,WAAAA,CAAYS,kBAAAA;AAAAA,KAC/EO,kCAAAA,GAAqCX,kBAAAA,CAAmBL,WAAAA,CAAYU,yBAAAA;AAAAA,KACpEO,2CAAAA,GAA8CZ,kBAAAA,CAAmBL,WAAAA,CAAYa,kCAAAA;AAAAA,KAC7EK,+BAAAA,GAAkClB,WAAAA,CAAYW,sBAAAA;AAAAA,KAC9CQ,+BAAAA,GAAkCnB,WAAAA,CAAYY,sBAAAA;AAAAA,KAc9Ca,kBAAAA,GAAqBC,OAAAA,CAAQtE,kBAAAA;EACrCuE,wBAAAA,GAA2BvE,kBAAAA;EAC3B8B,QAAAA;IACI0C,MAAAA,IAAUP,MAAAA,EAAQP,2BAAAA,KAAgCjB,OAAAA;IAClDgC,MAAAA,IAAUN,IAAAA,UAAcF,MAAAA,EAAQN,2BAAAA,KAAgClB,OAAAA;EAAAA;EAEpEiC,WAAAA;IACIC,UAAAA,IAAcV,MAAAA,EAAQL,kCAAAA,KAAuCnB,OAAAA;IAC7DmC,MAAAA,IAAUvD,SAAAA,aAAsBoB,OAAAA;IAChCoC,mBAAAA,IAAuBZ,MAAAA,EAAQJ,2CAAAA,KAAgDpB,OAAAA;EAAAA;EAEnFqC,YAAAA;IACIC,KAAAA,IAASC,QAAAA,aAAqBvC,OAAAA;IAC9B+B,MAAAA,IAAUP,MAAAA,EAAQH,+BAAAA,KAAoCrB,OAAAA;IACtDwC,OAAAA,IAAWhB,MAAAA,EAAQF,+BAAAA,KAAoCtB,OAAAA;IACvDyC,MAAAA,IAAUjB,MAAAA,EAAQF,+BAAAA,KAAoCtB,OAAAA;IACtD0C,MAAAA;MACIC,IAAAA,IAAQjB,IAAAA,aAAiB1B,OAAAA;MACzB3B,KAAAA,IAASqD,IAAAA,UAAcrD,KAAAA,aAAkB2B,OAAAA;IAAAA;EAAAA;EAGjD4C,OAAAA;IACIC,IAAAA,SAAa7C,OAAAA;IACbsC,KAAAA,IAASC,QAAAA,aAAqBvC,OAAAA;IAC9B+B,MAAAA,IAAUP,MAAAA,EAAQrD,MAAAA,sBAA4B6B,OAAAA;IAC9CgC,MAAAA,IAAUO,QAAAA,UAAkBf,MAAAA,EAAQrD,MAAAA,sBAA4B6B,OAAAA;IAChE8C,MAAAA,IAAUP,QAAAA,aAAqBvC,OAAAA;EAAAA;EAEnC+C,YAAAA,IAAgBC,IAAAA,WAAehD,OAAAA;EAC/BiD,aAAAA,IAAiBD,IAAAA,UAAchD,OAAAA;EAC/BkD,cAAAA,IAAkBF,IAAAA,UAAchD,OAAAA;EAChCmD,cAAAA,IAAkBH,IAAAA,UAAchD,OAAAA;EAChCoD,cAAAA,IAAkBJ,IAAAA,UAAchD,OAAAA;AAAAA;AAAAA,KAE/BqD,OAAAA,OAAc1D,CAAAA,EAAGA,CAAAA;AAAAA,UAKL6D,YAAAA,WAAuBrF,MAAAA;EArHpCG;EAuHAqF,IAAAA;EArHA3F;EAuHA4F,QAAAA;EAtHApF;EAwHAK,MAAAA;EAvHY;EAyHZM,QAAAA,GAAW1B,gBAAAA;EArFVwC;EAuFD4D,QAAAA;EAvFgBlE;EAyFhBmE,WAAAA;EAzFiBnE;EA2FjBoE,QAAAA;EA3F8BpE;EA6F9BqE,YAAAA;EA7F+B;EA+F/BC,MAAAA,GAASR,OAAAA;EA9FG;EAgGZS,SAAAA;IACIC,IAAAA;IACAC,YAAAA,IAAgB/B,YAAAA,EAAcqB,YAAAA,KAAiB1D,OAAAA;IAC/CqE,UAAAA,IAActG,IAAAA;MACVsE,YAAAA,EAAcqB,YAAAA;IAAAA,GACfY,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;IACnCuE,cAAAA,IAAkBlC,YAAAA,EAAcqB,YAAAA,EAAcY,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EAAAA;AAAAA;AAAAA,UAGrEwE,eAAAA;EACbhG,EAAAA;EAvG2BmB;EAyG3BgE,IAAAA;EAzGyDhE;EA2GzD+E,KAAAA;EA1GoBvG;EA4GpBgB,QAAAA,EAAU1B,gBAAAA;EA3GT;EA6GDO,QAAAA;EA/G4B2B;EAiH5BmE,WAAAA;EAjHoDvD;EAmHpDwD,QAAAA;EAlHA/F;EAoHA2G,QAAAA;EAnHAhF;EAqHAiF,SAAAA;EArHC;EAuHDC,UAAAA;EAtHmB;EAwHnBC,IAAAA;EACAC,SAAAA,EAAWN,IAAAA;EACXO,SAAAA,EAAWP,IAAAA;AAAAA;AAAAA,UAMES,mBAAAA;EACb1G,EAAAA;EACAI,SAAAA;EACAiG,UAAAA;EACAM,WAAAA;EACAC,MAAAA;EACAvG,MAAAA;EACAM,QAAAA,EAAU1B,gBAAAA;EACVkB,MAAAA;EACAY,IAAAA;EACAqD,OAAAA;EACA5E,QAAAA;EACA+G,SAAAA,EAAWN,IAAAA;EACXO,SAAAA,EAAWP,IAAAA;AAAAA;AAAAA,UAIEf,YAAAA;EACblF,EAAAA;EACAe,IAAAA;EACA4F,WAAAA;EACAG,oBAAAA;EACAC,wBAAAA;EACAC,4BAAAA;EACAC,yBAAAA;EACAC,kBAAAA;EACA/G,MAAAA;EACAgH,WAAAA,GAAclB,IAAAA;EACdmB,SAAAA,GAAYnB,IAAAA;EACZoB,UAAAA,GAAapB,IAAAA;EACbqB,QAAAA,GAAWrB,IAAAA;EACXsB,iBAAAA;EACAC,OAAAA;EACAC,KAAAA;AAAAA;AAAAA,UAIaE,mBAAAA;EACbC,KAAAA,EAAO5C,YAAAA,CAAaC,OAAAA,aAAoBD,YAAAA,CAAaC,OAAAA,MAAazD,OAAAA,CAAQwD,YAAAA,CAAaC,OAAAA;EACvF4C,wBAAAA;EACAC,kBAAAA,KAAuBvI,IAAAA;IACnBT,IAAAA,EAAMJ,IAAAA;IACNqG,OAAAA,EAAStG,OAAAA;IACTkI,WAAAA;IACAoB,MAAAA;EAAAA,GACDjC,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnCwG,sBAAAA,KAA2BzI,IAAAA;IACvBD,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA;IACnCwE,YAAAA,EAAcqB,YAAAA;IACdnE,IAAAA,EAAMiE,YAAAA,CAAaC,OAAAA;EAAAA,GACpBa,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnCyG,oBAAAA,KAAyB1I,IAAAA;IACrBD,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA;IACnCwE,YAAAA,EAAcqB,YAAAA;IACdnE,IAAAA,GAAOiE,YAAAA,CAAaC,OAAAA;EAAAA,GACrBa,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnC0G,qBAAAA,KAA0B3I,IAAAA;IACtBD,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA;IACnCwE,YAAAA,EAAcqB,YAAAA;IACdnE,IAAAA,EAAMiE,YAAAA,CAAaC,OAAAA;EAAAA,GACpBa,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnC2G,oBAAAA,KAAyB5I,IAAAA;IACrBD,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA;IACnCwE,YAAAA,EAAcqB,YAAAA;EAAAA,GACfY,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnC4G,oBAAAA,KAAyB7I,IAAAA;IACrBD,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA;IACnCwE,YAAAA,EAAcqB,YAAAA;EAAAA,GACfY,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;AAAAA;AAAAA,UAEtB6G,cAAAA;EACbC,QAAAA,EAAUtC,eAAAA,YAA2BA,eAAAA,KAAoBxE,OAAAA,CAAQwE,eAAAA;AAAAA;AAAAA,UAEpDuC,mBAAAA;EACbC,OAAAA;EACAC,kCAAAA;EACAC,gBAAAA,KAAqBnJ,IAAAA;IACjBoJ,gBAAAA,EAAkBjJ,wBAAAA;IAClBd,YAAAA,EAAce,MAAAA;MACVmH,oBAAAA;IAAAA;EAAAA,GAELhB,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnCoH,uBAAAA,KAA4BhK,YAAAA,WAAuBkH,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA,CAAQ7B,MAAAA;IACvFH,QAAAA,GAAWH,SAAAA;EAAAA;AAAAA;AAAAA,UAGFwJ,eAAAA,yBAAwCzF,kBAAAA,GAAqBrE,kBAAAA;EA5MhCoD;EA8M1C4G,cAAAA,EAAgBlE,OAAAA,CAAQiE,eAAAA;EA9M+C;EAgNvEE,qBAAAA;EA/MCxG;EAiNDyG,sBAAAA;EACAP,gBAAAA,KAAqBnJ,IAAAA;IACjBoJ,gBAAAA,EAAkBjJ,wBAAAA;IAClBZ,IAAAA,EAAMJ,IAAAA;MACFoI,oBAAAA;IAAAA;EAAAA,GAELhB,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA;EACnCoH,uBAAAA,KAA4B9J,IAAAA,EAAMJ,IAAAA,EAAMoH,GAAAA,EAAKvH,wBAAAA,KAA2BiD,OAAAA,CAAQ7B,MAAAA;IAC5EH,QAAAA,GAAWH,SAAAA;EAAAA;EAEfwE,YAAAA;IACI2E,OAAAA;EAAAA;IAEAA,OAAAA;EAAAA,IACAb,mBAAAA,CAAoBtI,SAAAA,EAAW4F,OAAAA;EACnCqD,QAAAA,GAAWD,cAAAA;EACXzJ,YAAAA,GAAe2J,mBAAAA,CAAoBlJ,SAAAA;EACnC6J,OAAAA,KAAY5J,KAAAA,EAAOH,sBAAAA,MAA4BE,SAAAA,MAAemC,OAAAA;EAC9D2H,MAAAA,GAAS3K,iBAAAA,QAAyBK,aAAAA,UAAuBC,IAAAA,UAAcF,YAAAA;AAAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alexasomba/better-auth-paystack",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Production-ready Paystack billing plugin for Better Auth. Supports subscriptions, one-time payments, organization billing, secure webhooks and more",
5
5
  "license": "MIT",
6
6
  "author": "alexasomba",
@@ -72,12 +72,12 @@
72
72
  },
73
73
  "dependencies": {
74
74
  "@alexasomba/paystack-node": "^1.1.6",
75
- "better-call": "^1.3.1",
75
+ "better-call": "^1.3.2",
76
76
  "defu": "^6.1.4",
77
77
  "zod": "^4.3.6"
78
78
  },
79
79
  "optionalDependencies": {
80
- "@rollup/rollup-linux-x64-gnu": "^4.57.1"
80
+ "@rollup/rollup-linux-x64-gnu": "^4.59.0"
81
81
  },
82
82
  "devDependencies": {
83
83
  "@arethetypeswrong/cli": "^0.18.2",
@@ -86,27 +86,28 @@
86
86
  "@eslint/compat": "^2.0.2",
87
87
  "@eslint/js": "^10.0.1",
88
88
  "@rollup/rollup-linux-x64-gnu": "^4.57.1",
89
- "@types/node": "^22.19.10",
90
- "@typescript-eslint/eslint-plugin": "^8.55.0",
91
- "@typescript-eslint/parser": "^8.55.0",
89
+ "@types/node": "^22.19.11",
90
+ "@typescript-eslint/eslint-plugin": "^8.56.0",
91
+ "@typescript-eslint/parser": "^8.56.0",
92
92
  "@vitest/coverage-v8": "^3.2.4",
93
93
  "better-auth": "^1.4.18",
94
- "eslint": "^10.0.0",
94
+ "eslint": "^9.39.3",
95
95
  "eslint-plugin-import-x": "^4.16.1",
96
- "eslint-plugin-unicorn": "^62.0.0",
97
96
  "eslint-plugin-promise": "^7.2.1",
98
97
  "eslint-plugin-react-hooks": "^7.0.1",
98
+ "eslint-plugin-unicorn": "^63.0.0",
99
99
  "husky": "^9.1.7",
100
100
  "lint-staged": "^16.2.7",
101
101
  "publint": "^0.3.17",
102
102
  "tsdown": "^0.20.3",
103
103
  "typescript": "^5.9.3",
104
- "typescript-eslint": "^8.55.0",
104
+ "typescript-eslint": "^8.56.0",
105
105
  "vitest": "^3.2.4"
106
106
  },
107
107
  "lint-staged": {
108
108
  "*.{ts,tsx}": [
109
109
  "bash -c 'pnpm tsc --noEmit'",
110
+ "eslint --fix",
110
111
  "vitest related --run"
111
112
  ]
112
113
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"types-Du5udJ7X.d.mts","names":["GenericEndpointContext","InferOptionSchema","Session","User","createPaystack","organization","subscriptions","user","PaystackNodeClient","ReturnType","PaystackOpenApiFetchResponse","T","Response","data","error","response","PaystackApiResult","Promise","NonNullableInit","Exclude","ExtractBody","body","B","WithMetadataStringOrObject","Omit","Record","metadata","WithMetadataObject","WithEmail","email","CustomerCreateInit","Parameters","CustomerUpdateInit","TransactionInitializeInit","SubscriptionCreateInit","SubscriptionToggleInit","PaystackCustomerCreateInput","PaystackCustomerUpdateInput","PaystackTransactionInitializeInput","PaystackSubscriptionCreateInput","PaystackSubscriptionToggleInput","PaystackSubscriptionFetchInit","params","path","code","id_or_code","PaystackClientLike","Partial","subscription_manage_link","customer","create","update","transaction","initialize","verify","reference","subscription","fetch","idOrCode","disable","enable","manage","link","NoInfer","AuthSession","session","PaystackPlan","Subscription","name","planCode","amount","currency","interval","description","features","invoiceLimit","limits","freeTrial","days","onTrialStart","onTrialEnd","ctx","onTrialExpired","PaystackProduct","PaystackTransaction","Date","id","paystackId","referenceId","userId","status","plan","createdAt","updatedAt","InputPaystackTransaction","paystackCustomerCode","paystackSubscriptionCode","paystackTransactionReference","periodStart","periodEnd","trialStart","trialEnd","cancelAtPeriodEnd","groupId","seats","InputSubscription","SubscriptionOptions","plans","requireEmailVerification","authorizeReference","action","onSubscriptionComplete","event","onSubscriptionUpdate","onSubscriptionCreated","onSubscriptionCancel","onSubscriptionDelete","ProductOptions","products","OrganizationOptions","enabled","createCustomerOnOrganizationCreate","onCustomerCreate","paystackCustomer","getCustomerCreateParams","PaystackOptions","TPaystackClient","paystackClient","paystackWebhookSecret","createCustomerOnSignUp","onEvent","schema","Organization","slug","key","Member","organizationId","role"],"sources":["../src/schema.ts","../src/types.d.ts"],"mappings":"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"}