@alexasomba/better-auth-paystack 1.0.0-rc.3 → 1.0.4

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.
@@ -26,6 +26,14 @@ declare const subscriptions: {
26
26
  type: "string";
27
27
  required: false;
28
28
  };
29
+ paystackAuthorizationCode: {
30
+ type: "string";
31
+ required: false;
32
+ };
33
+ paystackEmailToken: {
34
+ type: "string";
35
+ required: false;
36
+ };
29
37
  status: {
30
38
  type: "string";
31
39
  defaultValue: string;
@@ -89,6 +97,7 @@ declare const organization: {
89
97
  //#endregion
90
98
  //#region src/types.d.ts
91
99
  type PaystackNodeClient = ReturnType<typeof createPaystack>;
100
+ type PaystackCurrency = "NGN" | "GHS" | "KES" | "ZAR" | "USD" | "XOF";
92
101
  type NonNullableInit<T> = Exclude<T, undefined>;
93
102
  type ExtractBody<T> = T extends {
94
103
  body?: infer B;
@@ -107,9 +116,11 @@ type CustomerUpdateInit = NonNullableInit<Parameters<PaystackNodeClient["custome
107
116
  type TransactionInitializeInit = NonNullableInit<Parameters<PaystackNodeClient["transaction_initialize"]>[0]>;
108
117
  type SubscriptionCreateInit = NonNullableInit<Parameters<PaystackNodeClient["subscription_create"]>[0]>;
109
118
  type SubscriptionToggleInit = NonNullableInit<Parameters<PaystackNodeClient["subscription_disable"]>[0]>;
119
+ type TransactionChargeAuthorizationInit = NonNullableInit<Parameters<PaystackNodeClient["transaction_chargeAuthorization"]>[0]>;
110
120
  type PaystackCustomerCreateInput = WithMetadataStringOrObject<ExtractBody<CustomerCreateInit>>;
111
121
  type PaystackCustomerUpdateInput = WithMetadataStringOrObject<WithEmail<ExtractBody<CustomerUpdateInit>>>;
112
122
  type PaystackTransactionInitializeInput = WithMetadataObject<ExtractBody<TransactionInitializeInit>>;
123
+ type PaystackTransactionChargeAuthorizationInput = WithMetadataObject<ExtractBody<TransactionChargeAuthorizationInit>>;
113
124
  type PaystackSubscriptionCreateInput = ExtractBody<SubscriptionCreateInit>;
114
125
  type PaystackSubscriptionToggleInput = ExtractBody<SubscriptionToggleInit>;
115
126
  type PaystackClientLike = Partial<PaystackNodeClient> & {
@@ -121,6 +132,7 @@ type PaystackClientLike = Partial<PaystackNodeClient> & {
121
132
  transaction?: {
122
133
  initialize?: (params: PaystackTransactionInitializeInput) => Promise<unknown>;
123
134
  verify?: (reference: string) => Promise<unknown>;
135
+ chargeAuthorization?: (params: PaystackTransactionChargeAuthorizationInput) => Promise<unknown>;
124
136
  };
125
137
  subscription?: {
126
138
  fetch?: (idOrCode: string) => Promise<unknown>;
@@ -133,21 +145,27 @@ type PaystackClientLike = Partial<PaystackNodeClient> & {
133
145
  };
134
146
  };
135
147
  };
136
- type NoInfer<T> = [T][T extends any ? 0 : never];
137
- type AuthSession = {
138
- user: User;
139
- session: Session;
140
- } & Record<string, any>;
141
- type PaystackPlan = {
142
- /** Human name stored in DB (lowercased). */name: string; /** Paystack plan code (if you use Paystack plans). */
143
- planCode?: string | undefined; /** Amount in the smallest currency unit (e.g. kobo). */
144
- amount?: number | undefined; /** Currency ISO code (e.g. NGN). */
145
- currency?: string | undefined; /** Paystack interval keyword (when using Paystack plans). */
146
- interval?: "daily" | "weekly" | "monthly" | "quarterly" | "biannually" | "annually" | undefined; /** Optional description of the plan. */
147
- description?: string | undefined; /** Optional list of features for the plan. */
148
- features?: string[] | undefined; /** Optional invoice limit; Paystack uses `invoice_limit` during init. */
149
- invoiceLimit?: number | undefined; /** Arbitrary limits (stored/consumed by your app). */
150
- limits?: Record<string, unknown> | undefined; /** Optional free trial config, if your app supports it. */
148
+ type NoInfer<T> = [T][T extends unknown ? 0 : never];
149
+ interface PaystackPlan {
150
+ /** Human name stored in DB (lowercased). */
151
+ name: string;
152
+ /** Paystack plan code (if you use Paystack plans). */
153
+ planCode?: string | undefined;
154
+ /** Amount in the smallest currency unit (e.g. kobo). */
155
+ amount?: number | undefined;
156
+ /** Currency ISO code (e.g. NGN). */
157
+ currency?: PaystackCurrency | (string & {}) | undefined;
158
+ /** Paystack interval keyword (when using Paystack plans). */
159
+ interval?: "daily" | "weekly" | "monthly" | "quarterly" | "biannually" | "annually" | undefined;
160
+ /** Optional description of the plan. */
161
+ description?: string | undefined;
162
+ /** Optional list of features for the plan. */
163
+ features?: string[] | undefined;
164
+ /** Optional invoice limit; Paystack uses `invoice_limit` during init. */
165
+ invoiceLimit?: number | undefined;
166
+ /** Arbitrary limits (stored/consumed by your app). */
167
+ limits?: Record<string, unknown> | undefined;
168
+ /** Optional free trial config, if your app supports it. */
151
169
  freeTrial?: {
152
170
  days: number;
153
171
  onTrialStart?: (subscription: Subscription) => Promise<void>;
@@ -156,14 +174,14 @@ type PaystackPlan = {
156
174
  }, ctx: GenericEndpointContext$1) => Promise<void>;
157
175
  onTrialExpired?: (subscription: Subscription, ctx: GenericEndpointContext$1) => Promise<void>;
158
176
  } | undefined;
159
- };
177
+ }
160
178
  interface PaystackProduct {
161
179
  /** Human-readable name of the product. */
162
180
  name: string;
163
181
  /** Amount in the smallest currency unit (e.g., kobo). */
164
182
  amount: number;
165
183
  /** Currency ISO code (e.g., NGN). */
166
- currency: string;
184
+ currency: PaystackCurrency | (string & {});
167
185
  /** Optional metadata to include with the transaction. */
168
186
  metadata?: Record<string, unknown> | undefined;
169
187
  /** Optional description of the product. */
@@ -178,7 +196,7 @@ interface PaystackTransaction {
178
196
  referenceId: string;
179
197
  userId: string;
180
198
  amount: number;
181
- currency: string;
199
+ currency: PaystackCurrency | (string & {});
182
200
  status: string;
183
201
  plan?: string | undefined;
184
202
  metadata?: string | undefined;
@@ -192,6 +210,8 @@ interface Subscription {
192
210
  paystackCustomerCode?: string | undefined;
193
211
  paystackSubscriptionCode?: string | undefined;
194
212
  paystackTransactionReference?: string | undefined;
213
+ paystackAuthorizationCode?: string | undefined;
214
+ paystackEmailToken?: string | undefined;
195
215
  status: "active" | "canceled" | "incomplete" | "incomplete_expired" | "paused" | "trialing" | "unpaid";
196
216
  periodStart?: Date | undefined;
197
217
  periodEnd?: Date | undefined;
@@ -201,52 +221,53 @@ interface Subscription {
201
221
  groupId?: string | undefined;
202
222
  seats?: number | undefined;
203
223
  }
204
- type SubscriptionOptions = {
224
+ interface SubscriptionOptions {
205
225
  plans: PaystackPlan[] | (() => PaystackPlan[] | Promise<PaystackPlan[]>);
206
226
  requireEmailVerification?: boolean | undefined;
207
227
  authorizeReference?: ((data: {
208
228
  user: User;
209
- session: AuthSession;
229
+ session: Session;
210
230
  referenceId: string;
211
231
  action: "initialize-transaction" | "verify-transaction" | "list-subscriptions" | "list-transactions" | "disable-subscription" | "enable-subscription" | "get-subscription-manage-link";
212
232
  }, ctx: GenericEndpointContext$1) => Promise<boolean>) | undefined;
213
233
  onSubscriptionComplete?: ((data: {
214
- event: any;
234
+ event: unknown;
215
235
  subscription: Subscription;
216
236
  plan: PaystackPlan;
217
237
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
218
238
  onSubscriptionUpdate?: ((data: {
219
- event: any;
239
+ event: unknown;
220
240
  subscription: Subscription;
241
+ plan?: PaystackPlan;
221
242
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
222
243
  onSubscriptionCreated?: ((data: {
223
- event: any;
244
+ event: unknown;
224
245
  subscription: Subscription;
225
246
  plan: PaystackPlan;
226
247
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
227
248
  onSubscriptionCancel?: ((data: {
228
- event: any;
249
+ event: unknown;
229
250
  subscription: Subscription;
230
251
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
231
252
  onSubscriptionDelete?: ((data: {
232
- event: any;
253
+ event: unknown;
233
254
  subscription: Subscription;
234
255
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
235
- };
236
- type ProductOptions = {
256
+ }
257
+ interface ProductOptions {
237
258
  products: PaystackProduct[] | (() => PaystackProduct[] | Promise<PaystackProduct[]>);
238
- };
239
- type OrganizationOptions = {
259
+ }
260
+ interface OrganizationOptions {
240
261
  enabled: boolean;
241
262
  createCustomerOnOrganizationCreate?: boolean | undefined;
242
263
  onCustomerCreate?: ((data: {
243
- paystackCustomer: any;
244
- organization: any & {
264
+ paystackCustomer: Record<string, unknown>;
265
+ organization: Record<string, unknown> & {
245
266
  paystackCustomerCode: string;
246
267
  };
247
268
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
248
- getCustomerCreateParams?: ((organization: any, ctx: GenericEndpointContext$1) => Promise<Record<string, any>>) | undefined;
249
- };
269
+ getCustomerCreateParams?: ((organization: unknown, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown>>) | undefined;
270
+ }
250
271
  interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackNodeClient> {
251
272
  /** Paystack SDK instance (recommended: `@alexasomba/paystack-node` via `createPaystack({ secretKey })`). */
252
273
  paystackClient: NoInfer<TPaystackClient>;
@@ -255,12 +276,12 @@ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackN
255
276
  /** Enable customer creation on Better Auth sign up. */
256
277
  createCustomerOnSignUp?: boolean | undefined;
257
278
  onCustomerCreate?: ((data: {
258
- paystackCustomer: any;
279
+ paystackCustomer: Record<string, unknown>;
259
280
  user: User & {
260
281
  paystackCustomerCode: string;
261
282
  };
262
283
  }, ctx: GenericEndpointContext$1) => Promise<void>) | undefined;
263
- getCustomerCreateParams?: ((user: User, ctx: GenericEndpointContext$1) => Promise<Record<string, any>>) | undefined;
284
+ getCustomerCreateParams?: ((user: User, ctx: GenericEndpointContext$1) => Promise<Record<string, unknown>>) | undefined;
264
285
  subscription?: ({
265
286
  enabled: false;
266
287
  } | ({
@@ -268,9 +289,9 @@ interface PaystackOptions<TPaystackClient extends PaystackClientLike = PaystackN
268
289
  } & SubscriptionOptions)) | undefined;
269
290
  products?: ProductOptions | undefined;
270
291
  organization?: OrganizationOptions | undefined;
271
- onEvent?: ((event: any) => Promise<void>) | undefined;
292
+ onEvent?: ((event: unknown) => Promise<void>) | undefined;
272
293
  schema?: InferOptionSchema<typeof subscriptions & typeof user & typeof organization> | undefined;
273
294
  }
274
295
  //#endregion
275
296
  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 };
276
- //# sourceMappingURL=types--kIktPs7.d.mts.map
297
+ //# sourceMappingURL=types-Dlv_nSLg.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types-Dlv_nSLg.d.mts","names":["GenericEndpointContext","InferOptionSchema","Session","User","createPaystack","organization","subscriptions","user","PaystackNodeClient","ReturnType","PaystackCurrency","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","TransactionChargeAuthorizationInit","PaystackCustomerCreateInput","PaystackCustomerUpdateInput","PaystackTransactionInitializeInput","PaystackTransactionChargeAuthorizationInput","PaystackSubscriptionCreateInput","PaystackSubscriptionToggleInput","PaystackSubscriptionFetchInit","params","path","code","id_or_code","PaystackClientLike","Partial","subscription_manage_link","customer","create","update","transaction","initialize","verify","reference","chargeAuthorization","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","paystackAuthorizationCode","paystackEmailToken","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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"}
package/package.json CHANGED
@@ -1,19 +1,51 @@
1
1
  {
2
2
  "name": "@alexasomba/better-auth-paystack",
3
- "version": "1.0.0-rc.3",
4
- "description": "Community Better Auth plugin for Paystack (by alexasomba)",
3
+ "version": "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",
7
- "categories": [],
7
+ "homepage": "https://github.com/alexasomba/better-auth-paystack#readme",
8
+ "bugs": {
9
+ "url": "https://github.com/alexasomba/better-auth-paystack/issues"
10
+ },
8
11
  "repository": {
9
12
  "type": "git",
10
13
  "url": "git+https://github.com/alexasomba/better-auth-paystack.git"
11
14
  },
15
+ "funding": [
16
+ {
17
+ "type": "individual",
18
+ "url": "https://solscan.io/account/Gepby394bBBn4AEKkSwAPVnjgBULvYTiXBpbZe9CQqSp"
19
+ }
20
+ ],
12
21
  "keywords": [
13
22
  "paystack",
14
23
  "auth",
15
- "better-auth"
24
+ "better-auth",
25
+ "billing-system",
26
+ "checkout",
27
+ "fintech",
28
+ "nigeria",
29
+ "ghana",
30
+ "south-africa",
31
+ "kenya",
32
+ "ivory-coast",
33
+ "cote-divoire",
34
+ "egypt",
35
+ "rwanda",
36
+ "ngn",
37
+ "ghs",
38
+ "zar",
39
+ "kes",
40
+ "usd",
41
+ "egp",
42
+ "subscriptions",
43
+ "africa",
44
+ "saas"
16
45
  ],
46
+ "engines": {
47
+ "node": ">=22.0.0"
48
+ },
17
49
  "type": "module",
18
50
  "types": "./dist/index.d.mts",
19
51
  "files": [
@@ -51,26 +83,31 @@
51
83
  "@arethetypeswrong/cli": "^0.18.2",
52
84
  "@better-auth/core": "^1.4.18",
53
85
  "@better-fetch/fetch": "^1.1.21",
54
- "@eslint/js": "^9.39.2",
86
+ "@eslint/compat": "^2.0.2",
87
+ "@eslint/js": "^10.0.1",
55
88
  "@rollup/rollup-linux-x64-gnu": "^4.57.1",
56
- "@types/node": "^22.19.10",
57
- "@typescript-eslint/eslint-plugin": "^8.54.0",
58
- "@typescript-eslint/parser": "^8.54.0",
89
+ "@types/node": "^22.19.11",
90
+ "@typescript-eslint/eslint-plugin": "^8.55.0",
91
+ "@typescript-eslint/parser": "^8.55.0",
59
92
  "@vitest/coverage-v8": "^3.2.4",
60
93
  "better-auth": "^1.4.18",
61
- "eslint": "^9.39.2",
62
- "eslint-plugin-import": "^2.32.0",
94
+ "eslint": "^10.0.0",
95
+ "eslint-plugin-import-x": "^4.16.1",
96
+ "eslint-plugin-unicorn": "^63.0.0",
97
+ "eslint-plugin-promise": "^7.2.1",
63
98
  "eslint-plugin-react-hooks": "^7.0.1",
64
99
  "husky": "^9.1.7",
65
100
  "lint-staged": "^16.2.7",
66
101
  "publint": "^0.3.17",
67
102
  "tsdown": "^0.20.3",
68
103
  "typescript": "^5.9.3",
104
+ "typescript-eslint": "^8.55.0",
69
105
  "vitest": "^3.2.4"
70
106
  },
71
107
  "lint-staged": {
72
108
  "*.{ts,tsx}": [
73
109
  "bash -c 'pnpm tsc --noEmit'",
110
+ "eslint --fix",
74
111
  "vitest related --run"
75
112
  ]
76
113
  },
@@ -80,6 +117,7 @@
80
117
  "test": "vitest run",
81
118
  "test:integration": "RUN_INTEGRATION_TESTS=1 vitest run",
82
119
  "coverage": "vitest run --coverage",
120
+ "lint": "eslint src examples/tanstack",
83
121
  "lint:package": "publint run --strict",
84
122
  "lint:types": "attw --profile esm-only --pack .",
85
123
  "typecheck": "tsc -p tsconfig.json --noEmit"
@@ -1 +0,0 @@
1
- {"version":3,"file":"types--kIktPs7.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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"}