@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 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 PaystackTransaction, s as Subscription } from "./types-Dlv_nSLg.mjs";
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
  };
@@ -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
  };
@@ -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 PaystackProduct, c as SubscriptionOptions, i as PaystackPlan, n as PaystackNodeClient, o as PaystackTransaction, r as PaystackOptions, s as Subscription, t as PaystackClientLike } from "./types-Dlv_nSLg.mjs";
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
- readonly id: "paystack";
11
- readonly endpoints: {
12
- readonly initializeTransaction: better_call0.StrictEndpoint<"/paystack/initialize-transaction", {
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
- readonly verifyTransaction: better_call0.StrictEndpoint<"/paystack/verify-transaction", {
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
- readonly listSubscriptions: better_call0.StrictEndpoint<"/paystack/list-subscriptions", {
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
- readonly paystackWebhook: better_call0.StrictEndpoint<"/paystack/webhook", {
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
- readonly listTransactions: better_call0.StrictEndpoint<"/paystack/list-transactions", {
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
- readonly getConfig: better_call0.StrictEndpoint<"/paystack/get-config", {
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: PaystackProduct[];
178
+ plans: PaystackPlan<Record<string, unknown>>[];
179
+ products: InputPaystackProduct[];
180
180
  }>;
181
- readonly disableSubscription: better_call0.StrictEndpoint<"/paystack/disable-subscription", {
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
- readonly enableSubscription: better_call0.StrictEndpoint<"/paystack/enable-subscription", {
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
- readonly getSubscriptionManageLink: better_call0.StrictEndpoint<"/paystack/get-subscription-manage-link", {
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: unknown;
318
+ link: null;
319
+ message: string;
320
+ } | {
321
+ link: string | undefined;
283
322
  }>;
284
- readonly createSubscription: better_call0.StrictEndpoint<"/paystack/create-subscription", {
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
- readonly upgradeSubscription: better_call0.StrictEndpoint<"/paystack/upgrade-subscription", {
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
- readonly cancelSubscription: better_call0.StrictEndpoint<"/paystack/cancel-subscription", {
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
- readonly restoreSubscription: better_call0.StrictEndpoint<"/paystack/restore-subscription", {
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
- readonly chargeRecurringSubscription: better_call0.StrictEndpoint<"/paystack/charge-recurring", {
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
- readonly schema: _better_auth_core_db0.BetterAuthPluginDBSchema;
454
- readonly init: (ctx: AuthContext) => {
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
- readonly $ERROR_CODES: {
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/index.ts"],"mappings":";;;;;;;;cA0Ca,QAAA,2BACe,kBAAA,GAAqB,kBAAA,YACnC,eAAA,CAAgB,eAAA,IAAmB,eAAA,CAAgB,eAAA,GAE/D,OAAA,EAAS,CAAA;EAAA;;;;;8BAAC,GAAA,CAAA,SAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAqBE,WAAA;;;;;;cAMc,EAAA;cAAY,KAAA;cAAe,IAAA;YAAA,GAAsB,OAAA,GAAY,sBAAA,UAA6B,OAAA;UAAA;QAAA;;;;cA8B1F,EAAA;cAAY,IAAA;cAAc,KAAA;YAAA,GAAuB,OAAA,EAAW,sBAAA,UAA6B,OAAA;UAAA;QAAA;MAAA;;;;YAsErF,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;EAAA;;;;;;;;;;;KA2B1F,cAAA,WAAyB,eAAA,CAAgB,kBAAA,IAAsB,eAAA,IAAmB,UAAA,QACnF,QAAA,CAAS,kBAAA,EAAoB,CAAA"}
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"}