@alexasomba/better-auth-paystack 1.0.4 → 1.1.2
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 +44 -1
- package/dist/client.d.mts +15 -1
- package/dist/client.d.mts.map +1 -1
- package/dist/client.mjs +18 -0
- package/dist/client.mjs.map +1 -1
- package/dist/index.d.mts +172 -26
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +770 -362
- package/dist/index.mjs.map +1 -1
- package/dist/{types-Dlv_nSLg.d.mts → types-CMXvth6C.d.mts} +99 -28
- package/dist/types-CMXvth6C.d.mts.map +1 -0
- package/package.json +13 -13
- package/dist/types-Dlv_nSLg.d.mts.map +0 -1
package/README.md
CHANGED
|
@@ -416,8 +416,27 @@ The plugin extends your database with the following fields and tables.
|
|
|
416
416
|
| `currency` | `string` | Yes | Currency code (e.g., "NGN"). |
|
|
417
417
|
| `status` | `string` | Yes | `success`, `pending`, `failed`, `abandoned`. |
|
|
418
418
|
| `plan` | `string` | No | Name of the plan associated with the transaction. |
|
|
419
|
+
| `product` | `string` | No | Name of the product associated with the transaction. |
|
|
419
420
|
| `metadata` | `string` | No | JSON string of extra transaction metadata. |
|
|
420
421
|
| `paystackId` | `string` | No | The internal Paystack ID for the transaction. |
|
|
422
|
+
| `createdAt` | `Date` | Yes | Transaction creation timestamp. |
|
|
423
|
+
| `updatedAt` | `Date` | Yes | Transaction last update timestamp. |
|
|
424
|
+
|
|
425
|
+
### `paystackProduct`
|
|
426
|
+
|
|
427
|
+
| Field | Type | Required | Description |
|
|
428
|
+
| :------------ | :-------- | :------- | :------------------------------------------------ |
|
|
429
|
+
| `name` | `string` | Yes | Product name. |
|
|
430
|
+
| `description` | `string` | No | Product description. |
|
|
431
|
+
| `price` | `number` | Yes | Price in smallest currency unit. |
|
|
432
|
+
| `currency` | `string` | Yes | Currency code (e.g., "NGN"). |
|
|
433
|
+
| `quantity` | `number` | No | Available stock quantity. |
|
|
434
|
+
| `unlimited` | `boolean` | No | Whether the product has unlimited stock. |
|
|
435
|
+
| `paystackId` | `string` | No | The internal Paystack Product ID. |
|
|
436
|
+
| `slug` | `string` | Yes | Unique slug for the product. |
|
|
437
|
+
| `metadata` | `string` | No | JSON string of extra product metadata. |
|
|
438
|
+
| `createdAt` | `Date` | Yes | Product creation timestamp. |
|
|
439
|
+
| `updatedAt` | `Date` | Yes | Product last update timestamp. |
|
|
421
440
|
|
|
422
441
|
---
|
|
423
442
|
|
|
@@ -427,7 +446,31 @@ The plugin extends your database with the following fields and tables.
|
|
|
427
446
|
- **Email Verification**: Use `requireEmailVerification: true` to prevent unverified checkouts.
|
|
428
447
|
- **Redirect Failures**: Check your browser console; Paystack often returns 429 errors if you're hitting the test API too frequently.
|
|
429
448
|
- **Reference mismatches**: Ensure `referenceId` is passed correctly for Organization billing.
|
|
430
|
-
- **Authorization Denied**: Verify your `authorizeReference` logic is correctly checking user roles or organization memberships.
|
|
449
|
+
- **Authorization Denied**: Verify your `authorizeReference` logic is correctly checking user roles or organization memberships. Unauthorized attempts to verify transactions now return a `401 Unauthorized` response to prevent data leaks.
|
|
450
|
+
|
|
451
|
+
### Database Indexing
|
|
452
|
+
|
|
453
|
+
The plugin's schema definition includes recommended indexes and uniqueness constraints for performance. When you run `npx better-auth migrate`, these will be automatically applied to your database.
|
|
454
|
+
|
|
455
|
+
The following fields are indexed:
|
|
456
|
+
- **`paystackTransaction`**: `reference` (unique), `userId`, `referenceId`.
|
|
457
|
+
- **`subscription`**: `paystackSubscriptionCode` (unique), `referenceId`, `paystackTransactionReference`, `paystackCustomerCode`, `plan`.
|
|
458
|
+
- **`user` & `organization`**: `paystackCustomerCode`.
|
|
459
|
+
- **`paystackProduct`**: `slug` (unique), `paystackId` (unique).
|
|
460
|
+
|
|
461
|
+
### Syncing Products
|
|
462
|
+
|
|
463
|
+
The plugin provides two ways to keep your product inventory in sync with Paystack:
|
|
464
|
+
|
|
465
|
+
#### 1. Automated Inventory Sync (New)
|
|
466
|
+
Whenever a successful one-time payment is made (via webhook or manual verification), the plugin automatically calls **`syncProductQuantityFromPaystack`**. This fetches the real-time remaining quantity from the Paystack API and updates your local database record, ensuring your inventory is always accurate.
|
|
467
|
+
|
|
468
|
+
#### 2. Manual Bulk Sync
|
|
469
|
+
You can synchronize all products with your local database using the `/paystack/sync-products` endpoint.
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
POST /api/auth/paystack/sync-products
|
|
473
|
+
```
|
|
431
474
|
|
|
432
475
|
---
|
|
433
476
|
|
package/dist/client.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { o as
|
|
1
|
+
import { c as Subscription, o as PaystackProduct, s as PaystackTransaction } from "./types-CMXvth6C.mjs";
|
|
2
2
|
import { paystack } from "./index.mjs";
|
|
3
3
|
import { BetterFetch, BetterFetchOption, BetterFetchResponse } from "@better-fetch/fetch";
|
|
4
4
|
|
|
@@ -268,6 +268,20 @@ declare const paystackClient: <O extends {
|
|
|
268
268
|
link: string;
|
|
269
269
|
}>>;
|
|
270
270
|
getConfig: () => Promise<BetterFetchResponse<Record<string, unknown>>>;
|
|
271
|
+
syncProducts: () => Promise<BetterFetchResponse<{
|
|
272
|
+
status: string;
|
|
273
|
+
count: number;
|
|
274
|
+
}>>;
|
|
275
|
+
syncPlans: () => Promise<BetterFetchResponse<{
|
|
276
|
+
status: string;
|
|
277
|
+
count: number;
|
|
278
|
+
}>>;
|
|
279
|
+
listProducts: (options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
280
|
+
products: PaystackProduct[];
|
|
281
|
+
}>>;
|
|
282
|
+
listPlans: (options?: BetterFetchOption) => Promise<BetterFetchResponse<{
|
|
283
|
+
plans: unknown[];
|
|
284
|
+
}>>;
|
|
271
285
|
};
|
|
272
286
|
};
|
|
273
287
|
};
|
package/dist/client.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"mappings":"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"}
|
package/dist/client.mjs
CHANGED
|
@@ -91,6 +91,24 @@ const paystackClient = (_options) => {
|
|
|
91
91
|
getSubscriptionManageLink,
|
|
92
92
|
getConfig: async () => {
|
|
93
93
|
return $fetch("paystack/get-config", { method: "GET" });
|
|
94
|
+
},
|
|
95
|
+
syncProducts: async () => {
|
|
96
|
+
return $fetch("paystack/sync-products", { method: "POST" });
|
|
97
|
+
},
|
|
98
|
+
syncPlans: async () => {
|
|
99
|
+
return $fetch("paystack/sync-plans", { method: "POST" });
|
|
100
|
+
},
|
|
101
|
+
listProducts: async (options) => {
|
|
102
|
+
return $fetch("paystack/list-products", {
|
|
103
|
+
method: "GET",
|
|
104
|
+
...options
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
listPlans: async (options) => {
|
|
108
|
+
return $fetch("paystack/list-plans", {
|
|
109
|
+
method: "GET",
|
|
110
|
+
...options
|
|
111
|
+
});
|
|
94
112
|
}
|
|
95
113
|
}
|
|
96
114
|
};
|
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 { 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: 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}, 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}, 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 * Initialize a transaction to upgrade or creating a subscription.\n */\n\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t/**\n * Initialize a payment to create a subscription.\n */\n\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t/**\n * Disable a subscription.\n */\n\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t/**\n * Enable a subscription.\n */\n\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t/**\n * List subscriptions for the user.\n */\n\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t/**\n * Get a link to manage the subscription on Paystack.\n */\n\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t/**\n * Aliases for legacy/demo usage.\n */\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},\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,WAAwB;GACpC,MAAM,wBAAwB,OAAO,MAYlC,YAKI;AACN,WAAO,OAKJ,mCAAmC;KACrC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,MAA6B,YAIvD;AACN,WAAO,OAIJ,+BAA+B;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,mBAAmB,OAAO,OAA4C,EAAE,EAAE,YAEzE;AACN,WAAO,OAEJ,8BAA8B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,OAA4C,EAAE,EAAE,YAE1E;AACN,WAAO,OAEJ,+BAA+B;KACjC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,4BAA4B,OAAO,MAAoC,YAEtE;AACN,WAAO,OAEJ,yCAAyC;KAC3C,QAAQ;KACR,OAAO;KACP,GAAG;KACH,CAAC;;GAGH,MAAM,qBAAqB,OAAO,MAG/B,YAEI;AACN,WAAO,OAEJ,iCAAiC;KACnC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,sBAAsB,OAAO,MAGhC,YAEI;AACN,WAAO,OAEJ,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,OAAgC,uBAAuB,EAC7D,QAAQ,OACR,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\";\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: 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}, 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}, 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 * Initialize a transaction to upgrade or creating a subscription.\n */\n\t\t\t\t\tupgrade: initializeTransaction,\n\t\t\t\t\t/**\n * Initialize a payment to create a subscription.\n */\n\t\t\t\t\tcreate: initializeTransaction,\n\t\t\t\t\t/**\n * Disable a subscription.\n */\n\t\t\t\t\tcancel: cancelSubscription,\n\t\t\t\t\t/**\n * Enable a subscription.\n */\n\t\t\t\t\trestore: restoreSubscription,\n\t\t\t\t\t/**\n * List subscriptions for the user.\n */\n\t\t\t\t\tlist: listSubscriptions,\n\t\t\t\t\t/**\n * Get a link to manage the subscription on Paystack.\n */\n\t\t\t\t\tbillingPortal: getSubscriptionManageLink,\n\t\t\t\t\t/**\n * Aliases for legacy/demo usage.\n */\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,WAAwB;GACpC,MAAM,wBAAwB,OAAO,MAYlC,YAKI;AACN,WAAO,OAKJ,mCAAmC;KACrC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,MAA6B,YAIvD;AACN,WAAO,OAIJ,+BAA+B;KACjC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,mBAAmB,OAAO,OAA4C,EAAE,EAAE,YAEzE;AACN,WAAO,OAEJ,8BAA8B;KAChC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,oBAAoB,OAAO,OAA4C,EAAE,EAAE,YAE1E;AACN,WAAO,OAEJ,+BAA+B;KACjC,QAAQ;KACR,OAAO,KAAK;KACZ,GAAG;KACH,CAAC;;GAGH,MAAM,4BAA4B,OAAO,MAAoC,YAEtE;AACN,WAAO,OAEJ,yCAAyC;KAC3C,QAAQ;KACR,OAAO;KACP,GAAG;KACH,CAAC;;GAGH,MAAM,qBAAqB,OAAO,MAG/B,YAEI;AACN,WAAO,OAEJ,iCAAiC;KACnC,QAAQ;KACR,MAAM;KACN,GAAG;KACH,CAAC;;GAGH,MAAM,sBAAsB,OAAO,MAGhC,YAEI;AACN,WAAO,OAEJ,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,OAAgC,uBAAuB,EAC7D,QAAQ,OACR,CAAC;;KAEH,cAAc,YAA6E;AAC1F,aAAO,OAA0C,0BAA0B,EAC1E,QAAQ,QACR,CAAC;;KAEH,WAAW,YAA6E;AACvF,aAAO,OAA0C,uBAAuB,EACvE,QAAQ,QACR,CAAC;;KAEH,cAAc,OAAO,YAEd;AACN,aAAO,OAEJ,0BAA0B;OAC5B,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH,WAAW,OAAO,YAEX;AACN,aAAO,OAEJ,uBAAuB;OACzB,QAAQ;OACR,GAAG;OACH,CAAC;;KAEH;IACD;;EAEF"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as
|
|
1
|
+
import { a as PaystackPlan, c as Subscription, i as PaystackOptions, l as SubscriptionOptions, n as PaystackClientLike, o as PaystackProduct, r as PaystackNodeClient, s as PaystackTransaction, t as InputPaystackProduct } from "./types-CMXvth6C.mjs";
|
|
2
2
|
import * as better_auth0 from "better-auth";
|
|
3
3
|
import { AuthContext, GenericEndpointContext } from "better-auth";
|
|
4
4
|
import * as _better_auth_core_db0 from "@better-auth/core/db";
|
|
@@ -6,10 +6,10 @@ import * as zod from "zod";
|
|
|
6
6
|
import * as better_call0 from "better-call";
|
|
7
7
|
|
|
8
8
|
//#region src/index.d.ts
|
|
9
|
-
declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNodeClient, O extends PaystackOptions<TPaystackClient> = PaystackOptions<TPaystackClient>>(options: O) => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNodeClient, TMetadata = Record<string, unknown>, TLimits = Record<string, unknown>, O extends PaystackOptions<TPaystackClient, TMetadata, TLimits> = PaystackOptions<TPaystackClient, TMetadata, TLimits>>(options: O) => {
|
|
10
|
+
id: string;
|
|
11
|
+
endpoints: {
|
|
12
|
+
initializeTransaction: better_call0.StrictEndpoint<"/paystack/initialize-transaction", {
|
|
13
13
|
method: "POST";
|
|
14
14
|
body: zod.ZodObject<{
|
|
15
15
|
plan: zod.ZodOptional<zod.ZodString>;
|
|
@@ -53,7 +53,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
53
53
|
accessCode: string | undefined;
|
|
54
54
|
redirect: boolean;
|
|
55
55
|
}>;
|
|
56
|
-
|
|
56
|
+
verifyTransaction: better_call0.StrictEndpoint<"/paystack/verify-transaction", {
|
|
57
57
|
method: "POST";
|
|
58
58
|
body: zod.ZodObject<{
|
|
59
59
|
reference: zod.ZodString;
|
|
@@ -86,9 +86,9 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
86
86
|
}, {
|
|
87
87
|
status: string | undefined;
|
|
88
88
|
reference: string;
|
|
89
|
-
data: unknown
|
|
89
|
+
data: Record<string, unknown>;
|
|
90
90
|
}>;
|
|
91
|
-
|
|
91
|
+
listSubscriptions: better_call0.StrictEndpoint<"/paystack/list-subscriptions", {
|
|
92
92
|
method: "GET";
|
|
93
93
|
query: zod.ZodObject<{
|
|
94
94
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -121,7 +121,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
121
121
|
}, {
|
|
122
122
|
subscriptions: Subscription[];
|
|
123
123
|
}>;
|
|
124
|
-
|
|
124
|
+
paystackWebhook: better_call0.StrictEndpoint<"/paystack/webhook", {
|
|
125
125
|
method: "POST";
|
|
126
126
|
metadata: {
|
|
127
127
|
openapi: {
|
|
@@ -134,7 +134,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
134
134
|
}, {
|
|
135
135
|
received: boolean;
|
|
136
136
|
}>;
|
|
137
|
-
|
|
137
|
+
listTransactions: better_call0.StrictEndpoint<"/paystack/list-transactions", {
|
|
138
138
|
method: "GET";
|
|
139
139
|
query: zod.ZodObject<{
|
|
140
140
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -167,7 +167,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
167
167
|
}, {
|
|
168
168
|
transactions: PaystackTransaction[];
|
|
169
169
|
}>;
|
|
170
|
-
|
|
170
|
+
getConfig: better_call0.StrictEndpoint<"/paystack/get-config", {
|
|
171
171
|
method: "GET";
|
|
172
172
|
metadata: {
|
|
173
173
|
openapi: {
|
|
@@ -175,10 +175,10 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
175
175
|
};
|
|
176
176
|
};
|
|
177
177
|
}, {
|
|
178
|
-
plans: PaystackPlan[];
|
|
179
|
-
products:
|
|
178
|
+
plans: PaystackPlan<Record<string, unknown>>[];
|
|
179
|
+
products: InputPaystackProduct[];
|
|
180
180
|
}>;
|
|
181
|
-
|
|
181
|
+
disableSubscription: better_call0.StrictEndpoint<"/paystack/disable-subscription", {
|
|
182
182
|
method: "POST";
|
|
183
183
|
body: zod.ZodObject<{
|
|
184
184
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -213,7 +213,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
213
213
|
}, {
|
|
214
214
|
status: string;
|
|
215
215
|
}>;
|
|
216
|
-
|
|
216
|
+
enableSubscription: better_call0.StrictEndpoint<"/paystack/enable-subscription", {
|
|
217
217
|
method: "POST";
|
|
218
218
|
body: zod.ZodObject<{
|
|
219
219
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -248,7 +248,43 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
248
248
|
}, {
|
|
249
249
|
status: string;
|
|
250
250
|
}>;
|
|
251
|
-
|
|
251
|
+
getSubscriptionManageLink: better_call0.StrictEndpoint<"/paystack/get-subscription-manage-link", {
|
|
252
|
+
method: "GET";
|
|
253
|
+
query: zod.ZodObject<{
|
|
254
|
+
subscriptionCode: zod.ZodString;
|
|
255
|
+
}, better_auth0.$strip>;
|
|
256
|
+
use: (((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
|
|
257
|
+
referenceId: string;
|
|
258
|
+
}>) | ((inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
|
|
259
|
+
session: {
|
|
260
|
+
session: Record<string, any> & {
|
|
261
|
+
id: string;
|
|
262
|
+
createdAt: Date;
|
|
263
|
+
updatedAt: Date;
|
|
264
|
+
userId: string;
|
|
265
|
+
expiresAt: Date;
|
|
266
|
+
token: string;
|
|
267
|
+
ipAddress?: string | null | undefined;
|
|
268
|
+
userAgent?: string | null | undefined;
|
|
269
|
+
};
|
|
270
|
+
user: Record<string, any> & {
|
|
271
|
+
id: string;
|
|
272
|
+
createdAt: Date;
|
|
273
|
+
updatedAt: Date;
|
|
274
|
+
email: string;
|
|
275
|
+
emailVerified: boolean;
|
|
276
|
+
name: string;
|
|
277
|
+
image?: string | null | undefined;
|
|
278
|
+
};
|
|
279
|
+
};
|
|
280
|
+
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
281
|
+
}, {
|
|
282
|
+
link: null;
|
|
283
|
+
message: string;
|
|
284
|
+
} | {
|
|
285
|
+
link: string | undefined;
|
|
286
|
+
}>;
|
|
287
|
+
subscriptionManageLink: better_call0.StrictEndpoint<"/paystack/subscription/manage-link", {
|
|
252
288
|
method: "GET";
|
|
253
289
|
query: zod.ZodObject<{
|
|
254
290
|
subscriptionCode: zod.ZodString;
|
|
@@ -279,9 +315,12 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
279
315
|
};
|
|
280
316
|
}>) | ((getValue: (ctx: GenericEndpointContext) => string | string[]) => (inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<void>))[];
|
|
281
317
|
}, {
|
|
282
|
-
link:
|
|
318
|
+
link: null;
|
|
319
|
+
message: string;
|
|
320
|
+
} | {
|
|
321
|
+
link: string | undefined;
|
|
283
322
|
}>;
|
|
284
|
-
|
|
323
|
+
createSubscription: better_call0.StrictEndpoint<"/paystack/create-subscription", {
|
|
285
324
|
method: "POST";
|
|
286
325
|
body: zod.ZodObject<{
|
|
287
326
|
plan: zod.ZodOptional<zod.ZodString>;
|
|
@@ -325,7 +364,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
325
364
|
accessCode: string | undefined;
|
|
326
365
|
redirect: boolean;
|
|
327
366
|
}>;
|
|
328
|
-
|
|
367
|
+
upgradeSubscription: better_call0.StrictEndpoint<"/paystack/upgrade-subscription", {
|
|
329
368
|
method: "POST";
|
|
330
369
|
body: zod.ZodObject<{
|
|
331
370
|
plan: zod.ZodOptional<zod.ZodString>;
|
|
@@ -369,7 +408,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
369
408
|
accessCode: string | undefined;
|
|
370
409
|
redirect: boolean;
|
|
371
410
|
}>;
|
|
372
|
-
|
|
411
|
+
cancelSubscription: better_call0.StrictEndpoint<"/paystack/cancel-subscription", {
|
|
373
412
|
method: "POST";
|
|
374
413
|
body: zod.ZodObject<{
|
|
375
414
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -404,7 +443,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
404
443
|
}, {
|
|
405
444
|
status: string;
|
|
406
445
|
}>;
|
|
407
|
-
|
|
446
|
+
restoreSubscription: better_call0.StrictEndpoint<"/paystack/restore-subscription", {
|
|
408
447
|
method: "POST";
|
|
409
448
|
body: zod.ZodObject<{
|
|
410
449
|
referenceId: zod.ZodOptional<zod.ZodString>;
|
|
@@ -439,7 +478,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
439
478
|
}, {
|
|
440
479
|
status: string;
|
|
441
480
|
}>;
|
|
442
|
-
|
|
481
|
+
chargeRecurringSubscription: better_call0.StrictEndpoint<"/paystack/charge-recurring", {
|
|
443
482
|
method: "POST";
|
|
444
483
|
body: zod.ZodObject<{
|
|
445
484
|
subscriptionId: zod.ZodString;
|
|
@@ -449,9 +488,116 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
449
488
|
status: string;
|
|
450
489
|
data: Record<string, unknown>;
|
|
451
490
|
}>;
|
|
491
|
+
syncProducts: better_call0.StrictEndpoint<"/paystack/sync-products", {
|
|
492
|
+
method: "POST";
|
|
493
|
+
metadata: {
|
|
494
|
+
scope: "server";
|
|
495
|
+
};
|
|
496
|
+
disableBody: true;
|
|
497
|
+
use: ((inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
|
|
498
|
+
session: {
|
|
499
|
+
session: Record<string, any> & {
|
|
500
|
+
id: string;
|
|
501
|
+
createdAt: Date;
|
|
502
|
+
updatedAt: Date;
|
|
503
|
+
userId: string;
|
|
504
|
+
expiresAt: Date;
|
|
505
|
+
token: string;
|
|
506
|
+
ipAddress?: string | null | undefined;
|
|
507
|
+
userAgent?: string | null | undefined;
|
|
508
|
+
};
|
|
509
|
+
user: Record<string, any> & {
|
|
510
|
+
id: string;
|
|
511
|
+
createdAt: Date;
|
|
512
|
+
updatedAt: Date;
|
|
513
|
+
email: string;
|
|
514
|
+
emailVerified: boolean;
|
|
515
|
+
name: string;
|
|
516
|
+
image?: string | null | undefined;
|
|
517
|
+
};
|
|
518
|
+
};
|
|
519
|
+
}>)[];
|
|
520
|
+
}, {
|
|
521
|
+
status: string;
|
|
522
|
+
count: number;
|
|
523
|
+
}>;
|
|
524
|
+
listProducts: better_call0.StrictEndpoint<"/paystack/list-products", {
|
|
525
|
+
method: "GET";
|
|
526
|
+
metadata: {
|
|
527
|
+
openapi: {
|
|
528
|
+
operationId: string;
|
|
529
|
+
};
|
|
530
|
+
};
|
|
531
|
+
}, {
|
|
532
|
+
products: PaystackProduct[];
|
|
533
|
+
}>;
|
|
534
|
+
syncPlans: better_call0.StrictEndpoint<"/paystack/sync-plans", {
|
|
535
|
+
method: "POST";
|
|
536
|
+
metadata: {
|
|
537
|
+
scope: "server";
|
|
538
|
+
};
|
|
539
|
+
disableBody: true;
|
|
540
|
+
use: ((inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
|
|
541
|
+
session: {
|
|
542
|
+
session: Record<string, any> & {
|
|
543
|
+
id: string;
|
|
544
|
+
createdAt: Date;
|
|
545
|
+
updatedAt: Date;
|
|
546
|
+
userId: string;
|
|
547
|
+
expiresAt: Date;
|
|
548
|
+
token: string;
|
|
549
|
+
ipAddress?: string | null | undefined;
|
|
550
|
+
userAgent?: string | null | undefined;
|
|
551
|
+
};
|
|
552
|
+
user: Record<string, any> & {
|
|
553
|
+
id: string;
|
|
554
|
+
createdAt: Date;
|
|
555
|
+
updatedAt: Date;
|
|
556
|
+
email: string;
|
|
557
|
+
emailVerified: boolean;
|
|
558
|
+
name: string;
|
|
559
|
+
image?: string | null | undefined;
|
|
560
|
+
};
|
|
561
|
+
};
|
|
562
|
+
}>)[];
|
|
563
|
+
}, {
|
|
564
|
+
status: string;
|
|
565
|
+
count: number;
|
|
566
|
+
}>;
|
|
567
|
+
listPlans: better_call0.StrictEndpoint<"/paystack/list-plans", {
|
|
568
|
+
method: "GET";
|
|
569
|
+
metadata: {
|
|
570
|
+
scope: "server";
|
|
571
|
+
};
|
|
572
|
+
use: ((inputContext: better_auth0.MiddlewareInputContext<better_auth0.MiddlewareOptions>) => Promise<{
|
|
573
|
+
session: {
|
|
574
|
+
session: Record<string, any> & {
|
|
575
|
+
id: string;
|
|
576
|
+
createdAt: Date;
|
|
577
|
+
updatedAt: Date;
|
|
578
|
+
userId: string;
|
|
579
|
+
expiresAt: Date;
|
|
580
|
+
token: string;
|
|
581
|
+
ipAddress?: string | null | undefined;
|
|
582
|
+
userAgent?: string | null | undefined;
|
|
583
|
+
};
|
|
584
|
+
user: Record<string, any> & {
|
|
585
|
+
id: string;
|
|
586
|
+
createdAt: Date;
|
|
587
|
+
updatedAt: Date;
|
|
588
|
+
email: string;
|
|
589
|
+
emailVerified: boolean;
|
|
590
|
+
name: string;
|
|
591
|
+
image?: string | null | undefined;
|
|
592
|
+
};
|
|
593
|
+
};
|
|
594
|
+
}>)[];
|
|
595
|
+
}, {
|
|
596
|
+
plans: any[];
|
|
597
|
+
}>;
|
|
452
598
|
};
|
|
453
|
-
|
|
454
|
-
|
|
599
|
+
schema: _better_auth_core_db0.BetterAuthPluginDBSchema;
|
|
600
|
+
init: (ctx: AuthContext) => {
|
|
455
601
|
options: {
|
|
456
602
|
databaseHooks: {
|
|
457
603
|
user: {
|
|
@@ -496,7 +642,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
496
642
|
};
|
|
497
643
|
};
|
|
498
644
|
};
|
|
499
|
-
|
|
645
|
+
$ERROR_CODES: {
|
|
500
646
|
readonly SUBSCRIPTION_NOT_FOUND: "Subscription not found";
|
|
501
647
|
readonly SUBSCRIPTION_PLAN_NOT_FOUND: "Subscription plan not found";
|
|
502
648
|
readonly UNABLE_TO_CREATE_CUSTOMER: "Unable to create customer";
|
|
@@ -507,7 +653,7 @@ declare const paystack: <TPaystackClient extends PaystackClientLike = PaystackNo
|
|
|
507
653
|
readonly EMAIL_VERIFICATION_REQUIRED: "Email verification is required before you can subscribe to a plan";
|
|
508
654
|
};
|
|
509
655
|
};
|
|
510
|
-
type PaystackPlugin<O extends PaystackOptions<PaystackClientLike> = PaystackOptions> = ReturnType<typeof paystack<PaystackClientLike, O>>;
|
|
656
|
+
type PaystackPlugin<O extends PaystackOptions<PaystackClientLike, any, any> = PaystackOptions> = ReturnType<typeof paystack<PaystackClientLike, any, any, O>>;
|
|
511
657
|
//#endregion
|
|
512
658
|
export { type PaystackOptions, type PaystackPlan, PaystackPlugin, type PaystackProduct, type Subscription, type SubscriptionOptions, paystack };
|
|
513
659
|
//# sourceMappingURL=index.d.mts.map
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;cA8Ca,QAAA,2BACY,kBAAA,GAAqB,kBAAA,cACjC,MAAA,6BACF,MAAA,6BACA,eAAA,CAAgB,eAAA,EAAiB,SAAA,EAAW,OAAA,IAAW,eAAA,CAAgB,eAAA,EAAiB,SAAA,EAAW,OAAA,GAE5G,OAAA,EAAS,CAAA;;;;;;8BAAC,GAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA4BE,WAAA;;;;;;cAMc,EAAA;cAAY,KAAA;cAAe,IAAA;YAAA,GAAsB,OAAA,GAAY,sBAAA,UAA6B,OAAA;UAAA;QAAA;;;;cA+B1F,EAAA;cAAY,IAAA;cAAc,KAAA;YAAA,GAAuB,OAAA,EAAW,sBAAA,UAA6B,OAAA;UAAA;QAAA;MAAA;;;;YAmErF,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;;;;YASpE,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;;;;YAS9E,cAAA;UAAA,GAAwB,GAAA,EAAO,sBAAA,wBAAyC,OAAA;QAAA;MAAA;IAAA;EAAA;;;;;;;;;;;;KAyB1F,cAAA,WAED,eAAA,CAAgB,kBAAA,cAAgC,eAAA,IACvD,UAAA,QAEI,QAAA,CAAS,kBAAA,YAA8B,CAAA"}
|