UNPKG

autumn-js

Version:

Autumn JS Library

759 lines (756 loc) 32.3 kB
import * as better_auth from 'better-auth'; import { z } from 'zod'; declare const autumn: (options?: { url?: string; secretKey?: string; }) => { id: "autumn"; endpoints: { createCustomer: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { expand?: ("invoices" | "rewards" | "trials_used" | "entities" | "referrals" | "payment_method")[] | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; body: z.ZodObject<{ expand: z.ZodOptional<z.ZodArray<z.ZodEnum<["invoices", "rewards", "trials_used", "entities", "referrals", "payment_method"]>, "many">>; }, "strip", z.ZodTypeAny, { expand?: ("invoices" | "rewards" | "trials_used" | "entities" | "referrals" | "payment_method")[] | undefined; }, { expand?: ("invoices" | "rewards" | "trials_used" | "entities" | "referrals" | "payment_method")[] | undefined; }>; metadata: { isAction: boolean; }; }; path: "/autumn/customers"; }; listProducts: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0?: ({ body?: undefined; } & { method?: "GET" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }) | undefined): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "GET"; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/products"; }; attach: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { entity_id?: string | undefined; options?: { feature_id: string; quantity: number; }[] | undefined; metadata?: Record<string, string> | undefined; product_id?: string | undefined; product_ids?: string[] | undefined; free_trial?: boolean | undefined; success_url?: string | undefined; force_checkout?: boolean | undefined; customer_data?: { name?: string | null | undefined; email?: string | null | undefined; fingerprint?: string | null | undefined; } | undefined; entity_data?: any; checkout_session_params?: Record<string, any> | undefined; reward?: string | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ customer_id: z.ZodString; product_id: z.ZodOptional<z.ZodString>; entity_id: z.ZodOptional<z.ZodString>; options: z.ZodOptional<z.ZodArray<z.ZodObject<{ feature_id: z.ZodString; quantity: z.ZodNumber; }, "strip", z.ZodTypeAny, { feature_id: string; quantity: number; }, { feature_id: string; quantity: number; }>, "many">>; product_ids: z.ZodOptional<z.ZodArray<z.ZodString, "many">>; free_trial: z.ZodOptional<z.ZodBoolean>; success_url: z.ZodOptional<z.ZodString>; metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>; force_checkout: z.ZodOptional<z.ZodBoolean>; customer_data: z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodNullable<z.ZodString>>; email: z.ZodOptional<z.ZodNullable<z.ZodString>>; fingerprint: z.ZodOptional<z.ZodNullable<z.ZodString>>; }, "strip", z.ZodTypeAny, { name?: string | null | undefined; email?: string | null | undefined; fingerprint?: string | null | undefined; }, { name?: string | null | undefined; email?: string | null | undefined; fingerprint?: string | null | undefined; }>>; entity_data: z.ZodOptional<z.ZodAny>; checkout_session_params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>; reward: z.ZodOptional<z.ZodString>; }, "customer_id">, "strip", z.ZodTypeAny, { entity_id?: string | undefined; options?: { feature_id: string; quantity: number; }[] | undefined; metadata?: Record<string, string> | undefined; product_id?: string | undefined; product_ids?: string[] | undefined; free_trial?: boolean | undefined; success_url?: string | undefined; force_checkout?: boolean | undefined; customer_data?: { name?: string | null | undefined; email?: string | null | undefined; fingerprint?: string | null | undefined; } | undefined; entity_data?: any; checkout_session_params?: Record<string, any> | undefined; reward?: string | undefined; }, { entity_id?: string | undefined; options?: { feature_id: string; quantity: number; }[] | undefined; metadata?: Record<string, string> | undefined; product_id?: string | undefined; product_ids?: string[] | undefined; free_trial?: boolean | undefined; success_url?: string | undefined; force_checkout?: boolean | undefined; customer_data?: { name?: string | null | undefined; email?: string | null | undefined; fingerprint?: string | null | undefined; } | undefined; entity_data?: any; checkout_session_params?: Record<string, any> | undefined; reward?: string | undefined; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/attach"; }; check: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { feature_id?: string | undefined; entity_id?: string | undefined; required_balance?: number | undefined; product_id?: string | undefined; customer_data?: any; entity_data?: { feature_id: string; name?: string | undefined; } | undefined; send_event?: boolean | undefined; with_preview?: boolean | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ customer_id: z.ZodString; feature_id: z.ZodOptional<z.ZodString>; product_id: z.ZodOptional<z.ZodString>; entity_id: z.ZodOptional<z.ZodString>; customer_data: z.ZodOptional<z.ZodAny>; required_balance: z.ZodOptional<z.ZodNumber>; send_event: z.ZodOptional<z.ZodBoolean>; with_preview: z.ZodOptional<z.ZodBoolean>; entity_data: z.ZodOptional<z.ZodObject<{ name: z.ZodOptional<z.ZodString>; feature_id: z.ZodString; }, "strip", z.ZodTypeAny, { feature_id: string; name?: string | undefined; }, { feature_id: string; name?: string | undefined; }>>; }, "customer_id">, "strip", z.ZodTypeAny, { feature_id?: string | undefined; entity_id?: string | undefined; required_balance?: number | undefined; product_id?: string | undefined; customer_data?: any; entity_data?: { feature_id: string; name?: string | undefined; } | undefined; send_event?: boolean | undefined; with_preview?: boolean | undefined; }, { feature_id?: string | undefined; entity_id?: string | undefined; required_balance?: number | undefined; product_id?: string | undefined; customer_data?: any; entity_data?: { feature_id: string; name?: string | undefined; } | undefined; send_event?: boolean | undefined; with_preview?: boolean | undefined; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/check"; }; track: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { feature_id?: string | undefined; entity_id?: string | undefined; value?: number | undefined; customer_data?: any; entity_data?: any; event_name?: string | undefined; idempotency_key?: string | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ customer_id: z.ZodString; value: z.ZodOptional<z.ZodNumber>; feature_id: z.ZodOptional<z.ZodString>; event_name: z.ZodOptional<z.ZodString>; entity_id: z.ZodOptional<z.ZodString>; customer_data: z.ZodOptional<z.ZodAny>; idempotency_key: z.ZodOptional<z.ZodString>; entity_data: z.ZodOptional<z.ZodAny>; }, "customer_id">, "strip", z.ZodTypeAny, { feature_id?: string | undefined; entity_id?: string | undefined; value?: number | undefined; customer_data?: any; entity_data?: any; event_name?: string | undefined; idempotency_key?: string | undefined; }, { feature_id?: string | undefined; entity_id?: string | undefined; value?: number | undefined; customer_data?: any; entity_data?: any; event_name?: string | undefined; idempotency_key?: string | undefined; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/track"; }; cancel: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { product_id: string; entity_id?: string | undefined; cancel_immediately?: boolean | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ customer_id: z.ZodString; product_id: z.ZodString; entity_id: z.ZodOptional<z.ZodString>; cancel_immediately: z.ZodOptional<z.ZodBoolean>; }, "customer_id">, "strip", z.ZodTypeAny, { product_id: string; entity_id?: string | undefined; cancel_immediately?: boolean | undefined; }, { product_id: string; entity_id?: string | undefined; cancel_immediately?: boolean | undefined; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/cancel"; }; createReferralCode: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { program_id: string; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ customer_id: z.ZodString; program_id: z.ZodString; }, "customer_id">, "strip", z.ZodTypeAny, { program_id: string; }, { program_id: string; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/referrals/create-code"; }; redeemReferralCode: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { code: string; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<Omit<{ code: z.ZodString; customer_id: z.ZodString; }, "customer_id">, "strip", z.ZodTypeAny, { code: string; }, { code: string; }>; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/referrals/redeem-code"; }; billingPortal: { <AsResponse extends boolean = false, ReturnHeaders extends boolean = false>(inputCtx_0: { body: { return_url?: string | undefined; }; } & { method?: "POST" | undefined; } & { query?: Record<string, any> | undefined; } & { params?: Record<string, any>; } & { request?: Request; } & { headers?: HeadersInit; } & { asResponse?: boolean; returnHeaders?: boolean; use?: better_auth.Middleware[]; path?: string; } & { asResponse?: AsResponse | undefined; returnHeaders?: ReturnHeaders | undefined; }): Promise<[AsResponse] extends [true] ? Response : [ReturnHeaders] extends [true] ? { headers: Headers; response: any; } : any>; options: { method: "POST"; body: z.ZodObject<{ return_url: z.ZodOptional<z.ZodString>; }, "strip", z.ZodTypeAny, { return_url?: string | undefined; }, { return_url?: string | undefined; }>; metadata: { isAction: boolean; }; use: ((inputContext: better_auth.MiddlewareInputContext<better_auth.MiddlewareOptions>) => Promise<{ session: { session: Record<string, any> & { id: string; token: string; userId: string; expiresAt: Date; createdAt: Date; updatedAt: Date; ipAddress?: string | null | undefined; userAgent?: string | null | undefined; }; user: Record<string, any> & { id: string; name: string; emailVerified: boolean; email: string; createdAt: Date; updatedAt: Date; image?: string | null | undefined; }; }; }>)[]; } & { use: any[]; }; path: "/autumn/billing_portal"; }; }; }; declare const autumnClient: () => { id: "autumn"; $InferServerPlugin: ReturnType<typeof autumn>; }; export { autumn, autumnClient };